to provide a single consistent code and user interface to the specification of
physical properties in both single-phase and multi-phase solvers. This redesign
simplifies usage and reduces code duplication in run-time selectable solver
options such as 'functionObjects' and 'fvModels'.
* physicalProperties
Single abstract base-class for all fluid and solid physical property classes.
Physical properties for a single fluid or solid within a region are now read
from the 'constant/<region>/physicalProperties' dictionary.
Physical properties for a phase fluid or solid within a region are now read
from the 'constant/<region>/physicalProperties.<phase>' dictionary.
This replaces the previous inconsistent naming convention of
'transportProperties' for incompressible solvers and
'thermophysicalProperties' for compressible solvers.
Backward-compatibility is provided by the solvers reading
'thermophysicalProperties' or 'transportProperties' if the
'physicalProperties' dictionary does not exist.
* phaseProperties
All multi-phase solvers (VoF and Euler-Euler) now read the list of phases and
interfacial models and coefficients from the
'constant/<region>/phaseProperties' dictionary.
Backward-compatibility is provided by the solvers reading
'thermophysicalProperties' or 'transportProperties' if the 'phaseProperties'
dictionary does not exist. For incompressible VoF solvers the
'transportProperties' is automatically upgraded to 'phaseProperties' and the
two 'physicalProperties.<phase>' dictionary for the phase properties.
* viscosity
Abstract base-class (interface) for all fluids.
Having a single interface for the viscosity of all types of fluids facilitated
a substantial simplification of the 'momentumTransport' library, avoiding the
need for a layer of templating and providing total consistency between
incompressible/compressible and single-phase/multi-phase laminar, RAS and LES
momentum transport models. This allows the generalised Newtonian viscosity
models to be used in the same form within laminar as well as RAS and LES
momentum transport closures in any solver. Strain-rate dependent viscosity
modelling is particularly useful with low-Reynolds number turbulence closures
for non-Newtonian fluids where the effect of bulk shear near the walls on the
viscosity is a dominant effect. Within this framework it would also be
possible to implement generalised Newtonian models dependent on turbulent as
well as mean strain-rate if suitable model formulations are available.
* visosityModel
Run-time selectable Newtonian viscosity model for incompressible fluids
providing the 'viscosity' interface for 'momentumTransport' models.
Currently a 'constant' Newtonian viscosity model is provided but the structure
supports more complex functions of time, space and fields registered to the
region database.
Strain-rate dependent non-Newtonian viscosity models have been removed from
this level and handled in a more general way within the 'momentumTransport'
library, see section 'viscosity' above.
The 'constant' viscosity model is selected in the 'physicalProperties'
dictionary by
viscosityModel constant;
which is equivalent to the previous entry in the 'transportProperties'
dictionary
transportModel Newtonian;
but backward-compatibility is provided for both the keyword and model
type.
* thermophysicalModels
To avoid propagating the unnecessary constructors from 'dictionary' into the
new 'physicalProperties' abstract base-class this entire structure has been
removed from the 'thermophysicalModels' library. The only use for this
constructor was in 'thermalBaffle' which now reads the 'physicalProperties'
dictionary from the baffle region directory which is far simpler and more
consistent and significantly reduces the amount of constructor code in the
'thermophysicalModels' library.
* compressibleInterFoam
The creation of the 'viscosity' interface for the 'momentumTransport' models
allows the complex 'twoPhaseMixtureThermo' derived from 'rhoThermo' to be
replaced with the much simpler 'compressibleTwoPhaseMixture' derived from the
'viscosity' interface, avoiding the myriad of unused thermodynamic functions
required by 'rhoThermo' to be defined for the mixture.
Same for 'compressibleMultiphaseMixture' in 'compressibleMultiphaseInterFoam'.
This is a significant improvement in code and input consistency, simplifying
maintenance and further development as well as enhancing usability.
Henry G. Weller
CFD Direct Ltd.
89 lines
2.5 KiB
Bash
Executable File
89 lines
2.5 KiB
Bash
Executable File
#!/bin/sh
|
|
cd ${0%/*} || exit 1 # Run from this directory
|
|
|
|
# Parse arguments for library compilation
|
|
. ../wmake/scripts/AllwmakeParseArguments
|
|
|
|
# Perform various checks
|
|
wmakeCheckPwd "$WM_PROJECT_DIR/src" || {
|
|
echo "Allwmake error: Current directory is not \$WM_PROJECT_DIR/src"
|
|
echo " The environment variables are inconsistent with the installation."
|
|
echo " Check the OpenFOAM entries in your dot-files and source them."
|
|
exit 1
|
|
}
|
|
|
|
[ -n "$FOAM_EXT_LIBBIN" ] || {
|
|
echo "Allwmake error: FOAM_EXT_LIBBIN not set"
|
|
echo " Check the OpenFOAM entries in your dot-files and source them."
|
|
exit 1
|
|
}
|
|
|
|
# Update OpenFOAM version strings if required
|
|
wmakePrintBuild -check || wrmo OpenFOAM/global/global.o 2>/dev/null
|
|
|
|
Pstream/Allwmake $targetType $*
|
|
|
|
OSspecific/${WM_OSTYPE:-POSIX}/Allwmake $targetType $*
|
|
wmake $targetType OpenFOAM
|
|
|
|
wmake $targetType fileFormats
|
|
wmake $targetType surfMesh
|
|
wmake $targetType triSurface
|
|
wmake $targetType meshTools
|
|
|
|
# Decomposition methods needed by dummyThirdParty
|
|
# (dummy metisDecomp, scotchDecomp etc) needed by e.g. meshTools
|
|
dummyThirdParty/Allwmake $targetType $*
|
|
|
|
wmake $targetType finiteVolume
|
|
wmake $targetType lagrangian/basic
|
|
wmake $targetType lagrangian/distributionModels
|
|
wmake $targetType genericPatchFields
|
|
|
|
wmake $targetType mesh/extrudeModel
|
|
wmake $targetType dynamicMesh
|
|
|
|
# Compile scotchDecomp, metisDecomp etc.
|
|
parallel/Allwmake $targetType $*
|
|
|
|
wmake $targetType dynamicFvMesh
|
|
wmake $targetType topoChangerFvMesh
|
|
wmake $targetType conversion
|
|
wmake $targetType sampling
|
|
|
|
wmake $targetType ODE
|
|
wmake $targetType randomProcesses
|
|
|
|
wmake $targetType physicalProperties
|
|
|
|
thermophysicalModels/Allwmake $targetType $*
|
|
twoPhaseModels/Allwmake $targetType $*
|
|
MomentumTransportModels/Allwmake $targetType $*
|
|
ThermophysicalTransportModels/Allwmake $targetType $*
|
|
wmake $targetType radiationModels
|
|
wmake $targetType combustionModels
|
|
regionModels/Allwmake $targetType $*
|
|
lagrangian/Allwmake $targetType $*
|
|
mesh/Allwmake $targetType $*
|
|
renumber/Allwmake $targetType $*
|
|
fvAgglomerationMethods/Allwmake $targetType $*
|
|
|
|
wmake $targetType fvMotionSolver
|
|
wmake $targetType engine
|
|
wmake $targetType fvModels
|
|
wmake $targetType fvConstraints
|
|
|
|
functionObjects/Allwmake $targetType $*
|
|
|
|
wmake $targetType sixDoFRigidBodyMotion
|
|
wmake $targetType sixDoFRigidBodyState
|
|
wmake $targetType rigidBodyDynamics
|
|
wmake $targetType rigidBodyMeshMotion
|
|
wmake $targetType rigidBodyState
|
|
wmake $targetType specieTransfer
|
|
wmake $targetType atmosphericModels
|
|
wmake $targetType waves
|
|
|
|
|
|
#------------------------------------------------------------------------------
|