Commit Graph

5165 Commits

Author SHA1 Message Date
b370628d9e functionObjects: forces: Added support for Euler-Euler multiphase 2021-03-30 18:34:11 +01:00
8a5ee8aac1 MomentumTransportModels: Library builds of multiphase models
The MomentumTransportModels library now builds of a standard set of
phase-incompressible and phase-compressible models. This replaces most
solver-specific builds of these models.

This has been made possible by the addition of a new
"dynamicTransportModel" interface, from which all transport classes used
by the momentum transport models now derive. For the purpose of
disambiguation, the old "transportModel" has also been renamed
"kinematicTransportModel".

This change has been made in order to create a consistent definition of
phase-incompressible and phase-compressible MomentumTransportModels,
which can then be looked up by functionObjects, fvModels, and similar.

Some solvers still build specific momentum transport models, but these
are now in addition to the standard set. The solver does not build all
the models it uses.

There are also corresponding centralised builds of phase dependent
ThermophysicalTransportModels.
2021-03-30 13:27:20 +01:00
227734ddf8 transform: Standardised the Rx, Ry, Rz and Ra rotational tranformations
so that they operate in the conventional manner in a right-handed coordinate
system:

//- Rotational transformation tensor about the x-axis by omega radians
//  The rotation is defined in a right-handed coordinate system
//  i.e. clockwise with respect to the axis from -ve to +ve
//  (looking along the axis).
inline tensor Rx(const scalar& omega)

//- Rotational transformation tensor about the y-axis by omega radians
//  The rotation is defined in a right-handed coordinate system
//  i.e. clockwise with respect to the axis from -ve to +ve
//  (looking along the axis).
inline tensor Ry(const scalar& omega)

//- Rotational transformation tensor about the z-axis by omega radians
//  The rotation is defined in a right-handed coordinate system
//  i.e. clockwise with respect to the axis from -ve to +ve
//  (looking along the axis).
inline tensor Rz(const scalar& omega)

//- Rotational transformation tensor about axis a by omega radians
//  The rotation is defined in a right-handed coordinate system
//  i.e. clockwise with respect to the axis from -ve to +ve
//  (looking along the axis).
inline tensor Ra(const vector& a, const scalar omega)
2021-03-30 13:11:48 +01:00
0df21c5515 unitConversion: Removed templating which is no longer needed 2021-03-30 11:41:06 +01:00
8fdf4eb6de CsvTableReader: Removed temporary work-around for binary dictionary list entry
Resolves bug-report http://bugs.openfoam.org/view.php?id=3651
2021-03-30 11:24:35 +01:00
0d679d926a surfaceTransformPoints: Updated to use the new transformer class
Description
    Transform (translate, rotate, scale) a surface.

Usage
    \b surfaceTransformPoints "\<transformations\>" \<input\> \<output\>
    Supported transformations:
      - \par translate=<translation vector>
        Translational transformation by given vector
      - \par rotate=(\<n1 vector\> \<n2 vector\>)
        Rotational transformation from unit vector n1 to n2
      - \par Rx=\<angle [deg] about x-axis\>
        Rotational transformation by given angle about x-axis
      - \par Ry=\<angle [deg] about y-axis\>
        Rotational transformation by given angle about y-axis
      - \par Rz=\<angle [deg] about z-axis\>
        Rotational transformation by given angle about z-axis
      - \par Ra=\<axis vector\> \<angle [deg] about axis\>
        Rotational transformation by given angle about given axis
      - \par scale=\<x-y-z scaling vector\>
        Anisotropic scaling by the given vector in the x, y, z
        coordinate directions

    Example usage:
        surfaceTransformPoints \
            "translate=(-0.586 0 -0.156), \
            Ry=3.485, \
            translate=(0.586 0 0.156)" \
            constant/geometry/w3_orig.stl constant/geometry/w3.stl
2021-03-29 16:14:48 +01:00
45dca30c51 surfaceTransformPoints: Generalised to apply a sequence of transformations
The transformation sequence is specified like a substitution string used by

Description
    Transform (translate, rotate, scale) a surface.

    The rollPitchYaw option takes three angles (degrees):
    - roll (rotation about x) followed by
    - pitch (rotation about y) followed by
    - yaw (rotation about z)

    The yawPitchRoll does yaw followed by pitch followed by roll.

Usage
    \b surfaceTransformPoints "\<transformations\>" \<input\> \<output\>

    Example usage:
        surfaceTransformPoints \
            "translate=(-0.586 0 -0.156), \
            rollPitchYaw=(0 -3.485 0), \
            translate=(0.586 0 0.156)" \
            constant/geometry/w3_orig.stl constant/geometry/w3.stl
