v2206: New and updated solvers and physics

New solid body mesh motion

TOP

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

New Reynolds-stress turbulence model: EBRSM

TOP

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.

Improved wall functions

TOP

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

Merge request

New dry-run support for CHT solvers

TOP

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

New time step control for solidFoam

TOP

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

Improved heat exchanger modelling

TOP

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

New tabulated anisotropic thermal conductivity solid transport

TOP

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

New softWall six-degree-of-freedom restraint

TOP

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