CFD Online Discussion Forums

CFD Online Discussion Forums (
-   OpenFOAM Bugs (
-   -   Problem with icoDyMFoam tutorial (

matlie April 24, 2007 11:19

I just installed OpenFOAM-1.4
I just installed OpenFOAM-1.4 and tested the tutorials for icoFoam and oodles, which worked fine.

The tutorial for icoDyMFoam crashes however, see below for the error message.

The error seems to occur in the polyMesh::calcDirections function. Maybe it is the case/mesh/boundary conditions which are not set up correctly. They seem to be the same as the corresponding tutorials in versions 1.2 and 1.3, however. These tutorials work fine on my machine by the way.

checkMesh complains about skew faces, but that shouldn't cause this kind of crash.

This seems to be related to the thread by Joakim Möller about SetField.

So - what can be the problem ?


| ========= | |
| \ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \ / O peration | Version: 1.4 |
| \ / A nd | Web: |
| \/ M anipulation | |

Exec : icoDyMFoam .. movingCone
Date : Apr 24 2007
Time : 17:18:13
Host : matlie
PID : 3240
Root : ..
Case : movingCone
Nprocs : 1
Create time

Create mesh

Selecting dynamicFvMesh dynamicMotionSolverFvMesh
Selecting motion solver: componentLaplacian
#0 Foam::error::printStack(Foam:
#1 Foam::sigFpe::sigFpeHandler(int)
#2 Uninterpreted: [0xffffe420]
#3 Foam::polyMesh::calcDirections() const
#4 Foam::polyMesh::directions() const
#5 Foam::polyMesh::nSolutionD() const
#6 Foam::polyMesh::nGeometricD() const
#7 Foam::twoDPointCorrector::twoDPointCorrector(Foam: :polyMesh const&)
#8 Foam::motionSolver::motionSolver(Foam::polyMesh const&)
#9 Foam::fvMotionSolver::fvMotionSolver(Foam::polyMes h const&)
#10 Foam::componentLaplacianFvMotionSolver::componentL aplacianFvMotionSolver(Foam::p olyMesh const&, Foam::Istream&)
#11 Foam::motionSolver::adddictionaryConstructorToTabl e<foam::componentlaplacianfvmo tionsolver>::New(Foam::polyMesh const&, Foam::Istream&)
#12 Foam::motionSolver::New(Foam::polyMesh const&)
#13 Foam::dynamicMotionSolverFvMesh::dynamicMotionSolv erFvMesh(Foam::IOobject const&)
#14 Foam::dynamicFvMesh::addIOobjectConstructorToTable <foam::dynamicmotionsolverfvme sh>::New(Foam::IOobject const&)
#15 Foam::dynamicFvMesh::New(Foam::IOobject const&)
#16 main
#17 __libc_start_main
#18 __gxx_personality_v0 at ../sysdeps/i386/elf/start.S:122
Floating exception (core dumped)

henry April 24, 2007 15:49

Are you running single or doub
Are you running single or double precision? If single try double.

henry April 24, 2007 16:01

There is a problem with calcDi
There is a problem with calcDirections for meshes in which all patches of type empty contain no faces, as is the case for this tutorial. One option is to change the patch type of the axis in the blockMeshDict file or change the logic in calcDirections in OpenFOAM-1.4/src/OpenFOAM/meshes/polyMesh/polyMesh.C by moving


from line 66 to line 70, i.e. inside the

if (boundaryMesh()[patchi].size())

However, even after this change this case will still not run correctly single precision because the accumulation of error causes problems with the mesh motion.


matlie April 25, 2007 09:14

Thanks Henry for the quick res
Thanks Henry for the quick response.

1. I am running in double precision.
2. I tried to change the patch type in blockMeshDict from 'empty' to 'patch'. It still didn't work (same error message).
3. I cannot try your suggestion of changing the code since I cannot recompile since the compiler cannot find 'demangle.h'. I saw that other people have had this problem. I couldn't fix it. I run Ubuntu 6.10.


henry April 25, 2007 09:37

2. I have changed the tutorial
2. I have changed the tutorial case so that it works without my suggested change to calcDirections: movingCone.tbz2

Unpack using tar xjf movingCone.tbz2

3. I do not have any experience with Ubuntu Linux so cannot advise on how to install demangle.h.


lillberg April 25, 2007 13:15

Hi Mattias! I ran the tutor
Hi Mattias!

I ran the tutorial on my SuSE box without any trouble... are you running the 32 or 64-bit OF-version?


matlie April 26, 2007 03:53

Thanks Henry, Now movingCone
Thanks Henry,
Now movingCone case works.
Compared to 1.3, the execution is almost six times as fast!
Is that because of the finite volume mesh motion solver ?

Eric, I'm running the 32-bit version.


henry April 26, 2007 03:59

Yes the finite volume mesh mot
Yes the finite volume mesh motion solver is much faster. For me the difference was even larger on this case.


lillberg April 26, 2007 04:29

On large FSI cases using the l
On large FSI cases using the laplacian solver with quadratic inverse distance diffusivity I found the fvMotionSolver to be about two times faster then the tetDecomp version. But then again I haven't look through all the code.

Is there some useful tuning for general 3D motion with preserved BL grids? Could you give a brief explanation on the different diffusivities.



henry April 26, 2007 04:39

You may get significant perfor
You may get significant performance improvements on large problems by changing/tuning the solvers. The GAMG solver has a large number of parameters which if tuned carefully can give substantial benfits.

I implemented a large number of diffusivities for the fvMotionSolver but didn't have time to play with them much. It is also very easy to create new diffusivity functions for particular type of problems if the need arises. To preserve BL grids it might be useful to use a distance to the wall function to alter the diffusivity in that region. It would be very useful for all if you can play around with some of these options and let us know your findings.


lillberg April 26, 2007 04:51

I'll do my best ;-)
I'll do my best ;-)

All times are GMT -4. The time now is 04:36.