Commit Graph

252 Commits

Author SHA1 Message Date
Henry Weller
e57874859a Updated Doxygen documentation and files
Contributed by Bruno Santos
Resolves patch report http://www.openfoam.org/mantisbt/view.php?id=2023

Update online documentation http://openfoam.github.io/Documentation-dev/html/
2016-03-14 11:00:24 +00:00
Henry Weller
cd852be3da OpenFOAM: Updated all libraries, solvers and utilities to use the new const-safe tmp
The deprecated non-const tmp functionality is now on the compiler switch
NON_CONST_TMP which can be enabled by adding -DNON_CONST_TMP to EXE_INC
in the Make/options file.  However, it is recommended to upgrade all
code to the new safer tmp by using the '.ref()' member function rather
than the non-const '()' dereference operator when non-const access to
the temporary object is required.

Please report any problems on Mantis.

Henry G. Weller
CFD Direct.
2016-02-26 17:31:28 +00:00
Henry Weller
99a10ecea6 Boundary conditions: Added extrapolatedCalculatedFvPatchField
To be used instead of zeroGradientFvPatchField for temporary fields for
which zero-gradient extrapolation is use to evaluate the boundary field
but avoiding fields derived from temporary field using field algebra
inheriting the zeroGradient boundary condition by the reuse of the
temporary field storage.

zeroGradientFvPatchField should not be used as the default patch field
for any temporary fields and should be avoided for non-temporary fields
except where it is clearly appropriate;
extrapolatedCalculatedFvPatchField and calculatedFvPatchField are
generally more suitable defaults depending on the manner in which the
boundary values are specified or evaluated.

The entire OpenFOAM-dev code-base has been updated following the above
recommendations.

Henry G. Weller
CFD Direct
2016-02-20 22:44:37 +00:00
Henry Weller
350d03246e scripts: Reformat with consistent section separators 2016-02-15 18:30:24 +00:00
Henry Weller
fc2ce73723 Solvers: Added support for extrapolated pressure boundary conditions
The boundary conditions of HbyA are now constrained by the new "constrainHbyA"
function which applies the velocity boundary values for patches for which the
velocity cannot be modified by assignment and pressure extrapolation is
not specified via the new
"fixedFluxExtrapolatedPressureFvPatchScalarField".

The new function "constrainPressure" sets the pressure gradient
appropriately for "fixedFluxPressureFvPatchScalarField" and
"fixedFluxExtrapolatedPressureFvPatchScalarField" boundary conditions to
ensure the evaluated flux corresponds to the known velocity values at
the boundary.

The "fixedFluxPressureFvPatchScalarField" boundary condition operates
exactly as before, ensuring the correct flux at fixed-flux boundaries by
compensating for the body forces (gravity in particular) with the
pressure gradient.

The new "fixedFluxExtrapolatedPressureFvPatchScalarField" boundary
condition may be used for cases with or without body-forces to set the
pressure gradient to compensate not only for the body-force but also the
extrapolated "HbyA" which provides a second-order boundary condition for
pressure.  This is useful for a range a problems including impinging
flow, extrapolated inlet conditions with body-forces or for highly
viscous flows, pressure-induced separation etc.  To test this boundary
condition at walls in the motorBike tutorial case set

    lowerWall
    {
        type            fixedFluxExtrapolatedPressure;
    }

    motorBikeGroup
    {
        type            fixedFluxExtrapolatedPressure;
    }

Currently the new extrapolated pressure boundary condition is supported
for all incompressible and sub-sonic compressible solvers except those
providing implicit and tensorial porosity support.  The approach will be
extended to cover these solvers and options in the future.

Note: the extrapolated pressure boundary condition is experimental and
requires further testing to assess the range of applicability,
stability, accuracy etc.

