Commit graph

4120 commits

Author SHA1 Message Date
Vuko Vukcevic
0d4bd534e2 Bugfix while setting split points to unrefine
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.
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
6c693cb8d4 Update to dynamicPolyRefinementFvMesh
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.
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
819568c8d1 Parallel bugfix in polyhedralRefinement
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.
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
0c5506f9c2 Bugfix in volPointInterpolation and pointPatchInterpolation
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.
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
28478c3751 Bugfix in point based consistent unrefinement 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
924468af8a Parallel bugfixes and consistency updates 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
3744e84981 Bugfix: parallel update of new point level 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
f06a579a81 Bugfix in polyhedralRefinement.C and additional debug output
Forgot to update refinementLevelIndicator_ list when unrefining cells around
split points.
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
864dbd53ac Updates to dynamic refinement
1. Deeper debug checks
2. Updates to setting split points
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
c0060272af Updates to polyhedralRefinement
Better way of determining split points that does not rely on keeping track of
refinement history.
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
9aac2fe7f6 Bugfixes
1. removeFaces.C: flipped else if condition
2. polyhedralRefinement.C: fixed inconsistency with refinement level indicator
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
fda0785e13 Updates to polyhedralRefinement mesh modifier
Different way of updating cell and point level that does not rely on
polyhedralRefinement being the only mesh modifier
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
71871935ec Switched to boolList instead of Packed list 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
a94e79eed7 Changed sentence in Info statement 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
429be977d3 Bugfix in polyhedralRefinement
Points must be appended (out of nothing) instead of added in terms of master
point when using polyAddPoint and polyMeshModifier
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
d837b8ef56 Input bugfix in fieldBoundsRefinement 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
45d4642a2d Bugfixes in polyhedralRefinement.?
1. TypeName macro instead of ClassName
2. Need all points (original + added) when checking internal/boundary face
   orientation
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
00b7c46868 Performance improvement bugfix in polyhedralRefinement
While setting point conistent refinement, it is unnecessary to visit point cells
of all cells. We can visit only cells to refine.
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
8393e34d65 Added compilation instructions with respective fixes for following classes:
1. dynamicPolyRefinementFvMesh
2. refinementSelection
3. fieldBoundsRefinement
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
9e0614a5b5 Small bugfix in polyRef.C
When doing pointConsistentRefinement, I've been inserting all mesh points
instead of just the ones sharing a cell which will be refined.
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
40ec2b3644 Fixed compilation issues for removeFaces class 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
e6d042f28f Second batch of updates in removeFaces class 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
ecfeb79ce2 Using setFaceInfo from meshTools in polyhedralRefinement.C 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
d8e258038c Moved setFaceInfo into meshTools namespace 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
b767b8aba6 First batch of updates for removeFaces.? 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
b735b5829f First part of compilation fixes for polyhedralRefinement class
Still need to reorganize faceRemover engine such that it works with
polyTopoChange alongside (preferably) or instead of directTopoChange
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
912d801aa9 Added ifEqEqAssignFirstOp into ops.H
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.
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
d138fb9162 Final updates to polyhedralRefinement.? 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
9e34a1e234 Updates to polyhedralRefinement.? 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
6e33ee25f0 Switching on/off polyhedral refinement engine 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
fe2911f9e3 Slight reorganisation of dynamicPolyRefinementFvMesh and refinementSelection 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
d215bc7a35 Class hierarchy for run-time selection of refinement criteria
Abstract base class: refinementSelection
Single derived class: fieldBoundsRefinement

The interface provides selection of:
1. Candidate cells to refine,
2. Candidate split points to unrefine.
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
ae02d50179 First version of dynamicPolyRefinementFvMesh
Refactored version of dynamicRefinePolyFvMesh in terms of topoChangerFvMesh
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
15fc87e5dd Refactoring polyhedral AMR
Written out interface for polyhedralRefinement class derived from
polyMeshModifier.
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
d633af22a0 Point based consistency check
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.
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
b829763587 Additional output before "single" edge error 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
91a892854e Bugfix in calculation of getFaceAnchor
Reverting to the old formulation modified for polyhedral cells
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
f3edd35f23 Updated dynamicMeshDict 2018-02-21 15:10:55 +01:00
Vuko Vukcevic
84fd718786 Updates to faMesh
Initialisation of communicator for parallel runs + minor formatting
2018-02-21 15:10:55 +01:00
Vuko Vukcevic
0249319d5e Update to createFaMesh.H
faMesh created using selector New to avoid the possibility of having multiple
faMesh objects.
2018-02-21 15:10:03 +01:00
Vuko Vukcevic
76fd16d5f6 Created polyRefinementHistory
Basically a generalisation of refinementHistory which works only for hex cells
2018-02-21 15:09:54 +01:00
Vuko Vukcevic
7cd6e2357a Updates to cellAnchorPoints 2018-02-21 15:08:38 +01:00
Vuko Vukcevic
ecfdd2103e Removed faceAnchorLevel validity check 2018-02-21 15:08:26 +01:00
Vuko Vukcevic
3ebae28896 Generalisation of polyRef::getAnchorLevel
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.
2018-02-21 15:08:13 +01:00
Vuko Vukcevic
7372970256 Updated comments in polyRef.H 2018-02-21 15:07:45 +01:00
Hrvoje Jasak
4e8acd1fbf Revert error 2018-02-20 18:04:17 +00:00
Hrvoje Jasak
5c44761ab3 Reset build directory name: 4.1 2018-02-20 17:56:27 +00:00
Martin Beaudoin
9fdeeb872f ThirdParty:
- Replacing wget by curl for downloading packages
   - Adjusting a few URLs that were no longer valid
   - Contributing a new script for checking the validity of URLs specified
     in AllMake.stage* files: ThirdParty/tools/verifyURLs.sh
     Usage: ThirdParty/tools/verifyURLs.sh ThirdParty/AllMake.stage1
2018-02-20 00:04:58 -05:00
Hrvoje Jasak
0b511b8ae6 Backported containers and function objects. Henrik Rusche 2018-02-19 11:38:59 +00:00
Henrik Rusche
5f75c33058 Backport: changeDictionary utility 2018-02-16 15:27:23 +01:00