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

"moveDynamicMesh -checkAMI" problem

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

Like Tree1Likes
  • 1 Post By wyldckat

Reply
 
LinkBack Thread Tools Display Modes
Old   October 30, 2014, 09:04
Default "moveDynamicMesh -checkAMI" problem
  #1
Member
 
chen long
Join Date: Dec 2012
Posts: 32
Rep Power: 5
Jackie Chen is on a distinguished road
Hi Foamers

I try to use OF 2.3.0 the tutorial file propeller to simulate the flow around tidal turbine.
When I try to type moveDynamicMesh-checkAMI
It shows
Code:
--> FOAM FATAL ERROR: 

    request for volVectorField U from objectRegistry region0 failed
    available objects of type volVectorField are
0()

    From function objectRegistry::lookupObject<Type>(const word&) const
    in file /home/opencfd/OpenFOAM/OpenFOAM-2.3.0/src/OpenFOAM/lnInclude/objectRegistryTemplates.C at line 198.

FOAM aborting

#0  Foam::error::printStack(Foam::Ostream&) in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#1  Foam::error::abort() in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#2   Foam::GeometricField<Foam::Vector<double>, Foam::fvPatchField,  Foam::volMesh> const&  Foam::objectRegistry::lookupObject<Foam::GeometricField<Foam::Vector<double>,  Foam::fvPatchField, Foam::volMesh> >(Foam::word const&) const  in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libdynamicFvMesh.so"
#3  Foam::Q::execute() in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libutilityFunctionObjects.so"
#4   Foam::OutputFilterFunctionObject<Foam::Q>::execute(bool) in  "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libutilityFunctionObjects.so"
#5  Foam::functionObjectList::execute(bool) in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#6  Foam::Time::run() const in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#7  Foam::Time::loop() in "/opt/openfoam230/platforms/linux64GccDPOpt/lib/libOpenFOAM.so"
#8  
 in "/opt/openfoam230/platforms/linux64GccDPOpt/bin/moveDynamicMesh"
#9  __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#10  
 in "/opt/openfoam230/platforms/linux64GccDPOpt/bin/moveDynamicMesh"
Aborted (core dumped)
ANyone can figure out this? Thanks in advance
Jackie Chen is offline   Reply With Quote

Old   November 1, 2014, 15:21
Default
  #2
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 9,187
Blog Entries: 34
Rep Power: 93
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Quick answer: The "U" field is not loaded automatically when using the mesh-only solver moveDynamicMesh. You can try using the function object "readFields" to forcefully load the "U" file: http://openfoamwiki.net/index.php/Ti...loading_fields - section "3.3 Force loading fields"
wyldckat is offline   Reply With Quote

Old   November 3, 2014, 04:22
Default
  #3
Member
 
chen long
Join Date: Dec 2012
Posts: 32
Rep Power: 5
Jackie Chen is on a distinguished road
Hi Bruno Santos

Thanks for you reprly. However, my of is 2.3.0. and the readfield is a separate file under system.The error remains.
Jackie Chen is offline   Reply With Quote

Old   November 17, 2014, 16:47
Default
  #4
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 9,187
Blog Entries: 34
Rep Power: 93
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Hi Jackie Chen,

Sorry for the late reply, but I finally managed to give a quick look into this.

The tutorial "incompressible/pimpleDyMFoam/propeller" has in its "system/controlDict" these lines:
Code:
functions
{
    #include "readFields"
    #include "Q"
    #include "surfaces"
    #include "forces"
}
Which means it already does what I said it would do.
I looked better into the error output you got and it states that it was in fact the "Q" utility function that crashed.

In addition, the script "Allrun.pre" has these lines near the end:
Code:
# - create the inlet/outlet and AMI patches
runApplication createPatch -overwrite

# - test by running moveDynamicMes
#runApplication moveDynamicMesh -checkAMI

# - set the initial fields
cp -rf 0.org 0
Which I now understand why you're asking this question and why you got this crash.

It takes too long to generate this mesh in my machine, so I haven't tried this yet, but my suggestion is that you place the call for moveDynamicMesh to after the copy is made, namely:
Code:
# - create the inlet/outlet and AMI patches
runApplication createPatch -overwrite

# - set the initial fields
cp -rf 0.org 0

# - test by running moveDynamicMesh
runApplication moveDynamicMesh -checkAMI
This way the "U" file is now present in the folder "0", so that the "readFields" function object will now be able to load the field "U" and the "Q" function object will then be able to use the "U" field.

-----------------

edit: OK, the mesh is now finished generating and I still got the same crash. I managed to get it working if I comment out the line for "Q" in "system/controlDict", namely:
Code:
functions
{
    #include "readFields"
//    #include "Q"
    #include "surfaces"
    #include "forces"
}

Best regards,
Bruno

Last edited by wyldckat; November 17, 2014 at 16:54. Reason: see "edit:"
wyldckat is offline   Reply With Quote

Old   August 12, 2015, 21:46
Default
  #5
Member
 
Werner
Join Date: Jul 2015
Location: West Lafayette, USA
Posts: 34
Rep Power: 2
WernerW is on a distinguished road
Hi Bruno,

