{"id":400,"date":"2023-04-29T11:42:09","date_gmt":"2023-04-29T02:42:09","guid":{"rendered":"http:\/\/ec.me.tut.ac.jp\/?page_id=400"},"modified":"2026-09-05T09:39:30","modified_gmt":"2026-09-05T00:39:30","slug":"thermoacoustics","status":"publish","type":"page","link":"https:\/\/ec.me.tut.ac.jp\/en\/research\/thermoacoustics","title":{"rendered":"Thermoacoustics"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Utilization of sound energy and waste heat with thermoacoustics, which is conversion phenomena between sound and heat energies, is focused on. A cascade of flat plates (parallel-plate stack) or honeycomb stack, including multiple fine tubes, positioned in a cavity flow can drive the thermoacoustic heat flow and create a heat pump using aerodynamic sound. The effects of the stack position on a thermoacoustic heat pump were found to greatly affect the heat pump effects and self-sustained oscillations in the cavity flow. In a reverse way, the method for the control of the cavity tone by adding heat to the stack in a cavity flow is also investigated, where the stack works can be considered to be acoustic metamaterial to reduce the resonance. <\/p>\n\n\n\n<div class=\"wp-block-columns are-vertically-aligned-center has-small-font-size is-layout-flex wp-container-core-columns-is-layout-8f761849 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"741\" src=\"https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2023\/05\/cavitytone_heatpump_en-1024x741.png\" alt=\"\" class=\"wp-image-541\" srcset=\"https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2023\/05\/cavitytone_heatpump_en-1024x741.png 1024w, https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2023\/05\/cavitytone_heatpump_en-300x217.png 300w, https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2023\/05\/cavitytone_heatpump_en-768x555.png 768w, https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2023\/05\/cavitytone_heatpump_en.png 1232w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\">Acoustic field around a cavity flow with a parallel-plate stack for thermoacoustic heat pump<\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-image size-large\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"487\" src=\"https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2023\/04\/TAE_en-1024x487.png\" alt=\"\" class=\"wp-image-505\" srcset=\"https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2023\/04\/TAE_en-1024x487.png 1024w, https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2023\/04\/TAE_en-300x143.png 300w, https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2023\/04\/TAE_en-768x366.png 768w, https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2023\/04\/TAE_en-1536x731.png 1536w, https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2023\/04\/TAE_en-2048x975.png 2048w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><figcaption class=\"wp-element-caption\"><span data-fontsize=\"12px\" style=\"font-size: 12px;\" class=\"vk_inline-font-size\">Demonstration of thermoacoustic engine<\/span><\/figcaption><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-vertically-aligned-center is-layout-flow wp-block-column-is-layout-flow\">\n<figure class=\"wp-block-video aligncenter\"><video height=\"1080\" style=\"aspect-ratio: 1920 \/ 1080;\" width=\"1920\" controls src=\"https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2023\/04\/media2_TAE-Trim-1.mp4\"><\/video><figcaption class=\"wp-element-caption\"><span data-fontsize=\"12px\" style=\"font-size: 12px;\" class=\"vk_inline-font-size\">Sound generation from thermoacoustic engine (movie with sound)<\/span><\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:29px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">Related publications<\/mark><\/strong><\/p>\n\n\n\n    <div\n        id=\"scopus-selected-17075\"\n        class=\"scopus-selected-publications\"\n    >\n        <p class=\"scopus-loading\">\n            Loading publications...\n        <\/p>\n    <\/div>\n\n    <script>\n    (function () {\n\n        const container =\n            document.getElementById(\n                \"scopus-selected-17075\"            );\n\n        const scopusApiKey =\n            \"3045e403a1a6a5942a7066ae012d8e52\";\n\n        const scopusIds =\n            [\"85122361240\",\"105026601058\",\"105048156719\"];\n\n\n        \/*\n         * Normalize DOI.\n         *\/\n        function normalizeDoi(value) {\n\n            if (!value) {\n                return '';\n            }\n\n            return String(value)\n                .replace(\n                    \/^https?:\\\/\\\/(dx\\.)?doi\\.org\\\/\/i,\n                    ''\n                )\n                .trim()\n                .toLowerCase();\n        }\n\n\n        \/*\n         * Get a Scopus URL from an abstract response.\n         *\/\n        function getScopusURL(coredata) {\n\n            if (!coredata || !Array.isArray(coredata.link)) {\n                return '';\n            }\n\n            for (const link of coredata.link) {\n\n                if (\n                    link['@ref'] === 'scopus' &&\n                    link['@href']\n                ) {\n                    return link['@href'];\n                }\n            }\n\n            return '';\n        }\n\n\n        \/*\n         * Retrieve basic metadata from Scopus\n         * using the Scopus ID.\n         *\n         * META is intentionally used rather than\n         * META_ABS\/FULL so that institutional\n         * entitlement is not required for the\n         * additional author fields.\n         *\/\n        async function fetchScopusRecord(scopusId) {\n\n            const params =\n                new URLSearchParams({\n                    view: 'META',\n                    apiKey: scopusApiKey,\n                    httpAccept: 'application\/json'\n                });\n\n            const apiURL =\n                'https:\/\/api.elsevier.com\/content\/abstract\/' +\n                'scopus_id\/' +\n                encodeURIComponent(scopusId) +\n                '?' +\n                params.toString();\n\n            const response =\n                await fetch(apiURL);\n\n            if (!response.ok) {\n\n                throw new Error(\n                    'Scopus API returned HTTP ' +\n                    response.status +\n                    ' for Scopus ID ' +\n                    scopusId\n                );\n            }\n\n            const data =\n                await response.json();\n\n            if (\n                !data['abstracts-retrieval-response'] ||\n                !data[\n                    'abstracts-retrieval-response'\n                ].coredata\n            ) {\n                throw new Error(\n                    'No Scopus metadata found for ' +\n                    scopusId\n                );\n            }\n\n            return {\n                scopusId: scopusId,\n                coredata:\n                    data[\n                        'abstracts-retrieval-response'\n                    ].coredata\n            };\n        }\n\n\n        \/*\n         * Retrieve an OpenAlex work by DOI.\n         *\/\n        async function fetchOpenAlexByDoi(doi) {\n\n            doi = normalizeDoi(doi);\n\n            if (!doi) {\n                return null;\n            }\n\n            const apiURL =\n                'https:\/\/api.openalex.org\/works\/' +\n                'https:\/\/doi.org\/' +\n                encodeURIComponent(doi);\n\n            const response =\n                await fetch(apiURL);\n\n            if (response.status === 404) {\n                return null;\n            }\n\n            if (!response.ok) {\n\n                throw new Error(\n                    'OpenAlex returned HTTP ' +\n                    response.status +\n                    ' for DOI ' +\n                    doi\n                );\n            }\n\n            return response.json();\n        }\n\n\n        \/*\n         * Get all author names from OpenAlex.\n         *\/\n        function getOpenAlexAuthorNames(work) {\n\n            if (\n                !work ||\n                !Array.isArray(work.authorships)\n            ) {\n                return [];\n            }\n\n            return work.authorships\n                .map(function(authorship) {\n\n                    if (authorship.raw_author_name) {\n                        return authorship.raw_author_name;\n                    }\n\n                    if (\n                        authorship.author &&\n                        authorship.author.display_name\n                    ) {\n                        return authorship.author.display_name;\n                    }\n\n                    return '';\n                })\n                .filter(function(name) {\n                    return name !== '';\n                });\n        }\n\n\n        \/*\n         * Convert one Scopus\/OpenAlex record\n         * into HTML.\n         *\/\n        function createPublicationItem(record) {\n\n            const coredata =\n                record.scopus.coredata;\n\n            const openAlexWork =\n                record.openalex;\n\n            const item =\n                document.createElement('li');\n\n\n            \/*\n             * Title.\n             *\/\n            const title =\n                coredata['dc:title'] || '';\n\n            const doi =\n                coredata['prism:doi'] || '';\n\n            const titleElement =\n                document.createElement('strong');\n\n            if (doi) {\n\n                const titleLink =\n                    document.createElement('a');\n\n                titleLink.href =\n                    'https:\/\/doi.org\/' + doi;\n\n                titleLink.target =\n                    '_blank';\n\n                titleLink.rel =\n                    'noopener noreferrer';\n\n                titleLink.textContent =\n                    title;\n\n                titleElement.appendChild(\n                    titleLink\n                );\n\n            } else {\n\n                titleElement.textContent =\n                    title;\n            }\n\n            item.appendChild(titleElement);\n\n\n            \/*\n             * Authors from OpenAlex.\n             *\/\n            const authorNames =\n                getOpenAlexAuthorNames(\n                    openAlexWork\n                );\n\n            if (authorNames.length > 0) {\n\n                item.appendChild(\n                    document.createElement('br')\n                );\n\n                const authorLine =\n                    document.createElement('span');\n\n                authorLine.textContent =\n                    authorNames.join(', ');\n\n                item.appendChild(authorLine);\n            }\n\n\n            \/*\n             * Journal information.\n             *\/\n            const journal =\n                coredata[\n                    'prism:publicationName'\n                ] || '';\n\n            const volume =\n                coredata[\n                    'prism:volume'\n                ] || '';\n\n            const issue =\n                coredata[\n                    'prism:issueIdentifier'\n                ] || '';\n\n            const pages =\n                coredata[\n                    'prism:pageRange'\n                ] || '';\n\n            const date =\n                coredata[\n                    'prism:coverDate'\n                ] || '';\n\n            const year =\n                date\n                    ? String(date).substring(0, 4)\n                    : '';\n\n            const info = [];\n\n            if (journal) {\n                info.push(journal);\n            }\n\n            if (volume) {\n                info.push(\n                    'Vol. ' + volume\n                );\n            }\n\n            if (issue) {\n                info.push(\n                    'No. ' + issue\n                );\n            }\n\n            if (pages) {\n                info.push(\n                    'pp. ' + pages\n                );\n            }\n\n            if (year) {\n                info.push(year);\n            }\n\n            if (info.length > 0) {\n\n                item.appendChild(\n                    document.createElement('br')\n                );\n\n                const infoElement =\n                    document.createElement('span');\n\n                infoElement.textContent =\n                    info.join(', ');\n\n                item.appendChild(\n                    infoElement\n                );\n            }\n\n\n            \/*\n             * DOI.\n             *\/\n            if (doi) {\n\n                item.appendChild(\n                    document.createElement('br')\n                );\n\n                item.appendChild(\n                    document.createTextNode(\n                        'DOI: '\n                    )\n                );\n\n                const doiLink =\n                    document.createElement('a');\n\n                doiLink.href =\n                    'https:\/\/doi.org\/' + doi;\n\n                doiLink.target =\n                    '_blank';\n\n                doiLink.rel =\n                    'noopener noreferrer';\n\n                doiLink.textContent =\n                    doi;\n\n                item.appendChild(doiLink);\n            }\n\n\n            \/*\n             * Scopus link.\n             *\/\n            const scopusURL =\n                getScopusURL(coredata);\n\n            if (scopusURL) {\n\n                item.appendChild(\n                    document.createElement('br')\n                );\n\n                const scopusLink =\n                    document.createElement('a');\n\n                scopusLink.href =\n                    scopusURL;\n\n                scopusLink.target =\n                    '_blank';\n\n                scopusLink.rel =\n                    'noopener noreferrer';\n\n                scopusLink.textContent =\n                    'View on Scopus';\n\n                item.appendChild(scopusLink);\n            }\n\n            return item;\n        }\n\n\n        \/*\n         * Main process.\n         *\n         * Scopus IDs are processed in the same\n         * order as specified in the shortcode.\n         *\/\n        async function loadSelectedPublications() {\n\n            const records = [];\n\n            for (const scopusId of scopusIds) {\n\n                try {\n\n                    const scopus =\n                        await fetchScopusRecord(\n                            scopusId\n                        );\n\n                    const doi =\n                        scopus.coredata[\n                            'prism:doi'\n                        ] || '';\n\n                    let openalex = null;\n\n                    if (doi) {\n\n                        openalex =\n                            await fetchOpenAlexByDoi(\n                                doi\n                            );\n                    }\n\n                    records.push({\n                        scopus: scopus,\n                        openalex: openalex\n                    });\n\n                } catch (error) {\n\n                    console.error(\n                        'Publication retrieval:',\n                        error\n                    );\n                }\n            }\n\n            return records;\n        }\n\n\n        loadSelectedPublications()\n\n        .then(function(records) {\n\n            if (records.length === 0) {\n\n                container.innerHTML =\n                    '<p>No publications could be retrieved.<\/p>';\n\n                return;\n            }\n\n            const list =\n                document.createElement('ol');\n\n            records.forEach(function(record) {\n\n                list.appendChild(\n                    createPublicationItem(record)\n                );\n            });\n\n            container.innerHTML = '';\n\n            container.appendChild(list);\nconst attribution =\n    document.createElement('p');\n\nattribution.className =\n    'scopus-attribution';\n\nattribution.textContent =\n    'Publication data provided by Scopus. ' +\n    'Author information supplemented by OpenAlex.';\n\ncontainer.appendChild(attribution);\n        })\n\n        .catch(function(error) {\n\n            console.error(\n                'Publication retrieval:',\n                error\n            );\n\n            container.innerHTML =\n                '<p>Publications could not be retrieved.<\/p>';\n        });\n\n    })();\n    <\/script>\n\n    \n\n\n\n<div style=\"height:25px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p class=\"has-medium-font-size wp-block-paragraph\"><strong><mark style=\"background-color:rgba(0, 0, 0, 0)\" class=\"has-inline-color has-vivid-green-cyan-color\">News<\/mark><\/strong><\/p>\n\n\n<ul class=\"wp-block-latest-posts__list wp-block-latest-posts is-layout-flow wp-block-latest-posts-is-layout-flow\"><li><div class=\"wp-block-latest-posts__featured-image\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2026\/08\/Fig11_pressure-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/ec.me.tut.ac.jp\/en\/archives\/1198\">Journal of Sound and Vibration, vol.644<\/a><\/li>\n<li><div class=\"wp-block-latest-posts__featured-image\"><img loading=\"lazy\" decoding=\"async\" width=\"150\" height=\"150\" src=\"https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2026\/01\/HsD005_pre_velo_r-150x150.png\" class=\"attachment-thumbnail size-thumbnail wp-post-image\" alt=\"\" style=\"\" \/><\/div><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/ec.me.tut.ac.jp\/en\/archives\/1098\">International Journal of Heat and Mass Transfer, 2026<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Utilization of sound energy and waste heat with thermoacoustics, which is conversion phenomena between sound and heat energies, is focused on. A cascade of flat plates (parallel-plate stack) or honeycomb stack, including multiple fine tubes, positioned in a cavity flow can drive the thermoacoustic heat flow and create a heat pump using aerodynamic sound. The [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":541,"parent":395,"menu_order":2,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_locale":"en_US","_original_post":"http:\/\/ec.me.tut.ac.jp\/wp\/?page_id=134","_vk_print_noindex":"","sitemap_hide":"","vkExUnit_sitemap":"","_veu_custom_css":"","veu_display_promotion_alert":"common","_exclude_from_list_pages":"","vkexunit_cta_each_option":"","vkExUnit_childPageIndex":"","vkExUnit_pageList_ancestor":"","vkExUnit_contact_enable":"","footnotes":""},"class_list":["post-400","page","type-page","status-publish","has-post-thumbnail","hentry","en-US"],"veu_head_title_object":{"title":"","add_site_title":""},"_links":{"self":[{"href":"https:\/\/ec.me.tut.ac.jp\/wp-json\/wp\/v2\/pages\/400","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/ec.me.tut.ac.jp\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/ec.me.tut.ac.jp\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/ec.me.tut.ac.jp\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/ec.me.tut.ac.jp\/wp-json\/wp\/v2\/comments?post=400"}],"version-history":[{"count":23,"href":"https:\/\/ec.me.tut.ac.jp\/wp-json\/wp\/v2\/pages\/400\/revisions"}],"predecessor-version":[{"id":1345,"href":"https:\/\/ec.me.tut.ac.jp\/wp-json\/wp\/v2\/pages\/400\/revisions\/1345"}],"up":[{"embeddable":true,"href":"https:\/\/ec.me.tut.ac.jp\/wp-json\/wp\/v2\/pages\/395"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/ec.me.tut.ac.jp\/wp-json\/wp\/v2\/media\/541"}],"wp:attachment":[{"href":"https:\/\/ec.me.tut.ac.jp\/wp-json\/wp\/v2\/media?parent=400"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}