Commit Graph

284 Commits

Author SHA1 Message Date
1e6c9a0a54 Updated UPstream::commsTypes to use the C++11 enum class 2017-03-10 19:54:55 +00:00
692242f574 CrankNicolsonDdtScheme: Corrected fvcDdtUfCorr for compressible flow
Resolves bug-report https://bugs.openfoam.org/view.php?id=2491
2017-03-10 11:08:10 +00:00
a7166e3273 CrankNicolsonDdtScheme, backwardDdtScheme: Ensure V00 is available for moving meshes 2017-03-06 23:15:54 +00:00
13aacde1c7 interFoam family of solvers: Improved Crank-Nicolson implementation
Fewer limiter iterations are now required to obtain sufficient boundedness and
restart is more consistent.
2017-03-06 17:34:10 +00:00
5546fe444d CorrectPhi: only use the "Final" tolerance for the last non-orthogonal iteration 2017-03-03 22:05:24 +00:00
e36a294de2 CrankNicolsonDdtScheme, backwardDdtScheme: Ensure the V00 field is cached 2017-03-03 22:03:29 +00:00
99c992d65c rhoPimpleFoam: Added support for transonic flow of liquids and real gases
Both stardard SIMPLE and the SIMPLEC (using the 'consistent' option in
fvSolution) are now supported for both subsonic and transonic flow of all
fluid types.

rhoPimpleFoam now instantiates the lower-level fluidThermo which instantiates
either a psiThermo or rhoThermo according to the 'type' specification in
thermophysicalProperties, see also commit 655fc78748
2017-02-28 11:14:59 +00:00
655fc78748 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
cb2bc60fa5 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
4a22ab94b5 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
aa4fc8445f porosityModels::solidification: Added optional phase-fraction for VoF solvers etc.
Description
    Simple solidification porosity model

    This is a simple approximation to solidification where the solid phase
    is represented as a porous blockage with the drag-coefficient evaluated from

        \f[
            S = - \alpha \rho D(T) U
        \f]

    where
    \vartable
        \alpha  | Optional phase-fraction of solidifying phase
        D(T)    | User-defined drag-coefficient as function of temperature
    \endvartable

    Note that the latent heat of solidification is not included and the
    temperature is unchanged by the modelled change of phase.

    Example of the solidification model specification:
    \verbatim
        type            solidification;

        solidificationCoeffs
        {
            // Solidify between 330K and 330.5K
            D table
            (
                (330.0     10000) // Solid below 330K
                (330.5     0)     // Liquid above 330.5K
            );

            // Optional phase-fraction of solidifying phase
            alpha alpha.liquid;

            // Solidification porosity is isotropic
            // use the global coordinate system
            coordinateSystem
            {
                type    cartesian;
                origin  (0 0 0);
                coordinateRotation
                {
                    type    axesRotation;
                    e1      (1 0 0);
                    e2      (0 1 0);
                }
            }
        }
    \endverbatim
2017-02-08 10:40:14 +00:00
6d272d6c8c porosityModels::solidification: New porosity model to simulate solidification
Description
    Simple solidification porosity model

    This is a simple approximation to solidification where the solid phase
    is represented as a porous blockage with the drag-coefficient evaluated from

        \f[
            S = - \rho D(T) U
        \f]

    where
    \vartable
        D(T) | User-defined drag-coefficient as function of temperature
    \endvartable

    Note that the latent heat of solidification is not included and the
    temperature is unchanged by the modelled change of phase.

    Example of the solidification model specification:
    \verbatim
        type            solidification;

        solidificationCoeffs
        {
            // Solidify between 330K and 330.5K
            D table
            (
                (330.0     10000) // Solid below 330K
                (330.5     0)     // Liquid above 330.5K
            );

            // Solidification porosity is isotropic
            // use the global coordinate system
            coordinateSystem
            {
                type    cartesian;
                origin  (0 0 0);
                coordinateRotation
                {
                    type    axesRotation;
                    e1      (1 0 0);
                    e2      (0 1 0);
                }
            }
        }
    \endverbatim