Thanks for your help, I commented the line for Q and the program seemed to work for the first 10 timesteps (0.1 to 1) but crashed at 1 , at the first writing time with this error:

Quote:
--> FOAM FATAL ERROR:
Cannot find isosurface field Q in database or directory "/home/werner/OpenFOAM/werner-2.4.0/run/WindTurbine-DyM1/1"

From function sampledIsoSurface::getIsoFields()
in file sampledSurface/isoSurface/sampledIsoSurface.C at line 113.

FOAM exiting
Meanwhile, OpenFOAM created a folder in my case directory called 1

Quote:
werner@werner-K45VD:~/OpenFOAM/werner-2.4.0/run/WindTurbine-DyM1/1$ tree
.
├── polyMesh
│** └── points
└── uniform
└── time

2 directories, 2 files
Have you got this error?

regards,
Werner
WernerW is offline   Reply With Quote

Old   August 13, 2015, 07:50
Default
  #6
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 9,187
Blog Entries: 34
Rep Power: 93
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Quick answer: You will have to comment out the "surfaces" entry as well:
Code:
functions
{
    #include "readFields"
//    #include "Q"
//    #include "surfaces"
    #include "forces"
}
wyldckat is offline   Reply With Quote

Old   August 13, 2015, 13:41
Default Understanding issue with velocity U.
  #7
Member
 
Werner
Join Date: Jul 2015
Location: West Lafayette, USA
Posts: 34
Rep Power: 2
WernerW is on a distinguished road
Thank you Bruno !

Once more that made it work Could you explain what we disabled there disabling Q and Surfaces ?

In each step I could read "Did not find volVectorField U Not updating Uboundary conditions." Is there any way of solving this ?

I think that solving this would be useful becuase when I run the application pimpleDyMFoam a get a floating point exception related to division by 0 in the process of reading speed U. I paste here the error ...

I apreciate very much your help

Quote:
werner@werner-K45VD:~/OpenFOAM/werner-2.4.0/run/WindTurbine-DyM1$ pimpleDyMFoam
/*---------------------------------------------------------------------------*\
| ========= | |
| \\ / F ield | OpenFOAM: The Open Source CFD Toolbox |
| \\ / O peration | Version: 2.4.0 |
| \\ / A nd | Web: www.OpenFOAM.org |
| \\/ M anipulation | |
\*---------------------------------------------------------------------------*/
Build : 2.4.0-dcea1e13ff76
Exec : pimpleDyMFoam
Date : Aug 13 2015
Time : 11:48:49
Host : "werner-K45VD"
PID : 5224
Case : /home/werner/OpenFOAM/werner-2.4.0/run/WindTurbine-DyM1
nProcs : 1
sigFpe : Enabling floating point exception trapping (FOAM_SIGFPE).
fileModificationChecking : Monitoring run-time modified files using timeStampMaster
allowSystemOperations : Allowing user-supplied system call operations

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

Create mesh for time = 0

Selecting dynamicFvMesh solidBodyMotionFvMesh
Selecting solid-body motion function rotatingMotion
Applying solid body motion to cellZone Cylinder

PIMPLE: no residual control data found. Calculations will employ 2 corrector loops

Reading field p

AMI: Creating addressing and weights between 9005 source faces and 8959 target faces
AMI: Patch source sum(weights) min/max/average = 0.254862, 1.1706, 0.995708
AMI: Patch target sum(weights) min/max/average = 0.797915, 1.49352, 1.011
Reading field U

Reading/calculating face flux field phi

Selecting incompressible transport model Newtonian
Selecting turbulence model type RASModel
Selecting RAS turbulence model kEpsilon
kEpsilonCoeffs
{
Cmu 0.09;
C1 1.44;
C2 1.92;
sigmaEps 1.3;
}

Reading/calculating face velocity Uf

No finite volume options present

Courant Number mean: 0.023476 max: 0.977293
forces forces:
Not including porosity effects


Starting time loop

Courant Number mean: 0.023476 max: 0.977293
deltaT = 0.111111
Time = 0.111111

