{"id":378,"date":"2023-04-29T11:16:42","date_gmt":"2023-04-29T02:16:42","guid":{"rendered":"http:\/\/ec.me.tut.ac.jp\/?page_id=378"},"modified":"2026-09-05T09:59:53","modified_gmt":"2026-09-05T00:59:53","slug":"aeroacoustics","status":"publish","type":"page","link":"https:\/\/ec.me.tut.ac.jp\/en\/research\/aeroacoustics","title":{"rendered":"Aeroacoustics"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">Aerodynamic noise increases in proportional to the high power of velocity. So, the noise is a sever problem for high-speed transport vehicles or flow-related machinery. For example, intense tonal sound radiates from a cavity flow and flow around a cascade of flat plates, where the feedback loop due to fluid-acoustic interactions occurs. To clarify the mechanism of acoustic radiation and establish the methodologies for noise reduction, we are performing wind tunnel experiments and aeroacoustic direct numerical simulation with an in-house code (AADNS). <\/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\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" width=\"803\" height=\"602\" src=\"https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2026\/09\/cavity.png\" alt=\"\" class=\"wp-image-1224\" style=\"aspect-ratio:1.3338704534214079;width:463px;height:auto\" srcset=\"https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2026\/09\/cavity.png 803w, https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2026\/09\/cavity-300x225.png 300w, https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2026\/09\/cavity-768x576.png 768w\" sizes=\"auto, (max-width: 803px) 100vw, 803px\" \/><figcaption class=\"wp-element-caption\">Distributions of fluctuation pressure with vortices (purple) around a cavity flow<\/figcaption><\/figure>\n<\/div><\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\"><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-full\"><img loading=\"lazy\" decoding=\"async\" width=\"564\" height=\"491\" src=\"https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2026\/09\/Spectrum_example.png\" alt=\"\" class=\"wp-image-1351\" srcset=\"https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2026\/09\/Spectrum_example.png 564w, https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2026\/09\/Spectrum_example-300x261.png 300w\" sizes=\"auto, (max-width: 564px) 100vw, 564px\" \/><figcaption class=\"wp-element-caption\">Comparison of measured and predicted sound pressure spectra of cavity tone <\/figcaption><\/figure>\n<\/div><\/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=\"480\" style=\"aspect-ratio: 640 \/ 480;\" width=\"640\" controls loop src=\"https:\/\/ec.me.tut.ac.jp\/wp\/wordpress\/wp-content\/uploads\/2023\/04\/media1_fan.mp4\"><\/video><figcaption class=\"wp-element-caption\">Predicted flow field around an axial fan<\/figcaption><\/figure>\n<\/div>\n<\/div>\n\n\n\n<div style=\"height:36px\" 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-33259\"\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-33259\"            );\n\n        const scopusApiKey =\n            \"3045e403a1a6a5942a7066ae012d8e52\";\n\n        const scopusIds =\n            [\"105005667429\",\"71049191847\",\"84939863588\",\"84887003828\"];\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:33px\" 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><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/ec.me.tut.ac.jp\/en\/archives\/1068\">The 11th JSME-KSME Thermal and Fluids Engineering Conference<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/ec.me.tut.ac.jp\/en\/archives\/913\">Generation of aerodynamic sound around an expanding pipe with orifice plates, J. Fluid Sci. Tech.<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/ec.me.tut.ac.jp\/en\/archives\/826\">Control of Flow and Acoustic Fields Around an Axial Fan Utilizing Plasma Actuators, Trans. ASME, J. Fluids Eng.<\/a><\/li>\n<li><a class=\"wp-block-latest-posts__post-title\" href=\"https:\/\/ec.me.tut.ac.jp\/en\/archives\/691\">Fluid\u2013acoustic interactions around an expanding pipe with orifice plates, Physics of Fluids<\/a><\/li>\n<\/ul>","protected":false},"excerpt":{"rendered":"<p>Aerodynamic noise increases in proportional to the high power of velocity. So, the noise is a sever problem for high-speed transport vehicles or flow-related machinery. For example, intense tonal sound radiates from a cavity flow and flow around a cascade of flat plates, where the feedback loop due to fluid-acoustic interactions occurs. To clarify the [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":949,"parent":395,"menu_order":1,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_locale":"en_US","_original_post":"http:\/\/ec.me.tut.ac.jp\/wp\/?page_id=195","_vk_print_noindex":"","sitemap_hide":"","vkExUnit_sitemap":"","_veu_custom_css":".wp-block-image figcaption{\r\nfont-size: 12px;\r\n}","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-378","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\/378","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=378"}],"version-history":[{"count":11,"href":"https:\/\/ec.me.tut.ac.jp\/wp-json\/wp\/v2\/pages\/378\/revisions"}],"predecessor-version":[{"id":1352,"href":"https:\/\/ec.me.tut.ac.jp\/wp-json\/wp\/v2\/pages\/378\/revisions\/1352"}],"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\/949"}],"wp:attachment":[{"href":"https:\/\/ec.me.tut.ac.jp\/wp-json\/wp\/v2\/media?parent=378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}