15
Nonlinear Real-time Finite Element Analysis using CUDA Vukasin Strbac Biomechanics section KU Leuven

Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

Embed Size (px)

Citation preview

Page 1: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

Nonlinear Real-time Finite Element

Analysis using CUDA

Vukasin Strbac

Biomechanics section

KU Leuven

Page 2: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

Introduction Biomechanics & surgery application

What are we trying to do?

Why is FE relevant to us?

FE and parallelization, TLED Which formulation is better and why?

Basic Nonlinear Implicit

Total Lagrangian Explicit Dynamic

Results, use case

Conclusion

3/20/2013 2/21Vukasin Strbac GTC2013

Page 3: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

Intro

Biomechanics Help DURING surgery, need fast

computation of stresses/damage- Can’t influence surgery workflow

- tool: FE, generally very slow– we use CUDA

Finite Element Analysis Speed and accuracy is what we are

going for.

Not “embarrassingly parallel”

3/20/2013 3/21Vukasin Strbac GTC2013

Heartport Endoarctic clamp,

Redwood, USA

Page 4: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

Introduction to Finite Elements

Implicit Explicit

+ e.g. central difference method

Iterative schemes

(Newton-Raphson)

To solve:

Convergence:

Time integration:

Energy has stabilized

t=0 t=1 t=2

Total and Updated Lagrangian

3/20/2013 4/21Vukasin Strbac GTC2013

Page 5: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

Basic nonlinear implicit FE, example on elasticity

Implicit, nonlinear:

Impose B.C.s

cheap

expensive

cheap

cheap

cheap

cheap

cheap

cheap

Newton-Raphson

iteration

precomputed

3/20/2013 5/21Vukasin Strbac GTC2013

Pros:less timesteps

unconditionally stable

insensitive to incompressbility

Cons:Large matrix inversion

More memory intensive

More computationally intensive

Little is precomputed

*D=stress/strain matrix

*B=strain/displacement matrix

Page 6: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

precompute();

Total Lagrangian Explicit Dynamic

updateDisplacements();

doLoading();

3/20/2013 6/21Vukasin Strbac GTC2013

Pros:lots of precomputation

no K matrix assembly

no K inversion

elements “independent”

much less memory required

Cons:

many more timesteps

addit. time to converge

conditionally stable

sensitive to incompressibility

computeForces();

*neo-hookean material

*d is damage

Page 7: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

TLED serial, iteration phase

Get forces()

Update Displacements() doDisplacementLoading()

+ ++ +

+ +

+ ++ +

+ +

+ ++ +

+ ++ +

+ ++ +

+ ++ +

+ +

+ +

+ +

+ +

b

c

d

e

f

1

2

3

4

5

6

98

7

3/20/2013 7/21Vukasin Strbac GTC2013

= precomputed

Page 8: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

x y

x y

. .

. .

. .

filter

Get forces(…)

Update Displacements(…) doLoading(…)

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

+

b

c

d

e

f

Element granularityNodal granularity

scatter gather

New: scatter, gather & filter.

One more summation step.1.x 1.y

2.x 2.y

a.x a.y

b.x b.Y

c.x c.Y

d.x d.Y

b.x b,y

c.x c,y

- -

- -

∑∑

...

TLED parallel, iteration phase

Page 9: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

1

2

5

4

3

6

1 2 3 4 5 6

a

b

Forces load & store

c

d

F.xF.y

maxConnections

(m)

b

c

d

0

0

0

0

0

0

0

0

0

0

0

00

0

0

0

0

0

0

0

0

00

0

0

0

0

0

0

0

0

0

0

0

0

0

0

00

0

0

00

0

0

0

0

0

a.x

a.y

b.x

b.yc.x

c.y

d.x

d.y

a.x

a.yb.x

b.y

c.x

c.y

d.x

d.ya.x

a.y

b.x

b.y

c.x

c.y

d.x

d.y

F[4 * 1 + i [me].x] = a;

F[4 * 2 + i [me].y] = a;

F[4 * 4 + i [me].z] = a;

F[4 * 4+ i [me].x] = b;

F[4 * 2+ i [me].y] = b;

F[4 * 3+ i [me].z] = b;

F[4 * 4+ i [me].x] = c;

F[4 * 3 + i [me].y] = c;

F[4 * 5 + i [me].z] = c;

F[4 * 6 + i [me].x] = d;

F[4 * 4 + i [me].y] = d;

F[4 * 4 + i [me].z] = d;

a b c d

Force[m * myNode [1] + index[me].x] = f1;

Force[m * myNode [2] + index[me].y] = f2;

Force[m * myNode [3] + index[me].z] = f3;

… … … …

… … … …

nodes

3/20/2013 9/21Vukasin Strbac GTC2013

Page 10: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

Parameter Value

μ 1006.7 MPa

κ 50e3 MPa

γ 0.9 [-]

m 1000 MPa

.

Abaqus/Standard solution Cuda/TLED: displacement (mm) damage(-)

Method Material Model Displacement

of node x[mm]

% deviation Calculation

time

Abaqus explicit Neo Hookean

Damage

1.8135

1.8119

4min

4.6min

Abaqus implicit Neo Hookean

Damage

1.8125

1.8109

400ms

500ms

CUDA TLED Neo Hookean

Damage

1.8163

1.8147

0.21%

0.21%

81ms

87ms

mm

3/20/2013 10/21Vukasin Strbac GTC2013

*xeon e6520 vs Tesla C2075(in single precision)

Page 11: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

Code in action: human aorta model + slices

Mimicking endoclamp

balloon expansion.

Loading is 0-500mmHg

sine wave.

Simulation at 14 fps

~70ms per solution, 1000

timesteps each.

Material is Neo-Hookean

with E=3000Pa, v=0,49.

Small enough to fit all

element/node data into

registers.

3/20/2013 11/21Vukasin Strbac GTC2013

Page 12: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

Thanks!

3/20/2013 12/21Vukasin Strbac GTC2013

Page 13: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

TLED – Precomputation phase

Explicit integration scheme Central Difference Method

No need for optimization/iterative methods

Covers nonlinear behavior in an intuitive way – given

small enough timestep is used.

• Initialize and compute

•Mass matrix

•Shape function derivatives

•CDM coefficients

diagonalized

•Add mass proportional damping according to

The Dynamic Relaxation algorithm

3/20/2013 13/21Vukasin Strbac GTC2013

*CDM = central difference method

Page 14: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

Accuracy considerations

Single precision

Some increments < macheps

Total error after 1000ts <1mm = single

precision warranted

Evolution of error(single vs double)

Loading curve / macheps

d=0 d=3

Accumulation of error(CUDA vs Matlab)

3/20/2013 14/21Vukasin Strbac GTC2013

Page 15: Nonlinear Real-time Finite Element Analysis using CUDAon-demand.gputechconf.com/...Nonlinear-RT-Finite-Element-Analysi… · Nonlinear Real-time Finite Element Analysis using CUDA

Plane strain formulation

3-noded linear triangular element

single point Gaussian integration

Hyperelastic constitutive model Neo-hookean matrix material of

artery + damage

Endoclamp case study

0<t<Τ+damage

mm

mm

3/20/2013 15/21Vukasin Strbac GTC2013