Commit Graph

5428 Commits

Author SHA1 Message Date
57a4460d08 surfaceTransformPoints, transformPoints: documented transformations in '-help' option 20210815 2021-08-14 17:42:51 +01:00
f3454baa08 lagrangian: DevolatilisationModel: Added access to the parcel 2021-08-13 12:30:14 +01:00
41b73ec578 sampling: Ensure tracking is done at the new-time mesh state 2021-08-13 09:44:54 +01:00
436c012a82 sampling: Explicitly cache data needed for tracking in parallel and on moving meshes 2021-08-13 08:56:13 +01:00
19bdfa969f fvModels, fvConstraints: Update as a result of mesh motion 2021-08-12 13:26:53 +01:00
737d91ec72 trackedParticle: Removed unused forward declaration 2021-08-12 12:08:41 +01:00
5fcfbce8dc sampling: Reset counters on particles that are used without clouds 2021-08-12 12:06:42 +01:00
9765f87202 test/postProcessing/channel: Updated for changes in topoSet syntax 2021-08-12 10:58:51 +01:00
97e5fc3781 test: Renamed thermophysicalProperties files to physicalProperties 2021-08-12 10:53:52 +01:00
fe98296668 multiphaseEulerFoam: Added coalescence and breakup models of Liao et al. (2015)
Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2021-08-12 10:41:48 +01:00
79a6b73547 multiphaseEulerFoam: populationBalance: Apply solveOnFinalIterOnly to velocityGroup
Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2021-08-12 10:28:54 +01:00
866441f33f multiphaseEulerFoam: Added reporting of selected population balance submodels to the log
Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2021-08-12 10:27:13 +01:00
88585af6af multiphaseEulerFoam: nucleationModels: Moved velocityGroup member to base class
Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2021-08-12 10:26:23 +01:00
184bce4045 test: Fixed plots in population balance cases
Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2021-08-12 10:25:23 +01:00
4398f57c5e messageStream: Removed unused code and corrected communicator handling 2021-08-12 10:22:11 +01:00
9eec6c6be0 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2021-08-12 10:20:52 +01:00
b9123328fb typeIOobject: Template typed form of IOobject for type-checked object file and header reading
used to check the existence of and open an object file, read and check the
header without constructing the object.

'typeIOobject' operates in an equivalent and consistent manner to 'regIOobject'
but the type information is provided by the template argument rather than via
virtual functions for which the derived object would need to be constructed,
which is the case for 'regIOobject'.

'typeIOobject' replaces the previous separate functions 'typeHeaderOk' and
'typeFilePath' with a single consistent interface.
2021-08-12 10:12:03 +01:00
5272e4095e particle: Prevent hangs and fatal errors
Robustness improvements have been made to the "behind" system which
prevents the tracking system from hanging. Addition protections have
also been added to prevent division by subnormal numbers and associated
floating point errors.
2021-08-10 15:04:50 +01:00
26b90ff66e tetIndices: Improved warning message frequency
Warning messages for faces which cannot be tetrahedralised with purely
positive tetrahedra are now generated once per face at each timestep.
This means they do not fill the log if the same face is encountered
multiple times, and they are also are visible throughout a log.
2021-08-10 08:30:10 +01:00
0a3a6312e5 test/postProcessing/channel/system/controlDict: Updated turbulenceFields functionObject call
muEff -> nuEff
2021-08-09 21:41:02 +01:00
cc92330253 IOobject, regIOobject: rationalised handling of paths for global and local objects
now all path functions in 'IOobject' are either templated on the type or require a
'globalFile' argument to specify if the type is case global e.g. 'IOdictionary' or
decomposed in parallel, e.g. almost everything else.

The 'global()' and 'globalFile()' virtual functions are now in 'regIOobject'
abstract base-class and overridden as required by derived classes.  The path
functions using 'global()' and 'globalFile()' to differentiate between global
and processor local objects are now also in 'regIOobject' rather than 'IOobject'
to ensure the path returned is absolutely consistent with the type.

