Skip to content

MPP Muffler

Here we will perform an axisymmetric simulation concerning wave propagation in an acoustic muffler enhanced with a micro-perforated plate MPP and perform a transmission loss computation as post-processing to evaluate the impact of the MPP on the effectivness of the muffler.

Thereby the wave is excited by acoustic normal velocity on line "excite" on the bottom [x,y,z]=(0,0,0) of the domain.

For the analysis type, we choose a harmonic analysis for one frequency of 1000 Hz.

For the post-processing we need a non-reflecting boundary condition and in this example, we are using the PML (Perfectly Matched Layer) technique, described here.



The example also uses nonconforming interfaces NMG.

For this basic example the mesh files are provided here and here.

If you want to create you own geometry you can use the free Gmsh software gmsh

Then use your geometry and generate the meshes by executing

gmsh ur_geometry.geo -2 -v 0 -format msh2 -o ur_geometry.msh

MPP material simulation

The simulation is based on the solving the Helmholtz equation for the entire domain without the use of an impedance boundary condition. In the air domain the value for bulk modulus (compression modulus) and air density is independent of frequency, but in the MPP domain a frequency dependent absorption behavior must be emulated. Therefore, we need a material model that provides the frequency depended values of the acoustic density and bulk modulus for the MPP region. You can find a collection of appropriate models here.

The provided material files are here mppDensityR(eal) mppDensity(I)mag mppCompR(eal) mppCompI(mag), with the values of the real and imaginary part of the equivalent density and bulk modulus of the MPP.

  • Format for equivalent density and bulk modulus values *.txt files (Columns: frequency, real/imag part value)
50  12.9877351395964
55  14.2865086534968
60  15.5852821673803
.      .
.      .
  • Defining MPP material in the xml-scheme. The frequency dependent values for the MPP-emulation are then linearly interpolated in the material matMPP.xml for each frequency step.
    <real> sample1D('mppDensityR.txt',f,1) </real>
    <imag> sample1D('mppDensityI.txt',f,1) </imag>

XML Simulation Setup

The ready-to-use xml file is provided here.

Here, we will just discuss the main parts of the XML description file.

  • Domains with regions (mesh scaled to mm) and nonconforming grid list and specifying evaluation points (set appropriate coordinate values) for computation of the transmission loss.
   <hdf5 id="h1" scaleFac="1e-3" fileName="muffler1NMG1.h5"/>
   <hdf5 id="h2" scaleFac="1e-3" fileName="muffler1NMG2.h5"/>
  <text id="txt"/>
 <materialData format="xml" file="matMPP.xml"/>
<domain geometryType="axi">
    <region name="airEl" material="air"/>
    <region name="damp" material="air"/>
    <region name="mpp" material="MPP1"/>
    <nodes name="excitep">
      <coord x="0.0" y="1.2345" z="0.0"/>
    <nodes name="surfinp">
      <coord x="0.0" y="1.2345" z="0.0"/>
    <nodes name="surfOutp">
      <coord x="0.0" y="1.2345" z="0.0"/>
   <ncInterface name="i1" slaveSide="I1slave" masterSide="I1master"/>
   <ncInterface name="i2" slaveSide="I2slave" masterSide="I2master"/>
  • Start the sequence and define analysis
      <numFreq> 1 </numFreq>
      <startFreq> 1000 </startFreq>
      <stopFreq> 1000 </stopFreq>
  • Define PDE for acoustics with nonconforming interface list
        <region name="airEl"/>
        <region name="damp" dampingId="myPml"/>
        <region name="mpp" complexFluid="yes"/>
        <ncInterface name="i1" nitscheFactor="50" formulation="Nitsche"/>
        <ncInterface name="i2" nitscheFactor="50" formulation="Nitsche"/>
  • Define the PML (Perfectly Matched Layer) used for free field radiation
      <pml id="myPml">
        <type> inverseDist </type>
  • Define excitation and output result
      <normalVelocity name="excite" value="1"/>
      <nodeResult complexFormat="realImag" type="acouPressure">
          <nodes name="excitep" outputIds="txt"/>
          <nodes name="surfinp" outputIds="txt"/>
          <nodes name="surfOutp" outputIds="txt"/>

Perform the openCFS simulation by executing

cfs Muffler1MPPnmg


You can now investigate the results in paraview. For the computation of the transmission loss or reflection coefficient, use the *.txt output of the specified points as input for the 2-microphone method DIN EN ISO 10534-2 or 3-microphone method here.