Commit Graph

19764 Commits

Author SHA1 Message Date
7d3eb76f75 Merge branch 'subset-list' into 'develop'
Subset list

See merge request !97
2017-03-08 12:31:26 +00:00
3d3c14cbff ENH: add inplaceUniqueSort function
- determines a unique sort order (as per uniqueOrder) and uses that to
  reorder the list and possibly truncate it.
2017-03-08 11:10:16 +01:00
b7dc6d0441 ENH: add subsetList/inplaceSubsetList functions with unary predicate
- these are suitable for use with lambda functions.

- Deprecate the unused 3-parameter version of subset/inplaceSubset.

- Deprecate initList and initListList in favour of initializer_list

STYLE: adjust some comments, remove dead code in regionSizeDistribution.C
2017-03-07 17:00:30 +01:00
865f09e623 STYLE: comments in codedFvOptionTemplate 2017-03-07 18:48:57 +01:00
4b93333292 ENH: improve handling of noFunctionObjects / withFunctionObjects (issue #352)
- do not enable function objects by default if there is no means of
  disabling them.
2017-03-07 10:53:40 +01:00
cb38533096 ENH: Adding thermal inertia to coupled BC.
This helps on bounding Twall on cases where large inertia is found in the first cell
next to the fluid (i.e large cell, rho or Cp)
2017-03-06 09:43:10 -08:00
6057479926 ENH: provide wcleanBuild and improve wcleanPlatform
- new behaviour is to do nothing if no platform was specified.
  This helps avoid inadvertently removing files.

- support special platforms for compatibility with wmake/wclean targets.
  Eg, "wcleanPlatform all"

- allow use from ThirdParty top-level as well, since the directory
  structure is similar.

BUG: fix regression in wcleanLnIncludeAll introduced by 9e2e111518
2017-02-24 12:20:45 +01:00
a1c8cde310 rhoSimpleFoam: added support for compressible liquid flows
rhoSimpleFoam now instantiates the lower-level fluidThermo which instantiates
either a psiThermo or rhoThermo according to the 'type' specification in
thermophysicalProperties, e.g.

thermoType
{
    type            hePsiThermo;
    mixture         pureMixture;
    transport       sutherland;
    thermo          janaf;
    equationOfState perfectGas;
    specie          specie;
    energy          sensibleInternalEnergy;
}

instantiates a psiThermo for a perfect gas with JANAF thermodynamics, whereas

thermoType
{
    type            heRhoThermo;
    mixture         pureMixture;
    properties      liquid;
    energy          sensibleInternalEnergy;
}

mixture
{
    H2O;
}

instantiates a rhoThermo for water, see new tutorial
compressible/rhoSimpleFoam/squareBendLiq.

In order to support complex equations of state the pressure can no longer be
unlimited and rhoSimpleFoam now limits the pressure rather than the density to
handle start-up more robustly.

For backward compatibility 'rhoMin' and 'rhoMax' can still be used in the SIMPLE
sub-dictionary of fvSolution which are converted into 'pMax' and 'pMin' but it
is better to set either 'pMax' and 'pMin' directly or use the more convenient
'pMinFactor' and 'pMinFactor' from which 'pMax' and 'pMin' are calculated using
the fixed boundary pressure or reference pressure e.g.

SIMPLE
{
    nNonOrthogonalCorrectors 0;

    pMinFactor      0.1;
    pMaxFactor      1.5;

    transonic       yes;
    consistent      yes;

    residualControl
    {
        p               1e-3;
        U               1e-4;
        e               1e-3;
        "(k|epsilon|omega)" 1e-3;
    }
}
2017-02-24 11:18:01 +00:00
a748ce1eaf STYLE: resolve COMP_FLAGS, COMPILE_FLAGS mismash in favour of COMP_FLAGS 2017-02-23 16:25:38 +01:00
c84b9aaac6 ENH: use new foamEtcFile options to simplify syntax when sourcing files
Can now use this:
    _foamSourceEtc config.sh/scotch
    _foamSourceEtc config.csh/scotch

instead of this:
    _foamSource $($WM_PROJECT_DIR/bin/foamEtcFile config.sh/scotch)
    _foamSource `$WM_PROJECT_DIR/bin/foamEtcFile config.csh/scotch`

In the bash/sh version, leave the _foamSource function for now, since
ThirdParty is still relying on it.

STYLE: elminate while-loop for _foamAddPath etc since this type of
construct isn't readily possible for csh and isn't being used anywhere.
2017-02-23 15:55:38 +01:00
c393b268a5 MULES: Adjust limiter only at boundaries for which the field value is fixed
Resolves bug-report https://bugs.openfoam.org/view.php?id=2470
2017-02-23 12:03:50 +00:00
c9e4fd77fd ENH: add options for foamEtcFile and shell evaluation
- Eg, instead

      if file=$(foamEtcFile filename)
      then
          . $file
      fi

  can write

      eval "$(foamEtcFile -sh filename)"

  Also supports -verbose reporting, which is especially useful for csh,
  since it allows simplification of aliases and allows the message to
  land on stderr instead of stdout.

      eval `foamEtcFile -csh -verbose filename`
2017-02-23 12:48:43 +01:00
e9bce5c331 Merge branch 'Fix_GL_409' into 'master'
Use subDict for changeDictionary, Fixes #409

Closes #409

See merge request !95
2017-02-23 11:02:21 +00:00
07ec2b3abd STYLE: eliminate most use of _foamSource outside of the etc/ hierarchy 2017-02-23 10:58:55 +01:00
cc51def1fd STYLE: minor cleanup of foamEtcFile 2017-02-23 09:17:46 +01:00
a3ff45d50a Use subDict for changeDictionary, Fixes #409 2017-02-23 11:33:29 +05:30
c1ca2f4a38 BUG: missing chdir in Allwclean for wallFunctionTable
STYLE: improve consistency in Allwclean scripts
2017-02-23 01:07:10 +01:00
e5cc374d8e MULES: Adjust limiter only at boundaries for which the field value is fixed
Resolves bug-report https://bugs.openfoam.org/view.php?id=2470
2017-02-22 15:34:13 +00:00
12dd3c9c6b GeometricField: corrected assignment to tmp which wraps a non-tmp 2017-02-22 13:20:49 +00:00
5991e30fc1 functionObjects::fieldCoordinateSystemTransform: added coordinateSystem sub-dict and updated the description
Patch contributed by Bruno Santos
Resolves bug-report https://bugs.openfoam.org/view.php?id=2454
2017-02-22 13:20:15 +00:00
32a78d12e2 ENH: wclean all now finds Allwclean files too (issue #408)
- this may still need more testing, but the basic idea is to find
  directories with 'Allwclean' or 'Make' and process them (once!)
2017-02-21 19:40:35 +01:00
9e2e111518 STYLE: adjust ordering of 'find' command arguments
- use -name test before -type test to avoid calling stat(2) on every file.
- use -delete instead of -exec rm to avoid forking
2017-02-21 19:19:04 +01:00
bec7091e21 chemkinToFoam: Increase the precision of the thermophysical coefficient written 2017-02-21 11:59:49 +00:00
a6d37e5728 COMP: silence some compiler warnings
- remove some spurious regExp includes
2017-02-21 12:56:27 +01:00
c1795a30b8 Merge branch 'listoutput' into 'develop'
Flat list output

See merge request !93
2017-02-20 18:47:24 +00:00
3deb5f4d19 Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2017-02-20 10:37:28 -08:00
a37dffad4f ENH:Delete 'not Implemented' function updateCoeffs() in slicedFvPatchField. ACMI patch is used with mesh.C() in isoSurface
which uses slicedFvPatch.
2017-02-20 10:34:01 -08:00
a06cd912d8 solidMixtureProperties: Updated documentation, removed unused functions and corrected remaining 2017-02-20 15:30:25 +00:00
e5ecc28891 liquidMixtureProperties: Updated documentation 2017-02-20 15:30:07 +00:00
403520cee5 ENH: add tags marking user configuration sections
- as per bashrc,cshrc delimit with
      "# USER EDITABLE PART"
      "# END OF (NORMAL) USER EDITABLE PART"

  this can help simplify any patching for system-building scripts etc.
2017-02-20 10:57:30 +01:00
1ed5b35049 CONFIG: pass-through icc compiler choice for KNL, add gcc 6.3.0
- bump ADIOS version to 1.11.1
2017-02-20 10:47:45 +01:00
28a8e5a61b STYLE: use flatOutput when reporting known file-extensions 2017-02-20 10:32:40 +01:00
a843d84f80 Merge branch 'develop' of develop.openfoam.com:Development/OpenFOAM-plus into develop 2017-02-20 09:31:38 +00:00
a7eaf8199b BUG: shm: fast bounding box - triangle intersection disabled. Works around #404.
For certain combinations of rays and triangles the fast bb-triangle intersection
routine is not correct. For now revert to slow edge-by-edge intersection.
2017-02-20 09:29:45 +00:00
d3911dd167 STYLE: avoid old-style shell backticks in various places 2017-02-20 09:30:58 +01:00
f6dacfb484 liquidThermo: rhoThermo instantiated on liquidProperties
This allows single, multi-phase and VoF compressible simulations to be performed
with the accurate thermophysical property functions for liquids provided by the
liquidProperty classes.  e.g. in the
multiphase/compressibleInterFoam/laminar/depthCharge2D tutorial water can now be
specified by

thermoType
{
    type            heRhoThermo;
    mixture         pureMixture;
    properties      liquid;
    energy          sensibleInternalEnergy;
}

mixture
{
    H2O;
}

as an alternative to the previous less accurate representation defined by

thermoType
{
    type            heRhoThermo;
    mixture         pureMixture;
    transport       const;
    thermo          hConst;
    equationOfState perfectFluid;
    specie          specie;
    energy          sensibleInternalEnergy;
}

mixture
{
    specie
    {
        molWeight   18.0;
    }
    equationOfState
    {
        R           3000;
        rho0        1027;
    }
    thermodynamics
    {
        Cp          4195;
        Hf          0;
    }
    transport
    {
        mu          3.645e-4;
        Pr          2.289;
    }
}

However the increase in accuracy of the new simpler and more convenient
specification and representation comes at a cost: the NSRDS functions used by
the liquidProperties classes are relatively expensive to evaluate and the
depthCharge2D case takes ~14% longer to run.
2017-02-19 16:44:00 +00:00
d2be645483 thermophysicalProperties: New base-class for liquidProperties and in the future gasProperties
Description
    Base-class for thermophysical properties of solids, liquids and gases
    providing an interface compatible with the templated thermodynamics
    packages.

liquidProperties, solidProperties and thermophysicalFunction libraries have been
combined with the new thermophysicalProperties class into a single
thermophysicalProperties library to simplify compilation and linkage of models,
libraries and applications dependent on these classes.
2017-02-18 21:53:20 +00:00
de44d09ad9 liquidProperties, solidProperties: Simplified input
The entries for liquid and solid species can now be simply be the name unless
property coefficients are overridden in which are specified in a dictionary as
before e.g. in the tutorials/lagrangian/coalChemistryFoam/simplifiedSiwek case
the water is simply specified

liquids
{
    H2O;
}

and solid ash uses standard coefficients but the coefficients for carbon are
overridden thus

solids
{
    C
    {
        rho             2010;
        Cp              710;
        kappa           0.04;
        Hf              0;
        emissivity      1.0;
    }

    ash;
}
2017-02-18 12:43:10 +00:00
9b4f327e2b liquidProperties: Simplified dictionary format
The defaultCoeffs entry is now redundant and supported only for backward
compatibility.  To specify a liquid with default coefficients simply leave the
coefficients dictionary empty:

    liquids
    {
        H2O {}
    }

Any or all of the coefficients may be overridden by specifying the properties in
the coefficients dictionary, e.g.

    liquids
    {
        H2O
        {
            rho
            {
                a 1000;
                b 0;
                c 0;
                d 0;
            }
        }
    }
2017-02-17 22:08:42 +00:00
a6fd99b874 liquidProperties: simplified and generalized the IO
When liquids are constructed from dictionary the coefficients are now first
initialized to their standard values and overridden by the now optional entries
provided in the dictionary.  For example to specify water with all the standard
temperature varying properties but override only the density with a constant
value of 1000 specify in thermophysicalProperties

liquids
{
    H2O
    {
        defaultCoeffs   no;

        H2OCoeffs
        {
            rho
            {
                a 1000;
                b 0;
                c 0;
                d 0;
            }
        }
    }
}
2017-02-17 20:29:58 +00:00
ba9d58a26f thermophysicalModels: Ostream operator calls write(os) for consistent IO 2017-02-17 16:35:43 +00:00
72b705edbd thermophysicalModels: Removed unused and unmaintained Istream constructors 2017-02-17 15:50:00 +00:00
3e4d253cc1 liquidProperties: Removed unused construction from Istream 2017-02-17 13:41:05 +00:00
c52e4b58a1 thermophysicalModels: Changed specie thermodynamics from mole to mass basis
The fundamental properties provided by the specie class hierarchy were
mole-based, i.e. provide the properties per mole whereas the fundamental
properties provided by the liquidProperties and solidProperties classes are
mass-based, i.e. per unit mass.  This inconsistency made it impossible to
instantiate the thermodynamics packages (rhoThermo, psiThermo) used by the FV
transport solvers on liquidProperties.  In order to combine VoF with film and/or
Lagrangian models it is essential that the physical propertied of the three
representations of the liquid are consistent which means that it is necessary to
instantiate the thermodynamics packages on liquidProperties.  This requires
either liquidProperties to be rewritten mole-based or the specie classes to be
rewritten mass-based.  Given that most of OpenFOAM solvers operate
mass-based (solve for mass-fractions and provide mass-fractions to sub-models it
is more consistent and efficient if the low-level thermodynamics is also
mass-based.

This commit includes all of the changes necessary for all of the thermodynamics
in OpenFOAM to operate mass-based and supports the instantiation of
thermodynamics packages on liquidProperties.

Note that most users, developers and contributors to OpenFOAM will not notice
any difference in the operation of the code except that the confusing

    nMoles     1;

entries in the thermophysicalProperties files are no longer needed or used and
have been removed in this commet.  The only substantial change to the internals
is that species thermodynamics are now "mixed" with mass rather than mole
fractions.  This is more convenient except for defining reaction equilibrium
thermodynamics for which the molar rather than mass composition is usually know.
The consequence of this can be seen in the adiabaticFlameT, equilibriumCO and
equilibriumFlameT utilities in which the species thermodynamics are
pre-multiplied by their molecular mass to effectively convert them to mole-basis
to simplify the definition of the reaction equilibrium thermodynamics, e.g. in
equilibriumCO

    // Reactants (mole-based)
    thermo FUEL(thermoData.subDict(fuelName)); FUEL *= FUEL.W();

    // Oxidant (mole-based)
    thermo O2(thermoData.subDict("O2")); O2 *= O2.W();
    thermo N2(thermoData.subDict("N2")); N2 *= N2.W();

    // Intermediates (mole-based)
    thermo H2(thermoData.subDict("H2")); H2 *= H2.W();

    // Products (mole-based)
    thermo CO2(thermoData.subDict("CO2")); CO2 *= CO2.W();
    thermo H2O(thermoData.subDict("H2O")); H2O *= H2O.W();
    thermo CO(thermoData.subDict("CO")); CO *= CO.W();

    // Product dissociation reactions

    thermo CO2BreakUp
    (
        CO2 == CO + 0.5*O2
    );

    thermo H2OBreakUp
    (
        H2O == H2 + 0.5*O2
    );

Please report any problems with this substantial but necessary rewrite of the
thermodynamic at https://bugs.openfoam.org

Henry G. Weller
CFD Direct Ltd.
2017-02-17 11:22:14 +00:00
973cf0397d CONFIG: provide foamConfigurePaths -mpi option
- makes it easier to switch between mpi implementations (eg, openmpi, intelmpi etc)

- add comment about compiler setting for KNL
2017-02-16 09:14:17 +01:00
48eb1aee84 ENH: treeDataPrimitivePatch: skip surplus test 2017-02-15 12:58:53 +00:00
376912eff2 ENH: adding runTime selectable wallDist calculation to inverseDistanceDiffusivity 2017-02-14 08:30:53 -08:00
2f5185a048 functionObjects::scalarTransport: Corrected typo 2017-02-13 18:25:33 +00:00
ae9522f017 functionObjects::scalarTransport: Added support for optional laminar and turbulent diffusion coefficients
Description
    Evolves a passive scalar transport equation.

    - To specify the field name set the \c field entry
    - To employ the same numerical schemes as another field set
      the \c schemesField entry,
    - A constant diffusivity may be specified with the \c D entry,

    - Alternatively if a turbulence model is available a turbulent diffusivity
      may be constructed from the laminar and turbulent viscosities using the
      optional diffusivity coefficients \c alphaD and \c alphaDt (which default
      to 1):
      \verbatim
          D = alphaD*nu + alphaDt*nut
      \endverbatim

Resolves feature request https://bugs.openfoam.org/view.php?id=2453
2017-02-12 17:19:27 +00:00
689ee6e0ea Merge branch 'master' of develop.openfoam.com:Development/OpenFOAM-plus 2017-02-10 11:41:53 -08:00