Unfortunately there is still potential for unexpected IO behaviour inconsistent
with the global/local nature of the type due to the 'fileOperation' classes
searching the processor directory for case global objects before searching the
case directory.  This approach appears to be a work-around for incomplete
integration with and rationalisation of 'IOobject' but with the changes above it
is no longer necessary.  Unfortunately this "up" searching is baked-in at a low
level and mixed-up with various complex ways to pick the processor directory
name out of the object path and will take some unravelling but this work will
undertaken as time allows.
2021-08-09 21:23:12 +01:00
a1c991d9f3 IOobject: Simplified and rationalised the handling for filePath
for local and global files so that the reading and writing of local files to
processor directories and global files to the case directory are consistent.
2021-08-06 20:50:27 +01:00
0bd7d96387 tutorials/multiphase/interFoam/laminar/damBreak/damBreak/system/decomposeParDict: reinstated 2021-08-06 17:57:00 +01:00
1278c865aa timeIOdictionary: New global IOdictionary type to handle writing of time-dependent global data
to the <case>/<time>/uniform or <case>/<processor>/<time>/uniform directory.

Adding a new form of IOdictionary for this purpose allows significant
simplification and rationalisation of regIOobject::writeObject, removing the
need for explicit treatment of different file types.
2021-08-05 22:28:05 +01:00
f8b00b3d80 fileOperation::writeObject: Updated handling of filePath
so that in parallel time-dependent global objects are written to the
processor?/<time>/uniform directory and constant global objects are written to
the case/constant directory.
2021-08-04 16:14:47 +01:00
cd1842d276 fileOperation: Reverted path change in writeObject
so that time-dependent global objects are written to processor?/<time>/uniform
when running in parallel.
2021-08-04 15:39:38 +01:00
1502ad7b17 dynamicMeshDict: Updated alphaPhi0.water -> alphaPhi.water 2021-08-03 17:11:02 +01:00
84b3a3dfef scotchDecomp: Added call to SCOTCH_randomReset
// Reset the seed of the pseudo-random generator used by the graph
    // partitioning routines of the libScotch library. Two consecutive calls to
    // the same libScotch partitioning routines, and separated by a call to
    // SCOTCH randomReset, will always yield the same results, as if the
    // equivalent standalone Scotch programs were used twice, independently,
    SCOTCH_randomReset();
2021-08-03 17:10:36 +01:00
a3e21c6bce tutorials/heatTransfer/buoyantSimpleFoam/circuitBoardCooling: Simplified directory structure 2021-07-31 22:05:42 +01:00
8e978d6f21 regionModels::thermalBaffleModel: Moved the thermalBaffleModel base-class out of the thermalBaffleModels namespace
The OpenFOAM convention is to keep the model-base class in the parent
rather than the models namespace to simplify construction:

    Foam::regionModels::thermalBaffleModel::New

rather than

    Foam::regionModels::thermalBaffleModels::thermalBaffleModel::New
2021-07-31 07:57:06 +01:00
2529739218 twoPhaseMixture: Removed redundant code 2021-07-30 21:30:42 +01:00
4f969432ad VoFTurbulenceDamping: New fvModel to apply turbulence damping at the VoF interface
Provided for use with mixture turbulence models in interFoam and
compressibleInterFoam.

Class
    Foam::fv::VoFTurbulenceDamping

Description
    Free-surface turbulence damping function

    Adds an extra source term to the mixture or phase epsilon or omega
    equation to reduce turbulence generated near a free-surface.  The
    implementation is based on

    Reference:
    \verbatim
        Frederix, E. M. A., Mathur, A., Dovizio, D., Geurts, B. J.,
        & Komen, E. M. J. (2018).
        Reynolds-averaged modeling of turbulence damping
        near a large-scale interface in two-phase flow.
        Nuclear engineering and design, 333, 122-130.
    \endverbatim

    but with an improved formulation for the coefficient \c A appropriate for
    unstructured meshes including those with split-cell refinement patterns.
    However the dimensioned length-scale coefficient \c delta remains and must
    be set appropriatly for the case by performing test runs and comparing with
    known results.  Clearly this model is far from general and more research is
    needed in order that \c delta can be obtained directly from the interface
    flow and turbulence conditions.

Usage
    Example usage:
    \verbatim
    VoFTurbulenceDamping
    {
        type    VoFTurbulenceDamping;

        libs    ("libVoFTurbulenceDamping.so");

        // Interface turbulence damping length scale
        // This is a required input as described in section 3.3 of the paper
        delta   1e-4;

        // phase   water; // Optional phase name
    }
    \endverbatim
