|
[Sponsors] |
DecomposePar filterPatches copyUniform cellDist functionality |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
June 6, 2008, 08:45 |
Dear Forum Users
Wish you
|
#1 |
Senior Member
Join Date: Mar 2009
Posts: 248
Rep Power: 18 |
Dear Forum Users
Wish you all good FOAMing today :-) Need some help to figure out the proper usage of decomposePar. Here are some related queries: 1) What is the significance of "delta" being used for the geometrical decomposition options. In the constructor of geomDecomp a tensor is being defined this way: <pre> ----------------------------------- scalar d = 1 - 0.5*delta_*delta_; scalar d2 = sqr(d); scalar a = delta_; scalar a2 = sqr(a); rotDelta_ = tensor ( d2, -a*d, a, a*d - a2*d, a*a2 + d2, -2*a*d, a*d2 + a2, a*d - a2*d, d2 - a2 ); -------------------------------------- </pre> which is later used to do a rotation of pointField in the derived classes simpleGeomDecomp and hierarchGeomDecomp. This operation is done in the labelList decompose(const pointField&); member function of the respective derived classes ..... .... pointField rotatedPoints = rotDelta_ & points; .... ... 2) what is the effect of the option -copyUniform. The code corresponding to this option is in decomposePar.c (lines 575 - 600). This action is done when this option is selected: <pre> -------------------------------------- // Any non-decomposed data to copy? if (uniformDir.size() > 0) { if (copyUniform || mesh.distributed()) { cp(uniformDir, processorDb.timePath()/"uniform"); } else { fileName timePath = processorDb.timePath(); if (timePath[0] != '/') { // Adapt uniformDir and timePath to be relative paths. string parentPath(string("..")/".."); fileName currentDir(cwd()); chDir(timePath); ln(parentPath/uniformDir, parentPath/timePath/"uniform"); chDir(currentDir); } else { ln(uniformDir, timePath/"uniform"); } } } </pre> ---------------------------------------- but I couldn't understand it , so please comment on this one . 3) the last query is of similar nature regarding the option -filterPatches. This option is passed on to the mesh.decomposeMesh(filterPatches); and in decomposeMesh.C (lines 634-647) the corresponding code is: --------------- <pre> forAll (oldPatchSizes, patchI) { if (!filterEmptyPatches || oldPatchSizes[patchI] > 0) { curBoundaryAddressing[nPatches] = patchI; curPatchSizes[nPatches] = oldPatchSizes[patchI]; curPatchStarts[nPatches] = oldPatchStarts[patchI]; nPatches++; } } </pre> ------------------------ I hope to get some feedback from the experts. With Best Regards Jaswi |
|
June 10, 2008, 14:59 |
1) is a slight perturbation so
|
#2 |
Senior Member
Mattijs Janssens
Join Date: Mar 2009
Posts: 1,419
Rep Power: 26 |
1) is a slight perturbation so on a perfectly aligned testcase cells go either into the 'top' processor or in the 'bottom' one and not one up, one down, one up etc.
2) it copies the 'uniform' subdirectory of a time. This contains any data which does not need to be decomposed. For data-distributed running this needs to be copied to all processor directories. 3) some applications and boundary conditions require all patches to be present on all processors (and in the same order), even if they locally have no faces. Some solvers and boundary conditions however don't care so there you could compress out the zero-sized boundaries. |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
FSI Functionality: CFX/ANSYS vs Adina | Novak S. J. Elliott | CFX | 1 | August 30, 2013 12:11 |
Preview of Coming Equation Writing Functionality | Peter | Main CFD Forum | 0 | February 14, 2009 16:14 |
Best way to maintain additional functionality between versions | kian | OpenFOAM | 0 | September 5, 2008 12:50 |
Adding functionality to classes | sergio | OpenFOAM | 9 | March 13, 2008 06:18 |
Turbo functionality is not enabled! | nancy | FLUENT | 0 | October 9, 2003 16:44 |