Commit Graph

947 Commits

Author SHA1 Message Date
f85dbc557f polyBoundaryMesh: Update indices in neighbour patches on reorder 2020-12-02 11:01:55 +00:00
19b3a5c385 Sub-models, fvOptions: Removed 'active' switch
It is better to not select and instantiate a model, fvOption etc. than to create
it and set it inactive as the creation process requires reading of settings,
parameters, fields etc. with all the associated specification and storage
without being used.  Also the incomplete implementation added a lot of
complexity in the low-level operation of models introducing a significant
maintenance overhead and development overhead for new models.
2020-12-01 18:50:20 +00:00
3838df8eac surfaceFilmModels: Rationalised and standardised the surfaceFilmProperties dictionary
The convoluted separate ".*Coeffs" dictionary form of model coefficient
specification is now deprecated and replaced with the simpler sub-dictionary
form but support is provided for the deprecated form for backward comparability.

e.g.

thermophysicalProperties
{
    type        liquid;

    useReferenceValues  no;
    liquid      H2O;
}

rather than

    filmThermoModel liquid;

    liquidCoeffs
    {
        useReferenceValues no;
        liquid      H2O;
    }

and

forces
{
    thermocapillary;

    distributionContactAngle
    {
        Ccf             0.085;

        distribution
        {
            type            normal;
            normalDistribution
            {
                minValue        50;
                maxValue        100;
                expectation     75;
                variance        100;
            }
        }

        zeroForcePatches ();
    }
}

rather than

    forces
    (
        thermocapillary
        distributionContactAngle
    );

    distributionContactAngleCoeffs
    {
        Ccf             0.085;

        distribution
        {
            type            normal;
            normalDistribution
            {
                minValue        50;
                maxValue        100;
                expectation     75;
                variance        100;
            }
        }

        zeroForcePatches ();
    }

All the tutorial cases containing a surface film have been updated for guidance,
e.g. tutorials/lagrangian/buoyantReactingParticleFoam/hotBoxes/constant/surfaceFilmProperties

surfaceFilmModel thermoSingleLayer;

regionName      wallFilmRegion;

active          true;

thermophysicalProperties
{
    type        liquid;

    useReferenceValues  no;
    liquid      H2O;
}

viscosity
{
    model        liquid;
}

deltaWet    1e-4;
hydrophilic no;

momentumTransport
{
    model       laminar;
    Cf          0.005;
}

forces
{
    thermocapillary;

    distributionContactAngle
    {
        Ccf             0.085;

        distribution
        {
            type            normal;
            normalDistribution
            {
                minValue        50;
                maxValue        100;
                expectation     75;
                variance        100;
            }
        }

        zeroForcePatches ();
    }
}

injection
{
    curvatureSeparation
    {
        definedPatchRadii
        (
            ("(cube[0-9][0-9]_side[0-9]_to_cube[0-9][0-9]_side[0-9])" 0)
        );
    }

    drippingInjection
    {
        cloudName    reactingCloud1;
        deltaStable  0;

        particlesPerParcel 100.0;

        parcelDistribution
        {
            type         RosinRammler;
            RosinRammlerDistribution
            {
                minValue        5e-04;
                maxValue        0.0012;
                d               7.5e-05;
                n               0.5;
            }
        }
    }
}

phaseChange
{
    model           standardPhaseChange;
    Tb              373;
    deltaMin        1e-8;
    L               1.0;
}

upperSurfaceModels
{
    heatTransfer
    {
        model       mappedConvectiveHeatTransfer;
    }
}

lowerSurfaceModels
{
    heatTransfer
    {
        model       constant;
        c0              50;
    }
}
2020-11-30 16:31:44 +00:00
21bb6c549d Function1, Function2: Rationalising, simplifying and standardising writing 2020-11-28 19:50:39 +00:00
0d42b151f0 ZoneMesh: Changed zone selection from keyType to wordRe
It is more logical to use wordRe rather than keyType for name-based selection
including regular expression support as keyType now support other forms of
dictionary keyword including function and variable names which are not
relevant for selecting zones by name.
2020-11-25 15:10:22 +00:00
528a04244f Function1::TableFileReader: Updated write 2020-11-23 15:55:11 +00:00
9f614634a4 dictionary: Ensure the #inputSyntax keyword is processed even if disableFunctionEntries is true 2020-11-17 19:49:44 +00:00
3a2b846a39 calcEntry: Changed '{}' to '()' as the suggested variable name scoping method 2020-11-17 15:43:59 +00:00
6b75c32d43 calcEntry: added header documentation relating to division operations 2020-11-17 15:18:35 +00:00
4e183e33d4 Function1::Table: simplified and rationalised
TableBase, TableFile and Table now combined into a single simpler Table class
which handle both the reading of embedded and file data using the generalised
TableReader.  The new EmbeddedTableReader handles the embedded data reading
providing the functionality of the original Table class within the same
structure that can read the data from separate files.