solidBodyMotionFunctions::rotatingMotion::transfor mation(): Time = 0.111111 transformation: ((0 0 0) (-0.797896 (0.602796 0 0)))
AMI: Creating addressing and weights between 9005 source faces and 8959 target faces
AMI: Patch source sum(weights) min/max/average = 0, 1.30674, 0.993375
AMI: Patch target sum(weights) min/max/average = 0, 1.49861, 1.00718
PIMPLE: iteration 1
#0 Foam::error:rintStack(Foam::Ostream&) at ~/OpenFOAM/openfoam240/src/OSspecific/POSIX/printStack.C:219
#1 Foam::sigFpe::sigHandler(int) at ~/OpenFOAM/openfoam240/src/OSspecific/POSIX/signals/sigFpe.C:108
#2 ? in "/lib/x86_64-linux-gnu/libc.so.6"
#3 Foam::divide(Foam::Field<double>&, double const&, Foam::UList<double> const&) at ~/OpenFOAM/openfoam240/src/OpenFOAM/fields/Fields/scalarField/scalarField.C:116 (discriminator 2)
#4 void Foam::divide<Foam::fvPatchField>(Foam::FieldField< Foam::fvPatchField, double>&, double const&, Foam::FieldField<Foam::fvPatchField, double> const&) at ~/OpenFOAM/openfoam240/src/OpenFOAM/lnInclude/scalarFieldField.C:91 (discriminator 2)
#5 void Foam::divide<Foam::fvPatchField, Foam::volMesh>(Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh>&, Foam::dimensioned<double> const&, Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> const&) at ~/OpenFOAM/openfoam240/src/OpenFOAM/lnInclude/GeometricScalarField.C:116
#6 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam:perator/<Foam::fvPatchField, Foam::volMesh>(Foam::dimensioned<double> const&, Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&) at ~/OpenFOAM/openfoam240/src/OpenFOAM/lnInclude/GeometricScalarField.C:116 (discriminator 1)
#7 Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > Foam:perator/<Foam::fvPatchField, Foam::volMesh>(double const&, Foam::tmp<Foam::GeometricField<double, Foam::fvPatchField, Foam::volMesh> > const&) at ~/OpenFOAM/openfoam240/src/OpenFOAM/lnInclude/GeometricScalarField.C:116 (discriminator 1)
#8 ? at ~/OpenFOAM/openfoam240/applications/solvers/incompressible/pimpleFoam/pimpleDyMFoam/../UEqn.H:16 (discriminator 2)
#9 __libc_start_main in "/lib/x86_64-linux-gnu/libc.so.6"
#10 ? at ??:?
Floating point exception (core dumped)
WernerW is offline   Reply With Quote

Old   August 13, 2015, 14:04
Default
  #8
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 9,187
Blog Entries: 34
Rep Power: 93
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Quick answer:
  1. The problem with pimpleDyMFoam occurs at 0.1111..., after rotating I don't know how many degrees... is it something like 90 degrees? If so, that's waaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaay too much
  2. moveDynamicMesh is usually used for helping with diagnosing mesh excessive distortions that may occur with some transformations. It's a lot faster to use this than to use the solver. Therefore, running moveDynamicMesh without the function objects is only worth while for looking at the mesh for each time snapshot. Furthermore, I would suggest saving all time instances, so that you can look at exactly the mesh distortions that the solver will be looking at.
wyldckat is offline   Reply With Quote

Old   August 13, 2015, 15:00
Default
  #9
Member
 
Werner
Join Date: Jul 2015
Location: West Lafayette, USA
Posts: 34
Rep Power: 2
WernerW is on a distinguished road
Hi Bruno,

1. Ok! yeah, you're right , with a speed of 158 rad/s the turbine rotated 90 degrees between each step. Now I set the deltaT to 0.001 for 9 degrees between each step, is that fine. I'm still getting the FPE (Floating point exception). Do you know a current post where I can get further advise for this issue ?
2. In that sense should we enable Q and Surfaces to get the full results when we run the solver ?
WernerW is offline   Reply With Quote

Old   August 13, 2015, 15:35
Default
  #10
Super Moderator
 
Bruno Santos
Join Date: Mar 2009
Location: Lisbon, Portugal
Posts: 9,187
Blog Entries: 34
Rep Power: 93
wyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nicewyldckat is just really nice
Quick answers:
Quote:
Originally Posted by WernerW View Post
1. Ok! yeah, you're right , with a speed of 158 rad/s the turbine rotated 90 degrees between each step. Now I set the deltaT to 0.001 for 9 degrees between each step, is that fine. I'm still getting the FPE (Floating point exception). Do you know a current post where I can get further advise for this issue ?
9 degrees is still too much. You should do a quick study with a simple geometry, for diagnosing what can and can't be done. If you jump directly into trying to solve your final geometry/case, it will take you considerably a lot longer to solve all of the problems you will likely face.

I can't remember any specific threads on this topic.

Quote:
Originally Posted by WernerW View Post
2. In that sense should we enable Q and Surfaces to get the full results when we run the solver ?
I believe those two entries are mostly demonstrations of features that OpenFOAM provides for co-processing which the solver is running, i.e. post-processing on-the-fly.
WernerW likes this.
wyldckat is offline   Reply With Quote

Old   August 13, 2015, 16:05
Default
  #11
Member
 
Werner
Join Date: Jul 2015
Location: West Lafayette, USA
Posts: 34
Rep Power: 2
WernerW is on a distinguished road
Hi Bruno,

I set deltaT to 1e-5 , as it was in the propeller tutorial, and the issue was solved :P Thanks a lot once more
WernerW 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
engineFoam new mesh problem ayhan515 OpenFOAM Meshing & Mesh Conversion 5 August 10, 2015 08:45
UDF compiling problem Wouter Fluent UDF and Scheme Programming 6 June 6, 2012 04:43
Gambit - meshing over airfoil wrapping (?) problem JFDC FLUENT 1 July 11, 2011 05:59
natural convection problem for a CHT problem Se-Hee CFX 2 June 10, 2007 06:29
Adiabatic and Rotating wall (Convection problem) ParodDav CFX 5 April 29, 2007 19:13


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