CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > OpenFOAM

sonicDyMFoam

Register Blogs Members List Search Today's Posts Mark Forums Read

Reply
 
LinkBack Thread Tools Display Modes
Old   June 27, 2011, 15:38
Default
  #41
Senior Member
 
Sandeep Menon
Join Date: Mar 2009
Location: Amherst, MA
Posts: 386
Rep Power: 15
deepsterblue will become famous soon enough
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
__________________
Sandeep Menon
University of Massachusetts Amherst
https://github.com/smenon
deepsterblue is offline   Reply With Quote

Old   June 28, 2011, 15:47
Default
  #42
Member
 
Sarah
Join Date: Apr 2011
Location: Eastern US
Posts: 31
Rep Power: 6
SMesser is on a distinguished road
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: 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.
SMesser is offline   Reply With Quote

Old   June 28, 2011, 15:58
Default
  #43
Senior Member
 
Sandeep Menon
Join Date: Mar 2009
Location: Amherst, MA
Posts: 386
Rep Power: 15
deepsterblue will become famous soon enough
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.
__________________
Sandeep Menon
University of Massachusetts Amherst
https://github.com/smenon
deepsterblue is offline   Reply With Quote

Old   June 28, 2011, 16:53
Default
  #44
Member
 
Sarah
Join Date: Apr 2011
Location: Eastern US
Posts: 31
Rep Power: 6
SMesser is on a distinguished road
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

Last edited by SMesser; June 28, 2011 at 18:02. Reason: additional crash info / context
SMesser is offline   Reply With Quote

Old   June 29, 2011, 16:53
Default
  #45
Member
 
Sarah
Join Date: Apr 2011
Location: Eastern US
Posts: 31
Rep Power: 6
SMesser is on a distinguished road
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...

Last edited by SMesser; June 29, 2011 at 17:20. Reason: update with results of reboot/recompile
SMesser is offline   Reply With Quote

Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Error trying to run steady-state sonicFoam dancfd OpenFOAM Running, Solving & CFD 2 February 12, 2013 04:15
sonicDyMFoam anlj OpenFOAM Running, Solving & CFD 0 November 19, 2010 14:07
Test cases for rhoSimpleFoam & sonicDyMFoam sim1246 OpenFOAM 5 October 28, 2010 17:52


All times are GMT -4. The time now is 13:09.