Commit Graph

379 Commits

Author SHA1 Message Date
2d3b02c130 primitiveMeshGeometry, polyMeshGeometry: Removed unused code
The utilised static parts of polyMeshGeometry are now part of a
polyMeshCheck namespace. Everything else has been removed, as they were
unused, out of date, and/or duplicated elsewhere.
2020-02-13 14:33:18 +00:00
0dd2e97bd8 CodedFunction1: New Function1 which uses codeStream to dynamically compile the value function code
For example in the new tutorial case:
tutorials/incompressible/pimpleFoam/laminar/pitzDailyPulse
a cosine bell velocity pulse is specified at the inlet by directly defining the
code for it:

    inlet
    {
        type            uniformFixedValue;
        uniformValue    coded;

        name            pulse;

        codeInclude
        #{
            #include "mathematicalConstants.H"
        #};

        code
        #{
            return vector
            (
                0.5*(1 - cos(constant::mathematical::twoPi*min(x/0.3, 1))),
                0,
                0
            );
        #};
    }

which is then compiled automatically and linked into the running pimpleFoam
dynamically and executed to set the inlet velocity.
2020-01-31 23:39:59 +00:00
ea3e891dab tutorials/mesh/snappyHexMesh/pipe: Calculate closeness from the pipe wall only 2020-01-27 15:14:11 +00:00
76a725b7b0 cyclicPolyPatch, GeometricBoundaryField: Updated diagnostic messages 2020-01-24 11:55:26 +00:00
f550db1a5f Scotch: Upgrade to 6.0.9
This is to resolve a bug in the ptscotch rebalancing of the LES
motorBike mesh when running with the new coupled patch ordering
2020-01-22 11:48:50 +00:00
d38a680dae surfaceFeatures: Separated "closness" option into "faceCloseness" and "pointCloseness"
For complex geometries the calculation of surface face and point "closeness" can
be quite time consuming and usually only one or other is required; the new
options allow the user to specify which should be calculated and written.
2020-01-18 23:04:49 +00:00
05966af49c surfaceFeatureExtract: Removed deprecated utility, replaced by surfaceFeatures 2020-01-18 23:04:00 +00:00
02fc637645 coupledPolyPatch: Separated ordering from transformation controls
which will allow the transformation calculation functionality to be moved into
cyclic patches.
2019-12-31 20:24:52 +00:00
0ad918f659 surfaceFilmModels: Rewritten in mass conservative form
All of the film transport equations are now formulated with respect to the film
volume fraction in the region cell layer rather than the film thickness which
ensures mass conservation of the film even as it flows over curved surfaces and
around corners.  (In the previous formulation the conservation error could be as
large as 15% for a film flowing around a corner.)

The film Courant number is now formulated in terms of the film cell volumetric
flux which avoids the stabilised division by the film thickness and provides a
more reliable estimate for time-step evaluation.  As a consequence the film
solution is substantially more robust even though the time-step is now
significantly higher.  For film flow dominated problem the simulations now runs
10-30x faster.

The inconsistent extended PISO controls have been replaced by the standard
PIMPLE control system used in all other flow solvers, providing consistent
input, a flexible structure and easier maintenance.

The momentum corrector has been re-formulated to be consistent with the momentum
predictor so the optional PIMPLE outer-corrector loop converges which it did not
previously.

nonuniformTransformCyclic patches and corresponding fields are no longer needed
and have been removed which paves the way for a future rationalisation of the
handling of cyclic transformations in OpenFOAM to improve robustness, usability
and maintainability.

Film sources have been simplified to avoid the need for fictitious boundary
conditions, in particular mappedFixedPushedInternalValueFvPatchField which has
been removed.

Film variables previously appended with an "f" for "film" rather than "face"
have been renamed without the unnecessary and confusing "f" as they are
localised to the film region and hence already directly associated with it.

All film tutorials have been updated to test and demonstrate the developments
and improvements listed above.

Henry G. Weller
CFD Direct Ltd.
2019-12-12 10:34:08 +00:00
7d229e7026 functionObject: Log by default to stdout when in postProcess mode, not otherwise
This change formalises the usage of the "log" keyword in function
objects. By default, logging to stdout is activated when running
"postProcess" or "<solver> -postProcess", and deactivated when a
function is being executed as part of a run.

This behaviour can now be overridden in the function object dictionary
when operating in either mode.
2019-11-27 16:27:27 +00:00
5eaf74c3a4 dictionary scalar lookup: simplified syntax using the type templated lookup function
Replaced
    readScalar(dict.lookup("name"))
with
    dict.lookup<scalar>("name")
