Fluid-structure interaction

zCFD has the capability of simulating Fluid Structure Interaction (FSI) using both a modal model, as well as any generic full FEA program through the use of our generic coupling scheme.

Keyword

Required

Default

Valid values

Description

‘type’

Yes

‘abaqus’ | ‘generic’

FSI driver to be used when coupling to an FEA code

‘zone’

Yes

List of zone ID integers

Which boundaries within the aerodynamic mesh are moving structural boundaries

‘fixed zones’

Yes

List of zone ID integers

Which boundaries should not be moved by any mesh deformation

‘transform type’

Yes

‘rbf multiscale’ | ‘rbf’ | ‘IDW’

Interpolation method to be used.

‘alpha’

Yes

1

Float

Support radius used by RBF

‘basis’

Yes

‘c2’

‘c2’ | ‘c4’ | c0’ | ‘tps’ | ‘gaussian’

Which basis function to use for RBF

‘base point fraction’

Yes

0.1

Float

Number of points to use in the reduced base set for rbf multiscale interpolation

‘tol’

Yes

0.01

Float

Set the target error tolerance for the rbf interpolation

‘max error’

Yes

0.1

Float

Set the maximum initial error tolerance for rbf interpolation

‘n nearest’

Yes

100

Positive integer

Number of points to be used in IDW interpolation

‘deformation distance’

Yes

1

Float

Set the maximum support radius for IDW interpolation

‘blending stiffness’

Yes

0.5

Float

Set the blending stiffness for the IDW interpolation

‘power’

Yes

[3.0,5.0,10.0]

Set the IDW power for the nearfield and farfield boundaries, and the power between them.

List of Float

‘user variables’

No

{}

Dict of variables to values

Custom parameters passed into the generic FSI code

type

Specifies which FSI driver should be used when coupling to an FEA code, ‘abaqus’ or ‘generic’. This tells zCFD which FSI python file should be used to execute the FSI coupling:

‘generic’ will use the genericFSI.py interface that should be implemented to meet your requirements. Out the box genericFSI.py will not perform any changes.

‘abaqus’ is an extension of generic interface that allows the solver to run in tandem with the SIMULIA CSE engine.

Note

Abaqus requires the CSE engine to be built with zCFD

zone

zone should be a list of zone IDs, these specify which surface is the moving FSI surface. This provides methods to extract surface normals, pressure forces, and cell centres from the specified cells, as well as allowing these surface points to drive mesh deformations in the volume mesh.

For RBF, this must include any static zones, where the motion of a static zone is set to 0.

fixed zones

fixed zones should be a list of zone IDs, these specify surfaces which must remain fixed, such as an interface, periodic boundary, or symmetry plane, these surfaces will remain untouched by the IDW mesh motion interpolation.

Note

IDW only

transform type

In FSI simulations the active surface defined in the ‘zone’ block, will move relative to the rest of the mesh. In order to maintain a conformal volume mesh, these displacements must be interpolated into the volume mesh. transform type defines which interpolation scheme should be used.

Setting

Notes

‘rbf’

Radial Basis Functions require the solving of a linear system, where a continuous function is fitted between all points which defines the motion. This function can then be evaluated at other points within the domain to get the interpolated values.

‘rbf multiscale’

RBF multiscale uses the a multiscale algorithm using a varying support radius to reduce the number of nodes in the linear system, where as RBF uses a Greedy algorithm.

‘IDW’

Inverse Distance Weighting does not require the solving of a linear system, and instead represents a function using a weighted sum of nearby function values.

Note

‘rbf multiscale’ has generally superseded the greedy algorithm, used in ‘rbf’, in terms of both speed performance and accuracy, so is the preferred RBF option.

alpha

Only applies to ‘rbf’ and ‘rbf multiscale’ interpolation schemes.

‘alpha’ sets the support radius used by the RBF. The Radial Basis Function used in RBF interpolation will have a set support radius defining the 1D shape of the function as a function of r. This determines the region of influence for the function. Compact functions such as C0, C2, C4 have a maximum radius, outside of which the influence of the RBF is 0. For functions with global influence such as Gaussian and TPS, alpha becomes the normalisation factor - i.e. when r = alpha, e = 1 if rbf = f(e).

‘alpha’ should be larger than the maximum anticipated deformation.

basis

Only applies to ‘rbf’ and ‘rbf multiscale’ interpolation schemes.

When performing RBF interpolation a specific function needs to be defined to create the interpolant. Compact functions such as C0, C2, C4 have a maximum region of influence, Gaussian and TPS have global influence.

Note

For 99% of applications C2 works best

base point fraction

Only applies to ‘rbf’ and ‘rbf multiscale’ interpolation schemes.

Solving the RBF system requires solving an NxN sized linear system, where N is the number of moving nodes- i.e. nodes on the surface [4] defined earlier. For large meshes this quickly becomes prohibitively expensive, therefor it is desirable to solve a reduced set of points. The Multiscale method is a ‘reduced base set method’ where the linear system is only solved on the base set of nodes, with the remaining nodes solved iteratively. ‘base point fraction’ dictates how many nodes of the full set should be included in the base set. Setting the base point fraction to 1.0 returns a standard full RBF.

tol

Only applies to ‘rbf’ interpolation scheme.

At each point selection step during Greedy selection, the interpolation problem is solved on the current base set of data. From this the error between the exact solution and interpolated solution for all points in the mesh is identified, this value is used as the initial guess for the ‘worst’ error within the mesh. Once the total error is below this tolerance, the greedy point selection is complete.

max error

Only applies to ‘rbf’ interpolation scheme.

At each point selection step during Greedy selection, the interpolation problem is solved on the current base set of data. From this the error between the exact solution and interpolated solution for all points in the mesh is identified. If this error is greater than the max error specified here, an error message is thrown.

n nearest

Only applies to ‘IDW’ interpolation scheme.

When using IDW mapping, the deformation of each surface point is mapped onto a set number of volume points, with the value determined by the weighted inverse distance between the donor and the recipient.

deformation distance

Only applies to ‘IDW’ interpolation scheme.

Sets the maximum region of influence for the inverse distance weighting mapping. If there are fewer than “n” neighbours within a distance “d”, then only neighbours within that distance are used.

blending stiffness

Only applies to ‘IDW’ interpolation scheme.

Set the blending stiffness for the IDW interpolation.

power

Only applies to ‘IDW’ interpolation scheme.

Set the IDW power for the nearfield and farfield boundaries, and the power between them.

user variables

If you had additional variables for time marching scheme or FSI control (e.g. file names) you may want to pass as variables to the genericFSI.py script, these should be included in this dictionary.