Universal FEM model and optimization for acoustic muffler
Project for MiNPwA MES
Requirements: Linux, Elmer CSC, Octave
Syntax & steps:
Clone repo to desired directory: git clone https://github.com/alexxior/fem-muffler.git .
Run Bash & go to master directory
Run main script with parameters as steps for x1(m), x2(m), f(Hz) and choice flag between CCI design & sweeped data method:
./runmuffler.sh [x1_step] [x2_step] [freq_step] [CCI|SWEEP](2xbool flag)
Script will run all simulations to calculate Total Insertion Loss in desired frequency band - ILtot (dB),
the pressure values in 4 points near outlet for each frequency are located in ./output/:
/cci-tlumik.txt /sweep-tlumik.txt - for muffler
/cci-plaski.txt /sweep-plaski.txt - for flat waveguide
runmuffler.sh will run next Octave script ./scripts/optimize.m to obtain muffler optimization in CCI experimental design and interpolate sweeped data
FEM process and optimized muffler parameters will be printed & saved in ./output/Optimum.txt
To only show precalculated data do not append flags in parameters.
To only show precalculated optimized muffler charateristics run octave ./scripts/optILchar.m
To calculate & show precise Insertion Loss characteristics -IL(f) for new optimized muffler run ./optimized.sh
If you want to compute FEM simulation for discretized sweeped data paralelly (faster, for multicore processors) just run ./runmuffler.sh in smaller range parameter chunks in different Linux consoles.
Aims for the future:
rewrite Octave scripts to Python 3.8 with Matplotlib & Numpy, because of no full interpolation & optimization in Octave