Commit graph

2591 commits

Author SHA1 Message Date
Hrvoje Jasak
723da35299 Typo in comment 2018-10-01 19:08:06 +01:00
Hrvoje Jasak
dace0ac19d Merge branch 'nextRelease' of ssh://git.code.sf.net/p/foam-extend/foam-extend-4.0 into nextRelease 2018-09-26 17:27:29 +01:00
Hrvoje Jasak
c6460044b2 Bugfix: double execution of function objects per time-step 2018-09-26 17:26:40 +01:00
Hrvoje Jasak
c3251bc400 Reset gamma and sGamma patch values for IB patches 2018-09-26 14:50:38 +01:00
Hrvoje Jasak
6ba8b5e6b3 Bugfix: remove reset of pressure field on evaluate for fvs immersed boundary 2018-09-26 14:48:03 +01:00
Hrvoje Jasak
69e10d419c Control debug messages 2018-09-26 13:29:38 +01:00
Hrvoje Jasak
154fcce817 Fixed comment 2018-09-26 13:28:13 +01:00
Hrvoje Jasak
32d3595ded PLB with particles + accumulated bugfixes/backports. Author: Henrik Rusche. 2018-09-25 12:30:18 +01:00
Hrvoje Jasak
95d31b8b9d Bugfix related to variable time step on deforming meshes using backward scheme. Author: Vuko Vukcevic. Merge: Hrvoje Jasak 2018-09-25 11:59:54 +01:00
Henrik Rusche
ef1c4242c1 Bugfix in shared point detection (not all problems resolved, yet) 2018-09-25 09:13:00 +02:00
Henrik Rusche
05e7057e4d Backward compatibility and erroneous comment in DiagTensor 2018-09-25 09:12:59 +02:00
Henrik Rusche
a9c7a176e3 BUGFIX: Mesh update in lagrangian 2018-09-25 09:12:59 +02:00
Henrik Rusche
c001bc33b7 BUGFIX: hanging pointer if the local mesh is empty (no need to map particles) 2018-09-25 09:12:59 +02:00
Henrik Rusche
f67382b044 BACKPORT: MVC interpolation 2018-09-25 09:12:58 +02:00
Henrik Rusche
0d33286f17 BUGFIX: incremental switch merged incorrectly 2018-09-25 09:12:58 +02:00
Henrik Rusche
8d356e7456 PLB with clouds 2018-09-25 09:12:53 +02:00
Vuko Vukcevic
d5b37a2d37 Bugfix: mesh flux using backward scheme with variable time step
The coefficients in backwardDdtScheme::meshPhi did not correctly take into
account the possibility of having variable time steps.

Reported by Sopheak Seng, Bureau Veritas.
2018-09-07 14:56:55 +02:00
Hrvoje Jasak
ec998a5bc1 Update debug message formatting 2018-09-07 13:43:22 +01:00
Hrvoje Jasak
ff509e6a62 Update reading mechanism for patch type in immersed boundary 2018-09-07 09:51:02 +01:00
Hrvoje Jasak
bcb361ba75 Handling refinement selection tolerances 2018-09-06 18:34:48 +01:00
Hrvoje Jasak
094039ec24 Fix set dead cell value for moving immersed boundary 2018-09-06 18:33:34 +01:00
Hrvoje Jasak
012e01815a Bugfixes in immersed boundary fvPatches: patch type 2018-09-06 18:33:14 +01:00
Hrvoje Jasak
58421f0713 Bugfix: Area tolerances needed in thin face cut 2018-09-06 18:32:35 +01:00
Hrvoje Jasak
7508fede0b Bugfix: mis-identified wet/dry face 2018-09-06 18:32:13 +01:00
Hrvoje Jasak
e38c7e68ec Formatting 2018-09-06 18:23:41 +01:00
Hrvoje Jasak
aa5131b114 Dynamic refinement with immersed boundary wall function: fixes 2018-09-06 18:23:21 +01:00
Hrvoje Jasak
dd5757b78a Minimum face area refinement selection algorithm for 2D cases. Author: Vuko Vukcevic. Merge: Hrvoje Jasak. 2018-09-05 12:19:35 +01:00
Vuko Vukcevic
fac6af9e34 Minimum 2D face area refinement selection algorithm
Basically a 2D version of minCellVolume refinement which is quite useful for
wedge geometries. If a per-cell-maximum face area on empty (or wedge) patch
exceeds a specified minimum face area, cell is selected for refinement. Used as
a part of composite refinement.
2018-09-04 13:00:35 +02:00
Vuko Vukcevic
c7cd6b09fd Bugfix when writing overset region index
The values at the coupled boundaries haven't been properly uninitialized and the
coupled patches have been skipped from assignement to patch internal field.
2018-09-03 09:39:54 +02:00
Vuko Vukcevic
02bc8b5f69 Bugfix in MixingPlaneInterpolation due to recent GGI updates
MixingPlaneInterpolation is actually implemented in terms of GGIIinterpolation
and that one now has handling of partially overlapping faces (needed for bridge
overlap option). There's a tolerance GGIUncoveredFaceAreaTol (defaults to 0.999)
which needs to be set to 0 in case of Mixing Plane to properly re-scale the
weights. This is now done in MixingPlaneInterpolation.
2018-08-31 14:38:15 +02:00
Vuko Vukcevic
52b2e5e0e5 Bugfix and clean-up in leastSquaresVectors
1. Need to call fvPatchField::coupled() instead of fvPatch::coupled() since the
   patch type can be coupled and the field doesn't have to be (e.g. regionCouple
   fvPatch with zeroGradient fvPatchField).
