1. Switched from pointBasedConsistency to edgeBasedConsistency in order to allow
more than 2 refinement levels in a correct way (hopefully),
2. Note on parallelisation: getting edge cell addressing across processor
boundaries is tricky, but if we use more stringent 1:1 face refinement across
coupled boundaries, then the edge based consistency becomes a local operation
(at least I'm 99% sure it does: hard to think of all variants with arbitrary
polyhedra),
3. Added an option to skip unrefinement if both refinement/unrefinement are
triggered for a single step. This is switched off by default since performing
refinement/unrefinement in a single go should work without issues.
1. Removed redundant (and wrong) check when doing pointConsistentUnrefinement
2. Added separate entry for nRefinementBufferLayers and
nUnrefinementBufferLayers
minCellSizeRefinement selects all cells with cell size defined as cube root of
cell volume is larger than specified cell size. Therefore, it assumes that the
cells are cubes or close to cubes.
1. Extended protection for split points to nBufferLayers + 2 buffer layers in
order to protect cells from unrefinement when we do refinement and
unrefinement in a same go
2. Added separate entry for unrefineInterval along refineInterval to control
refinement and unrefinement separately
1. minCellVolumeRefinement: selects all cells with volume higher than specified
one
2. minPatchDistanceRefinement: selects all cells at the distance greater than
specified distance from a set of patches
3. compositeRefinementSelection: selects intersection of all sets obtained from
other (basic) refinement selections
Scaling the fluxes and killing non-orthogonal correction vectors in case
bridging is used, both in order to ensure global conservation across bridged GGI
with potentially partially overlapping faces.
1. dynamicRefinePolyFvMesh class (replaced by dynamicPolyRefinementFvMesh)
2. polyRef class (replaced by polyhedralRefinement polyMesh modifier)
3. polyRefinementHistory (not required anymore)
Removed redundant check of split points at the boundaries. In case of dynamic
load balancing, it should perform possible unrefinement where the split point is
on the processor boundary. Although this has not been tested yet.
There was a bug when we had refinement and unrefinement in the same iteration.
Setting split points to unrefine needs to take into account existing cells to
refine by considering point neighbours, not face neighbours. This ensures that
the first split point to unrefine is far away from refinement region.
Only one topo change iteration per time step. This is handled withing
dynamicPolyRefinementFvMesh class instead of polyhedralRefinement
(is a polyMeshModifier) in order to skip the unnecessary cell/point selection
step as well.
While ensuring point consistent refinement/unrefinement, we need to loop over
all points in order to correctly take into account point consistency across
processor boundaries.
Rewrite of private data using lazy evaluation. The data was calculated on
creation and mesh update, which caused a very messy problem.
volPointInterpolation is a mesh object and it relies on pointMesh, which is
another mesh object. Therefore, in order to have valid update of
volPointInterpolation on topo changes, pointMesh needs to be updated first. This
is avoided by using lazy evaluation.
Basically compares the two values and if they are not equal, assigns default
value to the first argument. Needed for syncing processor data in
polyhedralRefinement.
Abstract base class: refinementSelection
Single derived class: fieldBoundsRefinement
The interface provides selection of:
1. Candidate cells to refine,
2. Candidate split points to unrefine.
This is necessary when one would run a dynamic refinement simulation with more
than 2 refinement levels. Ordinary face checking can produce 8:1 point
inconsistency, even on hexahedral meshes. Therefore, if the refinemement level
is > 2, point based consistency is switched on.
The function now returns the correct anchor level for arbitrary polygonal faces,
i.e. there is no assumption that the face comes from possibly spit hex cell.
-in turbulenceModels
backported alphat() member function
backported rhoEpsilonEff() memberfunction
backported to constructor sigature to allow derivation of classes
backported member functions for compatibility with FOs
allow mutkWallFunction to work with LES