CFD Online Discussion Forums

CFD Online Discussion Forums (https://www.cfd-online.com/Forums/)
-   OpenFOAM (https://www.cfd-online.com/Forums/openfoam/)
-   -   sonicDyMFoam (https://www.cfd-online.com/Forums/openfoam/83094-sonicdymfoam.html)

deepsterblue June 27, 2011 15:38

You're messing up compressible / incompressible versions - you're probably looking for:

fvc::makeRelative(phi,rho,U);

which will additionally interpolate rho to faces and include that in relative fluxes, which should take care of the dimension problem.

Take a look at ($FOAM_SRC)/finiteVolume/fvc/fvcMeshPhi.C for details on the implementation.

Cheers

SMesser June 28, 2011 15:47

getting there.... sorry this is taking so many rounds.

I replaced the several calls to

fvc::makeRelative(phi,U);

with

fvc::makeRelative(phi,rho,U);

Then did the same for

fvc::makeAbsolute(phi,U);

to

fvc::makeAbsolute(phi,rho,U);

figuring that the Absolute <=> Relative transformations should be symmetric.

I did not change the calls to fvc::meshPhi() because those seemed to be declared & used appropriately.

Upon getting the run-time error "keyword pFinal is undefined in dictionary", I copied the system/fvSolution::solvers::p entry over to pFinal. (I couldn't find explicit advice in a quick search, but figured that'd be okay even though it's probably not numerically optimal.)

Running again gave a segmentation fault early in the second timestep. Tossing in various output checkpoints let me track the segmentation fault to where my sonicDyMFoam.C code calls

bool meshChanged = mesh.update();

(near the beginning of the iteration). That call goes to my topoChanger library (custom, pffValveTopoFvMesh.C, posted earlier in this other thread)That function crashes on the line

autoPtr<mapPolyMesh> topoChangeMap = topoChanger_.changeMesh();

I haven't tracked that down yet, but I'm guessing the SegFault means that something's subtly bad about either puffValveTopoFvMesh.C or my modified sonicDyMFoam. Let me know if you can give me ideas on what to tweak next.

Thank you.

deepsterblue June 28, 2011 15:58

Probably an out-of-bounds memory access.

Set the WM_COMPILE_OPTION environment variable to 'Debug', and re-compile your library - you can get a line number where your solver crashed. Also, set FOAM_ABORT to 1 to get a stack-trace.

SMesser June 28, 2011 16:53

with both of those turned on, the tail of the log file is:

Code:

Creating field DpDt


Starting time loop

Volume: new = 9.6e-07 old = 9.6e-07 change = 0 ratio = 0
Courant Number mean: 0 max: 0.0049971 velocity magnitude: 10
deltaT = 1.1976e-08
Time = 1.1976e-08

No topology change
Executing mesh motion

diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG:  Solving for Ux, Initial residual = 1, Final residual = 2.17652e-09, No Iterations 9
DILUPBiCG:  Solving for Uy, Initial residual = 1, Final residual = 2.22592e-09, No Iterations 11
DILUPBiCG:  Solving for e, Initial residual = 1, Final residual = 2.45989e-09, No Iterations 11
DILUPBiCG:  Solving for p, Initial residual = 2.58731e-05, Final residual = 2.49406e-14, No Iterations 1
DILUPBiCG:  Solving for p, Initial residual = 8.88009e-10, Final residual = 8.88009e-10, No Iterations 0
diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 1.78868e-09, global = -3.52974e-11, cumulative = -3.52974e-11
DILUPBiCG:  Solving for p, Initial residual = 1.22159e-09, Final residual = 1.22159e-09, No Iterations 0
DILUPBiCG:  Solving for p, Initial residual = 1.22159e-09, Final residual = 1.22159e-09, No Iterations 0
diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 2.25285e-09, global = -3.17153e-11, cumulative = -6.70127e-11
DILUPBiCG:  Solving for epsilon, Initial residual = 1, Final residual = 2.94661e-09, No Iterations 10
DILUPBiCG:  Solving for k, Initial residual = 1, Final residual = 4.66763e-09, No Iterations 11
bounding k, min: 0 max: 1016.5 average: 1000.85
ExecutionTime = 0.37 s  ClockTime = 0 s

Volume: new = 9.6e-07 old = 9.6e-07 change = 0 ratio = 0
Courant Number mean: 3.63391e-05 max: 0.000696647 velocity magnitude: 2.3772
volume continuity errors : volume = 9.6e-07, max error = 6.80176e-07, sum local = 7.85036e-17, global = 1.81848e-18
deltaT = 1.43023e-08
Time = 2.62784e-08

#0  Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam16x/OpenFOAM-1.6-ext/lib/linuxGccDPOpt/libOpenFOAM.so"
#1  Foam::sigSegv::sigSegvHandler(int) in "/opt/openfoam16x/OpenFOAM-1.6-ext/lib/linuxGccDPOpt/libOpenFOAM.so"
#2  Uninterpreted:
#3  Foam::cell::opposingFaceLabel(int, Foam::UList<Foam::face> const&) const in "/opt/openfoam16x/OpenFOAM-1.6-ext/lib/linuxGccDPOpt/libOpenFOAM.so"
#4  Foam::cell::opposingFace(int, Foam::UList<Foam::face> const&) const in "/opt/openfoam16x/OpenFOAM-1.6-ext/lib/linuxGccDPOpt/libOpenFOAM.so"
#5  Foam::layerAdditionRemoval::setLayerPairing() const in "/opt/openfoam16x/OpenFOAM-1.6-ext/lib/linuxGccDPOpt/libdynamicMesh.so"
#6  Foam::layerAdditionRemoval::changeTopology() const in "/opt/openfoam16x/OpenFOAM-1.6-ext/lib/linuxGccDPOpt/libdynamicMesh.so"
#7  Foam::polyTopoChanger::changeTopology() const in "/opt/openfoam16x/OpenFOAM-1.6-ext/lib/linuxGccDPOpt/libdynamicMesh.so"
#8  Foam::polyTopoChanger::changeMesh() in "/opt/openfoam16x/OpenFOAM-1.6-ext/lib/linuxGccDPOpt/libdynamicMesh.so"
#9  Foam::puffValveTopoFvMesh::update() at /opt/openfoam16x/OpenFOAM-1.6-ext/src/dynamicMesh/topoChangerFvMesh/puffValveTopoFvMesh/puffValveTopoFvMesh.C:330
#10 
 in "/opt/openfoam16x/OpenFOAM-1.6-ext/applications/bin/linuxGccDPOpt/sonicDyMFoam"
#11  __libc_start_main in "/lib/libc.so.6"
#12 
 at /usr/src/packages/BUILD/glibc-2.11.2/csu/../sysdeps/i386/elf/start.S:122

Oddly, if I zero-out the motion in dynamicMeshDict, I still get a crash - but it's about halfway through the second step, rather than right at the beginning:
Code:

diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
DILUPBiCG:  Solving for Ux, Initial residual = 0.787323, Final residual = 4.92822e-09, No Iterations 9
DILUPBiCG:  Solving for Uy, Initial residual = 0.245655, Final residual = 8.00973e-09, No Iterations 9
DILUPBiCG:  Solving for e, Initial residual = 0.0855215, Final residual = 3.0307e-09, No Iterations 9
DILUPBiCG:  Solving for p, Initial residual = 1.0408e-05, Final residual = 1.269e-14, No Iterations 1
DILUPBiCG:  Solving for p, Initial residual = 1.66826e-11, Final residual = 1.66826e-11, No Iterations 0
diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 3.24217e-11, global = 1.52929e-13, cumulative = 2.96846e-12
DILUPBiCG:  Solving for p, Initial residual = 3.17536e-10, Final residual = 3.17536e-10, No Iterations 0
DILUPBiCG:  Solving for p, Initial residual = 3.17536e-10, Final residual = 3.17536e-10, No Iterations 0
diagonal:  Solving for rho, Initial residual = 0, Final residual = 0, No Iterations 0
time step continuity errors : sum local = 4.36903e-10, global = -2.42809e-11, cumulative = -2.13125e-11

#0  Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam16x/OpenFOAM-1.6-ext/lib/linuxGccDPOpt/libOpenFOAM.so"
#1  Foam::sigFpe::sigFpeHandler(int) in "/opt/openfoam16x/OpenFOAM-1.6-ext/lib/linuxGccDPOpt/libOpenFOAM.so"
#2  Uninterpreted:
#3  Foam::divide(Foam::Field<double>&, Foam::UList<double> const&, Foam::UList<double> const&) in "/opt/openfoam16x/OpenFOAM-1.6-ext/lib/linuxGccDPOpt/libOpenFOAM.so"
#4  Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::operator/<Foam::fvPatchField, Foam::volMesh>(Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/opt/openfoam16x/OpenFOAM-1.6-ext/lib/linuxGccDPOpt/libcompressibleRASModels.so"
#5  Foam::compressible::RASModels::LaunderSharmaKE::correct() in "/opt/openfoam16x/OpenFOAM-1.6-ext/lib/linuxGccDPOpt/libcompressibleRASModels.so"
#6 
 in "/opt/openfoam16x/OpenFOAM-1.6-ext/applications/bin/linuxGccDPOpt/sonicDyMFoam"
#7  __libc_start_main in "/lib/libc.so.6"
#8 
 at /usr/src/packages/BUILD/glibc-2.11.2/csu/../sysdeps/i386/elf/start.S:122


SMesser June 29, 2011 16:53

hmmm...

I was worried the above didn't look sufficiently detailed / verbose, so I tried using touch and Allwmake to force a top-to-bottom recompile of OpenFOAM-1.6-ext. That was a bad idea - I got a large number of error messages on the recompile, and at least one quasi-unrelated application (sonicFoam, or more likely one of the libraries / utilities it calls) seems to have developed some novel behaviors.

Rebooted to clear out the environmental vars and re-tried that recompile... no compile errors that way, but sonicFoam's still being silly. (The "p" output files repeat a section of output data & keywords, which confuses paraview... will post a description elsewhere and link to it if my poking about doesn't fix this soon.) Also, the datestamp on sonicFoam and most of the other applications' binaries is a month ago...

qjh888 October 10, 2016 21:21

Sorry to dig the old post.

I'm try to use sonicDyMFoam now, and faced with the same problems.
Have you been solve this problems?
Thanks!

Janry

svramana July 23, 2018 06:51

Hi everyone,

I know this is very old thread, but I'm phasing same problem. There is no tutorial for sonicDyMFoam. Can someone help me please regarding issue.




Quote:

Originally Posted by abminternet (Post 287401)
Hi everybody,

I am trying to set up a case in OpenFOAM 1.6.x and run it using sonicDyMFoam, but I can't get past the thermophysicalProperties. when I run the solver it gives me the following error:

Selecting thermodynamics package hPsiThermo<pureMixture<constTransport<specieThermo <hConstThermo<perfectGas>>>>>


--> FOAM FATAL ERROR:
Not implemented

From function basicThermo::e()
in file basicThermo/basicThermo.C at line 355.

FOAM aborting

#0 Foam::error::printStack(Foam::Ostream&) in "/opt/software/openfoam/public/OpenFOAM/Git/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libOpenFOAM.so"
#1 Foam::error::abort() in "/opt/software/openfoam/public/OpenFOAM/Git/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libOpenFOAM.so"
#2 Foam::basicThermo::e() in "/opt/software/openfoam/public/OpenFOAM/Git/OpenFOAM/OpenFOAM-1.6.x/lib/linux64GccDPOpt/libbasicThermophysicalModels.so"
#3 main in "/opt/software/openfoam/public/OpenFOAM/Git/OpenFOAM/OpenFOAM-1.6.x/applications/bin/linux64GccDPOpt/sonicDyMFoam"
#4 __libc_start_main in "/lib64/libc.so.6"
#5 Foam::regIOobject::writeObject(Foam::IOstream::str eamFormat, Foam::IOstream::versionNumber, Foam::IOstream::compressionType) const in "/opt/software/openfoam/public/OpenFOAM/Git/OpenFOAM/OpenFOAM-1.6.x/applications/bin/linux64GccDPOpt/sonicDyMFoam"
Stopped

Any help you can provide will be kindly appreciated.



All times are GMT -4. The time now is 02:32.