You are on page 1of 21

OpenFOAM Library for

Fluid Structure Interaction


9th OpenFOAM Workshop - Zagreb, Croatia

Zeljko
Tukovic, P. Cardiff, A. Karac,
H. Jasak, A. Ivankovic
University of Zagreb
Faculty of Mechanical Engineering and Naval Architecture
Zeljko.Tukovic@fsb.hr

June 25, 2014

Outline
Objective
Present new OpenFOAM library for fluid structure
interaction (FSI) simulation
Present some general purpose numerical procedures
implemented during FSI library development
Topics
Basic components of FSI library and example of FSI solver
New parallel least squares volToPoint interpolation
Vertex based Gauss gradient method
skewCorrected snGrad scheme
Improved finite volume mesh motion solver
Extended GGI interpolation

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Previous FSI functionality


icoFsiFoam solver
Laminar flow of incompressible fluid calculated using
FVM solver on dynamic mesh using PISO procedure
Deformation of solid described by small-strain total
Lagrangian formulation and calculated using FVM solver
Weak coupling between fluid and solid

newIcoFsiFoam (icoFsiElasticNonLinULSolidFoam) solver


PISO dynamic mesh FVM solver for laminar flow of
incompressible fluid
Large-strain updated Lagrangian FVM solver for
deformation of elastic solid
Strong coupling between fluid and solid
Coupling schemes: fixed relaxation, Aitken, (IQN-ILS)
Enabled parallel calculations

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Concept of new FSI library

Using object oriented approach, it is enabled selection of fluid


flow solvers, stress analysis solvers and fsi coupling schemes.
In such a way, it is facilitated addition of new solvers and
coupling schemes.
All this is achieved by introducing following classes:
1
2
3

class flowModel
class stressModel
class fluidStructureInterface

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Basic components of FSI library


Abstract base class flowModel
class flowModel
:
public IOdictionary
{
...
//- Face zone viscous force (N/m2)
virtual tmp<vectorField> faceZoneViscousForce
(
const label zoneID,
const label patchID
) const = 0;
//- Face zone pressure force (N/m2)
virtual tmp<scalarField> faceZonePressureForce
(
const label zoneID,
const label patchID
) const = 0;
//- Evolve the stress model
virtual bool evolve() = 0;
};

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Basic components of FSI library

Currently implemented flow models


icoFlow
Equivalent to icoDyMFoam solver without ddtPhiCorr
consistentIcoFlow
Equivalent to icoDyMFoam solver with consistent
ddtPhiCorr; Tukovic, Jasak, C&F, 2012.
pisoFlow
Equivalent to pisoFoam solver with dynamic mesh

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Basic components of FSI library


Abstract base class stressModel
class stressModel
:
public IOdictionary
{
...
//- Face zone point displacement increment
virtual tmp<vectorField> faceZonePointDisplacementIncrement
(
const label zoneID
) const = 0;
//- Set traction at specified face zone
virtual void setTraction
(
const label patchID,
const label zoneID,
const vectorField& faceZoneTraction
) = 0;
//- Evolve the stress model
virtual bool evolve() = 0;
};

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Basic components of FSI library


Currently implemented stress models
unsTotalLagrangianStress
Large strain elastic stress analysis solver based on total
Lagrangian displacement formulation
unsIncrTotalLagrangianStress
Large strain elastic stress analysis solver based on total
Lagrangian displacement increment formulation
New family of stress analysis solvers (uns-solvers) is introduced
which is based on vertex based Gauss gradient calculation
method and least squares volToPoint interpolation

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Basic components of FSI library


class fluidStructureInterface
Extended GGI interpolation
Allows face and point zone-to-zone interpolation for
non-conformal meshes at fsi interface

Coupling schemes
Fixed relaxation
Aitken dynamic relaxation
IQN-ILS (implemented by J. Degroote, UGent)

Setting boundary conditions for fluid mesh motion and


handling fluid global interface face zone

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Example of FSI solver


