Commit Graph

17013 Commits

Author SHA1 Message Date
818a5c3dc2 BUG: swirlFanVelocity: incorrect writing. Fixes #2298. 2021-12-13 09:26:48 +00:00
8d4ad0438d ENH: add exprField function object
- provides a simple means of defining/modifying fields. For example,

  ```
  <name1>
  {
      type    exprField;
      libs    (fieldFunctionObjects);
      field   pTotal;

      expression  "p + 0.5*(rho*magSqr(U))";
      dimensions  [ Pa ];
  }
  ```
  It is is also possible to modify an existing field.
  For example, to modify the previous one.
  ```
  <name2>
  {
      type    exprField;
      libs    (fieldFunctionObjects);
      field   pTotal;
      action  modify;

      // Static pressure only in these regions
      fieldMask
      #{
          (mag(pos()) < 0.05) && (pos().y() > 0)
       || cellZone(inlet)
      #};
      expression  "p";
  }
  ```

  To use as a simple post-process calculator, simply avoid storing the
  result and only generate on write:
  ```
  <name2>
  {
      store            false;
      executionControl none;
      writeControl     writeTime;
      ...
  }
  ```
2021-12-10 14:46:21 +00:00
a6cbfcb9ba STYLE: qualify expression debug flags
- for debug/tracing handle the following keywords:

   * debug.driver   (was "debugBaseDriver")
   * debug.scanner  (was "debugScanner")
   * debug.parser   (was "debugParser")
2021-12-10 14:46:21 +00:00
510ffb3322 ENH: code reduction, improvements for expressions
- literal lookups only for expression strings

- code reduction for setExprFields.

- changed keyword "condition" to "fieldMask" (option -field-mask).
  This is a better description of its purpose and avoids possible
  naming ambiguities with functionObject triggers (for example)
  if we apply similar syntax elsewhere.

BUG: erroneous check in volumeExpr::parseDriver::isResultType()

- not triggered since this method is not used anywhere
  (may remove in future version)