2. Clean-up of old debugging statements.
2018-08-30 16:38:47 +02:00
Vuko Vukcevic
b4f9cbd029 Bugfix: missing updateMesh call for function objects
Function object updates on topo changes are now properly handled
2018-08-30 16:27:35 +02:00
Hrvoje Jasak
d2666ed38f Bug fix for negative rpm in ramping MRF cases. Gregor Cvijetic 2018-08-23 12:14:34 +01:00
Hrvoje Jasak
be8da8b80c Updated mechanism of implicitness across coupled boundaries with transforms and mixing plane bug fix 2018-08-23 12:07:39 +01:00
Hrvoje Jasak
23ad1613aa Porting: added missing foamTime.H header 2018-08-23 09:49:11 +01:00
Hrvoje Jasak
bf8d5ed3ad Minor clean-up 2018-08-23 09:48:27 +01:00
Hrvoje Jasak
64ef3b387f Merge branch 'nextRelease' of ssh://git.code.sf.net/p/foam-extend/foam-extend-4.0 into nextRelease 2018-08-21 14:59:29 +01:00
Hrvoje Jasak
a0ca6258df New fv fvs patch field vidtual function: update on motion. Immersed boundary support 2018-08-21 14:59:11 +01:00
Hrvoje Jasak
6ec2ad6239 Comment clean-up 2018-08-21 14:58:26 +01:00
Hrvoje Jasak
871d03e4d3 Rename private member deltaCoeffs 2018-08-21 14:38:27 +01:00
Hrvoje Jasak
65fcc20630 Aded swirlInletVelocity boundary condition 2018-08-21 14:37:27 +01:00
Hrvoje Jasak
d5b9215b1e Moving immersed boundary turbulence modelling support 2018-08-21 14:36:29 +01:00
Hrvoje Jasak
1e8ecf40c5 Clean-up 2018-08-21 14:17:25 +01:00
Hrvoje Jasak
19794a6eba Immersed boundary moving mesh turbulence updates; fundamental IB patch field updates 2018-08-21 14:17:03 +01:00
Hrvoje Jasak
45eb621334 Formatting 2018-08-10 13:26:47 +01:00
Vuko Vukcevic
e0a0502320 Same missing reduce in overlapFringe 2018-08-10 12:13:58 +02:00
Vuko Vukcevic
3d3edc820a Forgot to reduce when handling error
This caused a parallel run to fail if there's no fringe on all processors.
2018-08-06 22:19:27 +02:00
Hrvoje Jasak
b813e11b75 Update to noSuitability DSF and tutorials. Author: Vuko Vukcevic. Merge: Hrvoje Jasak. 2018-07-30 19:35:36 +01:00
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
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
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
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
6aba1630ed Minor corrections for compiling under macOS High Sierra (10.13.5) using
the stock compiler Apple LLVM version 9.1.0 (clang-902.0.39.2)
2018-06-24 22:15:40 -04:00
Hrvoje Jasak
e01e16c943 Refactorization of incompressible/compressible nut/mut wall functions. Author: Vuko Vukcevic. Merge: Hrvoje Jasak. 2018-06-20 13:34:29 +01:00
Vuko Vukcevic
3de5d66021 Compilation bugfixes:
1. Forgot to define typeName and debug level for
   nutWallFunctionFvPatchScalarField and mutWallFunctionFvPatchScalarField
2. Forgot to remove declaration of write(Ostream&) member function in
   nutSpalartAllmarasWallFunction and mutSpalartAllmarasWallFunction
2018-06-19 15:38:48 +02:00
Vuko Vukcevic
4ec81f9103 Update to backwardsCompatibilityWallFunctions.C
autoCreateMut now creates mutkWallFunction by default (instead of abstract base
class mutWallFunction)
2018-06-19 15:22:23 +02:00
Vuko Vukcevic
306bd93e81 Removed deprecated mutRoughWallFunction
Replaced by mutkRoughWallFunction
2018-06-19 15:20:33 +02:00
Vuko Vukcevic
da6f48e599 Refactored remaining Spalart Allmaras mut wall functions
1. mutSpalartAllmarasStandardWallFunction: same as mutUWallFunction
2. mutSpalartAllmarasStandardRoughWallFunction: same as mutURoughWallFunction
3. mutSpalartAllmarasWallFunction: refactored such that it derives from
   mutWallFunction
2018-06-19 15:18:04 +02:00