|
[Sponsors] |
July 11, 2012, 14:24 |
Parallel interDyMFoam cellLevel problem
|
#1 |
New Member
Tyler V
Join Date: Jul 2012
Posts: 24
Rep Power: 14 |
I am working with the interDyMFoam solver in parallel and have run into a problem with the adaptive mesh refinement. For my case, I run a few time steps serially to pre-adapt the mesh to the initial condition (creating time folders TIME1 and TIME2, for example), then run decomposePar to begin the main run in parallel (starting at time folder TIME2).
The 'startFrom' value in my controlDict is set to 'latestTime' and the pre-adaptation is done using a modified version of interDyMFoam with only the mesh adaptation routines. The problem I am having is that even though decomposePar puts cellLevel from TIME2 into the processorX/TIME2 folder, it is not put into the processorX/TIME2/polyMesh folder and the parallel run does not load it. Even though the mesh is already refined, it resets the level to 0 everywhere on the first parallel time step, which creates excessive refinement. If I do the main run serially, this problem does not occur. How can I make decomposePar also decompose the cellLevel into the polyMesh folder so the parallel run loads the correct cellLevel rather than resetting it to 0? Any help would be greatly appreciated! Last edited by tgvosk; July 11, 2012 at 14:37. Reason: Noticed that there was no cellLevel in polyMesh |
|
October 2, 2012, 18:13 |
|
#2 |
Senior Member
Kyle Mooney
Join Date: Jul 2009
Location: San Francisco, CA USA
Posts: 323
Rep Power: 18 |
I noticed the same problem. In response I wrote a quick exe. that would load the cellLevel volScalarField and write it into the correct directory as a labelList.
This does not fix the problem. After resuming the run post-load balance no further hex cell refinement operations would occur for some reason. The hex refinement engine also appears to be looking for a pointScalarField pointLevel. Unfortunately this is not mapped at all so there lies another problem. So far I am unable to find a good way to load balance with interDyMFoam, which is confusing considering it may be the solver which demands dynamic load balancing more than any other. |
|
October 2, 2012, 18:34 |
|
#3 |
Senior Member
Kyle Mooney
Join Date: Jul 2009
Location: San Francisco, CA USA
Posts: 323
Rep Power: 18 |
There is a function that might be of use:
void Foam::hexRef8::distribute(const mapDistributePolyMesh& map) from hexRef8.C After adding some extra pointers I was able to send the mapDistributePolyMesh generated by fvMeshDistribute to this function to no avail. I received all sorts of seg faults. This is supposed to map the cellLevel, pointLevel, and refinementHistory fields. In theory this is what we need... |
|
February 17, 2014, 10:48 |
Hi!
|
#4 |
New Member
Timo Kulju
Join Date: Aug 2009
Posts: 22
Rep Power: 17 |
Have you been able to get this load balancing to work? It's buzzling me again... I tried to hack the redistributePar, and got the mesh to be distributed, but the fields do not. Havent' tried the hexRef8::distribute yet...
|
|
February 17, 2014, 16:09 |
Load Balancing
|
#5 |
New Member
Tyler V
Join Date: Jul 2012
Posts: 24
Rep Power: 14 |
I have a parallel load balancing library working with 2.1.x, but it requires fixing a number of bugs in various parts of the mesh libraries (particularly in the distribute functions).
I plan to make the library repo public sometime in the next couple months. |
|
February 19, 2014, 03:24 |
|
#6 |
New Member
Timo Kulju
Join Date: Aug 2009
Posts: 22
Rep Power: 17 |
Maybe some could explain this dilemma. By executing
Code:
autoPtr<mapDistributePolyMesh> map = distributor.distribute(finalDecomp); For the refinement history stuff, I think they could be mapped as Code:
// Update celllevel map().distributeCellData(cellLevel); // Update pointlevel map().distributePointData(pointLevel); // Update refinement tree if (history().active()) { history().distribute(map); } |
|
Tags |
adaptive mesh refinement, openfoam |
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
problem in the CFX12.1 parallel computation | BalanceChen | ANSYS | 2 | July 7, 2011 11:26 |
Parallel UDF problem, hello world version | pilou | FLUENT | 0 | March 10, 2011 09:20 |
Partitioning problem with interDyMFoam | DLC | OpenFOAM | 0 | March 7, 2011 18:28 |
A Strange Problem in making Parallel (Ansys/CFX 12) | a.sarami | CFX | 13 | October 7, 2010 02:33 |
cfx4 parallel sover Problem!! HELP | Richard.A | CFX | 2 | August 3, 2002 04:54 |