OpenFOAM® v1706: New and updated solvers and physics


Lumped point Fluid Structure Interaction(FSI)

The new lumpedPointMotion library provides tools to perform Fluid Structure Interaction (FSI) on a lumped point model.

The new lumpedPointDisplacement point displacement boundary condition is responsible for movement of patch points based on a coarse representation of the model using lumped points. Integrated forces and moments acting on the patch are transferred to an external application. This evaluates the structural response and returns the updated positions and rotations of the lumped points (six degrees of freedom movement).

A typical use case is an external structural solver to determine the response of an object e.g., a building or other structure, to forces and moments imposed by fluid loading. The resolution of the fluid dynamics mesh is several orders of magnitude greater than the solid structure representation.

The following video illustrates the lumped control points vs the target patch to be moved. In this example the controlling points are in a shifted frame of reference.

When setting up the case, the lumpedPointZones utility can be used to visualize the correspondence between the sub-patch regions and lumped points:


The lumpedPointMovement utility can be used to visualize the behaviour without the expense of using moveMesh:

Source code

New low Mach number flow solver for acoustics

The new rhoPimpleAdiabaticFoam solver aims to provide a robust tool simulate low Mach number flows. The temperature is advanced as an idealised adiabatic process, and a new pressure-velocity coupling algorithm provides solutions that are insensitive to time step size and under-relaxation.

The following video shows the transport of a vortex, based on the reference below, where mesh grading is applied both parallel and orthogonal to the main flow direction

Although the vortex smears, it does not lead to the generation of spurious pressure waves produced via the standard Rhie-Chow interpolation method.

The solver was originally supplied by CFD Software E+F GmbH and integrated into OpenFOAM by OpenCFD Ltd.
Knacke, T. (2013). Potential effects of Rhie & Chow type interpolations in airframe noise simulations. In: Schram, C., Dnos, R., Lecomte E. (ed): Accurate and efficient aeroacoustic prediction approaches for airframe noise, VKI LS 2013-03.

Source code

New Joule Heating functionality

The new jouleHeating fvOption provides users with the ability to add Joule Heating contributions to any thermal solver.

The option solves an equation for the electrical potential, V  \relax \special {t4ht=, of the form

pict\relax \special {t4ht=

where σ  \relax \special {t4ht= is the electrical conductivity. The thermal source is then given by

pict\relax \special {t4ht=

The option is specified in the fvOptions file using, e.g.

type            jouleHeatingSource;

    anisotropicElectricalConductivity no;

    // Optionally specify sigma as a function of temperature
    //sigma           127599.8469;
    //sigma           table
    //    (0      127599.8469)
    //    (1000   127599.8469)

The following image shows the result of a validation study that compares the OpenFOAM prediction from the chtMultiRegionSimpleFoam case referenced below vs an analytical solution

OpenFOAM vs analytical solution

Source code

Updated time step controls

The setTimeStep function object has been updated to enable a smooth variation of the time step size.

In the following example, the time step begins to vary after 0.014s as defined by the timeStart entry. The change in step size is limited by the deltaTCoeff entry, which represents the maximum change allowed compared to the current value, in order to reach the target step size of 1e-4s.

    type            setTimeStep;
    libs            ("");

    // Start changing the time step after 0.014s
    timeStart       0.014;

    // Target time step size
    deltaT          1e-4;

    // Max ratio between steps, GREAT if not defined (default)
    // Note: must be greater 1
    deltaTCoeff     1.05;

    writeControl    adjustableRunTime;
    writeInterval   0.05;

An example of the time step size history is given below.

Time step size variation

Source code