Commit Graph

2082 Commits

Author SHA1 Message Date
33ef139ac1 ENH: Digital-Filter Based Synthetic Turbulence Generation Method for LES/DES Inflows
Velocity boundary condition generating synthetic turbulence-alike
    time-series for LES and DES turbulent flow computations.

    To this end, two synthetic turbulence generators can be chosen:
    - Digital-filter method-based generator (DFM)

    \verbatim
    Klein, M., Sadiki, A., and Janicka, J.
        A digital filter based generation of inflow data for spatially
        developing direct numerical or large eddy simulations,
        Journal of Computational Physics (2003) 186(2):652-665.
        doi:10.1016/S0021-9991(03)00090-1
    \endverbatim

    - Forward-stepwise method-based generator (FSM)

    \verbatim
    Xie, Z.-T., and Castro, I.
        Efficient generation of inflow conditions for large eddy simulation of
        street-scale flows, Flow, Turbulence and Combustion (2008) 81(3):449-470
        doi:10.1007/s10494-008-9151-5
    \endverbatim

    In DFM or FSM, a random number set (mostly white noise), and a group
    of target statistics (mostly mean flow, Reynolds stress tensor profiles and
    length-scale sets) are fused into a new number set (stochastic time-series,
    yet consisting of the statistics) by a chain of mathematical operations
    whose characteristics are designated by the target statistics, so that the
    realised statistics of the new sets could match the target.

    Random number sets ---->-|
                             |
                         DFM or FSM ---> New stochastic time-series consisting
                             |           turbulence statistics
    Turbulence statistics ->-|

    The main difference between DFM and FSM is that the latter replaces the
    streamwise convolution summation in DFM by a simpler and a quantitatively
    justified equivalent procedure in order to reduce computational costs.
    Accordingly, the latter potentially brings resource advantages for
    computations involving relatively large length-scale sets and small
    time-steps.
2019-02-18 20:12:48 +00:00
56547863c1 ENH: {simple|pimple}Control - output on construction controlled by a 'verbose' flag 2019-06-18 14:20:55 +01:00
7322f73a31 Merge branch 'feature-isoAdvectorWithMorphingMeshes' into 'develop'
Introduced changes required to make isoAdvector and interIsoFoam work with...

See merge request Development/OpenFOAM-plus!257
2019-06-13 21:35:20 +01:00
8170f2ad92 INT: Org integration of VOF, Euler phase solvers and models.
Integration of VOF MULES new interfaces. Update of VOF solvers and all instances
of MULES in the code.
Integration of reactingTwoPhaseEuler and reactingMultiphaseEuler solvers and sub-models
Updating reactingEuler tutorials accordingly (most of them tested)

New eRefConst thermo used in tutorials. Some modifications at thermo specie level
affecting mostly eThermo. hThermo mostly unaffected

New chtMultiRegionTwoPhaseEulerFoam solver for quenching and tutorial.

Phases sub-models for reactingTwoPhaseEuler and reactingMultiphaseEuler were moved
to src/phaseSystemModels/reactingEulerFoam in order to be used by BC for
chtMultiRegionTwoPhaseEulerFoam.

Update of interCondensatingEvaporatingFoam solver.
2019-06-07 09:38:35 +01:00
bf9d74ba8b ENH: increase robustness of PrecisionAdaptor
- overload the ref() method to allow modification of the referenced
  (non-const) field directly. Same as constCast(), but less typing
  and less prone to error.

