CFD Online Logo CFD Online URL
Home > Forums > OpenFOAM

Engine Simulation in parallel

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

LinkBack Thread Tools Display Modes
Old   July 26, 2012, 06:02
Default Engine Simulation in parallel
Senior Member
Join Date: Oct 2009
Posts: 136
Rep Power: 8
Peter_600 is on a distinguished road
Hi ALL, after a small break I am doing engine simulations again

To my problem (OF Version: 1.6-ext):

I ve build from the LayerAR class and from the the accordionEngineMesh class (taken from engineTopoChangerMesh) a new mesh motion class (GDIMesh), which allows moving the valves while using for the piston motion the layering approach.
So far this works fine on a single processor. The problem arises when I try to let it run in parallel. I ve tested the two classes independently (LayerAR and accordionEngineMesh) in parallel without any problem. So I assume it should also work in my case.

My Simulation crashes with the following error:

[0] Not implemented
[0]     From function globalTetPolyPatchFaceDecomp::updateMesh()
[0]     in file tetPolyMeshFaceDecomp/tetPolyPatches/constraint/global/globalTetPolyPatchFaceDecomp.C at line 152.
FOAM parallel run aborting
MPI_ABORT was invoked on rank 0 in communicator MPI_COMM_WORLD 
with errorcode 1.

NOTE: invoking MPI_ABORT causes Open MPI to kill all MPI processes.
You may or may not see output from other processes, depending on
exactly when Open MPI kills them.
This error pops up when a layer of the displacement volume is about being removed.

I ve figured out that when a topological change is performed (in this case layering) it executes the following peace of code (Condition: topoChangeMap1->morphing() == true )

autoPtr<mapPolyMesh> topoChangeMap1 = topoChanger_.changeMesh();
     bool meshChanged = topoChangeMap1->morphing();                // included from  "mapPolyMesh.H"
     pointField newPoints = points();
     if (topoChangeMap1->morphing())
        if (topoChangeMap1().hasMotionPoints())
        Info << "movePoints(topoChangeMap1().preMotionPoints());" <<endl;
            newPoints = topoChangeMap1().preMotionPoints();
When I am entering into this if statement the calculations blows up at the line mSolver.updateMesh(topoChangeMap1()); I guess this is to update the tetDecompositionMotionSolver but I do not understand why this required after a topological change, since it only moves the inner points.

I hope someone could give my some hints about the syntax of this line
autoPtr<mapPolyMesh> topoChangeMap1 = topoChanger_.changeMesh();
and point me into the right direction to get my case running in parallel.

Cheers Peter
Peter_600 is offline   Reply With Quote


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
engine flow field simulation Sridhar Main CFD Forum 10 March 30, 2016 01:28
Engine simulation mihirmeetarbhan ANSYS 0 January 16, 2012 20:36
error using Grid Engine Andrea_85 OpenFOAM 1 September 15, 2011 04:14
IC Engine simulation in Fluent Ravi Kiran FLUENT 0 March 6, 2006 00:48
Question concerning about the flow simulation of a fan in an engine room. ghlee Main CFD Forum 3 October 21, 1998 07:05

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