|
[Sponsors] |
DecomposePar filterPatches copyUniform cellDist functionality |
|
LinkBack | Thread Tools | Search this Thread | Display Modes |
June 6, 2008, 07: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 |
|
|
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
FSI Functionality: CFX/ANSYS vs Adina | Novak S. J. Elliott | CFX | 1 | August 30, 2013 11:11 |
Preview of Coming Equation Writing Functionality | Peter | Main CFD Forum | 0 | February 14, 2009 15:14 |
Best way to maintain additional functionality between versions | kian | OpenFOAM | 0 | September 5, 2008 11:50 |
Adding functionality to classes | sergio | OpenFOAM | 9 | March 13, 2008 05:18 |
Turbo functionality is not enabled! | nancy | FLUENT | 0 | October 9, 2003 15:44 |