v2206: New and updated solvers and physics
A run-time selection mechanism was added for geometry calculations in v2012, set using a new geometry entry in system/fvSchemes. This release adds a new solidBody geometry scheme that aims to reduce the cost of some moving mesh cases, e.g. rotating AMI/ACMI cases:
geometry
{
type solidBody;
// Optional
partialUpdate yes; // default = yes
cacheMotion yes; // default = yes
}
The new scheme operates under the assumptions that:
- the motion can be described as solid-body (same number of points, face areas and cell volumes), and
- there are no topological updates.
Accordingly, instead of performing a complete mesh clear-out the solidBody scheme selectively updates only the geometry attached to moving points.
Performance improvements (time) are case specific, e.g. the smaller the fraction of moving cells compared to the total cell count, the larger the benefit for the mesh update phase.
The additional entries control:
- partialUpdate : if set to false, perform a complete mesh clear-out on mesh changes
- cacheMotion : if set to true, cache the addressing for the moving points, faces and cells across all time steps
Backwards compatibility
The basic option is the default and is applied if the geometry sub-dictionary is not supplied:
geometry
{
type basic;
}
Selecting this option will recover the behaviour from v2112 (and earlier versions).
Tutorials
Source code
The new Elliptic Blending Reynolds Stress Model (EBRSM) is based on the work of (Manceau, 2015) for incompressible and compressible flows.
The model extends standard, weakly inhomogeneous Reynolds stress models to the near-wall region, and generally provides better flow predictions for Reynolds stresses and turbulence quantities.
The new model has been verified with various canonical cases. Results from a verification case based on the DNS studies of a smooth-wall plane channel flow at ReTau=180 (Moser et al., 1999) are shown below:
Source code
Tutorial
Merge request
References
- Manceau, R. (2015). Recent progress in the development of the elliptic blending Reynolds-stress model. International Journal of Heat and Fluid Flow, 51, 195-220. DOI:10.1016/j.ijheatfluidflow.2014.09.002
Attribution
- OpenCFD would like to acknowledge and thank Prof. Rémi Manceau, Dr. Michael Karl Stoellinger, and Dr. Ardalan Javadi for their contributions, elaborate suggestions and help, and critical recommendations.
Wall functions and their code documentation have been improved.
Previously, the wall functions
- required a nutWallFunction-type reference to fetch various common wall-function coefficients, e.g. required by epsilon, k, and omega wall functions
- Cmu, kappa and E were obtained from the specified nutWallFunction to ensure a consistent set of coefficient values
These choices often led to confusion, particularly for cases where no nut-based wall function was expected, where somewhat cryptic casting errors were generated, and overly restrictive for some set-ups, e.g. expert users may want to use an epsilon-specific coefficient where the variation of epsilon in near-wall regions is usually very steep and non-monotonic.
Source code
- $FOAM_SRC/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions
- $FOAM_SRC/TurbulenceModels/compressible/turbulentFluidThermoModels/derivedFvPatchFields/wallFunctions
- $FOAM_SRC/TurbulenceModels/turbulenceModels/derivedFvPatchFields/wallFunctions
- $FOAM_SRC/TurbulenceModels/incompressible/turbulentTransportModels/derivedFvPatchFields/wallFunctions
- $FOAM_SRC/regionModels/surfaceFilmModels/derivedFvPatchFields/wallFunctions
Merge request
The chtMultiRegionFoam family of solvers have been extended to support the -dry-run command line option to provide quick feedback on case settings, e.g.
chtMultiRegionFoam -dry-run
This will create and read dummy meshes and read the initial fields. Typical output:
Operating in 'dry-run' mode: case will run for 1 time step. All checks assumed OK on a clean exit
Creating simplified mesh using "openfoam/tutorials/heatTransfer/chtMultiRegionFoam/multiRegionHeater/constant/bottomWater/polyMesh"
Mesh bounds: (-0.1 -0.04 -0.05) (0.1 1.1564823e-18 0.05)
Creating dummy zone heater
Creating dummy zone leftSolid
Creating dummy zone rightSolid
Creating dummy zone topAir
Creating dummy zone bottomWater
Unfortunately it will generally fail later on in the matching of the explicit coupled patches (mapped, mappedWall) and so it will not finish a full iteration.
Source code
The solidFoam solver has been extended to allow time-step control. This is enabled through the system/controlDict settings:
//- Is time step adjustable
adjustTimeStep yes;
//- Maximum diffusion number (default is 10)
maxDi 1;
Other methods of controlling the time step are also supported, e.g.:
functions
{
timeStepping
{
type setTimeStep;
libs (utilityFunctionObjects);
enabled yes;
deltaT
{
type table;
file "<system>/deltaTvalues";
}
}
}
Tutorials
Source code
The effectivenessHeatExchangerSource fvOption has been extended to write:
#Time Net mass flux [kg/s] Total heat exchange [W] Secondary inlet T [K] Tref [K] Effectiveness
Optionally, users can calculate the secondary outlet temperature based on a new optional input secondaryCp, which is the secondary flow specific heat capacity:
effectivenessHeatExchangerSource1
{
...
// when secondary outlet temperature is requested
secondaryCp <Function1<scalar>;
}
Source code
Merge request
This feature allows users to specify tabulated anisotropic thermal conductivity properties for solid thermodynamics with an optional coordinate system specification.
The transport model is called tabulatedAnIso, and as an example, the model is specified in thermophysicalProperties file as follows:
thermoType
{
type heSolidThermo;
mixture pureMixture;
transport tabulatedAnIso;
thermo hTabulated;
equationOfState icoPolynomial;
specie specie;
energy sensibleEnthalpy;
}
mixture
{
specie
{
molWeight 50;
}
transport
{
kappa table
(
// T kappa
( 200 (80 80 80) )
( 400 (80 80 80) )
);
// kappa <Function1<scalar>>;
}
thermodynamics
{
Hf 0;
Cp
(
( 200 450)
( 400 450)
);
Sf 0;
}
equationOfState
{
rhoCoeffs<8> (8000 0 0 0 0 0 0 0);
}
}
coordinateSystem
{
type cylindrical;
origin (0 0 0);
rotation
{
type cylindrical;
axis (1 0 0);
}
}
Source code
Merge request
A new soft wall restraint has been added to the six-degree-of-freedom rigid-body motion restraints.
The model describes a damper-linear-spring restraint that acts as a soft wall when the distance between an anchor and an attachment point in the body, refAttachmentPt, in the wall-normal direction becomes negative; no force is applied to the body when the distance is positive.
The specification in dynamicMeshDict is as follows:
restraints
{
softWall
{
sixDoFRigidBodyMotionRestraint softWall;
anchor (0.5 0.5 0.7);
refAttachmentPt (0.5 0.5 0.58);
wallNormal (0 0 -1);
psi 2.0;
C 0.01;
}
}
Source code
Merge request