fsiFoam partitioned strongly coupled FSI FVM solver
fluidStructureInterface fsi(mesh, stressMesh);
for (runTime++; !runTime.end(); runTime++)
{
fsi.initializeFields();
fsi.updateInterpolator();
scalar residualNorm = 0;
do
{
fsi.outerCorr()++;
fsi.updateDisplacement(); // Using selected coupling scheme
fsi.moveFluidMesh();
fsi.flow().evolve();
fsi.updateForce(); // Face ggi interpolation
fsi.stress().evolve();
residualNorm =
fsi.updateResidual(); // Point ggi interpolation
}
while
(
(residualNorm > fsi.outerCorrTolerance())
&& (fsi.outerCorr() < fsi.nOuterCorr())
);
}

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Extended GGI interpolation


GGI interpolation is extended by allowing point
interpolations between master and slave patches or zones
Efficient point-addressing calculation using existing
face-addressing

i
Faces searched during calculation
of point i interpolation addressing

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Backward scheme for second temporal derivative


Backward temporal discretization scheme was available
only for first temporal derivative
In order to allow unified temporal discretization for fluid
and solid, backward discretization scheme is implemented
for second temporal derivative

[m]

[m]
P


[m]
t P
[m]


[m1]
t P

2t

[m1]

[m2]

3 4P
+ P
= P
2t

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam


[m2]
t P

volToPoint interpolation
Calculation of mesh point values from cell-centre values is
needed in following cases:
Cell-centred FVM mesh motion solver
Cell-centred FVM updated Lagrangian
stress analysis solvers
Cell-centred FVM FSI solver
Standard approach to calculate mesh point values in
OpenFOAM is simple inverse distance weighted interpolation
New approach proposed by Philip Cardiff: least squares
method with linear interpolation function

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Parallel least-squares volToPoint interpolation


i

WLS with linear fit


function:

ik

PROC-1

PROC-2

ij

i2

(ri ) = i 0 + Ci (ri ri 0 )
Pn
j=1 wij rij
ri 0 = Pn
wij
Pn j=1
j=1 wij ij
i 0 = Pn
j=1 wij

i1
i

i3

i4

Normal equations WLS




Ci = (XT WX)1 XT W i

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Vertex based Gauss gradient method


N

nf
Sf

df

c
f

Le
j

me

Cell-centre gradient:
()P =

rP

1 X
n S
VP

Volume of polyhedral cell:

VP =
y

VP

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

1X
n r S
3

Vertex based Gauss gradient method

Why we need tangential face-centre gradient


in stress analysis?
Traction vector for linear-elastic body
t = (2 + )nu ( + )nut + t un + n tr (t ut )
t = (I nn) the tangential gradient operator

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Vertex based Gauss gradient method


N

nf
Sf

df

c
f

Le
j

me

Tangential face-centre
gradient:

rP

(t )f =

z
y

VP

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

1 X
me e Le
Sf e

skewCorrected snGrad scheme


N
f

dfn

nf
kfN
N

kfP = (I nf nf )(rf rP )
kfN = (I nf nf )(rN rf )
dfn = nf (rN rP )

P
kfP P

Normal derivative at face-centre calculated with skewness and


non-orthogonal correction:
nf ()f =

N P kfN ()N kfP ()P


+
,
dfn
dfn

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Improved FVM mesh motion solver


Laplace mesh motion equation with variable diffusivity is
discretized using cell-centred FVM with skewCorrected snGrad
scheme and volToPoint interpolation of displacement is
performed using new least-squares method

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

Validation of FSI library


Z. Tukovic, P. Cardiff, A. Karac, H. Jasak and A. Ivankovic: Parallel unstructured
finite-volume method for fluid-structure interaction, manuscript in preparation (2014)
p

sigmaEq
1e+4

2e+4

0.02
3e+4

42.3

0.04

4e+4

0.0556

4.36e+04

U
1

sigmaEq

200

2.17

31.7

sigmaEq
2000

60.9

4000

6000

8000

8.52e+03

-0.4

-0.42

p
0.4

0.8

1.2
1.33

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

400

600

800

901

Conclusions

New FSI OpenFOAM library is developed and made


available to OpenFOAM community through
foam-extend-3.1/extend-bazaar
Using object oriented approach it is enabled easy
extension of the library by adding new solvers and
coupling schemes
Future work will be oriented toward development of
monolithic fsi approach

Zeljko
Tukovi
c, P. Cardiff, A. Kara
c, H. Jasak, A. Ivankovi
c

fsiFoam

You might also like