Henry G. Weller
CFD Direct Ltd.
2016-02-13 17:48:26 +00:00
Henry Weller
56fa7c0906 Update code to use the simpler C++11 template syntax removing spaces between closing ">"s 2016-01-10 22:41:16 +00:00
Henry Weller
2647d178fa solvers: Change from pure RAS to any turbulence model
Provides support for running laminar.
2015-12-16 10:13:09 +00:00
Henry Weller
fb871828a5 fvPatchFields, fvsPatchFields, pointPatchFields: specifically declare namespace of functions
It is better to declare the namespace of each function in the C file
rather than "open" the namespace as this may lead to inconsistencies
between the declaration in the H files and definition in the C file.
2015-12-08 22:29:05 +00:00
Henry Weller
736621b945 fvOptions: Reorganized and updated to simplify use in sub-models and maintenance
fvOptions are transferred to the database on construction using
fv::options::New which returns a reference.  The same function can be
use for construction and lookup so that fvOptions are now entirely
demand-driven.

The abstract base-classes for fvOptions now reside in the finiteVolume
library simplifying compilation and linkage.  The concrete
implementations of fvOptions are still in the single monolithic
fvOptions library but in the future this will be separated into smaller
libraries based on application area which may be linked at run-time in
the same manner as functionObjects.
2015-12-02 11:49:52 +00:00
Henry Weller
ba2f46f12a applications: Added fvOptions library to link 2015-12-01 16:09:19 +00:00
Henry Weller
3dfe844d9a applications/solvers: Added call to validate the turbulence model after construction
See also commit 52d83407f3
2015-12-01 10:25:38 +00:00
Henry Weller
d968ee30e1 TurbulenceModels: Improved instantiation of single-phase models in solvers
Simplifies lookup of RAS or LES models
2015-11-18 21:10:03 +00:00
Henry Weller
e2ef006b91 applications: Update ...ErrorIn -> ...ErrorInFunction
Avoids the clutter and maintenance effort associated with providing the
function signature string.
2015-11-10 17:53:31 +00:00
Henry Weller
027909c737 dimensionedType: rationalize lookupOrDefault and lookupOrAddToDict
Now consistent with constructors.
2015-10-01 17:29:29 +01:00
Henry Weller
0cf3ae4fda Compressible solver: correct initial Courant-number calculation
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1816
2015-08-07 15:55:46 +01:00
Henry Weller
365f9b0006 dimensioned<Type>: Added constructor from name, dimensions and dictionary
to simplify construction of dimensionedScalar properties and avoid the
duplication of the name string in the constructor call.
2015-07-21 12:57:07 +01:00
Henry Weller
91e04d69c1 Resolve various unimportant warning messages from Gcc, Clang and Icpc 2015-07-19 11:31:49 +01:00
Henry Weller
0fb6a01280 fluxRequired: Added setFluxRequired function to fvSchemes class
Added calls to setFluxRequired for p, p_rgh etc. in all solvers which
avoids the need to add fluxRequired entries in fvSchemes dictionaries.
2015-07-15 21:57:16 +01:00
Henry Weller
4180b6857d rhoPimpleFoam: Added run-time selectable LTS support replacing rhoLTSPimpleFoam
Select LTS via the ddtScheme:

        ddtSchemes
        {
            default         localEuler rDeltaT;
        }
2015-06-27 22:08:43 +01:00
Henry Weller
8fc3d158ff rhoSimpleFoam: Added "consistent" option to replace rhoSimplecFoam
See tutorials/compressible/rhoSimpleFoam/squareBend

SIMPLE
{
    nNonOrthogonalCorrectors 0;
    rhoMin          0.1;
    rhoMax          1.0;
    transonic       yes;
    consistent      yes;

    residualControl
    {
        p               1e-3;
        U               1e-4;
        e               1e-3;

        // possibly check turbulence fields
        "(k|epsilon|omega)" 1e-3;
    }
}

relaxationFactors
{
    fields
    {
        p               1;
        rho             1;
    }
    equations
    {
        p               1;
        U               0.9;
        e               0.9;
        k               0.9;
        epsilon         0.9;
    }
}
2015-06-27 17:42:59 +01:00
Henry Weller
8cad93c724 rhoPimpleFoam: Added "consistent" option to replace rhoPimplecFoam
e.g. in tutorials/compressible/rhoPimpleFoam/ras/angledDuctLTS

