unicfdlab / libacoustics Goto Github PK
View Code? Open in Web Editor NEWlibAcoustics - OpenFOAM library for far-field noise computation
libAcoustics - OpenFOAM library for far-field noise computation
When calculating the flow around the cylinder, I found that different deltaT will have a different amplitude in dipoleFwhFarassatTest-time.dat which has a serious impact. Specifically, every time deltaT is reduced by 1/10, the noise amplitude increases by 10 times. May I know what is the reason?
I am running a 3d square cylinder case , it runs well, but the acoustic pressure I got based on the libacoustics is inconsistent with the flow field pressure fluctuation, they differ from each other a lot.More specifically,
I extract the p using the utility probe, get the real p_fluctuation by p*rho-pmean-p0, this value is not equal to the pFluct which is got based on the Libacoustics. I am really confused .
besides, the size of the square is 2e-4 Multiply 2e-4 Multiply 1e-6, for its 3d case ,is it right to set the dRef=1?
and, when begin running the case, I always get such kind of warnings as flows. It seems that the warnings are associated with libacoustics, how to solve this? Thanks a lot. I am really appreciated!
I am trying to select a sampling surface that I did not create as a 'patch' in the mesh generating step.
I found something like 'sampledTriSurfaceMesh' and tried a bit with an 'STL' file but keeps giving me errors like Foam::sigFpe::sigHandler(int)
Is there any way to select sampling surfaces other than 'patch'?
I am using OpenFOAM v1912. Curle Analogy isn't working and I can't fix it. I can't see any tutorial that show how to use is.
The problem is that the pressure fluctuations using the "cylinder" patch ( wall type) that have been calculated are always 0, even though the patch "cylinder" exist. Find the files that I'm using to set up Curle Analogy.
Thanks.
I was trying to run one of tutorial case (monopole1D) and after setting mu to 1.8*e-5 instead the default value 0. I got an error message
version libAcoustics-v1912
--> FOAM FATAL IO ERROR:
Entry 'div(tauMC)' not found in dictionary "/nesi/nobackup/uoa00003/zein/noise/monopole1D/system/fvSchemes.divSchemes"
file: /nesi/nobackup/uoa00003/zein/noise/monopole1D/system/fvSchemes.divSchemes
From function const Foam::entry& Foam::dictionary::lookupEntry(const Foam::word&, Foam::keyType::option) const
in file db/dictionary/dictionary.C at line 380.
Dear Author,
When I compile the v4.1 under openfoam1812, some errors pop up as
FoamFourierAnalysis/FoamFftwDriver.C:19:9: error: call of overloaded ‘autoPtr(int)’ is ambiguous
createFields.H:26:41: error: conversion from ‘Foam::ITstream’ to non-scalar type ‘Foam::fileName’ requested
fileName inputFileName = dict.lookup("inputFileName");
My gcc is version 7.4.
Hello everyone,
Recently, the libAcoustics is installed in OpenFOAM 4.1 and the 1D/2D tutorials with blockMeshDict can run successfully with the operator ./Allrun. However, the 3D tutorials such as libAcoustics/Tutorials-4.1/monopole3D are broken due to the binary type of mesh. In general, we usually use the ASCII type. So, is there an operation to convert a binary mesh into an ASCII mesh?
Thank you in advance.
Create mesh
--> FOAM FATAL IO ERROR:
Expected a ')' while reading binaryBlock, found on line 20 the word '�R�'
file: /home/OpenFOAM/libAcoustics/Tutorials-4.1/monopole3D/constant/polyMesh/faces at line 20.
From function Foam::Istream& Foam::Istream::readEnd(const char*)
in file db/IOstreams/IOstreams/Istream.C at line 109.
FOAM exiting
Rewrite code for using native noisefft classes and remove fft-libraries.
Hi,
Everytime I run a couple of time steps collecting acoustic data and then I stop the simulation, my acoustic collection for the next time steps, when I resume the simulation, are not linked to the previous collection. It always starts from zero Pascal.
So, how do I properly resume the acoustic collection for the next saved timestep? Lets say, I started on t = 1 second then I stop on t = 1.5 second and I want to resume the simulation and the acoustic collection from here without any divergences.
Thank you.
I have install the OpenFoam-v1812 from:
https://github.com/unicfdlab/OpenDTEF from branch v1812
and compile the libAcoustics -v1812 successfully, but I met some problems using tutorials, it reads:
--> FOAM FATAL IO ERROR:
Entry 'reconstruct(T)' not found in dictionary "/home/nanbert/noise/monopole1D/system/fvSchemes.interpolationSchemes"
file: /home/nanbert/noise/monopole1D/system/fvSchemes.interpolationSchemes
From function const Foam::entry& Foam::dictionary::lookupEntry(const Foam::word&, Foam::keyType::option) const in file db/dictionary/dictionary.C at line 362.
FOAM exiting
And other bugs there. My computer is loaded with Ubuntu 19.04. Would it be a problems?
Should I try version 4.1?
Sincerely thanks for your work.
Hi, I have already compiled the libAcoustics in Openfoam4.1, is it able to get the far field sound of 2d cylinder case? if not, what if the 2d flow field data is utilized in libacoustics by assuming that the loading does not vary in the direction of the length of the cylinder. then the 3d data can be got based on the 2d flow field.
In order to get the reasonable sound,can someone help me modify the case? the case is attached here.
2dcylinder.tar.gz
Reading the tutorial PDF, I found the equation which is solved for the option "Curle", but I couldn't find the integral form for the "Ffowcs~".
Of course I know the differential form, but I want to know what equation is exactly calculated by libAcoustics.
Thank you for any information.
Hi,
I use the libAcoustics library for the marine propeller acoustics analyisis and I want to use the pimpleFoam solver because the physics is incompressible, but libAcoustics gives an error because the pimpleFoam solver does not save the rho field. How can I solve this?
Dear author,
I have some question about the parameter "fixedResponseDelay" in file 'fwhControl'. Could you help me? I wonder if the "fixedResponseDealy" corresponds to the "time delay" in some literature (see for example https://doi.org/10.1016/j.jsv.2019.04.001)? Besides, I find that changing the value of "responseDelay" seems to make no difference to the time history except to the shift of the "fixedValue". Then what is the significance of setting this parameter? Finally, I noticed that the result becomes unreasonable when the value of "responseDelay" is negative. Could you help me to explain it?
Hi,
It is not really important, but I had to make a small change in order to compile it with OpenFOAM-v1912. It couldn't write the libAcoustic.so
because it was trying to do it in the system OF distribution. In order to install that in the user distribution, the line
LIB = $(FOAM_LIBBIN)/libAcoustics
should be changed by
LIB = $(FOAM_USER_LIBBIN)/libAcoustics
in the lib/Make/files
file
With best regards
Robert
Hello,
I get the following error along with some other errors when I run ./makeLib.sh located at Sources/lib:
analogies/Curle/Curle.C:174:1: warning: null character(s) ignored
However, installation completes and I can run the tutorials. When I run my own case, I get an error about the CurleAnalogy, why I have chosen fWH method. Does this negatively affect the results? Is there any way to fix the installation issue?
I should add that I use Openfoam v1912.
Thank you.
Dear author:
I am using OpenFoam 6 version. I have trouble in making file. It says cannot find -lAcoustics and -lfftw3. Why is that?
Thanks for watching. I am looking forward to hearing from you.
https://app.leanboard.io/board/dd839fac-45bc-4e58-b727-ba8e922da865
As it is suggested in the title, how to determine the parameter dRef in fwhCommonSettings?
I checked the code file of fwh and found how dRef is used. The sound pressure will be devided by dRef at the end of the computation. Hence, it will finally determine the amplitude of the SPL curve, and has no influence to the frequency.
If I want to perform a 2-D cylinder computation with diameter D ,pesudo span length L (for openfoam it is a fake 3-D) and freestream velocity U or other fluid parameters, how do I determine this parameter dRef?
I want to test the case "cylinder2D" in openfoam-3.0.0/case, but it cannot run in the openfoam-4.1 version. Therefore I use OpenFOAM-3.0.0 and now I want to make the package. It doesn't contain a Allwmake script, so I directly type "wmake" and run it. I reads:
make: *** No rule to make target
Make/linux64GccDPInt32Opt/soundObserver/SoundObserver.C.dep', needed by Make/linux64GccDPInt32Opt/soundObserver/SoundObserver.o'. Stop.
Please tell me how to make it or how to use the cylinder case in other version. I've test through all other version and they fail.
Sincerely, thanks for your attention.
Here is my file.
The air flow around the cylinder with the speed of 16.6 m/s
And also can you tell me what is 1024 inthe control dict file.
MyFile.zip
thanks in advance
acoustic data.zip
Dear developers,
Thank you very much for this library. I have just compiled it and run the simplest tutorial. However, there are obvious discrepancies between the pressure oscillation amplitudes obtained with FWH and the ones probed in the computational domain. Therefore I have also checked the implemented formulas, i.e. the function Foam::functionObjects::Farassat1AFormulation::observerAcousticPressure(label iObs). The formulas do not seem to be correct.
However, in the current tutorial, dotn, dotr should be zero, OneByOneMrSq should be one. So these things do not influence the current result. I thought it may due to the wedge boundary condition.
For FWH, the Sphere boundary should be a complete sphere surface. How could the effect of the neglected part of the sphere be considered in the code? I could not figure it out by myself.
Regards,
Youjiang
I use the newest version 1912 and trying a incompressible turbulence cylinder case.
First, I use the curleControl file but it reads "Entry 'patches' not found in dictionary".
Then I use the fwhControl file, but it says "rho cannot found", because there is inheriently no rho file in a incompressible case.
I tried "another" fwhControl file from the version 3.0, it can run but there is no output of fft file.
However, I noticed that other cases in the tutorials have no rho file, either.
I don't know how to do. I attach my file so that you might check.
THANKS!
cylinder2D.zip
Thank you for developing this utility. I would like to highlight a few issues I have come across while working with it.
In the Curle Method, there is an error in the derivation in the thesis used as the reference:
Page 17, when performing the spatial derivative to temporal derivative one gets a negative sign for the surface component (equation 3.14) which ultimately leads to a negative sign in equation 3.23. There is also an error in equation 3.11, where it should be /c0^2 but that has been resolved in further derivations.
In the Farassat1A.C file the term lM is initialized but not defined (consider adding lM= l & M;).
The equation fpart2 should have an additional (/ magr) term as per the theory.
If possible I would also greatly appreciate help in implementing Formulation GT:
https://www.researchgate.net/publication/268581582_A_Ffowcs_Williams_-_Hawkings_Solver_for_Lattice-Boltzmann_Based_Computational_Aeroacoustics
hi , I tried compiling libAcoustics-digitef-dev-1812 on the OpenFOAMv1812, i got this error:
no make directory directory for for /home/liuliyun/libAcoustics-digitef-dev-1812/Sources/app/surfaceNoise
so , I check this directory , make file is not there.
can you send me the make file please, thanks a lot.
email: [email protected]
Hi,
When i tried to compile your libAcoustics library using Openfoam v1912, i received an error because of using foam::complex class. When i solve this problem , another problem appears. The compiler asks for a file which is not does not exist. As you can see in attached log file.
Could you please check my log file and advise for how can we solve this problem.
Best Regards.
Hi guys,
i already installed the acousticLib v1912 and applied it to a simple testcase with a rotating cuboid.
The edge passing frequency is 68 Hz which is reflected in the spectra:
When I apply acousticLib to a rotating fan, instead of the blade passing frequency you can see that the spectra has a periodic wave with peaks at every 100Hz (in timed domain every 10ms we got a peak) which is an artifact:
The time signal:
This problem may be related to the clean Frequency from FWControl file which I chose to 100 Hz.
Could anybody explain the parameter "cleanFreq." or tell me how to avoid this artefact.
Many thanks in advance,
Sebastian
](url)
Thanks
cylinder.zip
Hi, I have simple questions, maybe someone could help me?
If I have a fixed patches in moving flow, and I want to use Farassat’s formulation 1A method, I noticed the paper of the original codes said that "Farassat’s formulation 1A14, 15 is implemented to predict the noise generated by an acoustic source moving in a fluid at rest, and measured at a stationary observer located in the far-field." see paper DOI:10.2514/6.2010-3711,
But we also need to set the U0 as zero while using Farassat’s formulation 1A, so how to express the relative velocity between inflow and the FW-H surfaces or observers? Do it mean that I set U0=0, and set the Ufw-h to the negative inflow velocity. But how do I express the relative velocity between inflow and observers?
Many thanks!
ZHI
I want to ask about FWH acoustic analogy, there are two formulations for FWH (Farassat1AFormulation-GTFormulation)
1-In the case of a stationary source and observer, with flow moving with constant velocity (20 m/s)
for Farassat1AFormulation: Ufwh (0 0 0)
U0 (0 0 0)
for GTFormulation :Ufwh (0 0 0)
U0 (20 0 0)
2- In the case of using GTFormulation for flow with stationary source and observer, while the flow is entering the flow domain at an angle (10 degrees), The reference frame should be rotated to satisfy U0 (20 0 0). What should be changed in the input files for that case?
3- In case of using fixedResponceDelay false;
that means that the ResponseDelay will be calculated for every surface (ds) on the noise source surface, am I right?
In that case, I was reading the code, but I could not understand how that time is calculated.
Hi! I have some questions about the STL file in monopoly3D/constant/triSurface:
Hello,
I have set up the validation cases:
-Sound generation by a two-dimensional circular cylinder in a uniform flow, Osamu Inoue and Nozomu Hatakeyama
-Mechanism of aeroacoustic sound generation and reduction in a flow past oscillating and fixed cylinders, Yuji Hattori
The correct lift and drag are retrieved from the flow solver and these values can be used to find sound directivity by a correctly with some accuracy, but the FWH acoustic solver provides values with a much too high of a magnitude.
See here: https://imgur.com/a/nwM333W
Case files can be provided as needed. I believe this issue may have something to do with Copy length discussing by Tang in "Numerical Simulation of Flow-Induced Noise by Means of the Hybrid Method with LES and Aeroacoustic Analogy"
Best
Greg
Dear all,
When I try to use libAcoustics in a OF4.1 PisoFoam case (that runs perfectly w/o the use of the library) I found the error message:
could not find rho
Tutorials for this library and this version all run with rhoPimpleFoam, but I am not into solving the energy equation.
Am I commiting any misuse of this library?
Yours faithfully,
Héctor
Is the source surface used for the calculation of far-field noise finished in post-processing or pre-set in the grid creating stage?
I'm trying to compile libAcoustic but I'm getting this error:
In file included from surfaceNoise.C:100:0:
createFields.H: In function ‘int main(int, char**)’:
createFields.H:8:5: error: ‘IOdictionary’ was not declared in this scope
IOdictionary dict
^~~~~~~~~~~~
*** [Make/linux64GccDPInt32Opt/surfaceNoise.o] Error 1
Can i have some tutorial video for acoustic analogies. I am kind of confuse to use them.
Hi. I tried compiling libAcoustics on OpenFOAM-1812 but I got this error:
In file included from surfaceNoise.C:100:0:
createFields.H: In function 'int main(int, char**)':
createFields.H:26:57: error: conversion from 'Foam::ITstream' to non-scalar type 'Foam::fileName' requested
fileName inputFileName = dict.lookup("inputFileName");
^
make: *** [Make/linux64GccDPInt32Opt/surfaceNoise.o] Error 1
Could anyone help me check my case set? I have used the curle method in the flow past a cylinder case to get a relatively good acoustic pressure result. For the FWH method, if the cylinder surface is chosen as the control surface, the FWH result is very close to the curle result. But if another control surface that contains more areas is used, the FWH result does not capture the noise spectra correctly. I use the libacoustic OpenFOAM4.1 version in the OpenFOAM 6. The formulation we use is Farassat1A, and the GT_formulation shows similar results. As it is a wind-tunnel problem(the model and observer are static), the U_0 is (0 0 0), U_fwh is (0 0 0), nonUniformSurfaceMotion is false. The fixedResponseDelay seems to have little influence on the results. I am running a case with 'patches (); source cells;' instead of 'patches (CYLINDER);'. Is there something wrong with my set? What should I change?
Thanks!
Dear all,
I tried to compile the library on both 4.0 and 4.1 version, while they both failed. Could you please help me out?
The error I met is:
/usr/bin/ld: cannot find -lAcoustics
collect2: ld returned 1 exit status
make: *** [/home/minghangli/OpenFOAM/minghangli-4.1/platforms/linux64GccDPInt64Opt/bin/surfaceNoise] Error 1
I did not find Acoustics.so anywhere. What should I do now?
Thank you.
Kind regards,
Henry LOO
solved
Can I run only FWH using my own pre-simulated data? How can I input my values and run only FWH, also using my determined grid and FWH surface?
Dear author,
I wonder if the libAcoustics can write fields of sound pressure just like the Cule function in OpenFOAM. Because I wnat to view the distribution of FWH results.
Dear libAcoustics developers,
Using your library, I can only simulate less than one second due to an error that I present in what follows:
mpirun noticed that process rank 0 with PID 27218 on node cauchy exited on signal 8 (Floating point exception).
`
This error appears exactly after the print:
Starting acoustics probe
To give the acoustic pressure in the collocated sensors.
I am running pisoFoam, incompressible and SA-LES turbulence model for a 0012 NACA airfoil with. The complete case runs without any error If the library is not used.
I am not sure about the reason this error appears neither how can I proceed to fix it. Please I ask you for help and possibly any guidance to fix it.
Any kind of help would be really appreciated.
Thank you in advance,
Héctor
Hello! I found that the number of time steps saved in the dipoleFwhFarassatTest-time.dat file is always relatively small. For example, my noise calculation time is 1-2s, but the time result saved in the dat file is only 1-1.02. Although it is still calculating after 1.02s, the dat file does not continue to calculate the noise result. How can I keep more data results?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.