The input format defaults to 'embedded' unless the 'file' entry is present and
the Table class is added to the run-time selection table under the name 'table'
and 'tableFile' which provides complete backward comparability.  However it is
advisable to migrate cases to use the new 'table' entry and all tutorial cases
have been updated.
2020-11-16 23:48:47 +00:00
37ebdfe36e Function1::TableReader: Added EmbeddedTableReader so that TableFile can read embedded table data 2020-11-16 21:01:41 +00:00
ac3473d7b8 Function2Evaluate: Corrected function declarations
Resolves bug-report https://bugs.openfoam.org/view.php?id=3591
2020-11-13 22:53:32 +00:00
bfedfcde55 dynamicMesh::sixDoFMotion: Generalised replacement for tabulated6DoFMotion
using Function1 and supporting all the standard Function1s including tabulated
and coded.

tutorials/multiphase/interFoam/laminar/sloshingTank3D6DoF updated to use
sixDoFMotion.
2020-11-13 21:12:15 +00:00
215b3bb84c fvOptions::sixDoFAccelerationSource: General replacement for tabulatedAccelerationSource
using Function1 and supporting all the standard Function1s including tabulated
and coded.
2020-11-13 18:37:05 +00:00
df4e94d173 fvOptions::effectivenessHeatExchangerSource: Updated to use Function2 2020-11-13 16:38:26 +00:00
2c6e4320af radiationModels::absorptionEmissionModels: Moved interpolationLookUpTable into the absorptionEmissionModels namespace
The interpolationLookUpTable is highly specialised for absorptionEmissionModels
which did not need to be templated and is now located in the appropriate
directory and namespace.
2020-11-13 16:27:21 +00:00
28dcfb5adc interpolateXY: Removed, superseded by Function1s::Table 2020-11-13 16:22:42 +00:00
fbadc20773 nutUTabulatedWallFunctionFvPatchScalarField: Removed redundant code
The current rough wall functions cover most requirements and there is no clear
need to maintain nutUTabulatedWallFunctionFvPatchScalarField and associated
clutter.
2020-11-13 16:17:45 +00:00
2cd197a536 Function2: New run-time selectable function of two variables
with many options provided from simple constant values to complex functions,
interpolated tabulated data etc. etc.
2020-11-12 18:07:42 +00:00
c5fc21c969 FickianEddyDiffusivity: Added support for diffusion coefficients D and DT as Function1 of T 2020-11-10 15:57:06 +00:00
bbc00ccd2e OpenFOAM: Simplified the handling of global switches and constants
to improve robustness and maintainability.  Now all switches and constants are
set correctly on constructions without the need for dynamic update after the
system/controlDict is read.  This significantly simplifies the code and make it
much easier to add new switches, constants and settings without the need to
ensure they are registered to a database for update.
2020-11-06 19:25:49 +00:00
15103380d0 TimeIO: Corrected reading of dimensionedConstants 2020-11-03 09:40:11 +00:00
ce5ab981e8 OpenFOAM: Rationalised the update of registered switches and constants
Moved the switch and constant reading functionality from TimeIO to more rational
locations.

Added registration of InfoSwitches which are not run-time controlled by other
means.
2020-11-02 17:22:23 +00:00
a121baf047 OpenFOAM::dimensionedConstants: Updated handling of constant specification in system/controlDict
Resolves bug-report https://bugs.openfoam.org/view.php?id=3584
2020-11-02 09:26:04 +00:00
0392bcdfc7 IOobject: Corrected model-name ordering in modelName function 2020-10-30 13:49:16 +00:00
bf10406cf7 Corrected file formatting 2020-10-30 12:38:15 +00:00
f7848e62a1 functionObjects: Emit warning messages only for field names which do not exist for any type
Resolves bug-report https://bugs.openfoam.org/view.php?id=3583
2020-10-27 20:03:19 +00:00
b7b000be3b functionObjects::writeObjects: Changed the default executeAtStart to 'no'
This avoids attempting to write temporary fields before they have been created.
The executeAtStart can be set to 'yes' in the writeObjects dictionary or the