PIMPLE
{
    momentumPredictor   yes;
    transonic           no;
    nOuterCorrectors    50;
    nCorrectors         1;
    nNonOrthogonalCorrectors 0;
    consistent          yes;

    rhoMin          0.5;
    rhoMax          2.0;

    residualControl
    {
        "(U|k|epsilon)"
        {
            relTol          0;
            tolerance       0.0001;
        }
    }

    turbOnFinalIterOnly off;
}

relaxationFactors
{
    fields
    {
        "p.*"           0.9;
        "rho.*"         1;
    }
    equations
    {
        "U.*"           0.9;
        "h.*"           0.7;
        "(k|epsilon|omega).*" 0.8;
    }
}
2015-06-27 16:26:51 +01:00
Henry Weller
5c4b7b1640 Rename setrDeltaT to setRDeltaT 2015-06-27 15:33:39 +01:00
Henry Weller
a9fa0db19a Rename setrDeltaT to setRDeltaT 2015-06-27 15:33:04 +01:00
Henry Weller
e00ae44ad0 interFoam family: Added run-time selectable LTS support
LTS is selected by the ddt scheme e.g. in the
tutorials/multiphase/interFoam/ras/DTCHull case:

ddtSchemes
{
    default         localEuler rDeltaT;
}

LTSInterFoam is no longer needed now that interFoam includes LTS
support.
2015-06-26 18:32:20 +01:00
Henry Weller
5ebf61eb41 smoluchowskiJumpTFvPatchScalarField: Updated use of basicThermo 2015-06-25 19:28:16 +01:00
Henry Weller
ad40e110df Update headers 2015-06-24 10:45:42 +01:00
Henry Weller
5e05479e2a Use basicThermo::dictName rather than hard-coding "thermophysicalProperties" 2015-06-24 10:44:57 +01:00
Henry Weller
91ee15e3ac rhoCentralFoam: Added experimental LTS support
Select LTS via the ddtScheme:

ddtSchemes
{
    default         localEuler rDeltaT;
}

The LTS algorithm is controlled with the standard settings in
controlDict, e.g.:

maxCo           0.5;
maxDeltaT       2e-8;

with the addition of the optional rDeltaT smoothing coefficient:

rDeltaTSmoothingCoeff 0.02;

which defaults to 0.02.

For cases with reasonably uniform meshes like the forwardStep tutorial
LTS does not provide much benefit but for cases with large variation in
cell-size like the biconic25-55Run35 tutorial LTS provides significant
speed-up to convergence particularly if started from uniform conditions.
2015-06-19 11:52:48 +01:00
Henry Weller
80e13f8002 rhoCentralFoam: Reverted correction to BCs
Reverted changes proposed in
http://openfoam.org/mantisbt/view.php?id=1548 as it adversely affects
fixed-value BCs and is formulated to fix an issue with an unphysical
case.  Further analysis of the handling of fixed pressure outlet
conditions as the Mach number approaches 1 is required.
2015-06-18 15:10:48 +01:00
Henry Weller
164448f8b1 rhoCentralFoam: Updated Courant number calculation to be cell-based rather than face-based
Now consistent with the way the Courant number is calculated for other solvers
2015-06-17 20:20:49 +01:00
Henry Weller
bc493180d9 rhoCentralFoam: Ensure fixed value boundary conditions are preserved
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1748
2015-06-17 08:46:46 +01:00
Henry Weller
8293227964 Rationalized the LTS solvers 2015-06-16 12:42:37 +01:00
Henry
af51444760 rhoCentralFoam, sonicFoam: Remove superfluous includes
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1730
2015-06-03 09:40:25 +01:00
Henry
c3ee2348a6 MRF: Separate MRF from fvOptions
fvOptions does not have the appropriate structure to support MRF as it
is based on option selection by user-specified fields whereas MRF MUST
be applied to all velocity fields in the particular solver.  A
consequence of the particular design choices in fvOptions made it
difficult to support MRF for multiphase and it is easier to support
frame-related and field related options separately.

