CFD Online Logo CFD Online URL
www.cfd-online.com
[Sponsors]
Home > Forums > Software User Forums > OpenFOAM > OpenFOAM Running, Solving & CFD

Shockwave capture

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   April 28, 2010, 08:18
Default Shockwave capture
  #1
Member
 
Ngoc-Minh Truong
Join Date: Feb 2010
Location: Toulouse, France
Posts: 42
Rep Power: 16
truong_nm is on a distinguished road
Send a message via MSN to truong_nm
Dear Foamers,

In order to capture shockwave (intensity, position), I am currently Minmod limiter. Minmod limiter is the strongest but the most dissipative. Thus, my shockwave is smoothed I tried Superbee limiter (the most accurate but the weakest) but my computations get unstable and crashes (other settings are fixed and equal to the Minmod computation). I only played with CFL number.
Apart from this stability issue (any help is of course welcome ), I want to try VanLeer and VanAlbada, hybrid limiters that are found in other CFD codes.
Unfortunately, I get "segmentation fault" or the syntax seems to be wrong (error while reading end of file). Does anyone know how to correctly use these limiters ?

Thanks for your help
truong_nm is offline   Reply With Quote

Old   April 29, 2010, 12:33
Default
  #2
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
For the convection term, the syntax is the same you use for limitedLinear:

div(phi,U) Gauss vanAlbadaV 1; // Vector

div(phi,C) Gauss vanAlbada 1; // Scalar
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   April 29, 2010, 12:48
Default
  #3
Member
 
Ngoc-Minh Truong
Join Date: Feb 2010
Location: Toulouse, France
Posts: 42
Rep Power: 16
truong_nm is on a distinguished road
Send a message via MSN to truong_nm
Thanks a lot Alberto