2021-03-28 13:36:50 +01:00
516ee1675e unitConversion: templated degToRad and radToDeg to support vectors of angles 2021-03-28 13:36:00 +01:00
bf7ac24e9f foamDictionary: Improved the -set "<substitutions>" option
Multiple substitutions can be made using the convenient -set "<substitutions>"
option which combines the selection of the entries with the substitutions made
on them using the same argument syntax used by #includeFunc, e.g.

    foamDictionary system/controlDict -set "startTime=2000, endTime=3000"
2021-03-28 13:32:37 +01:00
7562bfb48c kinematicSingleLayer: Constrain phid for consistency with fixed velocity BCs 2021-03-26 15:40:48 +00:00
c771b7431b VoFSurfaceFilm: Corrected usage example 2021-03-25 13:22:45 +00:00
de9b29f0fd Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2021-03-24 18:50:28 +00:00
5cf60ba430 multiphaseEulerFoam::MomentumTransferPhaseSystem: Corrected access to absolute phi for moving mesh cases 2021-03-24 18:49:43 +00:00
42a558a1b0 multiphaseEulerFoam: linearTsub: Corrected model lookup and sign convention
Patch contributed by Juho Peltola, VTT.
2021-03-24 11:10:23 +00:00
0eafc13419 surfaceFilmModels::standardPhaseChange: Corrected energy transfer to the primary region
Assuming the heat required to cause the phase change is provided by the film the
energy transferred with the mass to the primary region corresponds to vapour
at the film surface temperature.
2021-03-24 08:10:02 +00:00
14d52461ce liquidProperties: Corrected handling of internal energy
Currently the NSRDS-based liquid properties provide no support for pressure and
the enthalpy functions do not include any pressure effects thus internal energy
is equal to the enthalpy.  If used with an enthalpy equation the pressure-work
term should not be included.
2021-03-22 16:33:02 +00:00
76e07b0da6 surfaceFilmModels: Replaced the simplistic constant heat capacity thermodynamics with rhoThermo
The constant heat capacity hacked thermo in surfaceFilmModels and the
corresponding transfer terms in Lagrangian have been replaced by the standard
OpenFOAM rhoThermo which provides a general handling of thermo-physical
properties, in particular non-constant heat capacity.  Further rationalisation
of liquid and solid properties has also been undertaken in support of this work
to provide a completely consistent interface to sensible and absolute enthalpy.

Now for surfaceFilmModels the thermo-physical model and properties are specified
in a constant/<region>/thermophysicalProperties dictionary consistent with all
other types of continuum simulation.

This significantly rationalises, simplifies and generalises the handling of
thermo-physical properties for film simulations and is a start at doing the same
for Lagrangian.
2021-03-21 23:04:40 +00:00
8ec5eac35e twoPhaseMixtureThermo: Corrected mixture molecular weight
Resolves bug-report https://bugs.openfoam.org/view.php?id=3645
2021-03-21 10:09:46 +00:00
7dc7956327 wallHeatTransferCoeff: Fixed read bug and standardised input 2021-03-19 14:37:13 +00:00
8312197b0f dictionary: Added backwards compatible stream lookup 2021-03-19 14:37:03 +00:00
34f6e40753 fvModels: massSource: Specify temperature in example 2021-03-19 09:43:24 +00:00
da288597e2 tutorials: Replaced semiImplicitSource with more specific fvModels 2021-03-19 09:43:24 +00:00
8d707b48c6 fvModels: Added heatSource model
This model applies a heat source. It requires either the power, Q, or
the power per unit volume, q, to be specified.

Example usage:

    heatSource
    {
        type            heatSource;

        selectionMode   cellSet;
        cellSet         heater;

        Q               1e6;
    }
2021-03-19 09:43:24 +00:00
07a0afd011 fvModels: Added heatTransfer model
This model represents volumetric heat exchange with a constant ambient
temperature, using an area per unit volume, and a heat transfer
coefficient. It utilises the same heat transfer coefficient modelling as
the equivalent inter-region option.

Example usage:

    heatTransfer
    {
        type            heatTransfer;

        heatTransferCoeffs
        {
            selectionMode   cellSet;
            cellSet         c0;

            semiImplicit    no;

            Ta              300;

            type            constant;

            AoV             200;
            htc             10;
        }
    }
2021-03-19 09:43:24 +00:00
4442ce54a5 fvModels: interRegionHeatTransfer: Rationalisation
There is now just one inter-region heat transfer model, and heat
transfer coefficient models are selected as sub-models. This has been
done to permit usage of the heat transfer models in other contexts.

Example usage:

    interRegionHeatTransfer
    {
        type            interRegionHeatTransfer;

        interRegionHeatTransferCoeffs
        {
            nbrRegion       other;

            interpolationMethod cellVolumeWeight;
            master          true;

            semiImplicit    no;

            type            constant;

            AoV             200;
            htc             10;
        }
    }
