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

OpenFOAM15dev interDyMFoam problem using dynamicRefineFvMesh

Register Blogs Community New Posts Updated Threads Search

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   February 26, 2009, 04:37
Default Dear all, I am using OpenFO
  #1
Member
 
Edin Berberovic
Join Date: Mar 2009
Posts: 31
Rep Power: 17
eberberovic is on a distinguished road
Dear all,

I am using OpenFOAM-1.5-dev (svn r. 1051), compiled on openSuSE 10.3, 64 bit. There seems to be a problem with interDyMFoam when using dynamic mesh refinement (dynamicRefineFvMesh). The tutorial damBreakWithObstacle always breaks down on floating point after a few time steps (velocity and gamma become too large).

I have found out the following:
1) when I run it with interFoam, there is no problem at all.
2) when I run it with interDyMFoam without refinement (using staticFvMesh), there is also no problem at all.

But as soon as I want to calculate with automatic refinement, I get the floating point. I have tried various settings for the solvers without success. Does this mean that there might be some errors somewhere in the libraries (mesh refinement, recalculation of relative/absolute fluxes ... )?

I would really appreciate any help on this. Thanks a lot in advance.

There is also a minor issue that subsetted mesh and fields are written to the setSubset folder within a time directory (e.g. 0.001/setSubset), and the application cannot find them, so they need to be copied from the setSubset folder one level up to the time directory.

Best regards,
Edin.
eberberovic is offline   Reply With Quote

Old   March 13, 2009, 05:02
Default Hello Edin, I had a look th
  #2
Senior Member
 
Hannes Kröger
Join Date: Mar 2009
Location: Rostock, Germany
Posts: 124
Rep Power: 18
hannes is on a distinguished road
Hello Edin,

I had a look through the source code of dynamicRefineFvMesh.C and it seems to me that the function readDict() gets never called. This results in an empty list "correctFluxes" (although there is an entry in constant/dynamicMeshDict) and in turn the code that maps the fluxes is omitted.

I have added a call of readDict() at the beginning of the constructor of dynamicRefineFvMesh and then interDyMFoam runs for some time and gamma remains bounded between 0 and 1.
But the solver still crashes. The stack trace then is:

#0 Foam::error::printStack(Foam:stream&) in "/home/hannes/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libOpenFOAM.so"
#1 Foam::sigFpe::sigFpeHandler(int) in "/home/hannes/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libOpenFOAM.so"
#2 ?? in "/lib/libc.so.6"
#3 Foam::pos(Foam::Field<double>&, Foam::UList<double> const&) in "/home/hannes/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libOpenFOAM.so"
#4 Foam::tmp<foam::geometricfield<double,> > Foam::pos<foam::fvspatchfield,>(Foam::GeometricFie ld<double,> const&) in "/home/hannes/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libfiniteVolume.so"
#5 Foam::upwind<foam::vector<double> >::weights(Foam::GeometricField<foam::vector<doubl e>, Foam::fvPatchField, Foam::volMesh> const&) const in "/home/hannes/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libfiniteVolume.so"
#6 Foam::fv::gaussConvectionScheme<foam::vector<doubl e> >::fvmDiv(Foam::GeometricField<double,> const&, Foam::GeometricField<foam::vector<double>, Foam::fvPatchField, Foam::volMesh>&) const in "/home/hannes/OpenFOAM/OpenFOAM-1.5-dev/lib/linux64GccDPOpt/libfiniteVolume.so"
#7 Foam::tmp<foam::fvmatrix<foam::vector<double> > > Foam::fvm::div<foam::vector<double> >(Foam::GeometricField<double,> const&, Foam::GeometricField<foam::vector<double>, Foam::fvPatchField, Foam::volMesh>&, Foam::word const&) in "/home/hannes/OpenFOAM/OpenFOAM-1.5-dev/applications/bin/linux64GccDPOpt/interDy MFoam"
#8 Foam::tmp<foam::fvmatrix<foam::vector<double> > > Foam::fvm::div<foam::vector<double> >(Foam::GeometricField<double,> const&, Foam::GeometricField<foam::vector<double>, Foam::fvPatchField, Foam::volMesh>&) in "/home/hannes/OpenFOAM/OpenFOAM-1.5-dev/applications/bin/linux64GccDPOpt/interDy MFoam"
#9 main in "/home/hannes/OpenFOAM/OpenFOAM-1.5-dev/applications/bin/linux64GccDPOpt/interDy MFoam"
#10 __libc_start_main in "/lib/libc.so.6"
#11 Foam::regIOobject::writeObject(Foam::IOstream::str eamFormat, Foam::IOstream::versionNumber, Foam::IOstream::compressionType) const in "/home/hannes/OpenFOAM/OpenFOAM-1.5-dev/applications/bin/linux64GccDPOpt/interDy MFoam"
Floating point exception (core dumped)