2017-02-07 19:02:30 +00:00
8981c89476 porosityModel::powerLaw: Added groupName to rho lookup to support multiphase 2017-02-07 19:01:34 +00:00
719921acf6 porosityModels: Corrected documentation 2017-02-07 19:00:58 +00:00
4b251034d3 Removed unhelpful clutter 2017-01-26 17:47:24 +00:00
0f91f62cef Removed trailing blank lines
Resolves bug-report https://bugs.openfoam.org/view.php?id=2438
2017-01-19 20:17:47 +00:00
ad92287afc Multi-phase solvers: Improved handling of inflow/outflow BCs in MULES
Avoids slight phase-fraction unboundedness at entertainment BCs and improved
robustness.

Additionally the phase-fractions in the multi-phase (rather than two-phase)
solvers are adjusted to avoid the slow growth of inconsistency ("drift") caused
by solving for all of the phase-fractions rather than deriving one from the
others.
2017-01-17 22:43:47 +00:00
959e4f17c9 Corrected spelling mistake existance -> existence
Patch provided by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2425
2017-01-08 23:08:41 +00:00
78a396430b Rationalized the keyword to specify a file name in a dictionary to 'file'
e.g. in tutorials/heatTransfer/buoyantSimpleFoam/externalCoupledCavity/0/T

    hot
    {
        type            externalCoupledTemperature;
        commsDir        "${FOAM_CASE}/comms";
        file            "data";
        initByExternal  yes;
        log             true;
        value           uniform 307.75; // 34.6 degC
    }

Previously both 'file' and 'fileName' were used inconsistently in different
classes and given that there is no confusion or ambiguity introduced by using
the simpler 'file' rather than 'fileName' this change simplifies the use and
maintenance of OpenFOAM.
2017-01-07 09:38:54 +00:00
08165a9c1e Documentation updates
Patch contributed by Bruno Santos
Resolves patch request https://bugs.openfoam.org/view.php?id=2409
2016-12-27 14:35:39 +00:00
ef65521b6a pimpleControl: Added optional 'solveFlow' control
sprayFoam: Added support for the optional 'solveFlow' control to allow
           simulation of the spray evolution with all sub-models in a 'frozen'
           flow-field.
2016-12-12 14:35:21 +00:00
14973e39a6 gaussConvectionScheme: Removed temporary warnUnboundedGauss debug switch
which provided warning about backward-compatibility issue with setting div
schemes for steady-state.  It caused confusion by generating incorrect warning
messages for compressible cases for which the 'bounded' should NOT be applied to
the 'div(phid,p)'.
2016-12-09 16:36:56 +00:00
dc1c6d7600 MRFZone: Do not correct boundary conditions when inactive
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2380
2016-12-09 16:29:27 +00:00
b76184e56b mappedFieldFvPatchField: Corrected autoMap function
Patch contributed by Mattijs Janssens
2016-12-09 15:08:43 +00:00
03e0ce5d4b advectiveFvPatchField, waveTransmissiveFvPatchField: Updated docs
Resolves bug-report http://bugs.openfoam.org/view.php?id=2373
2016-12-05 20:07:40 +00:00
4a45e4f519 thermalBaffle: ensure mappedPatchBase is updated following mesh topology changes
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2323
2016-12-05 08:44:43 +00:00
b592eb09e9 reactingTwoPhaseEulerFoam: Added LTS support to the face-momentum algorithm 2016-12-04 10:14:43 +00:00
f3bd633dae orthogonalSnGrad, uncorrectedSnGrad: Improved documentation
Resolves request http://bugs.openfoam.org/view.php?id=2364
2016-12-01 15:17:14 +00:00
ea67173330 Updated member type comments
Resolves bug-report http://bugs.openfoam.org/view.php?id=2356
2016-11-28 21:23:00 +00:00
f5d5031561 zoneCombustion: New cellZone based combustion model
in which the reactions are enabled only in the specified list of
cellZones.  e.g. in constant/combustionProperties

combustionModel zoneCombustion<psiChemistryCombustion>;

active  true;

zoneCombustionCoeffs
{
    zones (catalyst);
}

and in constant/zoneCombustionProperties

combustionModel laminar<psiChemistryCombustion>;

active  true;