2019-11-27 14:56:32 +00:00
d987648ef4 dictionary label lookup: simplified syntax using the type templated lookup function
Replaced
    readLabel(dict.lookup("name"))
with
    dict.lookup<label>("name)
2019-11-27 11:38:59 +00:00
612164005d foamDictionary: Removed the -disableFunctionEntries option 2019-11-19 13:28:40 +00:00
322c9a473a dimensionSets, dimensionedConstants: Simplified the input
When reading dimensionSets and dimensionedConstants the name of the
dimensionedScalar is no longer required in addition to the dictionary keyword,
e.g.

            c       c [0 1 -1 0 0 0 0] 2.99792e+08;

can now be specified as

            c       [0 1 -1 0 0 0 0]    2.99792e+08;
2019-11-16 09:15:58 +00:00
7ab73932cf Function1: Generalisation and removal of unused code
Function1 has been generalised in order to provide functionality
previously provided by some near-duplicate pieces of code.

The interpolationTable and tableReader classes have been removed and
their usage cases replaced by Function1. The interfaces to Function1,
Table and TableFile has been improved for the purpose of using it
internally; i.e., without user input.

Some boundary conditions, fvOptions and function objects which
previously used interpolationTable or other low-level interpolation
classes directly have been changed to use Function1 instead. These
changes may not be backwards compatible. See header documentation for
details.

In addition, the timeVaryingUniformFixedValue boundary condition has
been removed as its functionality is duplicated entirely by
uniformFixedValuePointPatchField.
2019-10-23 13:13:53 +01:00
81fca4c43a Corrected typos in comments
found using cspell.

Patch contributed by Timo Niemi, VTT.
2019-10-18 11:46:20 +01:00
46e8d22445 etc/caseDicts/annotated/mirrorMeshDict: Added examples of planeEquation and embeddedPoints
Resolves contribution https://bugs.openfoam.org/view.php?id=3342
Patch provided by Gerhard Holzinger
2019-09-25 13:27:07 +01:00
af1ee78286 singleFluidCHT template case: corrected absorptionEmissionModel in radiationProperties files 2019-08-30 10:41:51 +01:00
84a1266706 faceZoneAverage: New functionObject configuration to average fields over a faceZone
e.g. given a vol pressure field p

functions
{
    // Interpolate the pressure field to the faces
    surfacep
    {
        type        surfaceInterpolate;
        libs        ("libfieldFunctionObjects.so");
        fields      ((p surfacep));
        writeControl none;
    }

    // Average the surface pressure field over the centre faceZone
    #includeFunc faceZoneAverage(name=centre, surfacep)
    .
    .
    .
}
2019-08-21 11:57:16 +01:00
81f9320119 functionObject: Improved incorrect and incomplete argument error messages
Both the functionObject call context (the command line for postProcess, and the
controlDict path for run-time post-precessing) and the configuration file
context where the arguments are substituted are now printed in the error
message, e.g.

    postProcess -func 'patchAverage(name=inlet, ields=(p U))'

generates the message

--> FOAM FATAL IO ERROR:
Essential value for keyword 'fields' not set in function entry
    patchAverage(name=inlet, ields=(p U))
    in command line postProcess -func patchAverage(name=inlet, ields=(p U))
    Placeholder value is <field_names>

file: /home/dm2/henry/OpenFOAM/OpenFOAM-dev/etc/caseDicts/postProcessing/surfaceFieldValue/patchAverage from line 13 to line 17.

and with the following in controlDict

functions
{
    #includeFunc patchAverage(name=inlet, ields=(p U))
}

generates the message

--> FOAM FATAL IO ERROR:
Essential value for keyword 'fields' not set in function entry
     patchAverage(name=inlet, ields=(p U))
    in file /home/dm2/henry/OpenFOAM/OpenFOAM-dev/tutorials/incompressible/pimpleFoam/RAS/pitzDaily/system/controlDict at line 55
    Placeholder value is <field_names>

file: /home/dm2/henry/OpenFOAM/OpenFOAM-dev/etc/caseDicts/postProcessing/surfaceFieldValue/patchAverage from line 13 to line 17.
2019-08-10 19:16:25 +01:00
670776693c temperatureCoupledBase: Rationalised the handling of kappa
kappa is now obtained from the fluidThermo for laminar regions, the turbulence
model for turbulent regions and the solidThermo for solid regions.  The "lookup"
option previously supported allowed for energy-temperature inconsistent and
incorrect specification of kappa and was not used.  Without this incorrect
option there is now no need to specify a kappaMethod thus significantly
simplifying the use boundary conditions derived from temperatureCoupledBase.
2019-08-07 21:47:51 +01:00
05208f64dc StandardChemistryModel: Separate the reaction system from the mixture thermodynamics
This allows much greater flexibility in the instantiation of reaction system
which may in general depend on fields other than the thermodynamic state.  This
also simplifies mixture thermodynamics removing the need for the reactingMixture
and the instantiation of all the thermodynamic package combinations depending on
it.
2019-08-03 15:11:00 +01:00
5acfe8b20a reactingMixture: Rationalised the reading of the species thermo and reactions
which are now read directly from the thermophysicalProperties dictionary for
consistency with non-reacting mixture thermodynamics.  The species thermo and
reactions lists can still be in separate files if convenient and included into
the thermophysicalProperties file using the standard dictionary #include.
2019-08-02 22:47:45 +01:00
f9d3630cdc codeTemplates: Updated boundary condition template for changes to field mapping 2019-08-01 15:44:39 +01:00
94642ba4d9 etc/bashrc: Added better handling for symbolic links in the WM_PROJECT_DIR path
Patch contributed by Bruno Santos
2019-07-22 14:36:20 +01:00
26187dd89d etc/templates: Updated to use the new dictionary "slash" syntax 2019-07-11 19:54:17 +01:00
a7b8425690 dictionary: Added experimental "slash" syntax
A new optional "slash" scoping syntax is now provided which is more intuitive
than the current "dot" syntax as it corresponds to the common directory/file
access syntax used in UNIX, and avoids limitations of the "dot" (see below)
e.g.

internalField 3.4;

active
{
    type            fixedValue;
    value.air       $internalField;
}

inactive
{
    type            anotherFixedValue;

    value           $../active/value.air;
    anotherValue    $:active/value.air;

    sub
    {
        value           $../../active/value.air;
        anotherValue    $:active/value.air;
    }
}

"U.*"
{
    solver GAMG;
}

e.air
{
    // This does expand
    $U.air;
}

"#inputSyntax slash;" selects the new "slash" syntax.
"../" refers to the parent directory.
":" refers to the top-level directory.

The corresponding dictionary using the current "dot" syntax is

internalField 3.4;

active
{
    type            fixedValue;
    value.air       $internalField;
}

inactive
{
    type            anotherFixedValue;

    value           $..active.value.air;
    anotherValue    $:active.value.air;

    sub
    {
        value           $...active.value.air;
        anotherValue    $:active.value.air;
    }
}

"U.*"
{
    solver GAMG;
}

e.air
{
    // This doesn't expand
    $U.air;
}

Note that the "$U.air" expansion does not work in this case due to the
interference between the use of '.' for scoping and phase-name.
This is a fundamental problem which prompted the development of the new more
intuitive and flexible "slash" syntax.

The new syntax also allows a for planned future development to access entries
in directories in other files, e.g.

active
{
    type            fixedValue;
    value.air       $FOAM_CASE/internalFieldValues/value.air;
}

or

active
{
    type            fixedValue;
    value.air       :../internalFieldValues/value.air;
}
2019-07-09 16:45:07 +01:00
44753ff120 etc/config.*: Updated default ParaView version to 5.6.0 2019-07-05 13:30:52 +01:00
28ef37d60e etc/templates/singleFluidCHT/templates/materials/water/thermophysicalProperties: Corrected water Prandtl number
Resolves bug-report https://bugs.openfoam.org/view.php?id=3298
2019-06-27 16:07:13 +01:00
96b69f6f88 Standardised and rationalised the way in which units are written in function documentation 2019-06-20 10:54:14 +01:00
8e9f692aa4 Standardised the class declaration section comments to correspond to the foamNewSource template 2019-06-13 21:26:33 +01:00
958d907ca5 etc/templates/singleFluidCHT/README: Corrected typo
Resolves bug report https://bugs.openfoam.org/view.php?id=3290

Tested-by: Henry Weller <http://openfoam.org>
2019-06-10 10:19:37 +01:00
fc4d7b92c3 Corrected documentation comment for disabled copy constructors 2019-05-29 15:58:42 +01:00
9140984cf4 Added "= delete" to disabled bitwise copy constructors and assignment operators
Currently these deleted function declarations are still in the private section
of the class declarations but will be moved by hand to the public section over
time as this is too complex to automate reliably.
2019-05-28 15:26:45 +01:00
3ecef91e72 Standardised copy constructor documentation comment 2019-05-27 22:34:32 +01:00
5203a84a0f PatchFields: Improved documentation of the autoMap and rmap functions 2019-05-03 21:53:13 +01:00
9bf34679bd buoyantBoussinesq[SP]impleFoam: replaced by the more general buoyant[SP]impleFoam solvers
With the selection of the Boussinesq equation of state the general buoyancy
solvers buoyantSimpleFoam and buoyantPimpleFoam can be used instead of the
specialised Boussinesq solvers avoiding the need for special implementation of
thermal and pressure boundary conditions and providing support for radiation and
fvOptions which would not have been feasible or practical in the Boussinesq
solvers.

Other incompressible equations of state are also supported; for most gaseous
problems the incompressiblePerfectGas equation of state is likely to be more
accurate than the Boussinesq equation of state.

The buoyantBoussinesq[SP]impleFoam tutorials have been updated and moved to the
corresponding buoyant[SP]impleFoam directories.
2019-03-26 21:42:14 +00:00
d41166187a writeEntry: Rationalised for consistency, ease of use and maintainability
The writeEntry form is now defined and used consistently throughout OpenFOAM
making it easier to use and extend, particularly to support binary IO of complex
dictionary entries.
2019-03-14 20:54:10 +00:00
7b1840c7d3 functionObjects: Added phaseScalarTransport function
This is like the scalarTrasport function except that the transported
scalar is confined to a single phase of a multiphase simulation. In
addition to the usual specification for the scalarTransport function
(i.e., a field, schemes and solution parameters), the user needs to
specify the phase-flux or a pressure field which can be used to generate
it.

Example usage for interFoam:

    phaseScalarTransport1
    {
        type            phaseScalarTransport;
        libs            ("libsolverFunctionObjects.so");

        field           s.water;
        p               p_rgh;
    }

Example usage for reactingTwoPhaseEulerFoam:

    phaseScalarTransport1
    {
        type            phaseScalarTransport;
        libs            ("libsolverFunctionObjects.so");

        field           s.water;
        alphaPhi        alphaRhoPhi.water;
        rho             thermo:rho.water;
    }

The function will write out both the per-unit-phase field that is solved
for (s.water in the above examples) and also the mixture-total field
(alphaS.water), which is often more convenient for post-processing.
2019-02-15 10:56:33 +00:00
11fa53fb66 blockMeshMerge: Minor update for consistency with the "fast" algorithm 2019-02-08 15:16:20 +00:00
700f11fa11 dynamicCode: Put code entries on a list
The dynamic code functionality has been generalised so that the names of
the code entries in the specifying dictionary can be set by the caller.
This means that functions which utilise dynamic code but use different
entry names (e.g., codedFunctionObject uses codeExecute, codeEnd,
etc..., instead of code) now function correctly. The differently named
entries now form part of the library hash, and re-building triggers
appropriately as they are modified.
2019-02-01 09:17:26 +00:00
15b1d6e7ec codeTemplates/BC: Updated to use the new primitive writeEntry 2019-01-29 13:57:48 +00:00
3b9c7f7c81 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2019-01-28 09:54:51 +00:00
51a8b15afe Renamed MVAPICH2 -> MV2MPI for consistency with the MPI implementation naming convention
Resolves patch request https://bugs.openfoam.org/view.php?id=3153
2019-01-28 09:52:41 +00:00
9847205bfc functionObjects: Qdot: Added configuration 2019-01-24 11:27:47 +00:00
8baec3bc5d sampledSurface: Created a sampledSurfaces namespace for the sampledSurface classes
to rationalise the structure and class names to avoid the need for the confusing
addNamedToRunTimeSelectionTable and use instead use the standard
addToRunTimeSelectionTable to populate the run-time selection table.
2019-01-21 19:58:18 +00:00
b9ecc29687 basicChemistryModelTemplates: Added a space in message 2019-01-08 16:44:20 +00:00
70021b1268 fvPatchField: Corrected propagation of patchType
The construction of some patch fields has been corrected so that the
patchType setting always propagates on mapping, IO, clone, etc...
Dictionary and mapping-based patch field constructors now call the
corresponding constructor from the base class, regardless of whether
dictionary settings or mapping are actually needed.

A "mappingRequired" flag has been added to some of the base constructors
in order to prevent unecessary mapping of field data and retain the
previous level of optimisation.

Resolves bug report https://bugs.openfoam.org/view.php?id=3144
2019-01-04 10:01:17 +00:00
cc79578c1e etc/config.*: Updated gcc versions to the latest patch for each version
so that they compile on machines with recent glibc versions.

Note that gcc-4.8.? and gcc-4.9.? do not compile on machines with recent glibc versions.
2019-01-02 14:40:32 +00:00
d95d68d7be Removed support for ancient platforms IA64 and SGIN32 2018-12-21 18:35:20 +00:00