ROMSOC

Reduced Order Modelling, Simulation and Optimization of Coupled Systems

Download .zip Download .tar.gz

EU Flag

Coupled models for acoustic propagation through multilayer systems for particle-velocity sensors

DOI Binder

The repository contains scripts for generating the relevant meshes and computing the scattering of a plane wave by the Microflown PU Regular Probe. The probe may include layers of steel mesh and porous windscreens.

The motivation and technical details of the source code are highlighted in the talk “Model Coupling for Acoustic Sensors in Layered Media” presented at a minisymposium at the World Congress in Computational Mechanics (Jan 2021).

(Click image to view presentation)


DESCRIPTION

Software tools workflow

  • To generate a mesh, you’d need SALOME. The scripts were verified to run with SALOME v8.4.0, v9.2.1, v9.4.0, and v9.8.0.
  • Run e.g., source/00_meshes/sphere_porous_PML.py in command line (without firing up the GUI) as,
/path/to/executable/salome -t python3 sphere.py
  • Convert the .unv mesh files from SALOME to .xml.gz with FEConv and dolfin-convert(available with FEniCS) utilites. (Alternatively, meshio-convert may also serve, although it may have some compatibility issues with FEniCS)
# FEconv 
feconv -gm sphere_porous_PML.unv sphere_porous_PML.msh          # converts to Gmsh format
dolfin-convert sphere_porous_PML.msh sphere_porous_PML.xml      # Gmsh to FEniCS xml

# OR with meshio (some known issues)
meshio-convert sphere_porous_PML.unv sphere_porous_PML.xml 

# Compress XML
gzip sphere_porous_PML.xml
  • Verify parameters of the problem configuration in the script files to run.
  • To run the program, run the respective script (.py) in the FEniCS v2019.2.0.dev0 docker container (see details below).
  • The result files can be visualized easily with ParaView >v5.6.

Some additional instructions are included as README in the specific folders.


RUN JUPYTER NOTEBOOKS

The entire benchmark repository can be executed in a provided Docker container where a full installation of Salome, FEconv, FEniCS, and PyVista is available. Once you have clone or downloaded this repository, to build the container just type

docker build -t benchmarks-acoustic-propagation . 

and for running it locally:

docker run -u 0 -it --rm -p 8888:8888 benchmarks-thermomechanical-model jupyter-lab --ip=0.0.0.0 --port=8888 --allow-root

Alternatively, user-friendly Jupyter Notebooks could be used to run different benchmarks on the cloud. For instance, the benchmark related to the porous sphere scattering problem is available at: Binder. Please, notice that mybinder cloud computations are limited to 2GB of RAM memory and the current setting of this benchamark with the mesh included in this repository requires around 8GB (it is recommended use this notebook for pre- and post-processing purposes).


DISCLAIMER

In downloading this SOFTWARE you are deemed to have read and agreed to the following terms:

This SOFTWARE has been designed with an exclusive focus on civil applications. It is not to be used for any illegal, deceptive, misleading or unethical purpose or in any military applications. This includes ANY APPLICATION WHERE THE USE OF THE SOFTWARE MAY RESULT IN DEATH, PERSONAL INJURY OR SEVERE PHYSICAL OR ENVIRONMENTAL DAMAGE. Any redistribution of the software must retain this disclaimer. BY INSTALLING, COPYING, OR OTHERWISE USING THE SOFTWARE, YOU AGREE TO THE TERMS ABOVE. IF YOU DO NOT AGREE TO THESE TERMS, DO NOT INSTALL OR USE THE SOFTWARE


ACKNOWLEDGEMENTS

EU Flag

The ROMSOC project has received funding from the European Union’s Horizon 2020 research and innovation programme under the Marie Skłodowska-Curie Grant Agreement No. 765374. This repository reflects the views of the author(s) and does not necessarily reflect the views or policy of the European Commission. The REA cannot be held responsible for any use that may be made of the information this repository contains.