laminarCoeffs
{}
2016-11-25 11:20:07 +00:00
b43cecd120 inletOutletTotalTemperature,waveTransmissiveFvPatchField: default psi -> thermo:psi
Resolves bug-report http://bugs.openfoam.org/view.php?id=2294
2016-10-17 19:12:55 +01:00
30f729c023 movingWallVelocityFvPatchVectorField: Removed incorrect documentation concerning MRF
Resolves bug-report http://bugs.openfoam.org/view.php?id=2287
2016-10-07 17:38:17 +01:00
cc4c2989c3 fieldTypes: Using C++11 __VA_ARGS__ functionality created the FOR_ALL_FIELD_TYPES macro
This supports the abstraction of the set of fields from the field code
generation macros making it easier to change the set of fields supported
by OpenFOAM.  This functionality is demonstrated in the updated
fvPatchFields macros and will be applied to the rest of the field code
generation macros in the future.
2016-10-03 09:08:01 +01:00
ff28c48477 triangle storage: Return barycentric coordinates as FixedList instead of List
Patch contributed by Mattijs Janssens
Resolves bug-report http://bugs.openfoam.org/view.php?id=2278
2016-09-30 16:22:55 +01:00
25e5f67f86 processorFvPatchField: If the value is not supplied set to the internal field 2016-09-25 18:38:06 +01:00
9d3f407fc7 processorFvPatchField: Reinstate 'value' as an optional entry 2016-09-25 16:54:20 +01:00
4603a8b253 fvPatchFields: Constructors from dictionary now call the corresponding constructor of the fvPatchField base-class
to ensure 'patchType' is set as specified.

Required substantial change to the organization of the reading of the
'value' entry requiring careful testing and there may be some residual
issues remaining.  Please report any problems with the reading and
initialization of patch fields.

Resolves bug-report http://bugs.openfoam.org/view.php?id=2266
2016-09-25 09:11:53 +01:00
ee3cf86008 linearUpwind: Simplified the vector specialization 2016-09-21 11:09:59 +01:00
4fbdef6444 linearUpwind: Specialize for volVectorField to support cached gradients 2016-09-21 09:50:49 +01:00
450779d29a linearUpwind: Evaluate the gradient of each component of the field to provide support all field types
Also reduces peak-storage as it now generates a volVectorField for each component
rather than the gradient of the field type.
2016-09-20 21:34:47 +01:00
8396a0faf2 functionObjects::volRegion: Cache integral properties for writeFileHeader 2016-08-24 09:32:34 +01:00
628d86e575 multivariateScheme: Correct local typedef name 2016-08-17 23:04:00 +01:00
fb22ab0b5f fvMesh,dynamicRefineFvMesh: Rename writeObjects -> writeObject for consistency with regIOobject 2016-08-16 23:40:27 +01:00
14470c0dda fvMatrixSolve: Set the solver name to that used to solve the components
Resolves bug-report http://bugs.openfoam.org/view.php?id=2189
2016-08-14 21:39:58 +01:00
6a529f2f76 functionObjects::volRegion: General base-class to handle vol (cell) region processing
Renamed the original volRegion -> volFieldValue to clarify the purpose
of this class to process vol fields on a volRegion.
2016-08-11 15:11:19 +01:00
4765702445 functionObjects: Further simplification and rationalization using the fvMeshFunctionObject base-class 2016-08-10 12:29:19 +01:00
7656c076c8 C++11: Replaced the C NULL with the safer C++11 nullptr
Requires gcc version 4.7 or higher
2016-08-05 17:19:38 +01:00
cabe698d5f DimensionedField<scalar, volMesh> -> volScalarField::Internal
DimensionedField<vector, volMesh> -> volVectorField::Internal
2016-08-01 14:28:54 +01:00
aa7b3dfe7d CrankNicolsonDdtScheme: Corrected handling of the boundary field to avoid premature reset of the time-index
Resolves bug-report http://bugs.openfoam.org/view.php?id=2162
2016-07-29 17:48:04 +01:00
c8f8a6c162 fvMatrixSolve: Corrected ref() access to field
Resolves bug-report http://bugs.openfoam.org/view.php?id=2163
2016-07-28 18:00:21 +01:00