functions
{
    #includeFunc writeObjects(executeAtStart = yes, <field1>, <field2>...)
}
2020-10-22 12:36:47 +01:00
c8f6ba2305 OpenFOAM::tmp: Added support for non-reusable temporaries
Temporary fields returned from functions which are then reused by the calling
function can now be cached by declaring them as non-reusable to guarantee their
integrity.  *Field::New functions have been updated to use this new
functionality and it is recommended to use these functions to create temporary
fields rather than "new *Field".
2020-10-22 08:56:55 +01:00
077e35dc83 DimensionedField: Corrected component and T functions
Resolves bug-report https://bugs.openfoam.org/view.php?id=3564
2020-10-05 11:03:14 +01:00
7e3f4976a8 PatchFields: Removed simple copy constructors and clone functions
These do not necessarily set the internal field reference correctly and it is
safer that the correct internal field is provided as an argument.
2020-10-03 22:16:10 +01:00
1238383597 Coded classes: Fixed IO of compilation settings 2020-09-29 15:13:04 +01:00
31891a38b2 coordinateSystems: Corrected, updated and tested
It is now possible to define coordinate systems in a central location and
selected them by name for any model requiring one, e.g. the
explicitPorositySource.

Description
    Provides a centralized coordinateSystem collection.

    For example with the porous region specified in \c constant/fvOptions as

    \verbatim
    porosity
    {
        type            explicitPorositySource;

        explicitPorositySourceCoeffs
        {
            selectionMode   cellZone;
            cellZone        porousBlockage;

            type            DarcyForchheimer;

            // D 100;  // Very little blockage
            // D 200;  // Some blockage but steady flow
            // D 500;  // Slight waviness in the far wake
            D 1000; // Fully shedding behavior

            d   ($D $D $D);
            f   (0 0 0);

            coordinateSystem porousBlockage;
        }
    }
    \endverbatim

    the corresponding coordinate system \c porousBlockage is looked-up
    automatically from the \c constant/coordinateSystems dictionary:

    \verbatim
    porousBlockage
    {
        type    cartesian;
        origin  (0 0 0);
        coordinateRotation
        {
            type    axesRotation;
            e1  (1 0 0);
            e2  (0 1 0);
        }
    }
    \endverbatim

    See \c tutorials/incompressible/pisoFoam/laminar/porousBlockage
2020-09-29 15:09:58 +01:00
081f2d5726 writeObjectsBase: Append explicit names (regExp = false) directly to the list 2020-09-27 20:13:56 +01:00
8221b25875 coded classes: Added "codeOptions"
Resolves bug-report https://bugs.openfoam.org/view.php?id=3555
2020-09-25 16:41:47 +01:00
560db98b34 dictionary: Standardised and centralised the argument list parser
to simplify maintenance
2020-09-19 15:52:09 +01:00
ad33cc2cc8 functionObject: Added support for scoped keyword lookup in the argument list
functions
{
    #includeFunc        singleGraph(setConfig/axis = y)
    .
    .
    .
}
2020-09-18 21:39:40 +01:00
07f6ffa2b8 TimeIO: uint -> unsigned int
Resolves bug-report https://bugs.openfoam.org/view.php?id=3549
2020-09-18 13:31:41 +01:00
6c62efade7 lduMatrix, LduMatrix: Updated type logic to handle parallel cases
in which there is 0 or 1 cell on some processors.
2020-09-18 08:19:04 +01:00
d05a831fc3 lduMatrix,LduMatrix: Added logic to the matrix type selection to handle empty coefficient fields
This ensures that the diagonal solver is selected for 0D cases even if the upper
and lower coefficient fields exist but are empty.
2020-09-17 19:14:18 +01:00
ea777f806b Time: Read locally modified info switches 2020-09-16 14:45:02 +01:00
aa8e4b407c masterUncollatedFileOperation: Updated to handle parallel distribution of binary IOdictionaries 2020-09-14 17:16:39 +01:00
0c75318250 IOdictionary: Pstream transfer is now ASCII unless binary is specified in the file 2020-09-14 16:38:28 +01:00
3220c10f7a IOdictionary: changed read stream type to binary for parallel transfer efficiency 2020-09-14 11:55:50 +01:00
f98d878457 OpenFOAM: Rationalised naming convention for file path
pathName, pathname -> filePath
2020-09-14 11:27:05 +01:00
80eecb3d95 dictionary::includeEntry: Added support for included files containing binary data 2020-09-10 21:50:23 +01:00
ce413b50ba Matrix: Added token::compound support for binary IO of matrices within dictionaries 2020-09-10 17:29:07 +01:00
1ca739cd8e RectangularMatrix: Added writeEntry 2020-09-02 16:00:40 +01:00
def4772281 Documentation: Centred the Class Declaration comment
Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2020-08-28 13:28:58 +01:00
2fb061568a DimensionedField::New: Made compatible with point fields 2020-08-21 12:41:03 +01:00