Robinson-Mosher, A., Schroeder, C. and Fedkiw, R., "A Symmetric Positive Definite Formulation for Monolithic Fluid Structure Interaction", J. Comp. Phys. 230, 1547

Robinson-Mosher, A., Schroeder, C. and Fedkiw, R., "A Symmetric Positive Definite Formulation for Monolithic Fluid Structure Interaction", J. Comp. Phys. 230, 1547
A symmetric positive definite formulation for monolithic fluid structure
interaction
Avi Robinson-Mosher∗, Craig Schroeder∗, Ronald Fedkiw∗
Stanford University, 353 Serra Mall Room 207, Stanford, CA 94305
Abstract
In this paper we consider a strongly coupled (monolithic) fluid structure interaction framework for incompressible flow, as opposed to a loosely coupled (partitioned) method. This requires solving a single linear
system that combines the unknown velocities of the structure with the unknown pressures of the fluid. In
our previous work, we were able to obtain a symmetric formulation of this coupled system; however, it was
also indefinite, making it more difficult to solve. In fact in practice there have been cases where we have
been unable to invert the system. In this paper we take a novel approach that consists of factoring the
damping matrix of deformable structures and show that this can be used to obtain a symmetric positive
definite system, at least to the extent that the uncoupled systems were symmetric positive definite. We use
a traditional MAC grid discretization of the fluid and a fully Lagrangian discretization of the structures for
the sake of exposition, noting that our procedure can be generalized to other scenarios. For the special case
of rigid bodies, where there are no internal damping forces, we exactly recover the system of [4].
1. Introduction
Fluid structure interaction has been of increasing interest to the computational fluids community, due
in part to the ability to address more computationally expensive problems with improved hardware. Researchers have found differing approaches useful for qualitatively different regimes of fluid structure interaction. Applications may involve low or high structural deformation. Problems involving low deformation can
be approached with aligning fluid meshes using for instance Arbitrary Lagrangian-Eulerian (ALE) schemes.
This has been quite successful for studying phenomena such as airplane wing flutter, see e.g. [10]. High
structural deformation is sometimes also approached using ALE techniques, but frequent remeshing and the
averaging it requires can lead to reduced accuracy and increased computational cost. More often, methods
where the fluid and structure meshes are not aligned are employed (e.g. the body of work originating from
[23]). In this case the interaction between fluid and structure is usually massaged via penalty methods or
Lagrange multiplier formulations.
Anecdotal evidence suggests that problems where either the fluid or the structure dominates the interaction are inherently more stable than those where the effect is more balanced. For example, it is more
straightforward to solve problems where a kinematic structure drives the fluid or a structure is passively
advected by fluid, as opposed to problems where structures and fluids have nearly equal densities (see e.g.
[7]). Partitioned coupling approaches are typically explicit and staggered, for instance first imposing the
fluid pressures as a force on the structure and then solving for the fluid using the structure velocities as
boundary conditions in a second step. These approaches can also be iterated within a given time step for
increased stability, noting that one obtains a monolithic (albeit expensive) approach if the iteration is run
to convergence. Other approaches construct strongly coupled systems and then solve them in one of several
ways. We follow a monolithically coupled approach, in which we model the fluid structure interaction by
formulating and solving a single coupled system of equations; however, we do this in a way which is more
∗ {avir,cas43,fedkiw}@cs.stanford.edu,
Preprint submitted to Elsevier
Stanford University
October 17, 2010
efficient as well as more likely to converge than simply iterating the partitioned approach to convergence in
a simple Gauss-Seidel manner.
Our approach allows the use of existing discretizations for both the fluid and the structure and requires
only minor modification to existing codes. We do require that the fluid and structure solvers have certain
properties, though we will argue that they ought to be true of any physically constituted system. The
current formulation assumes that the fluid and structure systems are synchronized in time such that we can
solve for the coupling at the synchronization points, although it is not inconceivable that one could apply
asynchronous subiteration to each system.
The method that we propose in this paper is similar to the previous work in [25] addressing an implicit
method for two-way coupling of incompressible fluids and structures, with the chief difference being that the
linear system presented in [25] was indefinite. Our main contribution is the observation in Section 5.2 that
the structure damping operator can be factored and used to perform a change of variables that allows us to
symmetrize the coupled system while maintaining positive definiteness. We examine the properties of the
resulting linear system and demonstrate convergence of the method on several example problems from the
literature.
2. Fluid Equations
We address the Navier-Stokes equations for incompressible flow,
∂u
+ (u · ∇)u = −∇p + µ∇2 u + f
ρ
∂t
(1)
and
∇ · u = 0,
(2)
in the presence of structures. Here, u is the fluid velocity, p is the pressure, µ is the dynamic viscosity, ρ is
the density, and f is any external body force such as gravity.
We use a standard Marker and Cell (MAC, [16]) grid discretization for the fluid. When solving in
the presence of structures, some faces may not contain valid velocity samples because they are covered by
structures. The vector of fluid velocity samples omitting any covered by the structure is denoted by u.
Pressure samples are defined at cell centers. The divergence operator is defined to act on velocities at cell
faces to yield divergences at cell centers using the standard six-point stencil in three spatial dimensions, and
the gradient operator is defined as the negative transpose of the divergence.
We apply the projection method of [8] to solve the discretized form of Eqs. (1) and (2), making a first order
approximation in time. This splits the time integration into the computation of an intermediate velocity
ignoring the pressure terms
u⋆ = un − ∆t(un · ∇)un +
∆t
∆tµ 2
∇ u+
f
ρ
ρ
(3)
followed by enforcement of incompressibility via an implicit pressure projection
un+1 = u⋆ −
∆t
∇p.
ρ
(4)
We have omitted a specification of time from the viscosity term, since the viscosity might be applied explicitly
or implicitly. We postpone further consideration of viscosity until Section 7, at which point we will include
it in the coupling framework. We use a semi-Lagrangian advection scheme (see e.g. [26]) to compute the
convective terms in Eq. (3). In the presence of structures, this requires ghost cells or clipping since the
back-cast rays may intersect the solid; we use a method based on [14] for semi-Lagrangian advection near
2
solid surfaces. We advect using the divergence free time n velocities. We enforce incompressibility as usual
by plugging Eq. (4) into the discrete form of Eq. (2) to obtain
∆t
∇p = ∇ · u⋆ ,
∇·
ρ
which we solve for p using the conjugate gradient method.
3. Structure Equations
We utilize a traditional Lagrangian approach for structures. For deformable structures, we solve the
equations ẋ = v and Mv̇ = F. We take a lumped mass approach where the quantities x and v are the
vectors containing the position and velocity degrees of freedom for all n of the particles. The mass matrix
M is a 3n × 3n diagonal matrix with each 3 × 3 diagonal block of the form mi I, where mi is the mass of
particle i. The forces F = Fe + Fd contain both elastic Fe (velocity independent) and damping Fd (velocity
dependent) forces. Purely elastic forces (e.g., no plasticity) can be expressed in terms of an energy potential
as Fe = − ∂φ
∂x , where the energy potential φ depends only on x. Damping forces are often chosen according
to a simple model Fd = Dv that is linear in velocities and has symmetric negative semidefinite D. This is
true, for example, for the damping applied to a simple spring and Rayleigh damping.
One particularly simple and stable way of evolving these equations is via backward Euler. We wish to
solve
n+1 x
xn + ∆tvn+1
=
.
vn+1
vn + ∆tM−1 Fn+1
Taking the first order approximation Fn+1 = Fn +
xn+1
vn+1
=
∂Fn
n+1
∂x (x
− xn ) +
xn + ∆tvn+1
n
∂F
vn + ∆tM−1 (Fn + ∂x (xn+1 − xn ) +
∂Fn
n+1
∂v (v
∂Fn
n+1
∂v (v
− vn ) this becomes
− vn ))
.
Using the first equation to eliminate xn+1 in the second equation yields
∂Fn n+1
∂Fn
∆tvn+1 +
(v
− vn ))
vn+1 = vn + ∆tM−1 (Fn +
∂x
∂v
∂Fn
∂Fn n
∂Fn
I − ∆tM−1
vn+1 = vn − ∆tM−1
− ∆t2 M−1
v + ∆tM−1 Fn
∂v
∂x
∂v
n
n
(5)
2
−1 ∂F
−1 ∂F
From this we see that we must invert I − ∆tM−1 ∂F
∂v − ∆t M
∂x . The second term, −∆tM
∂v =
−∆tM−1 D, is symmetric positive semidefinite under a mass weighted inner product, which can be used for
∂Fd
∂Fe
solving the equation. The third term, however, can cause problems. Note that ∂F
∂x = ∂x + ∂x . The first
term is symmetric since Fe = − ∂φ
∂x , but it might be indefinite. The second term need not even be symmetric
under the mass weighted inner product.
Another approach is a Newmark-style semi-implicit scheme
n+1/2
• v⋆
= vn +
n+1/2
∆t
−1
F(xn , v⋆
)
2 M
n+1/2
• xn+1 = xn + ∆tv⋆
• vn+1/2 = vn +
∆t
−1
F(xn , vn )
2 M
• vn+1 = vn+1/2 +
∆t
−1
F(xn+1 , vn+1 )
2 M
3
Each time step of this scheme involves two implicit solves, bulleted steps 1 and 4. These solves differ from
the fully implicit backward Euler solve in that the dependence of force on position is explicit. The first solve,
if taken for a full ∆t, would look like
vn+1
=
vn+1
n
−1 ∂F
vn+1
I − ∆tM
∂v
I − ∆tM−1 D vn+1
=
=
=
vn + ∆tM−1 F(xn , vn+1 )
∂Fn n+1
vn + ∆tM−1 (Fn +
(v
− vn ))
∂v
∂Fn n
vn − ∆tM−1
v + ∆tM−1 Fn
∂v
vn − ∆tM−1 Dvn + ∆tM−1 Fn
(6)
(7)
We see from this that the fully implicit system Eq. (5) differs from the semi-implicit system Eq. (6) by the
n
presence of the extra −∆t2 M−1 ∂F
∂x term. This term was the source of the indefiniteness and asymmetry
problems in the fully coupled system. This simplification comes at the price of stability, however. The fully
implicit backward Euler scheme is unconditionally stable, but the semi-implicit scheme is not. Of course,
this is the well-known difference between a fully implicit Newmark method and one that resembles central
differencing [18].
The particular scheme used for the simulations in this paper is based on the backward Euler variant of
[28], which differs from the previous scheme in that it has been rewritten so that a backward Euler step can
be used for updating the final positions. That is
1.
2.
3.
4.
5.
−1
v̂⋆ = vn + ∆t
Fe (xn )
2 M
−1
vn+1/2 = v̂⋆ + ∆t
D(xn )vn+1/2
2 M
xn+1 = xn + ∆tvn+1/2
v⋆ = vn + ∆tM−1 Fe (xn+1 )
vn+1 = v⋆ + ∆tM−1 D(xn+1 )vn+1
As before, both solves lead to systems of the form Eq. (7). This scheme is first order accurate in time, limited
to first order by the backward Euler step used to compute the final velocities.
Our treatment of rigid bodies follows that of [28]. In general, each particle of a deformable body contributes one block to v, M, and F. Each rigid body contributes two blocks to each, with the first block
corresponding to the linear part, vi , mi , and fi , and the second block corresponding to the angular part, ωi ,
Ii , and τ i . With this taken into account, the linear system Eq. (7) is valid for deformable and rigid bodies.
The ability to treat rigid bodies using the same formulas as deformable bodies breaks down somewhat
when dealing with advancing rigid body orientation. Fortunately, the coupling formulation presented here is
explicit in position and therefore does not directly involve the integration of rigid body orientation, so this
complication is avoided. The coupling formulation is valid when bodies are deformable, rigid, or a mixture
of both.
4. Discrete Fluid Structure Coupling Equations
Our goal is to write down the equations that need to be solved in full, including the coupling and any other
terms such as boundary conditions. In doing this it is more useful to work from the actual discretizations
than it is from the continuous equations. Therefore we will consider the MAC grid fluid discretizations and
the Lagrangian structure discretizations as defined in Sections 2 and 3 and use them going forward for our
notation. However, we stress that one could use other discretizations for the fluids and structures and apply
the same methodology that we propose to those sets of equations.
We follow a method similar to that of [25] to merge the time integration schemes described in Sections 2
and 3,
1. v̂⋆ = vn +
2. û⋆ = un +
∆t
−1
Fe (xn )
2 M
∆t
2ρ f
4
3.
4.
5.
6.
Coupled solve with known quantities û⋆ , v̂⋆ , and xn and unknown quantities un+1/2 , p, and vn+1/2
xn+1 = xn + ∆tvn+1/2
v⋆ = vn + ∆tM−1 Fe (xn+1 )
u⋆ = un − ∆t(un · ∇)un + ∆t
ρ f
7. Coupled solve with known quantities u⋆ , v⋆ , and xn+1 and unknown quantities un+1 , p, and vn+1
Steps 1 through 2 integrate the explicit structure forces and explicit fluid forces for ∆t/2. We leave out
the convective terms in the fluid update because the coupled solve in step 3 takes positions at time n and
solves for velocities at time n + 12 . The known quantities at the beginning of step 3, which replaces step 2
in Section 3, are û⋆ , v̂⋆ , and xn . The remaining unknown quantities to solve for in Eqs. (2), (4) and (7) are
un+1/2 , p, and vn+1/2 . The details of the coupled solve are described later, but note that this solve takes
n+1/2
is used to advance the
place over only half of the time step (and thus has step size ∆t
2 ). In step 4, v
n+1/2
n+1/2
structure positions to time n + 1, and then u
, p and v
are discarded.
Steps 5 through 6 re-integrate the explicit structure forces and explicit fluid forces for ∆t, this time
including the convective terms in the fluid update to get time n + 1 fluid positions, resulting in v⋆ and u⋆ .
The known quantities at the beginning of step 7, which replaces step 5 from Section 3 and Eq. (4), are u⋆ ,
v⋆ , and xn+1 . We use xn+1 to determine the valid degrees of freedom for un+1 . The remaining unknown
quantities to solve for in Eqs. (2), (4) and (7) are un+1 , p, and vn+1 . The coupled solve used in this step
has the same form as that in step 3.
For the sake of exposition, we consider below only the second of the two implicit steps described above
(step 7), and therefore we will discuss the updates from u⋆ and v⋆ to un+1 and vn+1 , whereas the updates
from û⋆ and v̂⋆ to un+1/2 and vn+1/2 will be handled independently. One can replace ∆t, xn+1 , u⋆ , v⋆ ,
n
⋆
⋆
n+1/2
and vn+1/2 in the discussion that follows in order to apply the
un+1 and vn+1 with ∆t
2 , x , û , v̂ , u
same treatment to step 3.
4.1. Fluid Structure Coupling Constraints
The modifications to the fluid and structure equations correspond to constraints that capture the behavior
at the fluid structure interface. A fluid structure coupling constraint is an enforced constraint on the relative
velocity of the fluid and the structure at a point in space. In our implementation, a constraint occurs when a
ray cast between two adjacent MAC grid cell centers, at least one of which is in the fluid region, intersects a
structure surface. The constraint is placed at the center of the MAC grid face between the two cell centers,
and enforces that the projection of the fluid and structure velocities at that point in the ray direction are
equal. The impulse transfer between the solid and the fluid which enforces the constraint is called λ. See
Figure 1. This simple choice of constraint location is only first order accurate, since the constraint locations
are located O(∆x) from the structure surface.
4.2. Modified Fluid Equations
For fluid structure interaction, Eq. (4) changes due to the interaction with the structure. In Figure 1 for
the x direction we have a mass in that dual cell m and a velocity u, the product of which mu is equal to
mu⋆ plus the contribution from p in the fluid on the left side of the dual cell, plus a contribution from λ
due to interaction with the structure. This discards the pressure on the right hand side of the dual cell due
to the structure. We can neglect the dual cells that would lose two pressure contributions, those inside the
structure, since they are not degrees of freedom. We write this in vector form for all of the fluid velocity
terms as
βun+1 = βu⋆ − Ĝp̂ + WT λ,
(8)
where β is the diagonal matrix of fluid dual cell masses assembled from the product of the density ρ and the
volume V of each dual cell. We let p̂ = ∆tp. We define −ĜT = −V ∇T , the volume weighted divergence,
with the additional modification that we drop rows from −ĜT that correspond to cells without fluid. Its
negative transpose, Ĝ, is defined as the volume weighted gradient. −ĜT is simpler to describe directly than
5
p
u, λ
Figure 1: A dual cell requiring an equal velocity constraint is depicted above intersecting the solid depicted by the dashed line.
The fluid pressure on the left face of the dual cell will be balanced by the constraint-maintaining impulse λ applied at the equal
velocity constraint location.
Ĝ, since every row of −ĜT has the same stencil while the stencils for rows of Ĝ differ because some pressure
samples fall inside the structure. WT is the matrix of 1s and 0s which maps λ to the appropriate fluid
velocity scalars, which will be discussed in more detail below. The discrete form of the incompressibility
constraint is
−ĜT un+1 = 0
(9)
Our discretizations of W, Ĝ, and −ĜT are first order accurate since the constraint locations used in their
definition are only first order accurate. We note that even were Ĝ a higher order accurate approximation
of the gradient operator it would not necessarily imply that −ĜT would be a compatible and higher order
accurate approximation of the divergence. Unlike the second order discretizations [11, 22], it is not sufficient
in this context to discretize the Poisson operator with higher order accuracy. The discretizations of gradient
and divergence in [22] do not satisfy the negative transpose relationship, so using them in this formulation
would produce an asymmetric linear system.
4.3. Modified Structure Equations
To write the modified equations for the structure, one needs to consider the fact that the fluid and
structure degrees of freedom are defined at different spatial locations. This is quite important as constraints
must be applied to co-located fluid and structure velocities, and the equal and opposite forces applied to the
fluid and the structure must be applied at the same location in space so as not to introduce a net torque.
We define an operator J which interpolates from structure degrees of freedom to fluid velocity locations. Its
transpose JT is a conservative redistribution from fluid velocity locations to structure velocity degrees of
freedom.
J can be decomposed into three matrices, J = NĴR. The matrix R is comprised of blocks Rpb , where
body b is sampled by particle p. For particles within a deforming body, the particles are the samples, and
Rpb = I. If b corresponds to a rigid body, then there is a sample point p at each nearby fluid velocity
location. If such a sample point p is displaced from the rigid body’s center of mass by rpb , the velocity at
the sample point is
v
v
∗T
I
r
(10)
=
R
vp = vb + r∗T
ω
=
pb
pb b
pb
ω b
ω b
6
∗
∗
so that Rpb = I r∗T
pb , where r represents the matrix such that r u = r × u for any u.
P
The operator Ĵ interpolates particle velocity samples p to a MAC grid face f as
p αf p vp , so that
P
the blocks of Ĵ are Ĵf p = αf p I. Since Ĵ is an interpolation operator, p αf p = 1. The coefficients αf p are
defined based on local geometric information associated with the face f and the particle p such as the control
volume around f and structure faces incident on p. For the rigid body, R is used to sample the rigid body
velocities at sample points, and the most logical positions for sample points are the fluid velocity locations
at the centers of faces. In that sense, if only one rigid body was present near a face, locally the Ĵ operator
is the identity for that degree of freedom. However multiple rigid bodies or particles may influence the same
face, in which case an averaging of the velocities would be required, making Ĵ nontrivial.
Finally, N extracts the appropriate scalar velocity component from the vector velocity constructed via
R and Ĵ. The matrix N is block diagonal, where each block Nf f corresponds to a grid face f with normal
nf . These blocks are formed as Nf f = nTf . Our discretization of the operator J is limited to first order
accuracy since it depends on the first order accurate structure interface location.
Since Eq. (8) applies an impulse to the fluid at MAC grid face locations, the equal and opposite impulse
must be applied to the structure at those same locations, guaranteeing conservation of angular momentum.
For the case of rigid bodies, one can apply impulses to the rigid body from any location in space and therefore
the method does conserve angular momentum. However, in the case of deformable bodies ĴT contains
a spatial redistribution of the impulse which, while being a fully conservative remapping with columns
summing to 1 and thus conserving linear momentum, will not conserve angular momentum. P
In summary,
NT maps impulse magnitudes from dual cells to impulse vectors normal to the face. Since p αf p = 1,
ĴT conservatively distributes these impulses to different spatial sample locations in the case of deformable
bodies. For rigid bodies the spatial location does not change although the impulse can still be conservatively
distributed among multiple rigid bodies influencing that face. Finally RT conservatively applies those sample
impulses to the structure degrees of freedom. This mapping is trivial for deformable particles, but for rigid
bodies it converts the impulse sample into linear and angular impulses at the body’s center of mass. We
note that [2] proposed a method which allows the solid and fluid domains to be non-coincident, coupled via
interpolation and Lagrange multipliers, similar to our use of W and J.
The full modified structure equations are
Mvn+1
=
Mv⋆ + ∆t Dvn+1 − JT WT λ
(11)
where M is the structure mass matrix and Dvn+1 is the implicit contribution of structure forces. The
last term is the constraint impulse mapped first by WT from constraint locations to fluid velocity degrees
of freedom and then by JT to structure velocity degrees of freedom. The coupling momentum WT λ is
subtracted from the structure equation since it was added to the fluids equation. W has a number of
columns equal to the number of fluid scalar velocity samples and a number of rows equal to the number of
constraints. WT therefore maps to every MAC grid face but puts zero on every face which is not coupled.
As a consequence, JT only needs to be nonzero for the faces which are coupled, even though it has a number
of columns equal to the number of fluid scalar velocity samples. JT WT then maps from the fluid degrees of
freedom that are coupled to the structure degrees of freedom that are coupled.
Although Eqs. (8) and (11) indicate how momentum is conservatively transferred between the fluid and
the structure, this still leaves open the question of how much momentum is transferred. That is, we have
introduced a new degree of freedom λ and have not yet provided the equations to govern these new degrees
of freedom. In order to do this we consider the equal velocity constraints that the fluid and the structure
should move with the same velocity, or for inviscid flow the same velocity in the normal direction. One way
of governing these degrees of freedom is to set the difference between the fluid velocity and the interpolated
structure velocity equal to zero at every fluid velocity degree of freedom as indicated in Figure 1. This can
be expressed as the equation
W(u − Jv) = 0,
(12)
noting that J maps zero to all the face locations that are not influenced by the structure and that W filters
all of these locations out. Note that one can use Eq. (12) and its variants in order to model a wide range
7
of physical phenomena. For example, one could use W(u − J(v − s)) = 0 in order to model an arbitrary
source term with inflow and outflow from the structure. One might also wish to constrain the velocities
at other locations than the faces of the MAC grid or to constraint limited components such as the normal
component as was done in [24] in order to achieve better slip boundary conditions. In this sense W may not
be simply defined as a trivial restriction matrix and may instead be thought of as a general interpolation
operator mapping from the faces of the MAC grid to constraint locations. This would not change the inputs
of W, but the outputs would no longer necessarily correspond to the MAC grid faces but could instead be
at arbitrary locations. Note that the formulation of our equations does not rule out any of these approaches,
but for the sake of exposition we will deal with Eq. (12) going forward.
5. Numerical Approach
We can write our system in symmetric form as
 T −1


Ĝ β Ĝ −ĜT β −1 WT
0
p̂
−Wβ−1 Ĝ
Wβ −1 WT
−WJ   λ  =
vn+1
0
−JT WT
−M + ∆t D
The first equation,


ĜT u⋆
−Wu⋆  .
−Mv⋆
ĜT β−1 Ĝp̂ − ĜT β−1 WT λ = ĜT u⋆
(13)
is obtained by substituting Eq. (8) into Eq. (9). The second equation,
−Wβ−1 Ĝp̂ + Wβ −1 WT λ − WJvn+1 = −Wu⋆
(14)
is obtained by substituting Eq. (8) into Eq. (12). The third equation,
−JT WT λ − Mvn+1 + ∆t Dvn+1 = −Mv⋆
(15)
is a rearrangement of Eq. (11).
If we make some assumptions about W and J, we can eliminate λ. If W takes on the particularly simple
form described in Sections 4.2 and 4.3, then WWT = I. If J has nonzero rows only for constraint faces, then
WT WJ = J. If we also take densities to be constant at all constraint faces, then WT Wβ −1 = β−1 WT W.
Multiplying Eq. (14) by WT produces
−WT Wβ−1 Ĝp̂ + WT Wβ−1 WT λ − WT WJvn+1
−WT Wβ −1 Ĝp̂ + β−1 WT λ − Jvn+1
=
=
WT Wu⋆
WT Wu⋆
(16)
Adding ĜT times Eq. (16) to Eq. (13) yields
(ĜT β−1 Ĝ − ĜT WT Wβ−1 Ĝ)p̂ + (−ĜT β−1 WT + ĜT β −1 WT )λ − ĜT Jvn+1
ĜT (I − WT W)β −1 Ĝp̂ − ĜT Jvn+1
= ĜT u⋆ − ĜT WT Wu⋆
= ĜT (I − WT W)u⋆
Adding JT β times Eq. (16) to Eq. (15) yields
−JT βWT Wβ−1 Ĝp̂ + (−JT WT + JT WT )λ + (∆t D − M − JT βJ)vn+1
−JT Ĝp̂ + (∆t D − M − JT βJ)vn+1
These together form a symmetric system similar to that of [25],
T
Ĝ (I − WT W)β −1 Ĝ
−ĜT J
p̂
=
vn+1
−JT Ĝ
−JT βJ − M + ∆t D
8
= −Mv⋆ + JT βWT Wu⋆
= −Mv⋆ + JT βu⋆
T
Ĝ (I − WT W)u⋆
.
−Mv⋆ + JT βu⋆
Both of these systems are symmetric indefinite. Although numerical methods exist for solving such
systems, faster methods are available for systems which are symmetric positive definite. In this paper, we
propose a novel approach which leads to a symmetric positive definite system.
We begin by forming the system
 T −1




Ĝ β Ĝ
−ĜT β−1 WT
0
p̂
ĜT u⋆
−Wβ−1 Ĝ Wβ −1 WT + WJM−1 JT WT −∆t WJM−1 D  λ  = WJv⋆ − Wu⋆  (17)
vn+1
v⋆
0
M−1 JT WT
I − ∆t M−1 D
where the second equation, −Wβ−1 Ĝp̂ + Wβ−1 WT λ + WJM−1 JT WT λ − ∆t WJM−1 Dvn+1 = WJv⋆ −
Wu⋆ , is obtained by substituting Eq. (8) and Eq. (11) into Eq. (12). The first equation is Eq. (13), and the
third equation is Eq. (15) multiplied through by M−1 .
An obvious way to symmetrize this system is to multiply the third equation through by −∆tD. Though
this system is symmetric it is only positive semidefinite. The conditioning of the original structure system is
typically quite good, since I − ∆t M−1 D has eigenvalues clustered near one for small ∆t. This symmetrized
version looks more like D, which will often have significantly worse conditioning.
A particularly interesting way of symmetrizing the system is to factor D.
5.1. Factoring Damping Matrix
If D is symmetric negative semidefinite, then it can be factored as −∆t D = CT C. We rely on this
property of D to apply our method, noting that although there are instances where D will not have this
property and in those cases our approach based on factoring D is not applicable, there are a wide range
of models in which this property holds (see below). If D is a damping matrix, and the force is given by
f = Ma = −∇φ + Dv, then the energy is E = φ + 21 vT Mv and Ė = (∇φ)T v + vT Ma = (∇φ)T v +
vT (−∇φ + Dv) = vT Dv. Then, a non-positive change in energy leads to negative definiteness of D.
T
T
Furthermore,
if D is decomposed into its symmetric and antisymmetric parts, D+D
and D−D
respectively,
2
2
T
v = 0 shows that the antisymmetric part does not contribute damping. Therefore, damping
then vT D−D
2
matrices gain little by containing asymmetric parts. These facts lead to the conclusion that for most purposes
a damping matrix D can be considered to be symmetric negative semidefinite.
On the other hand, if you consider the backward Euler formulation at the beginning of Section 3, where
n
D would be augmented by linearizations of elastic terms ∂F
∂x in the process of carrying out the NewtonRaphson iterations, then much of this would not be true. The current factorization is therefore limited to a
semi-implicit treatment of the structure, where elastic terms are handled explicitly. Moreover, a fully implicit
treatment would have the further complication of moving the locations of the constraints and changing W
during the solve, which we do not address.
For the sake of exposition, consider the case of a linear spring which connects two particles p1 and p2 .
The magnitude of the damping force f is proportional to the difference in particle velocities along the spring
direction d, multiplied by a damping constant kd . The force is then applied in opposite directions to p1 and
p2 . The damping matrix for this single spring would be
D =
−∆tkd
T
d
d
,
−d
−d
which can be factored into
Ci
=
D =
T
p
d
∆tkd
−d
−CTi Ci .
For the case of n springs and an arbitrary number of particles, C is formed by stacking up rows of the form
Ci and the same factorization applies.
9
Rayleigh damping is commonly used along with finite element constitutive models. In practice, we have
found that our routines for applying damping forces are naturally partially factored. The implementation
follows the framework of [20]. Below is a description of what the implementation looks like in the case of a
single element and an isotropic constitutive model and how it lends itself to efficient factorization. In this
framework, the deformation gradient is factored into its polar singular value decomposition as F = UF̂VT ,
where U and V are rotations and F̂ is diagonal, in order to compute the elastic forces. Define two operators
 


x1
x1
x2 


x2
 = x1 − x4 x2 − x4 x3 − x4

.
x
x
x
G
=
S
1
2
3
x3 


x3
x4
−x1 − x2 − x3
If xm are the material space positions of the element, then Dm = G(xm ) and Ds = G(x) are the locations
of three vertices of the element relative to the fourth in material and world space. The damping force
application routine consists of the steps
1. Compute the relative velocities, Ḋs = G(v).
2. Compute the deformation gradient, Ḟ = Ḋs D−1
m .
ˆ = UT ḞV.
3. Rotate the deformation gradient into the diagonalized coordinate system, Ḟ
ˆ + β Ḟ
ˆ+
4. Compute the first Piola-Kirchhoff stress in the diagonalized coordinate system, P̂ = αtr(Ḟ)I
ˆ T , where α and β are parameters of the constitutive model.
β Ḟ
5. Rotate back to compute the first Piola-Kirchhoff stress, P = UP̂VT .
6. Compute forces the element applies on three of the tetrahedron faces as Ĝ = −PN, where N are
the area weighted face normals. These normals can be computed as N = − 21 det(Dm )D−T
m . To see
that this is correct, note that 31 NT Dm = −V I, where V is the volume of the tetrahedron. The
negative sign is because N need to point outwards. Note that, if we computed it, Ĝ4 = −PN4 =
−P(−N1 − N2 − N3 ) = −Ĝ1 − Ĝ2 − Ĝ3 .
7. Distribute the forces from faces to vertices. The force f1 at the first vertex is one third of the forces on
the faces around it, or f1 = 13 (Ĝ2 + Ĝ3 + Ĝ4 ) = − 31 Ĝ1 . Noting that the forces sum to one, the forces
are finally obtained as f = S(− 31 Ĝ).
Several observations make the process of factoring this force application simpler. The first observation is
that each of these steps can be regarded as a linear operator between vector spaces, where the matrices are
taken to be flattened into vectors. In this way, the operators S and G are transposes, so that ignoring the
factor of − 31 , the operator described by step 7 is the transpose of step 1. Similarly, step 6 is 12 det(Dm ) times
the transpose of step 2. Step 3 is the transpose of step 5. Let P (α, β) represent the linear operator applied in
step 4. The damping force application can be written as steps 1 through 3, followed by − 16 det(Dm )P (α, β),
followed by the transpose of steps 1 through 3. Finally, the operation C is just steps 1 through 3, followed
by the square root of 61 ∆t det(Dm )P (α, β). It remains only to determine what this square root is.
Assume that the square root has the form P (α′ , β ′ ). Then,
ˆ =
P (α′ , β ′ )Ḟ
ˆ =
P (α′ , β ′ )2 Ḟ
=
=
β′
=
α′
=
ˆT
ˆ + β ′ Ḟ
ˆ + β ′ Ḟ
α′ tr(Ḟ)I
ˆ T )T
ˆ + β ′ Ḟ
ˆ T ) + β ′ (α′ tr(Ḟ)I
ˆ + β ′ Ḟ
ˆ + β ′ Ḟ
ˆ T ) + β ′ (α′ tr(Ḟ)I
ˆ + β ′ Ḟ
ˆ + β ′ Ḟ
ˆ + β ′ Ḟ
α′ Itr(α′ tr(Ḟ)I
2
ˆ + 2β ′ 2 Ḟ
ˆ + 2β ′ 2 Ḟ
ˆT
(3α′ + 4α′ β ′ )tr(Ḟ)I
2
2 ˆ
P (3α′ + 4α′ β ′ , 2β ′ )Ḟ
r
1p
1
2β
∆t det(Dm )
6
2
r
p 1 p
1
3α + 2β − 2β
∆t det(Dm )
6
3
Since the operator P (α′ , β ′ ) is symmetric, this construction results in the operator C, and routines to apply
both C and CT are readily constructed with only minor modifications to the existing code.
10
5.2. SPD Formulation
Assuming a factorization of the form −∆t D = CT C allows us to left multiply the third row of Eq. (17)
by C and subsequently factor C out of the third column into the solution vector to obtain
 T −1




Ĝ β Ĝ
−ĜT β−1 WT
0
p̂
ĜT u⋆
−Wβ−1 Ĝ Wβ −1 WT + WJM−1 JT WT −∆t WJM−1 D  λ  = WJv⋆ − Wu⋆ 
vn+1
v⋆
0
M−1 JT WT
I − ∆t M−1 D
 T −1




−ĜT β −1 WT
0
Ĝ β Ĝ
p̂
ĜT u⋆
−Wβ−1 Ĝ Wβ−1 WT + WJM−1 JT WT WJM−1 CT C  λ  = WJv⋆ − Wu⋆ 
vn+1
−v⋆
0
M−1 JT WT
I + M−1 CT C
 T −1





Ĝ β Ĝ
−ĜT β −1 WT
0
p̂
ĜT u⋆
−Wβ −1 Ĝ W(β −1 + JM−1 JT )WT
WJM−1 CT  λ = WJv⋆ − Wu⋆ 
v̂
Cv⋆
0
CM−1 JT WT
I + CM−1 CT
where v̂ = Cvn+1 represents the new unknowns. Note that the substitution of Eq. (11) into Eq. (12) to
derive Eq. (17) allowed us to place a D into the third column of the coefficient matrix in Eq. (17), leading
to the factorization of C out of the coefficient matrix and into the unknowns, and this was the reason for
that extra substitution. The resulting system is obviously symmetric, and we can recover vn+1 from v̂ by
replacing ∆tDvn+1 with −CT Cvn+1 = −CT v̂ in Eq. (11)
Mvn+1
=
Mv⋆ − CT v̂ − JT WT λ.
The symmetrized system can be expressed as the sum of three matrices that are evidently symmetric
positive semidefinite as
 T −1
 
 

Ĝ β Ĝ −ĜT β −1 WT 0
0
0
0
0 0 0
−Wβ−1 Ĝ
Wβ −1 WT
0 + 0 WJM−1 JT WT WJM−1 CT  + 0 0 0
0 CM−1 JT WT
CM−1 CT
0 0 I
0
0
0
from which the symmetric positive semidefiniteness of the coupled system follows.
To consider the rank of this matrix, note that any vector in the nullspace of the coupled system, consisting
of three parts p̂, λ, and v̂ must necessarily be in the nullspace of each of these three matrices. From the
third matrix, we conclude that this requires v̂ = 0. Assuming v̂ = 0 and looking at the second matrix leads
one to consider only requirements for λ. The second matrix factors as


T
0
0
WJ M−1 WJ
C
C

It is necessary for M−1 JT WT λ = 0, which implies that the constraint impulses have absolutely no effect on
any degrees of freedom of the structure. The first matrix factors as
 T T

ĜT
Ĝ
−W β −1 −W
0
0

A nontrivial nullspace of this matrix satisfies β−1 Ĝp̂ − β−1 WT λ = 0, which implies that the combination of
constraints and pressures cancels to give no effect on the final fluid velocities un+1 as can be seen by inspecting
Eq. (8). This immediately gives the cases β −1 Ĝp̂ = 0 (Neumann region) and WT λ = 0 (redundant
constraints), both of which will lead to nullspaces of the full coupled system by placing zeros in the remaining
entries.
11
The right hand side of our equations must be in the range of the coefficient matrix in order for the
system to be solvable. Comparing the form of our right hand side to the requirements that a nullspace must
satisfy, we find that it is sufficient but not necessary condition for consistency for v⋆ to contain no nullspace
components of M−1 and u⋆ to contain no nullspace components of β−1 . A Neumann region will result in
inconsistency if there is a net flux in u⋆ through the region boundary, so we enforce consistency by summing
up the net flux and subtracting it evenly from the u⋆ on the region boundary faces. Clearly constraints
which apply only to nullspace components of M−1 and β −1 will result in inconsistency and must be avoided.
Fluid velocities which are constrained only to nullspace components of M−1 are in effect Neumann grid faces
and must be taken into account in detection of Neumann regions. Isolated rigid bodies within a fluid region
also do not prevent a region from being a Neumann region. A region that contains deformable bodies does
not behave as a Neumann region, since the bodies can change volume to accommodate a net flux into the
region.
5.3. Note On Forming SPD System
Many problems can be formulated as a KKT system of the form
M + CT C B T
u
b
=
,
B
0
λ
0
(18)
where M is an SPD matrix that is easily inverted. Dissipative systems, such as fluid viscosity or structure
damping, produce terms of the form M + CT C. Evolving such systems subject to constraints, such as the
incompressibility constraint or the constraint that the solid and fluid velocities be equal at their interface,
then leads to a KKT system in the form of Eq. (18). Multiplying the first row of Eq. (18) by CM−1 produces
Cu + CM−1 CT Cu + CM−1 BT λ = CM−1 b.
(19)
Multiplying the first row of Eq. (18) by BM−1 and simplifying using the second row produces
BM−1 CT Cu + BM−1 BT λ = BM−1 b.
These are then combined into the SPD system using the definition û = Cu to produce
I + CM−1 CT CM−1 BT
û
CM−1 b
=
.
BM−1 CT
BM−1 BT
λ
BM−1 b
(20)
(21)
Finally, u is obtained from the first row of Eq. (18) using
u = M−1 b − M−1 CT û − M−1 BT λ.
(22)
To demonstrate that this is in fact equivalent to Eq. (18), we show that we can derive Eq. (18) from û = Cu,
Eq. (21) and Eq. (22). The first row of Eq. (18) is obtained by substituting û = Cu into Eq. (22). The
constraint row is obtained by subtracting the second row of Eq. (21) from B times Eq. (22). Thus, the
indefinite KKT formulation is equivalent to the SPD formulation.
6. Note On Conditioning
In the absence of coupling (W = 0), the structure system looks like
vn+1
=
v⋆ + ∆t M−1 Dvn+1
vn+1 − ∆t M−1 Dvn+1
(I + M−1 CT C)vn+1
=
=
v⋆
v⋆
The modified structure system looks like
(I + CM−1 CT )v̂
12
=
Cv⋆
These two systems have the same eigenvalues. To see this
(I + M−1 CT C)v
−1
T
C(I + M C C)v
(I + CM−1 CT )v̂
=
αv
=
=
Cαv
αv̂
so that if v is an eigenvector with eigenvalue α in the original system, then v̂ is an eigenvector of the modified
system with the same eigenvalue. Note also that, though modifying the system in this way may introduce
new eigenvalues (since the system may be larger), none of these eigenvalues will be visible to a Krylov solver.
This is because the right hand side is of the form Cv⋆ and application of the matrix results in vectors that
are also of this form. The modified system may have fewer eigenvalues, however (caused by rank deficiency
of C). The important point is that this modification to the structure system will not adversely affect its
convergence properties with a Krylov solver.
7. Viscosity
Applying viscosity as a separate step in the time evolution does not yield a fully coupled time integration
scheme, since viscous forces cannot apply momentum to structures. This can be overcome by adding viscosity
directly into the coupled formulation. With this in mind, we redefine the intermediate velocity
u⋆ = un − ∆t(un · ∇)un +
∆t
f.
ρ
(23)
Assume that the fluid viscosity µ is constant and ignore the coupling term. Then, the fluid momentum
equation becomes
u⋆ = un − ∆t(un · ∇)un +
∆t
f ρun+1 = ρu⋆ − ∆t∇p + ∆tµ∇2 un+1 .
ρ
(24)
The viscous terms introduce a new gradient operator, which acts on face velocities. The gradient operator
itself is discretized using central differences. The boundary conditions at structures are Dirichlet conditions,
noting that these velocities are constrained implicitly using W and remain degrees of freedom rather than
being moved to the right hand side as would normally be done. The discretization of W used above is not
suitable for viscosity, however, since it does not couple to structures in the tangential direction. This is
resolved by locating faces adjacent to those in W and adding them to W as shown in Figure 2. Domain
boundary conditions can be discretized in the usual way. For simplicity of implementation, however, we
treat domain walls as infinitely massive structures and add terms to W, J, and M−1 accordingly. This
discretization is
√ limited to first order accuracy since it uses the first order accurate constraint locations.
Let Gµ = ∆tµV ∇ be the discretized gradient operator that acts on face velocities, where the scaling
factors are pulled into the resulting matrix to simplify the presentation. Substituting this into Eq. (24) and
adding back the coupling term produces the momentum equation
βun+1 = βu⋆ − Ĝp̂ − GTµ Gµ un+1 + WT λ.
(25)
Define û = Gµ un+1 . Then, multiplying Eq. (25) through by both ĜT β −1 (using Eq. (9)) and Gµ β −1
produces
ĜT β−1 Ĝp̂ + ĜT β −1 GTµ û − ĜT β −1 WT λ
Gµ β
−1
Ĝp̂ + (I + Gµ β
−1
GTµ )û
− Gµ β
−1
T
W λ
=
ĜT u⋆
(26)
=
⋆
(27)
Gµ u .
Multiplying Eq. (25) through by Wβ −1 and substituting in Eq. (12) followed by Eq. (11), −∆tD = CT C
and Cvn+1 = v̂ produces
Wβ −1 Ĝp̂ + Wβ −1 GTµ û − W(β −1 + JM−1 JT )WT λ − WJM−1 CT v̂
13
=
Wu⋆ − WJv⋆ .
(28)
Figure 2: The hashed region is the rasterized structure, and the thick faces at its boundary are the original coupling faces in
W. For viscosity, the dashed faces are added to W to allow tangential forces to be exchanged between fluid and structure.
Combining these with Eq. (11) produces
 T −1
ĜT β −1 GTµ
−ĜT β−1 WT
Ĝ β Ĝ
 Gµ β−1 Ĝ I + Gµ β −1 GT
−Gµ β −1 WT
µ

−1 T
−1
−Wβ−1 Ĝ
−Wβ Gµ
W(β + JM−1 JT )WT
0
0
CM−1 JT WT


 
0
p̂
ĜT u⋆


 û
0
Gµ u⋆

  = 
⋆
⋆  (29)

−1 T  λ
WJv − Wu
WJM C
v̂
Cv⋆
I + CM−1 CT
This equation has a structure very similar to what was obtained without viscosity, and it can be shown to
be symmetric positive semidefinite in exactly the same way.
Stokes Flow. When the Reynolds number is very small, the viscosity term dominates the inertial terms.
Because viscosity and pressure are fully coupled in a single linear system, our scheme does not experience
difficulties at high viscosity. In this case, one may also approximate the Navier-Stokes equations with those
of Stokes flow by omitting the inertial terms. We can simulate the unsteady Stokes flow equations directly
in our framework by omitting advection terms for the fluid (Step 6) and the structure (Step 4). This renders
the entire first half of the update unnecessary, and our evolution scheme reduces to
1. v⋆ = vn + ∆tM−1 Fe (xn+1 )
2. u⋆ = un + ∆t
ρ f
3. Coupled solve with known quantities u⋆ , v⋆ , and xn+1 and unknown quantities un+1 , p, and vn+1
We demonstrate our ability to simulate with high viscosity and Stokes flow in Section 9.2.
As discussed in [25], the indefinite system of equations derived for fluid-structure interaction has many
similarities to the Stokes equations as both are dissipative systems combined with constraints (see Section 5.3). Indeed, we produce an SPD formulation for both. If no structures are present then W = 0, C = 0
and J = 0, and Eq. (29) simplifies to
! T ⋆
ĜT β−1 Ĝ
ĜT β −1 GTµ
p̂
Ĝ u
=
.
(30)
û
Gµ u⋆
Gµ β −1 Ĝ I + Gµ β −1 GTµ
This system provides an SPD treatment of unsteady Stokes flow. If convection is handled explicitly, this
formulation also provides an SPD treatment of Navier-Stokes.
Fully implicit Navier Stokes. We could take a fully implicit approach to the full nonlinear Navier-Stokes
equations by using a Newton-Raphson iteration method, where we linearize at each Newton step to get a
system of the form in Eq. (30). The equation to be iterated is
n+1
n+1
n
un+1
(i+1) = u − ∆t(u(i) · ∇)u(i) +
14
∆t
(−∇p + µ∇2 un+1
(i+1) + f ),
ρ
n+1
n
where un+1
fluid velocity after the ith Newton iteration and we let un+1
(i) is the time t
(0) = u . The inner
iterations are performed by solving the symmetric and positive definite system Eq. (30). For each outer
iteration, a new system is set up using the new estimate of the final velocity to recompute the advection
term. A similar approach could be explored for treatment of fully implicit coupled fluid-structure evolution.
8. Note on Stability
We have found the proposed monolithic implicit coupling scheme described in this paper to be quite
stable. We have never observed stability problems due to this simple choice. In the example from Figure 9,
we consider the structure discretization to be exact and refine only the fluid discretization. This results in a
grid spacing much smaller than the lengths of edges in the structure mesh, which has never been observed
to cause stability problems. We also tried running examples with a fixed resolution fluid mesh, refining
the structure so that the grid spacing was over 30 times the lengths of the structure edges, again without
noticing any stability problems. We have tried making structures a billion times less dense than the fluid
and a billion times more dense than the fluid, and neither modification lead to stability problems.
We also note that solving the coupled linear system and applying the resulting update to the velocities
of the structure and the fluid has the property that it never increases total kinetic energy. Since positions
are not changed during this process, potential energy is unchanged. Let

 T

 

0 0 0 0
p̂
Ĝ
0
⋆

 Gµ



0
I
0
0
u
β
0
û
0 


K=
B=
w=
z=
P=
−W WJ
 0 0 0 0
λ
0 M
v⋆
0 0 0 I
v̂
0
C
Eq. (29) reduces to (KB−1 KT + P)z = Kw. The new velocities are w − B−1 KT z. Finally, the change in
kinetic energy is
2KE n+1 − 2KE ⋆
=
=
=
=
(w − B−1 KT z)T B(w − B−1 KT z) − wT Bw
−2wT KT z + (KT z)T B−1 (KT z)
−2zT (KB−1 KT + P)z + zT KB−1 KT z
−zT (KB−1 KT + 2P)z ≤ 0
This does not imply that we always decrease kinetic energy in a full time step, since elastic forces added to
the structures or gravity added to fluids may both increase kinetic energy. In particular, we are still explicit
on elastic forces, and this continues to impose a CFL restriction. On the other hand, if there is no potential
energy (e.g., rigid bodies without forces between them), and the remaining steps in the time integration
scheme make a similar guarantee on kinetic energy, the resulting scheme would be unconditionally stable.
We also note that if there is neither damping nor viscosity, then P = 0, and the process of obtaining the
final velocities from the intermediate velocities w is described by the mass-symmetric projection matrix
I − B−1 KT (KB−1 KT )−1 K, which is exactly the property that would be desired in this case.
9. Examples
The SPD formulation merely gives an analytically equivalent expression of the indefinite form of the equations. What we expect to illustrate in these examples is that the method is numerically stable. We examine
several common examples from the fluid structure interaction literature to demonstrate the convergence
properties of our method.
We choose our time step size to be the minimum of the time step size required for fluids alone and the
time step size required for structures alone. The fluid time step size is computed using a CFL number of
0.9 for all of our examples. Except in the stability test described below, the structures in our examples are
not refined, so the time step size computed for the structures will not change significantly from resolution
15
-0.6
-0.8
log10(error)
-1
-1.2
-1.4
-1.6
-1.8
1.3
1.4
1.5
1.6
1.7
1.8
1.9
2
2.1
2.2
2.3
log10(resolution)
Figure 3: Analytic test with a structure flowing through a channel. The errors are computed as the difference between the
steady state velocity of the moving structure and the analytic solution. The error depends on the grid resolution mod 3 since
this value determines how the structure aligns with the domain. The convergence order of the errors is fit as .93.
to resolution. For higher resolutions, the fluid time step restriction will dominate. We note that since all of
our examples converge to nonzero velocities under refinement, we effectively refine with ∆t ∝ ∆x. Thus, the
first order convergence demonstrated in our examples implies that our scheme is at least first order accurate
in space and time. We do not test convergence order separately for space and time, since we do not expect
to achieve better than first order.
9.1. Analytic example
Figure 3 shows a simple setup designed to mimic an infinite channel with a rigid structure flowing through
it and centered in the channel. The density of the fluid is ρ = 100kg m−2 , and the mass of the rigid body is
M = 150kg. The height of the fluid domain is h = 1m, and the total domain width of 1m is divided into
two fluid regions with width w = 13 m with the central 13 m occupied by the structure. The fluid viscosity
is µ = 100kg s−1 . Both the fluid and structure experience gravity g = −9.8ms−1 . We elongate the rigid
body to extend slightly beyond the domain and periodically reset its position, providing the illusion of an
infinitely long rigid body and allowing the simulation to be run long enough to reach steady state. Altering
the dimensions of the structure does not affect the analytic solution, provided its mass is not altered.
We derive the analytic solution by considering the structure to be a boundary condition to the fluid,
and then solving for the structure’s velocity using conservation of energy. The analytic velocity profile for
ρg
x(x − w) + vws x, where the v is the vertical fluid
the left fluid region Ω = [0, w] × [0, h] is u = 0 and v = 2µ
velocity component and vs is the vertical component of the structure velocity. The fluid experiences no
pressure gradient. The only unknown remaining is vs , the velocity of the structure. Taking into account the
symmetry of the system, conservation
of energy
R implies that the viscous dissipation equals the total work
R
applied by gravity, so that 2 Ω (τ · ∇)u dV = 2 Ω ρgv dV + M gvs . Solving this equation yields the analytic
gw
solution vs = −(M + ρwh) 2hµ
.
9.2. Rigid cylinder falling under gravity
Motivated by [30, 1], a rigid cylinder is allowed to fall under an externally applied gravitational force.
The fluid domain has dimensions 2L × 8L, and the cylinder has radius r. If the fluid density is ρf and the
solid density is ρs , then the terminal velocity is [30]
r
r 2
r 4 (ρs − ρf )gr2
− ln
− 0.9157 + 1.7244
.
vterm =
− 1.7302
4µ
L
L
L
It is instructive to note the origin of this analytic solution. Consider a fluid domain consisting of an infinite
2D channel with parallel walls separated by a distance of 2L. In the middle of this channel is a cylinder with
16
(a) Navier-Stokes, µ = 0.1 kg s−1
(b) Navier-Stokes, µ = 0.5 kg s−1
(c) Stokes flow, µ = 0.1 kg s−1
Figure 4: Steady state velocity field.
40x160
80x320
160x640
analytic
0.4
40x160
80x320
160x640
analytic
0.2
0.35
0.15
0.25
Velocity (m/s)
Velocity (m/s)
0.3
0.2
0.1
0.15
0.1
0.05
0.05
0
0
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
0
0.2
0.4
0.6
0.8
Time (s)
(a) Navier-Stokes, µ = 0.1 kg s−1
1.2
1.4
1.6
1.8
2
(b) Navier-Stokes, µ = 0.2 kg s−1
40x160
80x320
160x640
analytic
0.08
40x160
80x320
160x640
analytic
0.4
0.07
0.35
0.06
0.3
0.05
0.25
Velocity (m/s)
Velocity (m/s)
1
Time (s)
0.04
0.2
0.03
0.15
0.02
0.1
0.01
0.05
0
0
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
2
0
Time (s)
0.5
1
1.5
2
2.5
3
3.5
Time (s)
(c) Navier-Stokes, µ = 0.5 kg s−1
(d) Stokes flow, µ = 0.1 kg s−1
Figure 5: Velocity of a falling cylinder in a channel over time.
17
4
4.5
5
Equations
N-S
N-S
N-S
N-S
N-S
N-S
N-S
Stokes
Viscosity
(kg s−1 )
0.1
0.2
0.5
1.0
2.0
5.0
10.0
0.1
Analytic
−0.3501
−0.1750
−0.07002
−0.03501
−0.01750
−0.007002
−0.003501
−0.3501
Terminal Velocities (ms−1 )
40 × 160
80 × 320
−0.1716
−0.1882
−0.1254
−0.1359
−0.05983
−0.06438
−0.03052
−0.03264
−0.01533
−0.01635
−0.006148 −0.006547
−0.003013 −0.003279
−0.2945
−0.3241
160 × 640
−0.1966
−0.1417
−0.06721
−0.03399
−0.01702
−0.006828
−0.003417
−0.3390
Convergence order
0.85
1.01
0.92
1.22
0.91
1.26
0.91
1.38
1.14
1.40
1.10
1.23
Figure 6: Terminal velocity of a falling cylinder and convergence orders.
radius a moving with a constant velocity vs along the axis of the channel. Under the simplifying assumption
of Stokes flow, the resistive force experienced by the cylinder is approximately [15]
F =
4πµvs
− ln
r
L
− 0.9157 + 1.7244
r 2
L
− 1.7302
.
r 4
L
Note that because of the Stokes flow assumption, fluid advection and movement of the cylinder are assumed
to be insignificant and dropped. The steady state solid velocity is obtained by balancing the resistive force
against the net gravitational force F = (ρs − ρf )gπr2 on the solid (taking into account buoyancy).
We use the same parameters as [30]: g = 9.8 ms−1 , r = 5 × 10−3 m, L = 2 × 10−2 m, µ = 0.1 kg s−1 ,
ρf = 1 × 103 kg m−2 , and ρs = 2 × 103 kg m−2 . The top of the fluid domain has a zero pressure Dirichlet
boundary condition, and the sides and bottom are no-slip walls. Our results are shown in Figure 5(a). We
note that our results do not agree with those in [30], and we note that their velocity profile does appear to
reach a terminal velocity. We converge to a value significantly lower than the analytic solution. Noting that
the analytic solution was derived under the assumption of Stokes flow, we also ran with higher viscosities:
µ = 0.2 kg s−1 (Figure 5(b)), µ = 0.5 kg s−1 (Figure 5(c)), µ = 1.0 kg s−1 , µ = 2.0 kg s−1 , µ = 5.0 kg s−1 ,
and µ = 10.0 kg s−1 . We obtain close agreement with the analytic solution for µ = 0.5 kg s−1 and higher
viscosities. We also repeated the the original test µ = 0.1 kg s−1 using Stokes flow and converge to the
analytic terminal velocity as shown in Figure 5(d). The results from all of these simulations are summarized
in Figure 6, and the steady state velocities are shown in Figure 4.
The velocity profile shown in Figure 7 of [1] does show a faster initial increase in velocity followed by the
velocity profile reaching a plateau, which is consistent with the behavior we observe. Their method, like ours,
is first order accurate, and their figure shows two velocity profiles for each of two methods corresponding
to a factor-of-four refinement. This suggests that the close fit shown in their highest resolution may be
coincidental and that their scheme will actually converge to a value somewhat higher than the predicted
value.
9.3. Laminar flow past a cylinder
In this example, we consider a simple one-way coupled setup and directly compare our technique against
a different scheme. For the comparison scheme, we use standard Chorin splitting [8]. We then choose a
sample point at a time and position which exhibits dynamic behavior and demonstrate that the two schemes
converge to the same velocity at that point. This demonstrates that we are consistent with an existing
scheme from the literature in the simpler case where structures are only one-way coupled to the fluid.
For this comparison we use laminar flow across a fixed cylinder. The domain is [0 m, 4 m] × [0 m, 4 m]
with a cylinder of radius 0.5 m located at (2, 2). The cylinder has no-slip boundary conditions. The top and
bottom walls have slip boundary conditions. The right wall has the condition p = 0, and the left wall has
the boundary condition u1 = 1 and a slipping boundary condition for u2 . The density is ρ = 1kg m−2 , and
the viscosity is µ = 0.1 kg s−1 . The initial fluid velocity is u = 0. The setup is illustrated in Figure 7(a).
18
(4, 4)
A(3, 2.25)
(2, 2)
0.5
(0, 0)
(a) Domain configuration (units in m)
(b) Velocity field
-0.7
-1.6
-0.8
-1.8
-0.9
-1
-2
log10(error)
log10(error)
-1.1
-1.2
-1.3
-2.2
-2.4
-1.4
-2.6
-1.5
-1.6
-2.8
-1.7
-1.8
-3
1.6
1.8
2
2.2
2.4
2.6
1.6
1.8
log10(resolution)
2
2.2
log10(resolution)
(c) Convergence of u1 at A.
(d) Convergence of u2 at A.
Figure 7: Laminar flow around a fixed cylinder.
19
2.4
2.6
The fluid velocity is sampled at the point (3, 2.25) at time 0.5s using linear interpolation. The fluid velocity
is far from steady state at this time, so this comparison also tests dynamic behavior.
The Chorin splitting implementation at resolution 640 × 640 is taken to be the exact solution. The
example was then run using the proposed method at resolutions 40 × 40, 80 × 80, 160 × 160, and 320 × 320.
The differences for each velocity component are plotted in Figure 7(c) and Figure 7(d). The convergence
order for u1 is 0.89, and the convergence order for u2 is 1.07. The final velocity profile is shown in Figure 7(b).
9.4. Vortex shedding
In this example we demonstrate Kármán vortex shedding around a cylinder and compare the dynamic
behavior of our method in the case of low viscosity and one-way coupling against the results that others have
obtained and against our implementation of Chorin splitting. Our setup is based on that of [17, 6], except
that we employ slightly different boundary conditions. Our domain is [−2.5 m, 15.0 m] × [−3.5 m, 3.5 m] with
a fixed cylinder of radius 0.5 m centered at the origin. The top and bottom of the domain walls have slip
3
2
1
0
-1
-2
-3
-2
-1
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
8
9
10
11
12
13
14
(a) Proposed method
3
2
1
0
-1
-2
-3
-2
-1
0
1
2
3
4
5
6
7
(b) Chorin splitting
Figure 8: Vorticity contours demonstrating vortex shedding. Contours are provided for the range [−2.5, 2.5] in increments of
0.25.
20
-1
-1.1
log10(distance)
-1.2
-1.3
-1.4
-1.5
-1.6
-1.7
1.5
(a) Fluid velocities for flow over deforming beam
1.55
1.6
1.65
1.7
1.75
1.8
log10(resolution)
1.85
1.9
1.95
2
(b) Position error kx − xex k.
Figure 9: Velocity profile and position error for the top right particle of the deforming beam at time 1 s. The position of the
particle at the highest resolution is taken to be the exact value xex .
boundary conditions. The left boundary has a source term u1 = 1 ms−1 with a slipping boundary condition
for u2 . The right boundary has the boundary condition p = 0. The flow has Re = 100 with ρ = 1kg m−2 and
µ = 0.01 kg s−1 . We used a 400 × 160 grid for our proposed method and for Chorin splitting. Our vorticity
contours for our proposed method and Chorin splitting are shown in Figure 8. Our vorticity contours exhibit
the same characteristics as those shown in [17, 6] as well as being quite similar to each other. We note that
the contour plot for the proposed method has an additional zero contour near the left side. The vorticity in
this region is quite small, reaching its peak at roughly 1% of the separation between two contour lines. At
resolution 200 × 80, the vorticity peaks at roughly 3% of the separation between two contour lines, indicating
that the extra contour line will go away under refinement. For the proposed method, the frequency and
Strouhal number are f = 0.160 Hz and St = 0.160. For the Chorin splitting implementation, f = 0.166 Hz
and St = 0.166. These compare favorably with [6], which reported St = 0.164 − 0.173 depending on the
details of their mesh.
9.5. Flow past deformable beam
This problem deals with a deformable beam immersed in fluid, similar to problems investigated by
[3, 31, 29, 30, 9, 27, 19, 32]. The fluid domain was [0 m, 2 m] × [0 m, 1 m] with velocity boundary conditions
of 0.25 ms−1 on the left side, slip walls on the top and bottom, and a p = 0 boundary condition on the right
wall. The beam has no-slip boundary conditions. The fluid density is 100 kg m−2 , and the coefficient of
dynamic viscosity is µ = 1 kg s−1 . The structure is discretized as a triangle mesh using a mass-spring model
with 20 particles in the vertical direction and 5 in the horizontal, each of mass 0.1 kg except for the bottom
row of particles, which are treated as infinitely massive. The mesh is initially rectangular, with extent from
[0.95 m, 1.05 m] × [0 m, 0.5 m]. Edge springs with Young’s modulus E = 166 kg m−1 s−2 and overdamping
fraction 2 along with altitude springs with Young’s modulus E = 400 kg m−1 s−2 and overdamping fraction
2 were used as the structure constitutive model. (If considered in isolation, a spring can be made critically
damped by choosing a specific damping constant. When we refer to an overdamping fraction of 2, we mean
that the damping coefficient on the spring is twice the value that would result in a critically damped spring.
Isolated springs with an overdamping fraction greater than one are overdamped, and isolated springs with an
overdamping fraction less than one are underdamped. The analogy does not extend to systems of springs,
but we find this approach to be more intuitive for describing the amount of damping present.) Altitude
springs [21] create a spring between each particle of a triangle and a virtual node projected onto the opposite
face and are used to give volumetric structure and prevent inversion.
Note for the purposes of our convergence analysis we take the structure to be a discrete system and
refine only the fluid grid resolution. We examine convergence with fluid grid resolution and time step size in
Figure 9(b). The error is computed assuming the simulation with resolution 256 × 128 is the exact solution.
We plot the convergence of kx − xex k, where xex is the position in the exact solution configuration, for the
21
1
1
0.9
0.9
0.8
0.8
0.7
0.7
0.6
0.6
0.5
0.5
0.4
0.4
0.3
0.3
0.2
0.2
0.1
0.1
0
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0
(a) t = 0 s
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
(b) t = 0.200 s (Maximum deformation)
1
1
0.9
0.9
0.8
0.8
0.7
0.7
0.6
0.6
0.5
0.5
0.4
0.4
0.3
0.3
0.2
0.2
0.1
0.1
0
0
0
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
0
(c) t = 0.500 s
0.1
0.2
0.3
0.4
0.5
0.6
0.7
0.8
0.9
1
(d) t = 1.00 s
Figure 10: Streamlines in the oscillating disk example. The fluid grid resolution is 128 × 128 and the structure is composed of
2400 triangles.
top right particle of the beam at time 1 s in Figure 9(b). The convergence order is 1.42. The velocity profile
is shown in Figure 9(a).
9.6. Oscillating disk
We have implemented the oscillating disk example from [32], where a circular deformable body is placed
within a fluid domain of dimensions [0 m, 1 m] × [0 m, 1 m] with periodic boundary conditions and an initial
velocity defined for both the fluid and the structure by the stream function ψ = ψ0 sin(kx x)sin(ky y), with
ψ0 = 0.05m2 s−1 and kx = ky = 2πm−1 . We used a neo-Hookean constitutive model as described in [5] for
the structure with Poisson’s ratio ν = 0.475, shear modulus G = 1 P a, and Rayleigh damping coefficient
0.005. The structure and fluid densities were set to ρ = 1 kg m−2 and the coefficient of dynamic viscosity
was µ = 0.001 kg s−1 . We ran the simulation for a period of 1 s. For comparison to [32] we rasterize the
structure velocities onto the fluid grid and display the streamlines and structure deformation (Figure 10).
The frequency of the oscillator is similar to that in [32] as can be seen from the energy plots in Figure 11. We
note that our simulation is more damped than theirs. Our extra damping is due to our use of semi-Lagrangian
advection on the fluid and Rayleigh damping on the structure.
10. Conclusions and Future Work
We have presented a method for formulating strongly coupled fluid structure interaction problems as a
symmetric positive definite linear system. The method is based on factoring the structure damping matrix
22
0.025
Kinetic energy
Potential energy
Energy (N-m)
0.02
0.015
0.01
0.005
0
0
0.2
0.4
0.6
0.8
1
Time (s)
Figure 11: Energy over time for the oscillating disk shown in Figure 10.
and performing a change of variables in the structure unknowns. It can be applied to arbitrary linearized
structure constitutive models, but requires a semi-implicit time discretization for the structure equations
where elastic terms are handled explicitly and damping terms are handled implicitly. For the special case
of only rigid structures and no other rigid-rigid forces we recover exactly the method of [4]. The numerical
experiments on problems common in the fluid structure interaction literature demonstrate that the method
is convergent with grid resolution.
Second order accuracy for fluid structure interaction has been achieved by some authors, such as the
formally second order methods [13, 12]. We note, however, that second order accuracy came well after the
original method and that the additional accuracy comes at the cost of additional complexity. An approach
which attempts to be second order accurate in space might resolve the boundary between the fluid and
structure more accurately by placing constraints at the structure surface rather than at MAC face centers
or otherwise take advantage of the available geometric information. Second order accuracy in time would be
more difficult to achieve, as it would require finding second order accurate integration schemes for the fluid
and the structure that retain that accuracy when coupled. Instead of attempting to address second order
accuracy in this paper, we leave the problem of higher order accuracy for future work.
Compared to standard Chorin splitting (without structures), our evolution will be significantly slower.
Chorin splitting with implicit viscosity requires the solution of one well-conditioned viscosity system per
dimension and a single poorly-conditioned Poisson system for which preconditioning has been well studied.
We replace these with a single linear system that, due to the Poisson matrix it contains, is also poorly
conditioned. We have observed its conditioning to be significantly worse at high viscosity than low viscosity,
and we have also observed poor conditioning to result from underresolved regions. In particular, we have
observed poor convergence when the structure is much coarser than the fluid grid and we add extra coupling
faces to W as described in Section 7, possibly due to overconstraint. Increasing the resolution of the
structure improves convergence in these cases, but a more careful treatment of boundary conditions might
avoid the issue entirely. Conditioning with deformable structures becomes worse with lower density and
higher damping. The conditioning improves significantly when all structures are one-way coupled.
The system is symmetric positive definite, making it suitable for solution with methods like conjugate
gradient and generally easier to precondition and solve than other types of linear systems. The solution of
this system is still expensive in our implementation as we have not developed an effective preconditioner for
it and have not made significant effort to optimize our routines. We leave the problem of finding a good
preconditioner for future work. Solving the linear systems dominates the cost of our time evolution. The
algorithm compares favorably with [25], which has an indefinite system that we have observed to converge
much slower in practice.
23
Acknowledgments
Research supported in part by a Packard Foundation Fellowship, an Okawa Foundation Research Grant,
ONR N0014-06-1-0393, ONR N00014-06-1-0505, ONR N00014-05-1-0479 for a computing cluster, NIH U54GM072970, NSF ACI-0323866, NSF IIS-0326388, and King Abdullah University of Science and Technology
(KAUST) 42959. C.S. was supported in part by a Stanford Graduate Fellowship.
References
[1] S.V. Apte, M. Martin, and N.A. Patankar. A numerical method for fully resolved simulation (FRS) of
rigid particle–flow interactions in complex flows. J. Comput. Phys, 228(8):2712–2738, 2009.
[2] F.P.T. Baaijens. A fictitious domain/mortar element method for fluid-structure interaction. Intl. J. for
Num. Meth. in Fluids, 35(7):743–761, 2001.
[3] K.J. Bathe and H. Zhang. Finite element developments for general fluid flows with structural interactions. International Journal for Numerical Methods in Engineering, 60(1), 2004.
[4] C. Batty, F. Bertails, and R. Bridson. A fast variational framework for accurate solid-fluid coupling.
ACM Trans. Graph. (SIGGRAPH Proc.), 26(3):100, 2007.
[5] J. Bonet and R. Wood. Nonlinear continuum mechanics for finite element analysis. Cambridge University
Press, Cambridge, 1997.
[6] T.M. Burton and J.K. Eaton. Analysis of a fractional-step method on overset grids. J. of Comput.
Phys., 177(2):336–364, 2002.
[7] P. Causin, J.-F. Gerbeau, and F. Nobile. Added-mass effect in the design of partitioned algorithms for
fluid-structure problems. Comp. Meth. Appl. Mech. Engng., 194(42-44), 2005.
[8] A. Chorin. A numerical method for solving incompressible viscous flow problems. J. Comput. Phys.,
2:12–26, 1967.
[9] D. Dos Santos, N. Miguel, J.F. Gerbeau, and J.F. Bourgat. A partitioned fluid-structure algorithm for
elastic thin valves with contact. Computer Methods in Applied Mechanics and Engineering, 2006.
[10] C. Farhat, M. Lesoinne, and P. Le Tallec. Load and motion transfer algorithms for fluid/structure
interaction problems with non-matching discrete interfaces: momentum and energy conservation, optimal discretization and application to aeroelasticity. Computer methods in applied mechanics and
engineering, 157(1-2):95–114, 1998.
[11] F. Gibou, R. Fedkiw, L.-T. Cheng, and M. Kang. A second-order-accurate symmetric discretization of
the Poisson equation on irregular domains. J. Comput. Phys., 176:205–227, 2002.
[12] B.E. Griffith, R.D. Hornung, D.M. McQueen, and C.S. Peskin. An adaptive, formally second order
accurate version of the immersed boundary method. J. of Comput. Phys., 223(1):10–49, 2007.
[13] B.E. Griffith and C.S. Peskin. On the order of accuracy of the immersed boundary method: higher
order convergence rates for sufficiently smooth problems. J. Comput. Phys., 208(1):75–105, 2005.
[14] E. Guendelman, A. Selle, F. Losasso, and R. Fedkiw. Coupling water and smoke to thin deformable
and rigid shells. ACM Trans. Graph. (SIGGRAPH Proc.), 24(3):973–981, 2005.
[15] J. Happel and H. Brenner. Low Reynolds number hydrodynamics: with special applications to
particulate media. Kluwer Academic Print on Demand, 1991.
24
[16] F. Harlow and J. Welch. Numerical Calculation of Time-Dependent Viscous Incompressible Flow of
Fluid with Free Surface. Phys. Fluids, 8:2182–2189, 1965.
[17] W.D. Henshaw. A fourth-order accurate method for the incompressible Navier-Stokes equations on
overlapping grids. J. of Comput. Phys., 113(1):13–25, 1994.
[18] T. J. R. Hughes. The Finite Element Method: Linear Static and Dynamic Finite Element Analysis.
Dover, 2000.
[19] SR Idelsohn, J. Marti, A. Limache, and E. Onate. Unified lagrangian formulation for elastic solids and
incompressible fluids: Application to fluid–structure interaction problems via the PFEM. Computer
Methods in Applied Mechanics and Engineering, 197(19-20):1762–1776, 2008.
[20] G. Irving, J. Teran, and R. Fedkiw. Invertible finite elements for robust simulation of large deformation.
In Proc. of the ACM SIGGRAPH/Eurographics Symp. on Comput. Anim., pages 131–140, 2004.
[21] N. Molino, R. Bridson, J. Teran, and R. Fedkiw. A crystalline, red green strategy for meshing highly
deformable objects with tetrahedra. In 12th Int. Meshing Roundtable, pages 103–114, 2003.
[22] Y.T. Ng, C. Min, and F. Gibou. An efficient fluid-solid coupling algorithm for single-phase flows. J. of
Comput. Phys., 228(23):8807–8829, 2009.
[23] C. Peskin. Numerical analysis of blood flow in the heart. J. Comput. Phys., 25:220–252, 1977.
[24] A. Robinson-Mosher, R.E. English, and R. Fedkiw. Accurate tangential velocities for solid fluid coupling.
In Proc. of ACM SIGGRAPH/Eurographics Symp. on Comput. Anim., pages 227–236, 2009.
[25] A. Robinson-Mosher, T. Shinar, J.T. Grétarsson, J. Su, and R. Fedkiw. Two-way coupling of fluids to
rigid and deformable solids and shells. ACM Trans. on Graphics, 27(3):46:1–46:9, August 2008.
[26] A. Selle, R. Fedkiw, B. Kim, Y. Liu, and J. Rossignac. An unconditionally stable MacCormack method.
J. of Sci. Comp., 35(2):350–371, 2008.
[27] X. Shi and S.P. Lim. A LBM–DLM/FD method for 3D fluid–structure interactions. J. Comput. Phys,
226(2):2028–2043, 2007.
[28] T. Shinar, C. Schroeder, and R. Fedkiw. Two-way coupling of rigid and deformable bodies. In SCA ’08:
Proceedings of the 2008 ACM SIGGRAPH/Eurographics symposium on Computer animation, pages
95–103, 2008.
[29] H. Wang and T. Belytschko. Fluid-structure interaction by the discontinuous-galerkin method for large
deformations. International Journal for Numerical Methods in Engineering, 77(1), 2009.
[30] H. Wang, J. Chessa, W.K. Liu, and T. Belytschko. The immersed/fictitious element method for fluid–
structure interaction: Volumetric consistency, compressibility and thin members. Int. J. Numer. Meth.
Engng, 74:32–55, 2008.
[31] Z. Yu. A DLM/FD method for fluid/flexible-body interactions. J. Comput. Phys., 207(1):1–27, 2005.
[32] H. Zhao, J.B. Freund, and R.D. Moser. A fixed-mesh method for incompressible flow–structure systems
with finite solid deformations. J. Comput. Phys., 2007.
25
Was this manual useful for you? yes no
Thank you for your participation!

* Your assessment is very important for improving the work of artificial intelligence, which forms the content of this project

Related manuals

Download PDF

advertising