2021-12-10 14:46:21 +00:00
cad325f41f BUG: icoReactingMultiphaseInterFoam: enable phasesSystem surface tension models (Fixes #2228) 2021-12-09 18:49:02 +00:00
8ac0548c6a BUG: solidificationMeltingSource: allow topology changes (Fixes #2026) 2021-12-09 18:49:02 +00:00
c8db0d135f BUG: solitaryWaveModel: avoid reference access to an operand object (Fixes #2178) 2021-12-09 18:49:02 +00:00
b053e2214c BUG: LESdelta: avoid double object registrations (Fixes #1171) 2021-12-09 18:49:02 +00:00
0c20256be5 BUG: LiquidEvapFuchsKnudsen: add missing particle surface area (Fixes #2069) 2021-12-09 18:49:02 +00:00
ae555ec744 BUG: alphatWallBoilingWallFunction: remove redundant phaseType=vapor entries (Fixes #2243) 2021-12-09 18:49:02 +00:00
60f3d416a6 ENH: InterfaceCompositionModels: add new thermo types for oxidation mass model 2021-12-09 17:04:10 +00:00
402bc0fef0 ENH: multiphaseSystem: add alpha1 boundary manipulation 2021-12-09 17:04:10 +00:00
437ea6917a ENH: timeVaryingMassSorption: new boundary condition for icoReacting solvers
Co-authored-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
2021-12-09 17:04:10 +00:00
ea9d424e24 ENH: interfaceOxideRate: New mass transfer model
Based on:

    Cao, L., Sun, F., Chen, T., Tang, Y., & Liao, D. (2018).
    Quantitative prediction of oxide inclusion defects inside
    the casting and on the walls during cast-filling processes.
    International Journal of Heat and Mass Transfer, 119, 614-623.
    DOI:10.1016/j.ijheatmasstransfer.2017.11.127

Co-authored-by: Kutalmis Bercin <kutalmis.bercin@esi-group.com>
2021-12-09 17:04:10 +00:00
6580f1bbef ENH: interfaceCompositionModel: refactor Tactivate and includeDivU funcs 2021-12-09 17:04:10 +00:00
e479f842b3 ENH: liquidFilmModel: change default write option to NO_WRITE for few fields 2021-12-09 17:01:46 +00:00
b69ceb54a7 ENH: Adding shear stress to the film from the wall function
TUT: inclinedPlaneFilm/pitzDailyWithSprinklers: add shearStress model
2021-12-09 17:01:46 +00:00
9e8fd66ed2 BUG: faOption-limitVelocity: remove remnants of fvOption
COMP: ensure compilation of faOption-limitVelocity
2021-12-09 17:01:46 +00:00
eabafe5f9e BUG: filmTurbulenceModel: fix film friction models
STYLE: filmTurbulenceModel: add default destructor
2021-12-09 17:01:46 +00:00
c3c23c3cb2 ENH: allow top-level definition of function object name scoping
- this refines commit c233961d45, which added prefix scoping.

  Default is now off (v2106 behaviour).

  The 'useNamePrefix' keyword can be specified on a per function basis
  or at the top-level of "functions".

  ```
      functions
      {
          errors          warn;
          useNamePrefix   true;

          func1
          {
              type  ...;
              useNamePrefix   false;
          }

          func2
          {
              type  ...;
              // Uses current default for useNamePrefix
          }
      }
  ```
2021-12-09 15:42:51 +01:00
638d1fe8f6 BUG: blockMesh verbosity set too late
- sort out the command-line vs dictionary vs default logic *before*
  constructing any other members since they too are influenced by the
  verbosity.
2021-12-09 15:42:51 +01:00
fde3904796 GIT: relocate PrecisionAdaptor to memory/ 2021-12-09 15:42:51 +01:00
698ff5eedc STYLE: inherit SubField from FieldBase instead of refCount
- at the moment there is no significant difference since FieldBase is
  essentially just a refCount anyhow, but changing the inheritance
  ensures that reinterpret casting from SubField -> Field will
  continue to work if FieldBase is changed in the future.
2021-12-09 15:42:51 +01:00
efb187e3f7 ENH: support optional dimensionSet reading 2021-12-09 15:42:46 +01:00
8c98906780 ENH: MRFZone|List - enable re-reading; code clean-up 2021-12-09 13:33:13 +00:00
f19883c0c6 ENH: patchProbes: output patch. Fixes #2291. 2021-12-09 09:20:19 +00:00
90d62c33e4 INT: Minor integration updates 2021-12-09 09:18:02 +00:00
3ef0d19ef4 ENH: added functionality for smoothing the sensitivity derivatives
A Helmholtz-like filter is applied to the original field of sensitivity
derivatives. The corresponding PDE is solved on the sensitivity patches,
using the finite area infrastructure. A smoothing radius is needed,
which is computed based on the average 'length' of the boundary faces,
if not provided by the user explicitly.

If an faMesh is provided, it will be used; otherwise it will be created
on the fly based on either an faMeshDefinition dictionary in system or
one constructed internally based on the sensitivity patches.
2021-12-09 09:18:02 +00:00
86da88cdfd ENH: Added relaxed nonOrthogonal laplacian corrector scheme 2021-12-08 12:07:26 +00:00
391c1eaa40 ENH: snGradSchemes: new scheme relaxedSnGrad
Surface gradient scheme with under-/over-relaxed
full or limited explicit non-orthogonal correction.

A minimal example by using system/fvSchemes:

  snGradSchemes
  {
      snGrad(<term>)       relaxed;
  }

and by using system/fvSolution:

  relaxationFactors
  {
      fields
      {
          snGrad(<term>)   <relaxation factor>;
      }
  }
2021-12-08 12:07:26 +00:00
37a6fc8db3 STYLE: snGradSchemes: modernise and clean up code
ENH: removes an unused scalarField from skewCorrectedSnGrad

DOC: snGradSchemes: improve header-file documentation
2021-12-08 12:07:26 +00:00
adf6869bba ENH: gradSchemes: new gradient scheme iterativeGaussGrad
A second-order gradient scheme using face-interpolation,
Gauss' theorem and iterative skew correction.

Minimal example by using system/fvSchemes:

  gradSchemes
  {
    grad(<term>) iterativeGauss <interpolation scheme> <number of iters>;
  }
2021-12-08 11:05:06 +00:00
563456087c STYLE: gradSchemes: modernise and clean up code 2021-12-08 11:05:06 +00:00
f6ccd77d8c BUG: sampledSets - ensure results are written on all procs 2021-12-07 21:09:14 +00:00
65bc8d1140 STYLE: remove local version of momentum::scopedName
BUG: incorrect return for unscoped functionObject name
2021-12-07 15:48:19 +01:00
85b405206d ENH: Added new glTF sammpled set writer
Description
    Writes point data in glTF v2 format

    Two files are generated:
    - filename.bin  : a binary file containing all scene entities
    - filename.gltf : a JSON file that ties fields to the binary data

    The output can contain both geometry and fields, with additional support
    for colours using a user-supplied colour map, and animation of particle
    tracks.

    Controls are provided via the optional formatOptions dictionary.

    For non-particle track data:

    \verbatim
    formatOptions
    {
        // Apply colours flag (yes | no ) [optional]
        colours     yes;

        // List of options per field
        fieldInfo
        {
            p
            {
                // Colour map [optional]
                colourMap       <colourMap>;

                // Colour map minimum and maximum limits [optional]
                // Uses field min and max if not specified
                min             0;
                max             1;

                // Alpha channel [optional] (uniform | field)
                alpha           uniform;
                alphaValue      0.5;

                //alpha           field;
                //alphaField      T;
                //normalise       yes;
            }
        }
    }
    \verbatim

    For particle tracks:

    \verbatim
    formatOptions
    {
        // Apply colours flag (yes | no) [optional]
        colours     yes;

        // Animate tracks (yes | no) [optional]
        animate     yes;

        // Animation properties [optional]
        animationInfo
        {
            // Colour map [optional]
            colourMap       <colourMap>;

            // Colour [optional] (uniform | field)
            colour          uniform;
            colourValue     (1 0 0); // RGB in range [0-1]

            //colour          field;
            //colourField     d;

            // Colour map minimum and maximum limits [optional]
            // Note: for colour = field option
            // Uses field min and max if not specified
            min             0;
            max             1;

            // Alpha channel [optional] (uniform | field)
            alpha           uniform;
            alphaValue      0.5;

            //alpha           field;
            //alphaField      T;
            //normalise       yes;
        }
    }
    \endverbatim

Note
    When writing particle animations, the particle field and colour properties
    correspond to initial particle state (first data point) and cannot be
    animated (limitation of the file format).

    For more information on the specification see
    https://www.khronos.org/registry/glTF/
2021-12-06 12:26:49 +01:00
98c25d163a ENH: sampledSets - enable writer construction from dictionary
Users can now include additional controls via a new formatOptions dictionary.
2021-12-06 12:26:48 +01:00
e5267bf81d ENH: sampledSetWriters - updated writing of particle tracks 2021-12-06 12:26:48 +01:00
79fafda22c ENH: Cloud - added function to read cloud fields from disk to obr 2021-12-06 12:26:48 +01:00
f5f93e81d8 COMP: temperatureCoupledBase: make API consistent. Fixes #2287. 2021-12-06 10:54:43 +00:00
29f7fcc515 COMP: workaround clang-13 optimization issue (vtk handling) 2021-12-03 21:23:44 +01:00
9a5125111e ENH: add coded Function1 (#2282)
- update coded templates with qualified names

GIT: add in missing PatchFunction1 constant() method

- was missed in a previous commit
2021-12-03 20:56:10 +01:00
27e57c29f7 BUG: dangling dictionary reference for expression BCs
- exposed by the new embedded function handling.

  Requires local copies of dictionary content instead
  (similar to coded BCs handling)

BUG: incorrect formatting for expression function output

ENH: simpler copyDict version taking wordList instead of wordRes

- corresponds to the most common use case at the moment

ENH: expression string writeEntry method

- write as verbatim for better readability
2021-12-03 17:10:22 +01:00
e09298092d ENH: support negated regular expressions (#2283)
- extendes the prefix syntax to handle '!' values.

  For example,  "(?!).*processor.*" or "(?!i)inlet.*"
2021-12-03 17:10:22 +01:00
49e26dd7d2 ENH: consistent specification of fan conditions (fixes #2279) 2021-12-03 17:10:22 +01:00
31a7c2a9cd ENH: initial use of ReactionTable to wrap information 2021-12-03 17:10:22 +01:00
c7f30a0989 STYLE: use Hash<word> instead of string::hasher for runTimeSelectionTables 2021-12-03 15:55:19 +01:00
bdf77bbdd1 ENH: simplify hashing overloads of string-types
- this revises the changes made in 95cd8ee75c to replace the
  SFINAE-type of handling of string hashes with direct definitions.

  This places a bit more burden on the developer if creating hashable
  classes derived from std::string or variants of Foam::string, but
  improves reliability when linking.

STYLE: drop template key defaulting from HashSet

- this was never used and `HashSet<>` is much less transparent
  than writing `HashSet<word>` or `wordHashSet`
2021-12-03 15:55:19 +01:00
939c335504 INT: liquidProperties: support for user defined liquid properties (#2141)
- Generic thermophysical properties class for a liquid in which the
  functions and coefficients for each property are run-time selected.

  Code adapted from openfoam.org
2021-12-03 15:54:48 +01:00
e9054ec636 COMP: consistent FatalError/FatalIOError exit types
STYLE: hostName() is short name, don't need parameter
2021-12-03 15:32:37 +01:00