MAIA bb96820c
Multiphysics at AIA
|
#include <cartesiangridgenpar.h>
Public Member Functions | |
MLong & | a_parentId (const MInt cellId) |
Returns the parent of the cell cellId . More... | |
const MLong & | a_parentId (const MInt cellId) const |
Returns the parent of the cell cellId . More... | |
MInt & | a_level (const MInt cellId) |
Returns the level of the cell cellId . More... | |
const MInt & | a_level (const MInt cellId) const |
Returns the level of the cell cellId . More... | |
MInt & | a_noSolidLayer (const MInt cellId, const MInt solver) |
Returns the solid layer of the cell cellId . More... | |
const MInt & | a_noSolidLayer (const MInt cellId, const MInt solver) const |
Returns the solid layer of the cell cellId . More... | |
MLong & | a_globalId (const MInt cellId) |
Returns the globalId of the cell cellId . More... | |
const MLong & | a_globalId (const MInt cellId) const |
Returns the globalId of the cell cellId . More... | |
MInt & | a_noChildren (const MInt cellId) |
Returns the no. of children of the cell cellId . More... | |
const MInt & | a_noChildren (const MInt cellId) const |
Returns the no. of children of the cell cellId . More... | |
MFloat & | a_coordinate (const MInt cellId, const MInt dim) |
Returns the coordinate of the cell cellId for dimension dim . More... | |
const MFloat & | a_coordinate (const MInt cellId, const MInt dim) const |
Returns the coordinate of the cell cellId for dimension dim . More... | |
MLong & | a_childId (const MInt cellId, const MInt position) |
Returns the child id of the cell cellId position . More... | |
const MLong & | a_childId (const MInt cellId, const MInt position) const |
Returns the child id of the cell cellId position . More... | |
MChar & | a_hasProperty (const MInt cellId, const MInt p) |
Returns property p of the cell cellId . More... | |
MChar | a_hasProperty (const MInt cellId, const MInt p) const |
Returns property p of the cell cellId . More... | |
MInt & | a_refinementDistance (const MInt cellId) |
Returns rfnDistance of the cell cellId position . More... | |
const MInt & | a_refinementDistance (const MInt cellId) const |
Returns rfnDistance of the cell cellId position . More... | |
MLong & | a_neighborId (const MInt cellId, const MInt position) |
Returns the neighbor id of the cell cellId position . More... | |
const MLong & | a_neighborId (const MInt cellId, const MInt position) const |
Returns the neighbor id of the cell cellId position . More... | |
MChar & | a_isInSolver (const MInt cellId, const MInt solver) |
Multisolver grid: does a cell belong to a certain solver. More... | |
MChar | a_isInSolver (const MInt cellId, const MInt solver) const |
Multisolver grid: does a cell belong to a certain solver. More... | |
MChar & | a_isSolverBoundary (const MInt cellId, const MInt solver) |
Multisolver grid: does a cell belong to a certain solver. More... | |
MChar | a_isSolverBoundary (const MInt cellId, const MInt solver) const |
Multisolver grid: does a cell belong to a certain solver. More... | |
MChar & | a_isToRefineForSolver (const MInt cellId, const MInt solver) |
Multisolver grid: does a cell belong to a certain solver. More... | |
MChar | a_isToRefineForSolver (const MInt cellId, const MInt solver) const |
Multisolver grid: does a cell belong to a certain solver. More... | |
GridgenPar (const MPI_Comm comm, const MInt noSolvers) | |
generates a Cartesian grid in parallel More... | |
MPI_Comm | mpiComm () const |
MInt | domainId () const |
MInt | noDomains () const |
Static Public Member Functions | |
template<class T > | |
static void | quickSort (T *globalIdArray, MInt *lookup, MInt startindex, MInt endindex) |
sorts a list of integers and updates a second one More... | |
Protected Member Functions | |
void | initTimers () |
void | initMembers () |
initializes the member variables More... | |
void | readProperties () |
reads necessary properties from the property file More... | |
void | readSolverProperties (MInt solver) |
void | initGeometry () |
initializes the geometry More... | |
void | gridAlignCutOff () |
aligns the cutOffCoordinates with the grid More... | |
void | createInitialGrid () |
creates the initial grid More... | |
void | createStartGrid () |
creates the start grid More... | |
void | finalizeGrid () |
void | createComputationalMultisolverGrid () |
refinement > minLevel is processed in createComputationalMultisolverGrid More... | |
void | checkLBRefinementValidity () |
checks if this is a valid mesh also for LB computations More... | |
MInt | getAdjacentGridCells (MInt cellId, MInt *adjacentCells) |
Retrieves all direct and diagonal neighboring cells of the given cell. More... | |
void | refineComputationalGrid (MInt lvl) |
refines cells of the computational grid that are marked for refinement More... | |
void | saveGrid () |
writes the grid to file in parallel More... | |
void | saveGridDomain (MInt level_, MInt tag) |
degugging function writing the grid in serial More... | |
void | checkMemoryAvailability (MInt stage, MInt level_) |
void | refineGrid (MInt **offsets, MInt level_, MBool halo) |
refines the grid on a given level More... | |
void | refineGridPatch (MInt **offsets, MInt level_, MBool halo) |
refines the grid on a given level for a provided patch More... | |
void | refineCell (MInt id, MInt *currentChildId) |
refines a single cell More... | |
void | deleteOutsideCellsSerial (MInt level_) |
deletes the cells outside of the geometry More... | |
void | deleteCoarseSolidCellsSerial () |
performs deleting solid cells lower than maxRefinementLevel More... | |
void | deleteCoarseSolidCellsParallel () |
performs deleting solid cells lower than maxRefinementLevel More... | |
void | performCutOff (MInt **offsets, MInt level_, MBool deleteMode=false) |
performs a cut-off defined by the properties More... | |
void | keepOutsideBndryCellChildrenSerial (MInt *offsets, MInt level_) |
MInt | nghborStencil (MInt, MInt) |
void | createSolidCellLayer (MInt cellId, MInt solidLayer, MInt finalLayer_) |
void | keepOutsideBndryCellChildrenParallel (MInt level_) |
void | deleteOutsideCellsParallel (MInt level_) |
deletes outside cells in parallel mode More... | |
MInt | getLastNonWindowCell (MInt no_consider, MInt last) |
void | deleteCellReferences (MInt cell, MInt pos) |
deletes the references of a given cell More... | |
void | markInsideOutside (MInt **offsets, MInt level_) |
marks inside and outside cells More... | |
void | markInsideOutside (MInt **offsets, MInt level_, MInt solver) |
starts the inside-outside flooding for solvers More... | |
void | markSolverAffiliation (MInt level_) |
marks cells without solver affiliation as outside cells More... | |
void | excludeInsideOutside (MInt **offsets, MInt level_, MInt solver) |
excludes obvious non solver affiliated cells from the inside outside flooding More... | |
void | floodCells (std::stack< MInt > *fillStack, MChar marker) |
floods cells More... | |
void | floodCells (std::stack< MInt > *fillStack, MChar marker, MInt solver) |
void | findChildLevelNeighbors (MInt **offsets, MInt level_) |
updates the children of a given level More... | |
void | reorderCellsHilbert () |
reorders the cells after Hilbert id More... | |
void | parallelizeGrid () |
parallize the present grid More... | |
void | updateHaloOffsets (MInt l, MInt noHalos, MInt *rfnCountHalosDom) |
updates the offsets of the halos More... | |
void | updateOffsets (MInt gridLevel) |
updates the offsets More... | |
void | updateInterRankNeighbors () |
updates the neighbors on the neighboring ranks More... | |
void | findHaloAndWindowCells (std::vector< std::vector< MInt > > &winCellIdsPerDomain, std::vector< std::vector< MInt > > &haloCellIdsPerDomain) |
find window cells using the known halo cells More... | |
void | findHaloAndWindowCellsKD (std::vector< std::vector< MInt > > &winCellIdsPerDomain, std::vector< std::vector< MInt > > &haloCellIdsPerDomain) |
finds halo and window cells using a kd tree More... | |
void | updateGlobalIdsReferences () |
updates the references of all cells to use the global-ids More... | |
void | collectHaloChildren (MInt parentId, std::vector< MInt > *cellIdsPerDomain) |
recursively traverse the tree depth-first and collect halo cells More... | |
void | collectWindowChildren (MInt parentId, std::vector< MInt > *cellIdsPerDomain) |
recursively traverse the tree depth-first and collect window cells More... | |
void | reorderGlobalIdsDF () |
reorders the globalIds depth-first More... | |
void | traverseDFGlobalId (MInt parentId, MLong *globalId_, MLongScratchSpace &partitionCellList, MFloatScratchSpace &workloadPerCell, MFloat *currentWorkload, MFloatScratchSpace &weight, MFloatScratchSpace &workload, MInt *j) |
recursively traverses the octree More... | |
void | setCellWeights (MFloatScratchSpace &weight) |
sets the cell weights according to the box system More... | |
void | determineRankOffsets (MIntScratchSpace &offsets) |
void | markSolverForRefinement (MInt level_, MInt solver) |
void | concludeSolverRefinement (MInt level_) |
void | markLocalSolverRefinement (MInt level_, MInt solver) |
void | markPatchForSolverRefinement (MInt level_, MInt solver) |
void | markBndForSolverRefinement (MInt level_, MInt solver) |
void | markLocalBox (MInt level_, MInt patch, MInt solver) |
marks cells that lie in a box-type patch More... | |
void | markLocalRadius (MInt level_, MInt patch, MInt solver) |
marks cells that lie in a sphere-type patch More... | |
void | markLocalCylinder (MInt level_, MInt patch, MInt solver, MString patchStr) |
marks cells that lie in a cylinder-type patch More... | |
void | markLocalCone (MInt level_, MInt patch, MInt solver) |
marks cells that lie in a cone-type patch with a smooth hat More... | |
void | markLocalRectangleAngled (MInt level_, MInt patch, MInt solver) |
marks cells that lie in a rectangular-angled-type patch More... | |
void | markLocalCartesianWedge (MInt level_, MInt patch, MInt solver) |
void | markLocalFlatCone (MInt level_, MInt patch, MInt solver) |
void | markLocalSlicedCone (MInt level_, MInt patch, MInt solver, MString patchStr) |
marks cells that lie in a sliced cone-type patch More... | |
void | markLocalHat (MInt level_, MInt patch, MInt solver) |
marks cells that lie in a cone-type patch with a smooth hat More... | |
void | markBndDistance (MInt level_, MInt solver) |
marks cells that lie in a certain distance to the boundary More... | |
void | propagateDistance (MInt level_, MInt distance, std::vector< MInt > &rfnBoundaryGroup, MInt solver) |
propagates the distance away from the boundary More... | |
void | propagationStep (MInt cellId, MInt rfnDistance, MInt finalDistance, MInt solver) |
recursivley marks the cells with a distance More... | |
MBool | isInsideSlicedCone (const MFloat *const pointCoord, const MFloat *const leftCoord, const MFloat *const rightCoord, const MFloat *const leftNormal, const MFloat *const rightNormal, const MFloat *const normalDifforigAB, const MFloat leftR, const MFloat rightR) |
checks if point (cell) is inside a sliced cone More... | |
MBool | isInsideCylinder (const MFloat *const pointCoord, const MFloat *const leftCoord, const MFloat *const rightCoord, const MFloat *const normalDiffAB, const MFloat *const normalDiffBA, const MFloat radius, const MFloat innerRadius) |
checks if point (cell) is inside a cylinder More... | |
MBool | pointIsInside (MFloat *coordinates) |
checks if a given point is inside the geometry More... | |
MBool | pointIsInsideSolver (MFloat *coordinates, MInt solver) |
MBool | checkCellForCut (MInt id) |
checks if a cell has a cut with the geometry More... | |
void | copyCell (MInt from, MInt to) |
moves a cell from one location in the collector to another More... | |
void | swapCells (MInt cellId1, MInt cellId2) |
swaps two cells in memory More... | |
void | checkNeighborhood (MInt level_) |
checks if the neighborhood is correct More... | |
void | checkNeighborhoodDistance (MInt level_) |
checks if the distance between neighboring cells is alright More... | |
void | checkNeighborhoodIntegrity (MInt level_) |
checks if the neighborhood relation of the cells is alright More... | |
void | writeGridInformationPar () |
writes a pseudo solution file with some grid information More... | |
void | writeGridInformation (MInt level_, MInt tag) |
debugging function writing debug info to a file More... | |
void | writeParallelGeometry () |
void | checkLoadBalance (MInt in_level) |
checks if a dynamic load balancing is needed. More... | |
void | dynamicLoadBalancing () |
Rebalances the grid dynamicaly while grid building. More... | |
void | communicateInt (MIntScratchSpace &recvBuffer, MIntScratchSpace &noCellsToReceive, MIntScratchSpace &sendBuffer, MIntScratchSpace &noCellsToSend) |
Communicates an array of int values. More... | |
void | communicateLong (MLongScratchSpace &recvBuffer, MIntScratchSpace &noCellsToReceive, MLongScratchSpace &sendBuffer, MIntScratchSpace &noCellsToSend) |
Communicates an array of int values. More... | |
void | communicateDouble (MFloatScratchSpace &recvBuffer, MIntScratchSpace &noCellsToReceive, MFloatScratchSpace &sendBuffer, MIntScratchSpace &noCellsToSend) |
Communicates an array of double values. More... | |
void | communicateIntToNeighbors (MIntScratchSpace &recvMem, MIntScratchSpace &noCellsToReceive, MIntScratchSpace &sendMem, MIntScratchSpace &noCellsToSend, MInt noVar) |
Communicates Int values, with a variable nmbr of variables to the Neighbors. More... | |
void | communicateHaloGlobalIds (MInt level) |
communicate the global ids of the halo cells. More... | |
Definition at line 60 of file cartesiangridgenpar.h.
GridgenPar< nDim >::GridgenPar | ( | const MPI_Comm | comm, |
const MInt | noSolvers | ||
) |
The complete algorithm consitst of the following steps:
Create start grid (if required), can be found in createComputationalMultisolverGrid 5.1. Run over all levels that are still to be refined and do the following: 5.1.1 Update the m_levelOffsets of the next level. This generates a new offset range for the new level to create under the assumption that all cells on the current level are refined. 5.1.2 Update the halo cell offsets. This call the updateHaloCellOffsets(...) function. 5.1.3 Check memory availability. 5.1.4 Refine the normal cells and the halo cells. This calls refineGrid(...) similar to the serial case. To refine the halo cells the new halo cell offsets are provided. 5.1.5 Update the number of cells on this domain, since it has changed. 5.1.6 Find the neighbors for all newly generated normal and halo cells. This calls findChildLevelNeighbors(...) and provides the offsets for the normal cells and the halo cells of the current level. 5.1.7 Delete all normal outside cells. This has still to be done for the halo cells. 5.2 Again update the number of cells.
[in] | dimensions | the dimensionality of the problem |
Definition at line 139 of file cartesiangridgenpar.cpp.
|
inline |
Definition at line 91 of file cartesiangridgenpar.h.
|
inline |
Definition at line 93 of file cartesiangridgenpar.h.
|
inline |
Definition at line 85 of file cartesiangridgenpar.h.
|
inline |
Definition at line 87 of file cartesiangridgenpar.h.
|
inline |
Definition at line 77 of file cartesiangridgenpar.h.
|
inline |
Definition at line 79 of file cartesiangridgenpar.h.
|
inline |
Definition at line 97 of file cartesiangridgenpar.h.
|
inline |
Definition at line 99 of file cartesiangridgenpar.h.
|
inline |
Definition at line 115 of file cartesiangridgenpar.h.
|
inline |
Definition at line 119 of file cartesiangridgenpar.h.
|
inline |
Definition at line 124 of file cartesiangridgenpar.h.
|
inline |
Definition at line 128 of file cartesiangridgenpar.h.
|
inline |
Definition at line 133 of file cartesiangridgenpar.h.
|
inline |
Definition at line 137 of file cartesiangridgenpar.h.
|
inline |
Definition at line 67 of file cartesiangridgenpar.h.
|
inline |
Definition at line 69 of file cartesiangridgenpar.h.
|
inline |
Definition at line 107 of file cartesiangridgenpar.h.
|
inline |
Definition at line 110 of file cartesiangridgenpar.h.
|
inline |
Definition at line 81 of file cartesiangridgenpar.h.
|
inline |
Definition at line 83 of file cartesiangridgenpar.h.
|
inline |
Definition at line 71 of file cartesiangridgenpar.h.
|
inline |
Definition at line 73 of file cartesiangridgenpar.h.
|
inline |
Definition at line 63 of file cartesiangridgenpar.h.
|
inline |
Definition at line 65 of file cartesiangridgenpar.h.
|
inline |
Definition at line 101 of file cartesiangridgenpar.h.
|
inline |
Definition at line 104 of file cartesiangridgenpar.h.
|
protected |
This does the following: a. Create a target of the cell for the check b. Do the intersection test this calls getIntersectionElements from Geometry c. Returns the result. If more than one cut has appeared the cell has a cut
[in] | id | the id of the cell to check |
Definition at line 2150 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 5668 of file cartesiangridgenpar.cpp.
|
protected |
This funtions checks the current state of the grid generation.
Definition at line 7301 of file cartesiangridgenpar.cpp.
|
protected |
[in] | cell | offsets to run on (maybe not needed) |
[in] | level | to run the check on |
[in] | solver | to run the check for |
Definition at line 1528 of file cartesiangridgenpar.cpp.
|
protected |
Finds minimal and maximal cells and walks in each direction and checks the neighborhood by comparing the coordinates
[in] | level_ | the level to apply this algorithm to |
Definition at line 10535 of file cartesiangridgenpar.cpp.
|
protected |
[in] | level_ | the level to check |
Definition at line 10673 of file cartesiangridgenpar.cpp.
|
protected |
[in] | level_ | the level to check |
Definition at line 10719 of file cartesiangridgenpar.cpp.
|
protected |
This function calls itself as long as children are avalailable. It traverses the tree starting at given halo node and collects the halos in pre-order depth-first manner in a vector which is passed down as a pointer.
[in] | parentId | the id of the current parrent to traverse |
[in] | cellIdsPerDomain | the collection of the halo cells passed so far |
Definition at line 4890 of file cartesiangridgenpar.cpp.
|
protected |
This function calls itself as long as children are avalailable. It traverses the tree starting at given window node and collects the windows in pre-order depth-first manner in a vector which is passed down as a pointer.
[in] | parentId | the id of the current parrent to traverse |
[in] | cellIdsPerDomain | the collection of the window cells passed so far |
Definition at line 4915 of file cartesiangridgenpar.cpp.
|
protected |
The function sends the parts of sendBuffer to the other domains.
Even through it looks like a complete blocking communication, it is used mostly during the load balancing. At this stage, each domain only communicate with the it's directly neighboring domains. So that most blocking communication takes places in parallel. I.e. while domain 3 is receiving from 4 and 5 and sending to 1 and 2, domain 1223 is receiving from 1224 and 1225 and sending to 1221 and 1222.
Definition at line 9433 of file cartesiangridgenpar.cpp.
|
protected |
The function communicates the new global ids of the halo cells.
The coordinate check is currently the only way i found out to get the right new global id. Sending the level of the halo cell would reduce the amoung of cells to look through, but it will also add another communication.
Definition at line 8876 of file cartesiangridgenpar.cpp.
|
protected |
The function sends the parts of sendBuffer to the other domains.
Even through it looks like a complete blocking communication, it is used mostly during the load balancing. At this stage, each domain only communicate with the it's directly neighboring domains. So that most blocking communication takes places in parallel. I.e. while domain 3 is receiving from 4 and 5 and sending to 1 and 2, domain 1223 is receiving from 1224 and 1225 and sending to 1221 and 1222.
Definition at line 9288 of file cartesiangridgenpar.cpp.
|
protected |
a check whether a send-recv mismatch exist is not performed, mpi will tell you
Definition at line 9492 of file cartesiangridgenpar.cpp.
|
protected |
The function sends the parts of sendBuffer to the other domains.
Even through it looks like a complete blocking communication, it is used mostly during the load balancing. At this stage, each domain only communicate with the it's directly neighboring domains. So that most blocking communication takes places in parallel. I.e. while domain 3 is receiving from 4 and 5 and sending to 1 and 2, domain 1223 is receiving from 1224 and 1225 and sending to 1221 and 1222.
Definition at line 9360 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 1777 of file cartesiangridgenpar.cpp.
|
protected |
Within this function all the information is copied to the new location.
[in] | from | the id of the cell to be moved |
[in] | to | the id of the cell that should be overwritten |
Definition at line 4054 of file cartesiangridgenpar.cpp.
|
protected |
First, the uniform grid up to the minimal maxUniformRefinementLevel of the solvers is created in createStartGrid. Second, the remaining levels are looped up and the local solver refinement methods are called. They mark cells as to be refined for a specific solver. In concludeSolver refinement, the solver refinement request is concluded to a single property no 5. Then, the offsets are updated and the grid is refined.
Definition at line 1732 of file cartesiangridgenpar.cpp.
|
protected |
4.1 Creates an initial cube around the geometry. 4.2 Refines the initial cube to the initialGeometricalRfnLvl. In each iteration the following is performed: 4.2.1 update the level offsets: this gets rid of the delettion of lower levels by using the following structure. Based on the m_initialGeometricalRfnLevel the first initial cube is located at the beginning or at the end of the collector:
Definition at line 1352 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 2842 of file cartesiangridgenpar.cpp.
|
protected |
The algorithm does the following:
5.1. Check if we are running in parallel, if so parallelize the grid. This calls parallelizeGrid(). 5.2. Run over all levels that are still to be refined and do the following: 5.2.1 Update the m_levelOffsets of the next level. This generates a new offset range for the new level to create under the assumption that all cells on the current level are refined. 5.2.2 Update the halo cell offsets. This call the updateHaloCellOffsets(...) function. 5.2.3 Check memory availability. 5.2.4 Refine the normal cells and the halo cells. This calls refineGrid(...) similar to the serial case. To refine the halo cells the new halo cell offsets are provided. 5.2.5 Update the number of cells on this domain, since it has changed. 5.2.6 Find the neighbors for all newly generated normal and halo cells. This calls findChildLevelNeighbors(...) and provides the offsets for the normal cells and the halo cells of the current level. 5.2.7 Delete all normal outside cells. This has still to be done for the halo cells. 5.3 Again update the number of cells. 5.4 If the code runs parallel and no further refinement is requested, finish the process otherwise nothing is required at this stage. Finishing calls updateInterRankNeighbors().
Definition at line 4180 of file cartesiangridgenpar.cpp.
|
protected |
08.05.2014: Removed pointer references (Jerry Grimmen)
The algorithm does the following:
a. Run over all neighbors of the given cell and delete the reference to this cell. b. Go to the parent, and update the according child-id.
[in] | cell | id of the cell to delete |
[in] | pos | the id of the cell |
Definition at line 3141 of file cartesiangridgenpar.cpp.
|
protected |
The function call when we set ggp_keepOutsideBndryCellChildren = 3 in property file, for creating solid cells. After reaching maxRefinementLevel when need delete all solid cells which lower than maxRfnmntLvl, thus in this function run through maxRefinementLevel-1 to minlevel to delete all solid cells which havw no child.
Definition at line 2556 of file cartesiangridgenpar.cpp.
|
protected |
The function call when we set ggp_keepOutsideBndryCellChildren = 3 in property file, for creating solid cells. After reaching maxRefinementLevel when need delete all solid cells which lower than maxRfnmntLvl, thus in this function run through maxRefinementLevel-1 to minlevel to delete all solid cells which havw no child.
Definition at line 2484 of file cartesiangridgenpar.cpp.
|
protected |
Similar to deleteOutsideCellsSerial(...) this function does the following:
a. Mark all inside and outside cells: calls markInsideOutside(...) with the normal cell and halo-cell offsets. b. perform cutOff c. Runs over all cells on the given level and deletes those cells which are marked as outside (b_properties[0] = 0 && b_properties[1] = 0). d. Runs over all halo cells on the given level and deletes those halo cells which are marked as outside (b_properties[0] = 0) or not referenced anymore (non-existing neighborhood). This algorithm runs over all neighbor domains and then over the according halo-cell offsets. e. Generates look-up table to allow access to cells in globalId order, if required ( i.e. important for the exchange in updateInterRankNeighbors()).
[in] | level_ | the level to check |
Definition at line 3185 of file cartesiangridgenpar.cpp.
|
protected |
Outside cells are detected in the following way:
a. Mark all inside and outside cells. This calls markInsideOutside(...). b. perform cutOff c. marks solver affiliation and declares cells for deletion that are inside but without solver affiliation d. keeps some outside cells needed for grid refinement steps along walls in the solver run e. delete all outside cells. These are the cells which were not marked as inside and are not a boundary cell. The deletion is performed from the back of the offsetrange. The deletion moves a cell at the end of the offsetrange to the location of the cell to be deleted. This is done by calling the copy cell function.
All neighbors are updated to have no reference to the deleted cell anymore. The size of the offsetrange is decremented by 1 upon deletion.
[in] | level_ | the level to check outside cells for |
Definition at line 2370 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 4593 of file cartesiangridgenpar.cpp.
|
inline |
Definition at line 147 of file cartesiangridgenpar.h.
|
protected |
This function can be splitted in the following big parts:
Definition at line 7401 of file cartesiangridgenpar.cpp.
|
protected |
Before the inside outside check of a specific solver is performed, cells not belonging to the solver are marked as visited, that reduces the number of cells to flood in the following step: markInsideOutside( , ,solver) While doing so, the visited property is reset for cells that might be inside
[in] | level_ | the level to check |
[in] | solver | specific solver |
Definition at line 1459 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 2000 of file cartesiangridgenpar.cpp.
|
protected |
This algorithm runs over all children of a given level and updates the neighborhood. This is simply be done by checking if a missing connection is considered to be an inside or an outside connection:
The reconstruction is based on hardcoded neighboring connections, i.e., it is known for a given direction which internal sibling is a neighbor due to the relative position of a child beneath a parent. This is also given across neighboring parents. Therefore an outside neighbor can be found by going to the parent and then to the neighboring parent in the desired direction and then inspecting a certain child of this cell.
[in] | level | the level of the parent, for which the neighborhood of the children need to be updated |
Definition at line 2177 of file cartesiangridgenpar.cpp.
|
protected |
[in] | winCellIdsPerDomain | : vector of window cells to be filled |
[in] | haloCellIdsPerDomain | vector of halo cells to be filled |
Definition at line 9090 of file cartesiangridgenpar.cpp.
|
protected |
does the same as findHaloAndWindowCells
Jerry: The coordinate check is currently the only way i found out to get the right ids. Sending the level of the halo cell reduces the amoung of cells to look through, but it will also add another communication.
Definition at line 9142 of file cartesiangridgenpar.cpp.
|
protected |
Having found a cell do a flooding on the inside cells by checking the neighborhood recursively by making use of the stack. Only add cells that are not boundary cells.
[in] | fillStack | the stack carrying the initial cells |
[in] | marker | marks if the cells are marked inside (1) or outside (0) |
Definition at line 2293 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 2320 of file cartesiangridgenpar.cpp.
|
protected |
[in] | cellId | the id of the cell to return the neighbors from |
[in] | adjacentCells | pointer to an array that will be filled with the results |
Definition at line 5625 of file cartesiangridgenpar.cpp.
|
protected |
|
protected |
aligns the cutOffCoordinates of boxes with the grid on the m_minLevel this is necessary for cutOffs at levels higher than m_minLevel
Definition at line 1294 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 1203 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 1122 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 198 of file cartesiangridgenpar.cpp.
|
protected |
[in] | pointCoord | cell coordinate |
[in] | (left/right)Coord | coordinates of the left and right circles |
[in] | normalDiff(AB/BA) | cylinder axis |
[in] | radius | radius of the cylinder |
[in] | innerRadius | inner radius of the cylinder (tube) |
Definition at line 6267 of file cartesiangridgenpar.cpp.
|
protected |
This algorithm does the following:
a. For any given point we find the perpendicular projection of vector p (the point we are testing): lambda = \frac{(\vec{p} - \vec{a}) \cdot (\vec{b} - \vec{a})} {(\vec{b} - \vec{a}) \cdot (\vec{b} - \vec{a})} where, \vec{a} and/or \vec{b}: are the center points of the circles that form the sliced cone
b. Calculate the point of projection of p on the line: \vec{r_p} = \vec{a} + lambda * (\vec{b} - \vec{a})
c. Calculate the distance of the point to its projection on the line: lenght = |\vec{p} - \vec{r_p}|
d. Check if point is inside the sliced cone radius: length <= Ra + lambda * (Rb - Ra), where Ra/Rb: are the radius of the circles that form the sliced cone
e. Finally, check if the point lies between the circles that form the sliced cone by calculating the normals of the circles and comparing if the point is in the opposite direction of both normals
[in] | pointCoord | cell coordinate |
[in] | (left/right)Coord | coordinates of the left and right circles |
[in] | (left/right)Normal | normals of the left and right circles |
[in] | normalDifforigAB | sliced cone axis |
[in] | (left/right)R | radius of the left and right circles |
Definition at line 6945 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 3458 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 2715 of file cartesiangridgenpar.cpp.
|
protected |
[in] | level_ | the level to run over |
[in] | dists | the distances to use |
Definition at line 7264 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 1866 of file cartesiangridgenpar.cpp.
|
protected |
This algorithm runs over all cells in the provided offset range and checks for each cell if it has beend marked (b_properties[6]). If not, this cell is checked if is a boundary cell (b_properties[1]). If not, this cell is checked for its position (inside or outside). If it is inside a inside-flooding is performed by calling floodCells with the argument "1" for inside determination. Otherwise an outside-flooding is performed, which call floodCells with the argument "0" for outside determination.
[in] | offsets | a pointer to the offsets array, i.e., the normal cells or the halo cells |
[in] | level_ | the level to check |
Definition at line 2244 of file cartesiangridgenpar.cpp.
|
protected |
similar to markInsideOutside(,) but runs only for a specific solver
[in] | offsets | the range of cells to run on |
[in] | level_ | the level to check |
[in] | solver | specific solver |
Definition at line 1485 of file cartesiangridgenpar.cpp.
|
protected |
This algorithm does the following:
a. It performs a dry run of the refinement, i.e., runs over alls cells on the current level, counts the number of cells to refine (the cells which are inside a given box) and marks these cells (b_properties[5] = 1). b. the same is done for the halo cells if we run in parallel mode
[in] | level_ | the level to run over |
Definition at line 6033 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 6303 of file cartesiangridgenpar.cpp.
|
protected |
This algorithm does the following:
a. It performs a dry run of the refinement, i.e., runs over alls cells on the current level, counts the number of cells to refine (the cells which are inside a given cone and sphere) and marks these cells (b_properties[5] = 1). First the center of the sphere and the new center point of the cone are calculated. Then, the distance of a coordinates of a given cell is calculated to obatain the enclosed angle between this the vector of the coordinates and the first provided point. In case the angle is larger than the one provided in the properties, this cell is marked as outside, otherwise as inside. The distance of the coordinates to the line is calculated as described in markLocalCylinder. b. The same is done for the halo cells if we run in parallel mode
[in] | level | the level to run over |
Definition at line 6588 of file cartesiangridgenpar.cpp.
|
protected |
This algorithm does the following:
a. It performs a dry run of the refinement, i.e., runs over alls cells on the current level, counts the number of cells to refine (the cells which are inside a given cylinder) and marks these cells (b_properties[5] = 1). The according formula for the calculation of the distance \(d\) of a given point \(\vec{p}\) (cell coordinates) is given by
\[d = \left|\left(\vec{p}-\vec{o}_1\right)\times\vec{r}\right|,\]
where \(\vec{o}_1\) is the first center-point provided in the property, \(\vec{r}\) is the normalized vector between \(\vec{o}_1\) and \(\vec{o}_2\) (as provieded in thr property file).
b. The same is done for the halo cells if we run in parallel mode
[in] | level | the level to run over |
Definition at line 6166 of file cartesiangridgenpar.cpp.
|
protected |
|
protected |
This algorithm does the following:
a. It performs a dry run of the refinement, i.e., runs over alls cells on the current level, counts the number of cells to refine (the cells which are inside a given cone and sphere) and marks these cells (b_properties[5] = 1). First the center of the sphere and the new center point of the cone are calculated. Then, the distance of a coordinates of a given cell is calculated to obtain the enclosed angle between this the vector of the coordinates and the first provided point. In case the angle is larger than the one provided in the properties, this cell is marked as outside, otherwise as inside. The distance of the coordinates to the line is calculated as described in markLocalCylinder. b. The same is done for the halo cells if we run in parallel mode
[in] | level | the level to run over |
Definition at line 7015 of file cartesiangridgenpar.cpp.
|
protected |
This algorithm does the following:
a. It performs a dry run of the refinement, i.e., runs over all cells on the current level, counts the number of cells to refine (the cells which are inside a given sphere) and marks these cells (b_properties[5] = 1). b. the same is done for the halo cells if we run in parallel mode
[in] | level | the level to run over |
Definition at line 6094 of file cartesiangridgenpar.cpp.
|
protected |
This algorithm does the following:
a. It performs a dry run of the refinement, i.e., runs over alls cells on the current level, counts the number of cells to refine (the cells which are inside a given cylinder) and marks these cells (b_properties[5] = 1). The according formula for the calculation of the distance \(d\) of a given point \(\vec{p}\) (cell coordinates) is given by
\[d = \left|\left(\vec{p}-\vec{o}_1\right)\times\vec{r}\right|,\]
where \(\vec{o}_1\) is the first center-point provided in the property, \(\vec{r}\) is the normalized vector between \(\vec{o}_1\) and \(\vec{o}_2\) (as provieded in thr property file).
b. The same is done for the halo cells if we run in parallel mode
[in] | level | the level to run over |
Definition at line 6423 of file cartesiangridgenpar.cpp.
|
protected |
This algorithm does the following:
a. Precalculate the required values such as the sliced cone axis, circle normals according to the type of frustum cone being used (aligned or not aligned circle normals). For the non-aligned case, a check of the provided normal vectors is done.
b. A dry-run is performed to mark the cells that must be refined in the current level and the same is done for the halo cells if we run in parallel mode.
[in] | level | the level to run over |
[in] | patchStr | the type of frustum cone patch being used |
Definition at line 6778 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 1819 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 1834 of file cartesiangridgenpar.cpp.
|
protected |
In multisolver grids, a refined grid might contain cells that are inside the set of solver geometries but are not affiliated to a solver. Furthermore, these cells might be cut by any geometry, i.e., they are boundary cells. Cells without a solver are marked outside and lose their boundary cell status to be deleted.
[in] | level_ | the level to check |
Definition at line 3410 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 1978 of file cartesiangridgenpar.cpp.
|
inline |
Definition at line 146 of file cartesiangridgenpar.h.
|
protected |
Definition at line 2825 of file cartesiangridgenpar.cpp.
|
inline |
Definition at line 148 of file cartesiangridgenpar.h.
|
protected |
This function parallelizes the grid with the following algorithm:
a. Generate the rank offsets in the current list of all cells. This continuously devides the number of the remaining cells by the number of the remaining ranks. b. Identify the neighbor domains. This runs over the offset for my domain and checks if a neighbor belongs to another offset. If so, a list of neighboring domains is updated by the index of the offset in which the neighbor is located. The number of halo cells for this domain is then incremented. The cell in my domain offset is marked as window cell, while the neighbor on the other domain is marked as halo cell. c. Find halo cells in other domains and move them to the end of the collector. This runs over the offsets of the domains found as a neighbor in the previous step and moves the cells to the end od the collector. Therefore the offsets for the halo cells at the end of the collector is calculated per neighboring domain. The movement also updates the neighbors which are in my domain and deletes the neighbors which are outside my domain. The update of local neighbors already includes the shift performed in the next step. d. Shift all cells to the beginning of the collector. This completely moves the solver of my local cells to the beginning of the collector. Then all neighbor ids are simply updated by shifting the neighbor id by the size of the shift. e. Update number of cells and the level offsets. This finally removes the knowledge about any other cell which does not belong to my domain.
[in] | level_ | indicator for the timers |
Definition at line 4372 of file cartesiangridgenpar.cpp.
|
protected |
Runs over all cells and checks if cut-offs appear:
[in] | level_ | the level to check |
Definition at line 2882 of file cartesiangridgenpar.cpp.
|
protected |
For each direction a ray is created from the given point towards the outer geometry extent. This ray is then used for a cut-test using the getLineIntersectionElements function of Geometry. Two cases can appear:
[in] | coordinates | the coordinates to check |
Definition at line 4137 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 4143 of file cartesiangridgenpar.cpp.
|
protected |
This function propagates distance information starting at the boundaries and stores them in the local variable m_rfnDistance:
a. Start by collecting all boundary cells. Unfortunately, we have to do an intersection test again, since we probably want to refine only certain boundaries (defined by the property localRfnBoundaryIds). The collected cells are stored in the vector boundaryCells. b. Now start to recursivley mark the cells by their distance. This calls progagationStep(...), which recursively runs over all cells and checks for new unmarked cells. For the serial case, the algorithm is finished at this point. c. Otherwise, if we have a parallel calculation, we need to check if we have to cross a domain boundary with our propagation. d. Exchange information as long as we have local changes. determine whether we have changes by comparing a_refinementDistance on halo and window cells this has to be repeated until we are finished, exchange information as long as we have local changes
[in] | level_,the | level to run the propagation on |
[in] | distance,the | final distance for this level |
[in] | rfnBoundaryGroup,group | of boundaries to refine |
[in] | solver,the | solver to check for refinement |
Definition at line 5825 of file cartesiangridgenpar.cpp.
|
protected |
This is a recursive function, which is initially called with a boundary cell-id. For this cell, the neighborhood is then recursivley investigated. If a neighbor cell has not been visited, yet (m_rfnDistance < 0) it is traversed and set to an incremental distance. If a neighbor has a distance smaller than the incremented distance it is not traversed.
[in] | cellId | the current cell-id to check |
[in] | rfnDistance | the current distance to use |
[in] | finalDistance | the final distance to use |
Definition at line 5989 of file cartesiangridgenpar.cpp.
|
static |
This function uses the well known quick-sort algorithm. In addition a second array can be provided to be used as a lookup table. This function is for example to sort the array of Hilbert ids. Additionally, a second array containing a linear increase of cell ids starting from cell 0 is provided. In case the order of the ids is changed in the array to sort the second array is changed accordingly. This can then be used to do a pre-sorting of the Hilbert ids and the second array is incorporated into the swapping of the memory.
in] T Data type of array to sort.
[in] | globalIdArray | the array to sort |
[in] | lookup | the lookup table to be swapped according to the changes in the globalIdArray |
[in] | startIndex | the index of the beginning of the fraction to sort |
[in] | endIndex | the index of the end of the fraction to sort |
Definition at line 4009 of file cartesiangridgenpar.cpp.
|
protected |
|
protected |
|
protected |
Refines a single cell by the following algorithm: For 8 child cells do: a. Create coordinates b. Init child c. Check if parent has a cut with the geometry, if so check this cell for a cut as well (this calls checkCellForCut(...)) d. Update the parent
[in] | id | the id of the cell to refine |
[in] | currentChildId | the id, where the first child will be written to |
Definition at line 2054 of file cartesiangridgenpar.cpp.
|
protected |
6.2a.2.2 check memory availability 6.2a.2.3 Refine the cells that have previously been marked. This calls the function refineGridPatch(...) which only refines cells that have previously been marked. If we run in parallel mode, do this also for the halo cells. 6.2b.2.4 Update the number of cells. 6.2b.2.5 Find the neighbors for the new cells. Calls findChildLevelNeighbors(...). If we run in parallel mode, this is also done for the halo cells. 6.2b.2.6 Delete all outside cells, do this in serial or in parallel. This calls either deleteOutsideCellsSerial(...) or deleteOutsideCellsParallel(...).
Definition at line 5757 of file cartesiangridgenpar.cpp.
|
protected |
Refines the grid on the level provided by the parameter by running over all cells of the current level. The ids of the cells to be considered are obtained from the arrays m_levelOffsets[level]. Also checks during the run if enough memory is still available. Calls refineCell and provides the id of the cell to refine and the first id to write the newly created cells to.
[in] | offsets | the offsets to use in the array of the cells |
[in] | level_ | the level to be refined |
[in] | halo | is this a halo refinement? |
Definition at line 1597 of file cartesiangridgenpar.cpp.
|
protected |
Does the same as refineGrid(...) except that only those cells are refined that apply to the patch constraints (b_properties[5] = 1).
[in] | offsets | the offsets to use in the array of the cells |
[in] | level | the level to be refined |
[in] | halo | is this a halo refinement? |
Definition at line 1665 of file cartesiangridgenpar.cpp.
|
protected |
Reorders the cells after the Hilbert curve by the following algorithm
a. Find Hilbert ids of all cells. This changes the local coordinates to be in the unit cube, then calls Hilbert index method to obtain the Hilbert id. This is only done on a temporary array. b. The temporary array containing the Hilbert ids is sorted. Additionally a second array used for lookup is sorted in the same way. c. The cells are swaped according to the sorting of the Hilbert curve. d. The global ids of the cells are updated.
Definition at line 3862 of file cartesiangridgenpar.cpp.
|
protected |
Takes the cells on the coarsest level and traverses them by calling traverseDFGlobalId(...). The code does the following:
a. Traverse the cells by running over the cells on the coarsest level and descending in depth-first order. While doing so update the global ids and store all the ids and the according offsprings in the 2D scratch partitionCellList. b. Since in the last step all cells were inserted, pick only those, which are really min-cells, i.e., those cells that have a less or equal number of offspring than m_partitionCellOffspringThreshold. c. Update the number of min-cells.
[in] | level_ | indicator for the timers |
Definition at line 5096 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 9543 of file cartesiangridgenpar.cpp.
|
protected |
Writes the grid in serial per domain.
[in] | level_ | the level to write |
[in] | tag | a tag which is appended to the file name |
Definition at line 9919 of file cartesiangridgenpar.cpp.
|
protected |
|
protected |
The swapping is performed as follows:
Copy cell1 to the temp, copy cell2 to cell1, copy temp to cell2.
[in] | cellId1 | the id of the first cell |
[in] | cellId2 | the id of the second cell |
Definition at line 4110 of file cartesiangridgenpar.cpp.
|
protected |
Recursively calls itself and changes the global-id of the current cell. It also fills the list partitionCellList with the according cell-id and the number of offsprings.
[in] | parentId | the id of the cell to traverse |
[in] | globalId | the new global-id to use next |
[in] | partitionCellList | a reference to the list containing all cell information |
[in] | workloadPerCell | stores the work load per cell |
[in] | currentWorkload | the current incremental work load |
[in] | weight | the weighting |
[in] | workload | base work load |
[in] | j | pointer to the incrementer |
Definition at line 5297 of file cartesiangridgenpar.cpp.
|
protected |
Runs over all cells, checks the referenced neighbors, parents, and children and updates the relation to use the global-id of the according cell.
Definition at line 4239 of file cartesiangridgenpar.cpp.
|
protected |
Update the halo offset information and size. This generates a new offset range for the new halo cells on the new level under the assumption that all current halo cells are refined. The offset range is created from the back of the collector, without using the very last element (which is reserved as a temporary item for a swapping operation), i.e., the lower the level, the closer we are to the end of the collector. The information is also stored domain-wise.
[in] | l | the level to consider |
Definition at line 4296 of file cartesiangridgenpar.cpp.
|
protected |
The algorithm does the following:
a. Get the number of cells created on the other domains. This fills an array m_noCellsPerDomain with the number of cells created on each domain.
b. Determine my own offset. This calulates the offset from where we need to write in the I/O-routine. The value is stored in the variable m_cellOffsetPar.
c. Create lists of window and halo cells. This creates a vector of vectors of window and halo ids (winCellIdsPerDomain, haloCellIdsPerDomain). The first dimensions represents the neighbor domain and the second the according window and halo cell id.
d. Find the halo and window cells for all domains. This runs over all neighbor domains First, all normal cells are cleared and then remarked as window cell domain-wise. They are then collected in winCellIdsPerDomain. At the end the global-ids are updated.
e. Reorder the global ids to be sorted depth-first. This calls reorderGlobalIdsDF(), which reorders only the global-ids. The cells are not moved in moved in memory.
f. Wite parallel geometry if requested.
g. Prepare the communication. This allocates the buffers for the cells to send and receive.
h. Fill the sendbuffer and send it (domain-wise). The buffer is filled by the accroding global-id.
i. Receive from neighbors (domain-wise).
j. Update the neighbors, parents and children to use the global-id. Runs over all cells and checks the global-id of the neighbors, parent, and children and updates the local information accordingly. This is only done for associated cells that are not halo cells.
k. Update the global ids of the halos and the acoording window neighbors. The receive buffer contains all the global-ids from the windows of the neighbors. The halos are filled by these global-ids. Then the according neighbor, which is a window cell in the normal cell collector is updated for its neighborhood, to point to the global-id that we have received.
Definition at line 4759 of file cartesiangridgenpar.cpp.
|
protected |
[in] | gridLevel | the level for which to update the offsets |
Definition at line 4265 of file cartesiangridgenpar.cpp.
|
protected |
Writes certain information to files in serial.
[in] | level_ | the level to write |
[in] | tag | a tag which is appended to the file name |
Definition at line 10199 of file cartesiangridgenpar.cpp.
|
protected |
This simply puts some data into the cell data, so that the result can be shown in ParaView.
Definition at line 10391 of file cartesiangridgenpar.cpp.
|
protected |
Definition at line 4928 of file cartesiangridgenpar.cpp.
|
private |
Definition at line 333 of file cartesiangridgenpar.h.
|
private |
Definition at line 341 of file cartesiangridgenpar.h.
|
private |
Definition at line 365 of file cartesiangridgenpar.h.
|
private |
Definition at line 362 of file cartesiangridgenpar.h.
|
private |
Definition at line 292 of file cartesiangridgenpar.h.
|
private |
Definition at line 343 of file cartesiangridgenpar.h.
|
private |
Definition at line 308 of file cartesiangridgenpar.h.
|
private |
Definition at line 335 of file cartesiangridgenpar.h.
|
private |
Definition at line 344 of file cartesiangridgenpar.h.
|
private |
Definition at line 287 of file cartesiangridgenpar.h.
|
private |
Definition at line 340 of file cartesiangridgenpar.h.
|
private |
Definition at line 342 of file cartesiangridgenpar.h.
|
private |
Definition at line 326 of file cartesiangridgenpar.h.
|
private |
Definition at line 364 of file cartesiangridgenpar.h.
|
private |
Definition at line 361 of file cartesiangridgenpar.h.
|
private |
Definition at line 383 of file cartesiangridgenpar.h.
|
private |
Definition at line 318 of file cartesiangridgenpar.h.
|
private |
Definition at line 298 of file cartesiangridgenpar.h.
|
private |
Definition at line 314 of file cartesiangridgenpar.h.
|
private |
Definition at line 345 of file cartesiangridgenpar.h.
|
private |
Definition at line 347 of file cartesiangridgenpar.h.
|
private |
Definition at line 325 of file cartesiangridgenpar.h.
|
private |
Definition at line 324 of file cartesiangridgenpar.h.
|
private |
Definition at line 348 of file cartesiangridgenpar.h.
|
private |
Definition at line 302 of file cartesiangridgenpar.h.
|
private |
Definition at line 301 of file cartesiangridgenpar.h.
|
private |
Definition at line 299 of file cartesiangridgenpar.h.
|
private |
Definition at line 286 of file cartesiangridgenpar.h.
|
private |
Definition at line 319 of file cartesiangridgenpar.h.
|
private |
Definition at line 322 of file cartesiangridgenpar.h.
|
private |
Definition at line 321 of file cartesiangridgenpar.h.
|
private |
Definition at line 320 of file cartesiangridgenpar.h.
|
private |
Definition at line 360 of file cartesiangridgenpar.h.
|
private |
Definition at line 332 of file cartesiangridgenpar.h.
|
private |
Definition at line 294 of file cartesiangridgenpar.h.
|
private |
Definition at line 356 of file cartesiangridgenpar.h.
|
private |
Definition at line 288 of file cartesiangridgenpar.h.
|
private |
Definition at line 358 of file cartesiangridgenpar.h.
|
private |
Definition at line 382 of file cartesiangridgenpar.h.
|
private |
Definition at line 359 of file cartesiangridgenpar.h.
|
private |
Definition at line 349 of file cartesiangridgenpar.h.
|
private |
Definition at line 352 of file cartesiangridgenpar.h.
|
private |
Definition at line 357 of file cartesiangridgenpar.h.
|
private |
Definition at line 315 of file cartesiangridgenpar.h.
|
private |
Definition at line 331 of file cartesiangridgenpar.h.
|
private |
Definition at line 351 of file cartesiangridgenpar.h.
|
private |
Definition at line 354 of file cartesiangridgenpar.h.
|
private |
Definition at line 353 of file cartesiangridgenpar.h.
|
private |
Definition at line 312 of file cartesiangridgenpar.h.
|
private |
Definition at line 337 of file cartesiangridgenpar.h.
|
private |
Definition at line 355 of file cartesiangridgenpar.h.
|
private |
Definition at line 295 of file cartesiangridgenpar.h.
|
private |
Definition at line 296 of file cartesiangridgenpar.h.
|
private |
Definition at line 293 of file cartesiangridgenpar.h.
|
private |
Definition at line 310 of file cartesiangridgenpar.h.
|
private |
Definition at line 327 of file cartesiangridgenpar.h.
|
private |
Definition at line 328 of file cartesiangridgenpar.h.
|
private |
Definition at line 329 of file cartesiangridgenpar.h.
|
private |
Definition at line 300 of file cartesiangridgenpar.h.
|
private |
Definition at line 339 of file cartesiangridgenpar.h.
|
private |
Definition at line 369 of file cartesiangridgenpar.h.
|
private |
Definition at line 376 of file cartesiangridgenpar.h.
|
private |
Definition at line 373 of file cartesiangridgenpar.h.
|
private |
Definition at line 375 of file cartesiangridgenpar.h.
|
private |
Definition at line 377 of file cartesiangridgenpar.h.
|
private |
Definition at line 372 of file cartesiangridgenpar.h.
|
private |
Definition at line 371 of file cartesiangridgenpar.h.
|
private |
Definition at line 374 of file cartesiangridgenpar.h.
|
private |
Definition at line 370 of file cartesiangridgenpar.h.
|
private |
Definition at line 378 of file cartesiangridgenpar.h.
|
private |
Definition at line 379 of file cartesiangridgenpar.h.
|
private |
Definition at line 311 of file cartesiangridgenpar.h.
|
private |
Definition at line 304 of file cartesiangridgenpar.h.
|
private |
Definition at line 303 of file cartesiangridgenpar.h.
|
private |
Definition at line 305 of file cartesiangridgenpar.h.
|
private |
Definition at line 306 of file cartesiangridgenpar.h.
|
private |
Definition at line 313 of file cartesiangridgenpar.h.
|
private |
Definition at line 307 of file cartesiangridgenpar.h.
|
private |
Definition at line 290 of file cartesiangridgenpar.h.