2021-07-30 17:25:36 +01:00
65ef2cf331 physicalProperties: Standardised incompressible and compressible solver fluid properties
to provide a single consistent code and user interface to the specification of
physical properties in both single-phase and multi-phase solvers.  This redesign
simplifies usage and reduces code duplication in run-time selectable solver
options such as 'functionObjects' and 'fvModels'.

* physicalProperties
  Single abstract base-class for all fluid and solid physical property classes.

  Physical properties for a single fluid or solid within a region are now read
  from the 'constant/<region>/physicalProperties' dictionary.

  Physical properties for a phase fluid or solid within a region are now read
  from the 'constant/<region>/physicalProperties.<phase>' dictionary.

  This replaces the previous inconsistent naming convention of
  'transportProperties' for incompressible solvers and
  'thermophysicalProperties' for compressible solvers.

  Backward-compatibility is provided by the solvers reading
  'thermophysicalProperties' or 'transportProperties' if the
  'physicalProperties' dictionary does not exist.

* phaseProperties
  All multi-phase solvers (VoF and Euler-Euler) now read the list of phases and
  interfacial models and coefficients from the
  'constant/<region>/phaseProperties' dictionary.

  Backward-compatibility is provided by the solvers reading
  'thermophysicalProperties' or 'transportProperties' if the 'phaseProperties'
  dictionary does not exist.  For incompressible VoF solvers the
  'transportProperties' is automatically upgraded to 'phaseProperties' and the
  two 'physicalProperties.<phase>' dictionary for the phase properties.

* viscosity
  Abstract base-class (interface) for all fluids.

  Having a single interface for the viscosity of all types of fluids facilitated
  a substantial simplification of the 'momentumTransport' library, avoiding the
  need for a layer of templating and providing total consistency between
  incompressible/compressible and single-phase/multi-phase laminar, RAS and LES
  momentum transport models.  This allows the generalised Newtonian viscosity
  models to be used in the same form within laminar as well as RAS and LES
  momentum transport closures in any solver.  Strain-rate dependent viscosity
  modelling is particularly useful with low-Reynolds number turbulence closures
  for non-Newtonian fluids where the effect of bulk shear near the walls on the
  viscosity is a dominant effect.  Within this framework it would also be
  possible to implement generalised Newtonian models dependent on turbulent as
  well as mean strain-rate if suitable model formulations are available.

* visosityModel
  Run-time selectable Newtonian viscosity model for incompressible fluids
  providing the 'viscosity' interface for 'momentumTransport' models.

  Currently a 'constant' Newtonian viscosity model is provided but the structure
  supports more complex functions of time, space and fields registered to the
  region database.

  Strain-rate dependent non-Newtonian viscosity models have been removed from
  this level and handled in a more general way within the 'momentumTransport'
  library, see section 'viscosity' above.

  The 'constant' viscosity model is selected in the 'physicalProperties'
  dictionary by

      viscosityModel  constant;

  which is equivalent to the previous entry in the 'transportProperties'
  dictionary

      transportModel  Newtonian;

  but backward-compatibility is provided for both the keyword and model
  type.

* thermophysicalModels
  To avoid propagating the unnecessary constructors from 'dictionary' into the
  new 'physicalProperties' abstract base-class this entire structure has been
  removed from the 'thermophysicalModels' library.  The only use for this
  constructor was in 'thermalBaffle' which now reads the 'physicalProperties'
  dictionary from the baffle region directory which is far simpler and more
  consistent and significantly reduces the amount of constructor code in the
  'thermophysicalModels' library.

* compressibleInterFoam
  The creation of the 'viscosity' interface for the 'momentumTransport' models
  allows the complex 'twoPhaseMixtureThermo' derived from 'rhoThermo' to be
  replaced with the much simpler 'compressibleTwoPhaseMixture' derived from the
  'viscosity' interface, avoiding the myriad of unused thermodynamic functions
  required by 'rhoThermo' to be defined for the mixture.

  Same for 'compressibleMultiphaseMixture' in 'compressibleMultiphaseInterFoam'.