Here are my different schemes.
time: Crank Nicholson
gradient: Gauss linear
laplacian: Gauss linear limited .5
interpolation: linear
normal gradient: corrected
flux: p only
div: Gauss Minmod phi => the shockwave is smoothed
Gauss SuperBee phi => the computation crashes
Gauss VanAlbada => "floating point exception": I guess because of the other schemes I use...
Gauss VanLeer => the computation starts (hope I'll get something)

Have you got any suggestion to improve the computation first and to make the "VanAlbada" computation start ?

Thanks a lot
truong_nm is offline   Reply With Quote

Old   April 29, 2010, 12:52
Default
  #4
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
"Crash" doesn't tell me much. What error message does it give. Did you usa vanAlbadaV for the velocity instead than vanAlbada?

About the smoothness, what is your grid resolution?

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   April 29, 2010, 12:56
Default
  #5
Member
 
Ngoc-Minh Truong
Join Date: Feb 2010
Location: Toulouse, France
Posts: 42
Rep Power: 16
truong_nm is on a distinguished road
Send a message via MSN to truong_nm
I get "floating point exception" (I guess there is a division by zero somewhere)

The complete log is:

Creating field DpDt

#0 Foam::error:rintStack(Foam::Ostream&) in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#1 Foam::sigFpe::sigFpeHandler(int) in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#2 __restore_rt in "/lib64/tls/libc.so.6"
#3 Foam::LimitedScheme<double, Foam::vanAlbadaLimiter<Foam::NVDTVD>, Foam::limitFuncs::magSqr>::limiter(Foam::Geometric Field<double, Foam::fvPatchField, Foam::volMesh> const&) const in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libfiniteVolume.so"
#4 Foam::limitedSurfaceInterpolationScheme<double>::w eights(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) const in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libfiniteVolume.so"
#5 Foam::surfaceInterpolationScheme<double>::interpol ate(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) const in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libfiniteVolume.so"
#6 Foam::fv::gaussConvectionScheme<double>::interpola te(Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) const in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libfiniteVolume.so"
#7 Foam::fv::gaussConvectionScheme<double>::flux(Foam ::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) const in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libfiniteVolume.so"
#8 Foam::fv::gaussConvectionScheme<double>::fvcDiv(Fo am::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) const in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libfiniteVolume.so"
#9 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::fvc::div<double>(Foam::GeometricField<double , Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&, Foam::word const&) in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/applications/bin/linux64GccDPOpt/rhoPimpleFoam"
#10 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::fvc::div<double>(Foam::GeometricField<double , Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/applications/bin/linux64GccDPOpt/rhoPimpleFoam"
#11 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam::fvc:Dt<double>(Foam::GeometricField<double , Foam::fvsPatchField, Foam::surfaceMesh> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/applications/bin/linux64GccDPOpt/rhoPimpleFoam"
#12 main in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/applications/bin/linux64GccDPOpt/rhoPimpleFoam"
#13 __libc_start_main in "/lib64/tls/libc.so.6"
#14 _start at ../sysdeps/x86_64/elf/start.S:11

The mesh is composed of 200k cells, seems OK to me because I succeeded running it at Mach .750 Even if the results are not excellent, the shockwave can be seen.
truong_nm is offline   Reply With Quote

Old   April 29, 2010, 13:18
Default
  #6
Senior Member
 
Alberto Passalacqua
Join Date: Mar 2009
Location: Ames, Iowa, United States
Posts: 1,912
Rep Power: 36
alberto will become famous soon enoughalberto will become famous soon enough
This using vanAlbadaV for div(phi, U). I get the error with vanAlbada, but here it runs fine with vanAlbadaV (just tried on icoFoam).

Best,
__________________
Alberto Passalacqua

GeekoCFD - A free distribution based on openSUSE 64 bit with CFD tools, including OpenFOAM. Available as in both physical and virtual formats (current status: http://albertopassalacqua.com/?p=1541)
OpenQBMM - An open-source implementation of quadrature-based moment methods.

To obtain more accurate answers, please specify the version of OpenFOAM you are using.
alberto is offline   Reply With Quote

Old   April 30, 2010, 05:27
Default
  #7
Member
 
Ngoc-Minh Truong
Join Date: Feb 2010
Location: Toulouse, France
Posts: 42
Rep Power: 16
truong_nm is on a distinguished road
Send a message via MSN to truong_nm
I went on investigations. For sure, vanAlbadaV is required for div(phi,U) if we want the computation to start. I obtained something a little different when I chose "leastSquares" for grad schemes:


Creating field DpDt


Starting time loop

Courant Number mean: 5.09982e-05 max: 0.0938178
deltaT = 1.2e-09
Time = 1.2e-09

#0 Foam::error:rintStack(Foam::Ostream&) in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#1 Foam::sigFpe::sigFpeHandler(int) in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#2 __restore_rt in "/lib64/tls/libc.so.6"
#3 Foam::LimitedScheme<Foam::Tensor<double>, Foam::vanAlbadaLimiter<Foam::NVDTVD>, Foam::limitFuncs::magSqr>::limiter(Foam::Geometric Field<Foam::Tensor<double>, Foam::fvPatchField, Foam::volMesh> const&) const in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libfiniteVolume.so"
#4 Foam::limitedSurfaceInterpolationScheme<Foam::Tens or<double> >::weights(Foam::GeometricField<Foam::Tensor<doubl e>, Foam::fvPatchField, Foam::volMesh> const&) const in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libfiniteVolume.so"
#5 Foam::surfaceInterpolationScheme<Foam::Tensor<doub le> >::interpolate(Foam::GeometricField<Foam::Tensor<d ouble>, Foam::fvPatchField, Foam::volMesh> const&) const in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libfiniteVolume.so"
#6 Foam::fv::gaussDivScheme<Foam::Tensor<double> >::fvcDiv(Foam::GeometricField<Foam::Tensor<double >, Foam::fvPatchField, Foam::volMesh> const&) in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libfiniteVolume.so"
#7 Foam::tmp<Foam::GeometricField<Foam::innerProduct< Foam::Vector<double>, Foam::Tensor<double> >::type, Foam::fvPatchField, Foam::volMesh> > Foam::fvc::div<Foam::Tensor<double> >(Foam::GeometricField<Foam::Tensor<double>, Foam::fvPatchField, Foam::volMesh> const&, Foam::word const&) in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libcompressibleRASModels.so"
#8 Foam::tmp<Foam::GeometricField<Foam::innerProduct< Foam::Vector<double>, Foam::Tensor<double> >::type, Foam::fvPatchField, Foam::volMesh> > Foam::fvc::div<Foam::Tensor<double> >(Foam::GeometricField<Foam::Tensor<double>, Foam::fvPatchField, Foam::volMesh> const&) in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libcompressibleRASModels.so"
#9 Foam::compressible::RASModels::SpalartAllmaras::di vDevRhoReff(Foam::GeometricField<Foam::Vector<doub le>, Foam::fvPatchField, Foam::volMesh>&) const in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libcompressibleRASModels.so"
#10 main in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/applications/bin/linux64GccDPOpt/rhoPimpleFoam"
#11 __libc_start_main in "/lib64/tls/libc.so.6"
#12 _start at ../sysdeps/x86_64/elf/start.S:116
Exception en point flottant

What is new: the time loop starts but fails to start the first iteration. I decided to force the default schemes for div as "none" so I can adjust each setting. And it seems that div((muEff*dev2(grad(U).T()))) is the setting which makes the computation fail I changed it to classical "Gauss linear" and it runs... until it fails when the pressure is computed

Creating field DpDt


Starting time loop

Courant Number mean: 5.09982e-05 max: 0.0938178
deltaT = 1.2e-09
Time = 1.2e-09

DILUPBiCG: Solving for Ux, Initial residual = 0.989315, Final residual = 8.03341e-07, No Iterations 1
DILUPBiCG: Solving for Uz, Initial residual = 0.999731, Final residual = 3.29193e-07, No Iterations 1
DILUPBiCG: Solving for h, Initial residual = 0.999999, Final residual = 6.09725e-07, No Iterations 1
#0 Foam::error:rintStack(Foam::Ostream&) in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#1 Foam::sigFpe::sigFpeHandler(int) in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libOpenFOAM.so"
#2 __restore_rt in "/lib64/tls/libc.so.6"
#3 Foam::LimitedScheme<Foam::Vector<double>, Foam::vanAlbadaLimiter<Foam::NVDTVD>, Foam::limitFuncs::magSqr>::limiter(Foam::Geometric Field<Foam::Vector<double>, Foam::fvPatchField, Foam::volMesh> const&) const in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libfiniteVolume.so"
#4 Foam::limitedSurfaceInterpolationScheme<Foam::Vect or<double> >::weights(Foam::GeometricField<Foam::Vector<doubl e>, Foam::fvPatchField, Foam::volMesh> const&) const in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libfiniteVolume.so"
#5 Foam::surfaceInterpolationScheme<Foam::Vector<doub le> >::interpolate(Foam::GeometricField<Foam::Vector<d ouble>, Foam::fvPatchField, Foam::volMesh> const&) const in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/lib/linux64GccDPOpt/libfiniteVolume.so"
#6 _ZN4Foam3fvcL11interpolateINS_6VectorIdEEEENS_3tmp INS_14GeometricFieldIT_NS_13fvsPatchFieldENS_11sur faceMeshEEEEERKNS5_IS6_NS_12fvPatchFieldENS_7volMe shEEE in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/applications/bin/linux64GccDPOpt/rhoPimpleFoam"
#7 main in "/home/EUCLIDE/truong_nm/OpenFOAM/OpenFOAM-1.6/applications/bin/linux64GccDPOpt/rhoPimpleFoam"
#8 __libc_start_main in "/lib64/tls/libc.so.6"
#9 _start at ../sysdeps/x86_64/elf/start.S:116
Exception en point flottant
truong_nm is offline   Reply With Quote

Old   October 11, 2011, 06:15
Default Hello
  #8
New Member
 
Wang Yi-bo
Join Date: Oct 2011
Posts: 3
Rep Power: 14
wwwwww_18 is on a distinguished road
Hello, I nearly known nothing about the shockwave capture in OpenFoam, Would you please give me some link to the relative documents? Thanks
wwwwww_18 is offline   Reply With Quote

Old   February 27, 2013, 11:38
Default
  #9
Senior Member
 
immortality's Avatar
 
Ehsan
Join Date: Oct 2012
Location: Iran
Posts: 2,208
Rep Power: 26
immortality is on a distinguished road
hi
did you or anyone have find some sources to capturing shock waves in OF?
immortality is offline   Reply With Quote

Reply


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 Off
Pingbacks are On
Refbacks are On


Similar Threads
Thread Thread Starter Forum Replies Last Post
Best Way to Capture Boundary Layer Thickness Gill Main CFD Forum 1 October 23, 2008 07:06
Shockwave in airfoil analysis Alex FLUENT 4 January 2, 2008 12:36
Partilce capture at filter Ren FLUENT 0 February 8, 2007 13:51
Supersonic Shockwave Braden Pitter Phoenics 2 November 30, 2006 16:50
can fluent capture BOUNDARY LAYER of POROUS zone? Alex FLUENT 0 April 22, 2006 07:14


All times are GMT -4. The time now is 18:00.