2021-03-19 09:43:24 +00:00
de39bb45ca src/lagrangian/parcel/submodels/Thermodynamic/SurfaceFilmModel: Temporary revert of the film Cp change 2021-03-19 09:41:39 +00:00
c2b572b468 lagrangian/parcel/submodels/Thermodynamic/SurfaceFilmModel: Updated for changes to film thermo 2021-03-19 09:28:41 +00:00
f1f7843109 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2021-03-18 16:30:10 +00:00
3931ac406a surfaceFilmModels: Remove unnecessary caching of derived surface and wall fields 2021-03-18 16:29:27 +00:00
ac169bb5bf foamInfo: Improved searching for models in the applications directory 2021-03-18 12:18:35 +00:00
0e4663e530 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2021-03-17 14:21:21 +00:00
76cfa3d136 applyBoundaryLayer: Improved the calculation of omega 2021-03-17 14:20:56 +00:00
4865cd18c5 multiphaseEulerFoam: mixerVessel2D: Made fully incompressible
This now serves as an example of a multiphaseEulerFoam case that
requires pressure referencing.
2021-03-17 08:42:03 +00:00
762fb48ddf multiphaseEulerFoam: Use pressureControl
pMin and pMax settings are now available in multiphaseEulerFoam in the
PIMPLE section of the system/fvOptions file. This is consistent with
other compressible solvers. The pMin setting in system/phaseProperties
is no longer read, and it's presence will result in a warning.
2021-03-17 08:42:03 +00:00
96f07b0137 surfaceFilmModels: Removed dependency on the deprecated SLGThermo
SLGThermo has been moved to lagrangian, which still depends on it, pending
complete removal and replacement with a more rational interface to the carrier
phase thermodynamics.
2021-03-16 16:47:07 +00:00
84103902ac solidDisplacementFoam: Corrected post-processing stress
to correspond to the new displacement equation formulation which handles
non-uniform density.

Resolves bug-report https://bugs.openfoam.org/view.php?id=3642
2021-03-15 10:36:01 +00:00
633095a790 surfaceFilmModels::transferModels: Removed unused functions 20210315 2021-03-12 20:33:00 +00:00
c5edb78b58 surfaceFilmModels: Added missing momentum transfer functionality 2021-03-12 20:21:09 +00:00
17e8ceed64 fvModels: Prevent ambiguity when using the index operator
fvModels should operate primarily like a list of fvModel-s, so the index
operator of relevance is the one from its list base class. This has been
made explicit to prevent ambiguity associated with the same operator in
the dictionary base class.
2021-03-12 16:57:40 +00:00
2cb03184cf ReynoldsStress: Added RSource and epsilonSource methods
These permit derivations of reynolds stress models to add source terms
into the R and epsilon equations

Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2021-03-11 17:36:13 +00:00
16b19a3106 MomentumTransportModels: Add missing groups to turbulence fields
Patch contributed by Institute of Fluid Dynamics,
Helmholtz-Zentrum Dresden - Rossendorf (HZDR)
2021-03-11 17:13:42 +00:00
a3c8514870 fvModels: Source method field reference made constant
This makes the interface consistent with that of the fvMatrix and
other fvMatrix-generating functions; e.g., fvm::ddt.
2021-03-10 16:22:24 +00:00
b0a57397a4 plateFilm: New compressibleInterFoam tutorial to demonstrate the VoFSurfaceFilm fvModel
The film is left to drain down a vertical plate after the liquid drains out.
2021-03-10 14:24:58 +00:00
252b71f3c6 fvModels: Simplified structure using fvCellSet member data
which will allow for a run-time selectable and hence extensible fvCellSet in the
future.
2021-03-09 15:17:32 +00:00
e090643f63 fvConstraints: Simplified structure using fvCellSet member data
which will allow for a run-time selectable and hence extensible fvCellSet in the
future.
2021-03-09 13:24:05 +00:00
4c4673ab24 Merge branch 'master' of github.com-OpenFOAM:OpenFOAM/OpenFOAM-dev 2021-03-09 12:41:23 +00:00
fb7edbcffc tutorials/compressible/rhoSimpleFoam/aerofoilNACA0012: Corrected fvConstraints 2021-03-09 12:40:52 +00:00
b79c2d3aea fvModels: Removed temporary placeholder argument 2021-03-09 08:20:03 +00:00
6e172a708d fvModels: codedSource -> codedFvModel 2021-03-08 14:53:22 +00:00
cce3e13fe3 sixDoFAccelerationSource: Corrected typo 2021-03-08 12:25:12 +00:00