Currently the MRF functionality provided supports only rotations but
the structure will be generalized to support other frame motions
including linear acceleration, SRF rotation and 6DoF which will be
run-time selectable.
2015-05-29 23:35:43 +01:00
Henry
9cd9a9f364 ddtScheme::fvcDdtPhiCoeff: Zero ddtCorr on AMIs
Resolves bug-report http://www.openfoam.org/mantisbt/view.php?id=1421
2015-03-24 15:23:01 +00:00
Henry
ec41a4cc7e rhoCentralFoam: Correct handling of single-cell meshes
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1548
2015-03-13 09:51:33 +00:00
Henry
da09c915ff rhoCentralFoam: Corrected the BCs for positive (outgoing) fluxes
Resolves bug-report http://openfoam.org/mantisbt/view.php?id=1548
2015-02-26 17:00:36 +00:00
Henry
35d8078251 rhoCentralDyMFoam: Add support for morphing-meshes and provide movingCone tutorial case 2015-02-25 12:20:12 +00:00
Henry
945c4c3d18 fluidThermo: Add compressibleTransportModel as base-class
Needed to create generic compressible turbulence model library
2015-02-17 17:25:26 +00:00
Henry
9df7208d4c DyM solvers: rationalized handling of time update 2015-02-16 21:48:00 +00:00
Henry
fb54c54db0 Rationalized pEqn in sprayFoam solvers 2015-02-16 21:45:28 +00:00
Henry
7132f1380f Compressible solvers: rhoMax and rhoMin now optional and may be supplied without dimensions 2015-02-16 21:43:40 +00:00
Henry
8628ef2fea Corrected capitalization of Doxygen documentation comments 2015-02-14 13:10:15 +00:00
Henry
35675e512a rhoCentralDyMFoam: Name intermediate fields to avoid duplicate registration
Updated mesh-motion functionality
2015-02-12 13:17:28 +00:00
Henry
315ab1225c Update headers 2015-02-12 12:34:27 +00:00
Henry
d01afadbc1 Name fields to avoid duplicate registration 2015-02-12 12:33:45 +00:00
Henry
d9eb18adbc pEqn: DO NOT constrain the pressure equation as this will lead to continuity errors 2015-02-12 10:42:17 +00:00
Henry
91ffedbeb2 Solvers: Rationalized correctPhi 2015-02-11 13:22:24 +00:00
Henry
c778346c96 Formatting: Rationalized the indentation of #include 2015-02-10 20:35:50 +00:00
Henry
2aec249647 Updated the whole of OpenFOAM to use the new templated TurbulenceModels library
The old separate incompressible and compressible libraries have been removed.

Most of the commonly used RANS and LES models have been upgraded to the
new framework but there are a few missing which will be added over the
next few days, in particular the realizable k-epsilon model.  Some of
the less common incompressible RANS models have been introduced into the
new library instantiated for incompressible flow only.  If they prove to
be generally useful they can be templated for compressible and
multiphase application.

The Spalart-Allmaras DDES and IDDES models have been thoroughly
debugged, removing serious errors concerning the use of S rather than
Omega.

The compressible instances of the models have been augmented by a simple
backward-compatible eddyDiffusivity model for thermal transport based on
alphat and alphaEff.  This will be replaced with a separate run-time
selectable thermal transport model framework in a few weeks.

For simplicity and ease of maintenance and further development the
turbulent transport and wall modeling is based on nut/nuEff rather than
mut/muEff for compressible models so that all forms of turbulence models
can use the same wall-functions and other BCs.

All turbulence model selection made in the constant/turbulenceProperties
dictionary with RAS and LES as sub-dictionaries rather than in separate
files which added huge complexity for multiphase.

All tutorials have been updated so study the changes and update your own
cases by comparison with similar cases provided.

Sorry for the inconvenience in the break in backward-compatibility but
this update to the turbulence modeling is an essential step in the
future of OpenFOAM to allow more models to be added and maintained for a
wider range of cases and physics.  Over the next weeks and months more
turbulence models will be added of single and multiphase flow, more
additional sub-models and further development and testing of existing
models.  I hope this brings benefits to all OpenFOAM users.

Henry G. Weller
2015-01-21 19:21:39 +00:00