The solver runs for a longer time when I change the div(rho*phi,U) scheme from upwind to limitedLinearV;. Then I even get output of time-directories and the fields look ok.

I will investigate further.

Best regards, Hannes
__________________
silentdynamics GmbH - http://silentdynamics.de
open source CAE software solutions & support
hannes is offline   Reply With Quote

Old   March 13, 2009, 05:39
Default Little update: If I restart fr
  #3
Senior Member
 
Hannes Kröger
Join Date: Mar 2009
Location: Rostock, Germany
Posts: 124
Rep Power: 18
hannes is on a distinguished road
Little update: If I restart from the last timestep before the solver crash, the solver even runs beyond the simulation time of the crash. Looks like some variable is not properly initialized.
__________________
silentdynamics GmbH - http://silentdynamics.de
open source CAE software solutions & support
hannes is offline   Reply With Quote

Old   March 13, 2009, 05:59
Default Hi Hannes. Thanks for your
  #4
Member
 
Edin Berberovic
Join Date: Mar 2009
Posts: 31
Rep Power: 17
eberberovic is on a distinguished road
Hi Hannes.

Thanks for your replies. I have just seen this. What confuses me is that the function readDict() is the same also in 1.5.x, and it still works. I also don't see where it is called from.

But, what I have noticed is that the mesh changing engine is different. The 1.5-dev uses directTopoChange, while in 1.5.x it is polyTopoChange. This is the main and only difference between the files dynamicRefineFvMesh.C in the two versions. I will look around in directTopoChange to see if I can extract some additional information.

Best regards to you,
Edin.
eberberovic is offline   Reply With Quote

Old   March 19, 2009, 10:02
Default Gamma Problem
  #5
New Member
 
Julius
Join Date: Mar 2009
Posts: 27
Rep Power: 17
juliuslein is on a distinguished road
Hello Hannes, hello Edin,

I have the same gamma issue with the exploding values using a derived version of rasInterFoam with dynamic Meshes. After the mesh deformation (by a pointDisplacement) the values go worse and worse and finally produce a floating point exception... Massive underrelaxation wasn't helping neither.
Actually I'm quite curious if the readDict() function could solve my problem as well. How and where do I call it?

Thanks for your answers,

Regards, Julius
juliuslein is offline   Reply With Quote

Old   March 19, 2009, 23:12
Default problem with Block mesh in the 2D tank sloshing tutorial
  #6
Senior Member
 
musaddeque hossein
Join Date: Mar 2009
Posts: 309
Rep Power: 18
musahossein is on a distinguished road
Gentlemen:

If I change the tank geometry to a square tank in the tutorial for the 2d tank sloshing in interDyMFoam,I get a multitude of error meesages. I am trying to model a 1 m X 1m X0.05m tank and the blockmeshDict file is as follows:

/*--------------------------------*- C++ -*----------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
FoamFile
{
version 2.0;
format ascii;
class dictionary;
object blockMeshDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

convertToMeters 1;

vertices
(
( 0.5 -0.5 0.005) // 0
(-0.5 -0.5 0.005) // 1
(-0.5 0.5 0.005) // 2
( 0.5 0.5 0.005) // 3
( 0.5 0.5 -0.005) // 4
( 0.5 -0.5 -0.005) // 5
(-0.5 -0.5 -0.005) // 6
(-0.5 0.5 -0.005) // 7
);

blocks
(
hex (0 1 2 3 6 5 4 7) (10 10 1) simpleGrading (1 1 1)
);

patches
(
patch walls
(
(0 1 6 5)
(0 5 4 3)
(7 6 1 2)
(3 4 7 2)
)
empty front
(
(0 1 2 3)
)

empty back
(
(6 5 4 7)
)

);

// ************************************************** *********************** //

and the error I get is as follows:

musa@linux-ip9p:~/OpenFOAM/musa-1.5/run/tutorials/interDyMFoam/sloshingTank2Dtest> blockMesh
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 1.5 |
| \\ / A nd | Web: http://www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Exec : blockMesh
Date : Mar 19 2009
Time : 23:11:05
Host : linux-ip9p
PID : 4473
Case : /home/musa/OpenFOAM/musa-1.5/run/tutorials/interDyMFoam/sloshingTank2Dtest
nProcs : 1

// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
Create time


Reading block mesh description dictionary

Creating block mesh

Creating blockCorners

There are no non-linear edges

Creating blocks

Creating patches

Creating block mesh topology
--> FOAM Warning :
From function cellModel::mag(const labelList&, const pointField&)
in file meshes/meshShapes/cellModel/cellModel.C at line 134
zero or negative pyramid volume: -0.00166667 for face 5

Default patch type set to empty


face 0 in patch 0 does not have neighbour cell face: 4(0 1 6 5)#0 Foam::error:rintStack(Foam::Ostream&) in "/home/musa/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#1 Foam::error::abort() in "/home/musa/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#2 Foam::Ostream& Foam:perator<< <Foam::error>(Foam::Ostream&, Foam::errorManip<Foam::error>) in "/home/musa/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/blockMesh"
#3 Foam:olyMesh::facePatchFaceCells(Foam::List<Foam ::face> const&, Foam::List<Foam::List<int> > const&, Foam::List<Foam::List<Foam::face> > const&, int) const in "/home/musa/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#4 Foam:olyMesh:olyMesh(Foam::IOobject const&, Foam::Field<Foam::Vector<double> > const&, Foam::List<Foam::cellShape> const&, Foam::List<Foam::List<Foam::face> > const&, Foam::List<Foam::word> const&, Foam::List<Foam::word> const&, Foam::word const&, Foam::word const&, Foam::List<Foam::word> const&, bool) in "/home/musa/OpenFOAM/OpenFOAM-1.5/lib/linuxGccDPOpt/libOpenFOAM.so"
#5 Foam::blockMesh::createTopology(Foam::IOdictionary &) in "/home/musa/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/blockMesh"
#6 Foam::blockMesh::blockMesh(Foam::IOdictionary&) in "/home/musa/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/blockMesh"
#7 main in "/home/musa/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/blockMesh"
#8 __libc_start_main in "/lib/libc.so.6"
#9 __gxx_personality_v0 in "/home/musa/OpenFOAM/OpenFOAM-1.5/applications/bin/linuxGccDPOpt/blockMesh"


From function polyMesh::facePatchFaceCells(const faceList& patchFaces,const labelListList& pointCells,const faceListList& cellsFaceShapes,const label patchID)
in file meshes/polyMesh/polyMeshFromShapeMesh.C at line 125.

FOAM aborting

Aborted

Any suggestions?
Thanks, Musa
musahossein is offline   Reply With Quote

Old   January 14, 2010, 06:18
Default
  #7
Member
 
Wolfgang W.
Join Date: Nov 2009
Location: Switzerland
Posts: 57
Rep Power: 17
WiWo is on a distinguished road
Hi folks,

I am experiencing the very same problem using dynamicRefineFvMesh in OF-1.5-dev. Inserting readDict() in the constructor of dynamicRefineFvMesh.C (as Hannes suggested) improves the situation (crash due to 'floating point exception' is postponed to a later moment). I also see, that I can restart my solver at the last timestep and it will go on a little further.
Still, there must be something going the wrong way inside the refinement procedure. I was comparing the dynamicRefineFvMesh of OF-1.6 and OF-1.5-dev as the one in OF-1.6 obvieously works. There are two obvious differences - one (as mentioned earlier) is the substitution of polyTopoChange by directTopoChange. The other is in using PackedList instead of PackedBoolList. Can the failure be caused by a small e.g. indexing error in these lists?
Has anybody had a deeper look into the reason why the 1.5-dev version of dynamicRefineFvMesh does not work properly. Are there any solutions, hints, ideas so far?

I would apprechiate any help or advice as I'm desperately going to need this refinement and at the moment I feel a little lost searching through the code.

Cheers,
Wolfgang
WiWo 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
Problem with tutorialcase damBreak4phase under OpenFOAM15dev jfb OpenFOAM Bugs 5 January 22, 2024 14:05
DynamicMeshDict dynamicRefineFvMesh in 2D lukasfischer OpenFOAM Running, Solving & CFD 4 November 10, 2014 08:19
DynamicRefineFvMesh dies on snappyHexMesh generated grid chtrapp OpenFOAM Running, Solving & CFD 10 October 4, 2012 07:30
InterDyMFoam and problem with setFields chris_sev OpenFOAM Running, Solving & CFD 1 March 23, 2009 22:23
DynamicRefineFvMesh dies on snappyHexMesh generated grid chtrapp OpenFOAM Running, Solving & CFD 0 January 29, 2009 13:07


All times are GMT -4. The time now is 16:23.