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

Engine Simulation in parallel

Register Blogs Community New Posts Updated Threads Search

Like Tree2Likes
  • 2 Post By Peter_600

Reply
 
LinkBack Thread Tools Search this Thread Display Modes
Old   July 26, 2012, 06:02
Default Engine Simulation in parallel
  #1
Senior Member
 
Join Date: Oct 2009
Posts: 140
Rep Power: 16
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:

Code:
[0] 
[0] 
[0] --> FOAM FATAL ERROR: 
[0] Not implemented
[0] 
[0]     From function globalTetPolyPatchFaceDecomp::updateMesh()
[0]     in file tetPolyMeshFaceDecomp/tetPolyPatches/constraint/global/globalTetPolyPatchFaceDecomp.C at line 152.
[0] 
FOAM parallel run aborting
[0] 
--------------------------------------------------------------------------
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 )


Code:
autoPtr<mapPolyMesh> topoChangeMap1 = topoChanger_.changeMesh();
     
     bool meshChanged = topoChangeMap1->morphing();                // included from  "mapPolyMesh.H"
     
     pointField newPoints = points();
     
     if (topoChangeMap1->morphing())
       {          
         mSolver.updateMesh(topoChangeMap1());
     
        if (topoChangeMap1().hasMotionPoints())
        {
       
        Info << "movePoints(topoChangeMap1().preMotionPoints());" <<endl;
            movePoints(topoChangeMap1().preMotionPoints());
            newPoints = topoChangeMap1().preMotionPoints();
        }
        setV0();
        resetMotion();
    }
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
Code:
autoPtr<mapPolyMesh> topoChangeMap1 = topoChanger_.changeMesh();
and point me into the right direction to get my case running in parallel.


Cheers Peter
blttkgl and 2538sukham like this.
Peter_600 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
engine flow field simulation Sridhar Main CFD Forum 10 March 30, 2016 01:28
Engine simulation mihirmeetarbhan ANSYS 0 January 16, 2012 19:36
error using Grid Engine Andrea_85 OpenFOAM 1 September 15, 2011 04:14
IC Engine simulation in Fluent Ravi Kiran FLUENT 0 March 5, 2006 23: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 05:15.