This is a significant improvement in code and input consistency, simplifying
maintenance and further development as well as enhancing usability.

Henry G. Weller
CFD Direct Ltd.
2021-07-30 17:19:54 +01:00
4aacb80bae wmake/rules: Removed temporary -fno-tree-slp-vectorize gcc option
introduced to work-around bug in the gcc-11.1 optimiser which is fixed in
gcc-11.2

See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101634
2021-07-28 11:37:02 +01:00
254b99357d tutorials: Updated for changes to topoSet 2021-07-27 17:03:53 +01:00
6a657c4338 topoSet: Rationalised the name keyword for zones and patches
For a set to zone conversion the name of the zone is now specified with the
'zone' keyword.

For a patch to set conversion the name of the patch is now specified with the
'patch' keyword.

Backward-compatibility is supported for both these changes.

Additionally the file name of a searchableSurface file is specified with the
'file' keyword.  This should be 'surface' but that keyword is currently and
confusingly used for the surface type rather than name and this cannot be
changed conveniently while maintaining backward compatibility.
2021-07-27 15:44:08 +01:00
ff36c94456 tutorials: Corrected #includeFunc usage of flow rate functions 2021-07-27 14:37:58 +01:00
15a27fee87 topoSet: the sourceInfo sub-dictionary of the topoSetDict actions is now optional
and only needed if there is a name clash between entries in the source
specification and the set specification, e.g. "name":

    {
        name    rotorCells;
        type    cellSet;
        action  new;
        source  zoneToCell;
        sourceInfo
        {
            name    cylinder;
        }
    }
2021-07-27 14:07:37 +01:00
6cc34206c3 patchFluxToFace: New topoSetSource to select patch faces according to the flux direction
Description
    A topoSetSource to select patch faces according to the flux direction.

Usage
    Example topoSetDict to generate faceSets for inflow and outflow faces
    on the outlet patch:
    \verbatim
    actions
    (
        {
            action  new;
            type    faceSet;
            name    inflow;
            source  patchFluxToFace;
            sourceInfo
            {
                field       phi;
                patch       outlet;
                inflow      true;
            }
        }

        {
            action  new;
            type    faceSet;
            name    outflow;
            source  patchFluxToFace;
            sourceInfo
            {
                field       phi;
                patch       outlet;
                inflow      false;
            }
        }
    );
    \endverbatim
2021-07-26 16:54:13 +01:00
976de0baf5 topoSetSources: Removed redundant code 2021-07-26 16:48:14 +01:00
47bb18c20f Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2021-07-23 19:27:17 +01:00
8d887e0a86 Completed the replacement of setSet with topoSet
topoSet is a more flexible and extensible replacement for setSet using standard
OpenFOAM dictionary input format rather than the limited command-line input
format developed specifically for setSet.  This replacement allows for the
removal of a significant amount of code simplifying maintenance and the addition
of more topoSet sources.
2021-07-23 19:22:50 +01:00
a6c59e00b2 multiphaseEulerFoam: Renamed CoulaloglouTavlaridesCoalescence to CoulaloglouTavlarides
Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2021-07-23 16:20:31 +01:00
8f76bfcb42 splitMeshRegions: Remove surfaceField zero hack
now that fvMeshSubset correctly maps surfaceField boundary patch values
2021-07-21 17:26:50 +01:00
37108ec2ee wmake: Added support for the new OneAPI Intel compiler
The icx and icpx Intel compilers are selected by

WM_COMPILER=Icx

These compilers are based on the Clang front-end and hence the configuration
files are based on and nearly identical to those for Clang.

Support for the new OneAPI compilers replaces the now deprecated Intel icc, icpc
compilers.
2021-07-20 16:51:09 +01:00
e2e88c3058 Function1s::Table: Added access functions
to enable tables to be constructed from the components of existing tables with
value transformations.
2021-07-19 14:16:08 +01:00
689ea4224f Updated dates 2021-07-15 15:35:22 +01:00
6b31a866d7 Corrected headers 2021-07-15 15:34:07 +01:00
b5184a9e90 doc/Guides: Updated version-9 2021-07-15 14:08:22 +01:00
d83c873f93 Resolve warning messages generated by Gcc-11 and Clang-12 2021-07-15 10:10:28 +01:00