- construct ConstPrecisionAdaptor from tmp for improved efficiency.
2019-06-06 09:46:31 +02:00
61c87b5552 Introduced changes required to make isoAdvector and interIsoFoam work with morphing meshes: 1) In the alphaEqn.H U is made relative to mesh motion before the interface advection step, 2) in isoAdvection::advect() alpha must be multiplied by Vsc0()/Vsc(). Implementation tested and verified with 1) a spherical interface in a cubic domain with no flow, where the domain walls are squeezed together and 2) a spherical interfacee inside the sloshingCylinder, again with no flow, so the sphere should stay spherical, which it does. 2019-04-30 16:07:48 +02:00
262faabd7c ENH: mixed precision solver infrastructure (#1086)
- lduSolver: solveScalar for coarse-level solve; normFactor etc

- lduMatrix: have smoother natively use solveScalarField
2019-02-10 14:53:13 +00:00
a85c55bbb5 ENH: ensure that content changes in coded objects are noticed (#1293)
- for codedFunctionObject and CodedSource the main code snippets
  were not included in the SHA1 calculation, which meant that many
  changes would not be noticed and no new library would be compiled.

  As a workaround, a dummy 'code' entry could be used solely for the
  purposes of generating a SHA1, but this is easily forgotten.

  We now allow tracking of the dynamicCodeContext for the coded
  objects and append to the SHA1 hasher with specific entries.
  This should solve the previous misbehaviour.

  We additionally add information about the ordering of the code
  sections. Suppose we have a coded function object (all code
  segments are optional) with the following:

      codeExecute "";
      codeWrite   #{ Info<< "Called\n"; #};

  which we subsequently change to this:

      codeExecute #{ Info<< "Called\n"; #};
      codeWrite   "";

  If the code strings are simply concatenated together, the SHA1 hashes
  will be identical. We thus 'salt' with their semantic locations,
  choosing tags that are unlikely to occur within the code strings
  themselves.

- simplify the coded templates with constexpr for the SHA1sum
  information.

- Correct the CodedSource to use 'codeConstrain' instead of
  'codeSetValue' for consistency with the underlying functions.
2019-05-01 14:00:54 +02:00
83d26d19b5 ENH: replace processorFvPatchField specialization with 'if...' (#1304)
- only apply component-wise transformCoupleField for non-scalar types
2019-05-01 14:20:08 +02:00
beefee48d4 COMP: adjust compilation order with updated interdependencies
- Eg, with surface writers now in surfMesh, there are fewer libraries
  depending on conversion and sampling.

COMP: regularize linkage ordering and avoid some implicit linkage (#1238)
2019-04-28 14:44:33 +02:00
849dffedb8 COMP: define processorFvPatchField<scalar> with scoping 2019-04-26 14:35:55 +02:00
4d215d8e0d ENH: simplify access and caching logic for gradScheme (#1276) 2019-04-24 12:02:23 +02:00
a6acce45b6 ENH: Added debug info 2019-04-17 09:18:18 +01:00
0f00ac2d8c ENH: mesh Vsc() calc - not using sub-cycle volume for steady cases 2019-04-17 09:14:58 +01:00
e6ddde737a ENH: solutionControl - made dict() function virtual 2019-04-17 09:11:39 +01:00
29f9a3db27 ENH: make gravity mesh object unmovable and properly registered (#1276)
- change from UpdateableMeshObject to TopologicalMeshObject

- change inheritance order to have MeshObject be registered first
  and mark the IOobject descriptor as unregistered
2019-04-10 12:54:32 +02:00
54c10e651d STYLE: gravity: whitespace 2019-04-04 14:52:04 +01:00
1561a46927 ENH: limitedSnGrad: added debug writing 2019-03-25 15:42:29 +00:00
c4a13897a1 STYLE: minor adjustments for fan tables (#1229) 2019-03-26 08:17:53 +01:00
c0e5f77e4f STYLE: avoid nullptr when writing fan RPM 2019-03-26 07:59:44 +01:00
b319e058e2 ENH: Adding Function1 functionality to rpm in swirlFanVelocityFvPatch 2019-03-25 10:13:00 -07:00
6301866a9c STYLE: use 'statusDone' keyword for coupling (#1243) 2019-03-22 08:00:01 +01:00
ac646d48b7 ENH: make external file coupling status= configurable (#1243) 2019-03-21 17:26:16 +01:00
4bb2b8a06a STYLE: docs for activePressureForceBaffleVelocity 2019-03-19 13:36:16 +01:00
98e8b7ffed STYLE: correct documentation for fanFvPatchField (#1229)
- for more clarity, make read/write of rpm and mean-diameter contingent
  on nonDimensional == true
2019-03-14 08:19:15 +01:00
f37942b388 ENH: potentialFoam: add region functionality. Fixes #1223.
Also implements combination of -region and -dry-run
2019-02-28 17:04:46 +00:00
bdf57fb44e ENH: support addPatches with PtrList 2019-02-22 18:11:00 +01:00
a43eb01b7e ENH: for-range, forAllIters() ... in finiteVolume/
- reduced clutter when iterating over containers
2019-01-07 09:20:51 +01:00
60234ab007 STYLE: reduced nesting on return branching 2019-02-13 08:06:36 +01:00
bb73eb63a3 STYLE: DFSEM inlet - updated messages when checking validity of the stress tensors 2019-02-11 10:23:45 +00:00
5610da9f95 STYLE: missing space in warning message 2019-02-08 18:53:27 +01:00
e929a20921 STYLE: Header clean-up 2019-02-08 09:30:46 +00:00
078e34746e ENH: code adjustments for updated NullObject
- can now safely use labelList::null() instead of emptyLabelList for
  return values. No special treatment required for lists.

  Possible replacements:

      if (notNull(list) && list.size())  ->  if (list.size())
      if (isNull(list) || list.empty())  ->  if (list.empty())

  The receiver may still wish to handle differently to distinguish
  between a null list and an empty list, but no additional special
  protection is required when obtaining sizes, traversing, outputting
  etc.
2019-02-07 13:04:24 +01:00
ce7e921f21 ENH: restart: save/restore cumulative continuity error. See #1172. 2019-02-07 10:27:03 +00:00
154029ddd0 BOT: Cleaned up header files 2019-02-06 12:28:23 +00:00
8f572a5e71 ENH: improve volRegion handling of moving meshes (#1194)
- implemented as lazy evaluation with an additional update() method.
  This avoids unnecessary changes until the values are actually
  required.

- apply mesh motion changes for momentum, volFieldValue,
  specieReactionRates function objects
2019-02-06 10:25:47 +01:00
b6c5fc0ada ENH: Added checks for input Reynolds stresses based on Lund coefficient constraints. Fixes #1124 2019-02-05 14:07:59 +00:00
216616638f BUG: fieldSelection - corrected selectionNames() 2019-01-29 14:38:36 +00:00
d4b495131f COMP: avoid autoPtr automatic cast conversion in more places
- Can result in inadvertent conversions where the user should really
  know or check if the pointer is valid prior to using.

- Still have several places to fix that are using the deprecated copy
  construct and copy assignment
2019-01-25 12:45:22 +01:00
fe6abf0f61 STYLE: remove NoConstructFromTmp conditional
- workaround for some old compilers many years ago, but no longer relevant
2019-01-25 12:22:38 +01:00
f9eb16db2a STYLE: remove shadow variable name 2019-01-25 01:09:45 +01:00
34ca554f15 Merge branch 'feature-run-time-control-triggers' into 'develop'
Feature run time control triggers

See merge request Development/OpenFOAM-plus!228
2019-01-23 14:59:18 +00:00
27e3b1f9e6 STYLE: relocating files 2019-01-22 12:52:27 +00:00
452a281a00 ENH: fieldSelection - added checks for when fields are not found 2019-01-21 12:16:13 +00:00
ed94a2714d STYLE: use HashTable iterator 'val()' method instead of 'object()' 2019-01-18 16:26:50 +01:00
2a386064e2 ENH: Extended fieldSelection to include field components 2019-01-21 11:35:36 +00:00
8fed88a2bf BUG: fvMesh: support for multi-region moving meshes. Fixes #1170. 2019-01-14 16:55:30 +00:00
52c337a667 ENH: add updateMesh(), movePoints() to volRegion 2019-01-15 18:32:35 +01:00
6c419174e1 STYLE: writeEntry instead of writeKeyword + END 2019-01-11 11:03:36 +01:00
cb5617e070 STYLE: fix some doxygen markup
- missing verbatim/endverbatim markers, missing "Foam::" prefix, typos
2019-01-11 08:22:02 +01:00