Commit graph

4993 commits

Author SHA1 Message Date
Vuko Vukcevic
3a08616a79 Added a few FatalError checks
1. donorSuitability::suitabilityFaction(...) - now checks whether the donor has
   been found (in case we don't have any eligible donors due to poor settings),
2. overlapFringe/adaptiveOverlapFringe::updateIteration(...) - now checks
   whether we have found at least 1 new acceptor when going through the
   iterative process.
2018-07-30 10:40:07 +02:00
Vuko Vukcevic
095ac84cb4 Update to overset validationSuite NACA4412 case
Switched from old overlpa assembly to new adaptiveOverlap assembly
2018-07-30 09:11:05 +02:00
Vuko Vukcevic
2f00bb4af1 Update to noSuitability DSF
Threshold now needs to be set to SMALL due to changed definition of DSF's
isDonorSuitable and suitabilityFraction member functions.
2018-07-30 08:32:00 +02:00
Vuko Vukcevic
657c6abfb8 Updates to overset tutorials using overlap fringe 2018-07-30 08:31:41 +02:00
Hrvoje Jasak
185ab1ad60 Adaptive mesh refinement for 2D cases. Author: Vuko Vukcevic. 2018-07-28 13:52:59 +01:00
Hrvoje Jasak
adac44fc7e Fixing compilation errors gcc 8.1. Author: Martin Beaudoin. Merge: Hrvoje Jasak. 2018-07-28 13:51:43 +01:00
Hrvoje Jasak
5d3a0cef95 ThirdParty package updates. Author: Martin Beaudoin. Merge: Hrvoje Jasak. 2018-07-28 13:50:43 +01:00
Hrvoje Jasak
9acce17165 Adaptive overlap fringe assembly. Author: Josip Katavic and Vuko Vukcevic. Merge: Hrvoje Jasak. 2018-07-28 13:49:21 +01:00
Hrvoje Jasak
69878923f9 Bugfix in periodic oscillation constraint. Author: Vuko Vukcevic. Merge: Hrvoje Jasak. 2018-07-28 13:48:08 +01:00
Vuko Vukcevic
3ec42ce8c8 Bugfix in prismatic2DRefinement
Forgot to enable wedge cases by including handling of wedge patches along with
the empty patches.
2018-07-27 14:50:35 +02:00
Vuko Vukcevic
9ec8d55010 Include coupledFvPatchFields.H instead of coupledFvPatchField.H 2018-07-27 11:03:56 +02:00
Vuko Vukcevic
875f0809a3 Writing regionIndex automatically 2018-07-26 16:27:31 +02:00
Vuko Vukcevic
6ba57d44fc Bugfixes in automatic overlap assembly
adaptiveOverlapFringe:
1. When combining user specified holes and cut holes, we need to get rid of
   possible duplicates,
2. All holes transferred to fringeHolesPtr_, not just cutHoles,
3. Removed minLocalSuit_ data member as the donorSuitability::threshold is
   basically the same thing.

donorSuitability:
1. Correct definition of isDonorSuitable
2018-07-26 15:46:05 +02:00
Vuko Vukcevic
6974c3f99f Bugfix in protectedInitialRefinement strategy
Protect only if the current cell level is equal to the initial cell level,
otherwise allow to unrefine.
2018-07-26 07:35:16 +02:00
Vuko Vukcevic
dbbad653fe Updates to overlap assembly strategies
Added optional cellSet for hole cells to start the overlap and adaptiveOverlap
from. Useful when the background mesh is very coarse compared to the hole patch
in the front mesh and no hole is actually found in triSurface hole cutting
procedure.
2018-07-25 07:37:09 +02:00
Martin Beaudoin
2b9049af90 Correction for newer (and older) versions of gcc: You throw by value, you catch by reference.
A second correction was needed.
2018-07-23 16:45:39 +00:00
Martin Beaudoin
9ed4526742 Correction for newer (and older) versions of gcc: You throw by value, you catch by reference. 2018-07-23 16:18:31 +00:00
Vuko Vukcevic
56144efed0 Spelling errors in comments 2018-07-23 11:25:12 +02:00
Vuko Vukcevic
7a0ce22052 Removed redundant debug write of cell set 2018-07-23 09:59:07 +02:00
Vuko Vukcevic
93e8ebe4cc Changed default value for minLocalSuit in adaptiveOverlapFringe 2018-07-23 09:48:59 +02:00
Martin Beaudoin
ac2005f15e Minor compilation corrections. g++ version 8.1 was sensitive to those and treating them as errors. 2018-07-22 03:55:59 +00:00
Martin Beaudoin
58b8dac7ec Delay the compilation of the library decompositionMethods/decomposeReconstruct
so its dependencies are available when recompiling from scratch
2018-07-20 12:32:31 -04:00
Henrik Rusche
734628ceb0 BACKPORT: MVC interpolation 2018-07-20 17:52:32 +02:00
Henrik Rusche
f3d133d0cf BUGFIX: incremental switch merged incorrectly 2018-07-20 17:44:37 +02:00
Hrvoje Jasak
baa0bc875a Code reorganisation: immersed boundary support 2018-07-17 09:40:06 +01:00
Vuko Vukcevic
ef5f6a5f59 Donor/acceptor within boundig box criterion update
Previously, we only checked whether the acceptor point is within bounding box of
donor, which may not be fair. Now, we also check whether the donor point is
within bounding box of acceptor.

Having both checks makes sense since there's no reason to prefer one criterion
over the other.
2018-07-16 16:39:09 +02:00
Vuko Vukcevic
b46ede8553 Bugfix: suitablePairsSuit_ must be data member 2018-07-16 15:34:54 +02:00
Vuko Vukcevic
3142fa27ee Parallelised adaptiveOverlapFringe 2018-07-16 14:13:31 +02:00
Vuko Vukcevic
497ccfada8 Updates (fixes) to adaptiveOverlapFringe
1. Clearing out temporary worker data for dynamic cases,
2. minLocalSuitability and orphanSuitability now given as fractions (0 to 1)
   instead of percentages (0 to 100%).
2018-07-16 12:51:21 +02:00
Vuko Vukcevic
ed06d9d919 Minor style change: adaptiveOverlapFringe 2018-07-12 19:34:32 +02:00
Vuko Vukcevic
eb1e30ecdb Updates to NACA4412-airfoil overset validationSuite case 2018-07-12 19:33:39 +02:00
Vuko Vukcevic
ea0466aa43 Adaptive overlap fringe algorithm by Josip Katavic 2018-07-12 15:37:20 +02:00
Vuko Vukcevic
8a1f5f66fc Updates to overlapFringe::evaluateNonOversetBoundaries
This function is now static instead of ordinary member function so it can be
used by adaptiveOverlapFringe. A slight reorganization of this is needed.
2018-07-12 15:35:22 +02:00
Vuko Vukcevic
c9cfe3cbf8 Compilation fixes due to updated code
1. Donor suitability functions now hold reference to oversetFringe (base class)
   and not the overlapFringe,
2. Missing curly braces in oversetRegion.
2018-07-12 14:19:52 +02:00
Vuko Vukcevic
7ae045b32b Changed directory structure for overlapFringe 2018-07-12 13:51:05 +02:00
Vuko Vukcevic
4b485ab906 Updates to oversetRegion
1. Avoid deleting holeCells and eligibleDonorCells if region has not found
   suitable overlap,
2. When choosing donors, make a preference depending on whether the donor is
   within acceptors bounding box (among other things).
2018-07-12 13:47:43 +02:00
Vuko Vukcevic
1e57733ed1 Updates to donorSuitability
Added suitabilityFraction member function which returns how suitable
donor and acceptor are (0: not suitable at all, 1: perfectly suitable).
2018-07-12 13:45:43 +02:00
Vuko Vukcevic
e56083051e Updates to donorAcceptor
Added data member to check whether the donor is within bounding box of the
acceptor.
2018-07-12 13:44:09 +02:00
Vuko Vukcevic
8bfcd34ffe Bugfix in periodicOscillation::stabilise
Added missing motion amplitude and velocity amplitude when stabilising the
constraint.
2018-07-12 13:36:39 +02:00
Vuko Vukcevic
9dae7c64bf Additional refinement selection strategy: protectedInitialRefinement
This strategy allows us to protect the initial refinement done using
snappyHexMesh or similar meshers where the cellLevel and pointLevel are used and
written down. The strategy protects refined cells (during the meshing stage)
from unrefinement. To be used as part of compositeRefinement.
2018-07-10 16:08:37 +02:00
Hrvoje Jasak
304d230d1a Fixed evaluation problem when regionCoupling is inactive 2018-07-06 10:08:24 +01:00
Vuko Vukcevic
2ecd49f2be Corrected error message in refinement.C 2018-07-05 16:48:20 +02:00
Vuko Vukcevic
2d66abcadf Cleaned-up include directives for refactored classes 2018-07-05 07:17:57 +02:00
Vuko Vukcevic
778af3691a Fixed error on FatalErrorIn call
abort(FatalError) must be called and not abort(FatalErrorIn)
2018-07-05 07:17:57 +02:00
Vuko Vukcevic
086fad1ecc Refactored adaptive mesh refinement polyMeshModifiers
Base class "refinement" that contains necessary interface and all the data
members and member function used by both derived classes:
1. polyhedralRefinement: used for 3D isotropic refinement,
2. prismatic2DRefinement: used for 2D isotropic refinement.

Note: refactorisation not tested yet.
2018-07-05 07:17:57 +02:00
Vuko Vukcevic
a29e1ead28 Refactored dynamicPolyRefinementFvMesh class
Enabled automatic switching between polyhedralRefinement engine for 3D and
prismatic2DRefinement engine for 2D.
2018-07-05 07:17:57 +02:00
Vuko Vukcevic
2d845a809c Updates to polyhedralRefinement engine
1. Make sure that we don't refine over maximum refinement level when extending
   refinement cells over additional buffer layers,
2. Removed redundancy check which becomes wrong in case we are running dynamic
   load balancing,
3. Removed deprecated hard-code where the cells protected from unrefinement are
   extended by nUnrefinementBufferLayers_ + 2 instead of just
   nUnrefinementBufferLayers_
2018-07-05 07:17:57 +02:00
Vuko Vukcevic
a913c28897 Updates to prismatic2DRefinement.C related to unrefinement
Enabled unrefinement (splitting of boundary points and removing internal faces)
using the existing removeFaces engine.
2018-07-05 07:17:57 +02:00
Vuko Vukcevic
7524014a37 2D AMR: prismatic2DRefinement polyMeshModifier
Ported prismatic2DRefinement class from other temporary repository. Basically a
version of polyhedralRefinement specifically designed for 2D cases.

Status:
Refinement seems to work well on simple cases:
  1. 4 by 4 hex cells (quad prisms),
  2. 28 triangular prisms,
  3. Tested both in serial and parallel up to 9 refinement levels.

To do:
  1. Implement proper 2D unrefinement,
  2. Refactor prismatic2DRefinement and polyhedralRefinement to avoid duplicate
     functions used by both classes.
2018-07-05 07:17:57 +02:00
Martin Beaudoin
b59cad23fd ThirdParty: bumping openmpi to version 3.1.1 2018-07-04 22:54:35 -04:00