Challenge

Week - 2 - Explicit and Implicit Analysis

Implicit vs Explicit FEM Solver

Both explicit and implicit solvers are two different methodologies to approach a solution for a given fem problem.

Explicit Solver

  • The explicit solver relies on the explicit form of the FEM solution, such that the parameter to be evaluated in future time-step is separately defined as a function of the value of the parameter at present time-step.

For example:

G(t+dt) = F(G(t)),

Where g (t+dt) is the parameter to be evaluated at the successive time-step

And, g (t) is the parameter value at the present time step

  • The solution obtained by the explicit solver is not inherently convergent in nature, as the explicit solver does not establish equilibrium between the internal and external forces at each time-step.
  • The above limitation of the explicit solver is quantified in the form of Courant Friedrichs Levy criterion, according to which:

dt < L(ρ(1-2v)/2µ(1-v))1/2

ρ is density of material

µ is shear modulus of material

v is wave velocity

dt is time-step size

L is edge length of element (references element size)

  • This maximum time-step defines the time in which an elastic wave (impact wave) can travel through a single finite element of the model. Hence upper limit to the step size of time is defined, so as to obtain convergence through fem solution, and this method is conditionally stable.
  • Application of explicit solvers is generally preferable to situations with highly transient behaviors (Dynamic Analysis) such as depicting significant jerk and acceleration and high strain rates example: explosive testing, impact testing, however, they can also be successfully employed to quasi-static conditions, but are not preferable for static conditions.
  • LS Dyna is specially designed to solve Nonlinear Dynamic Transient analysis using explicit solver algorithms.

Implicit Solver

  • The implicit solver relies on the implicit form of the FEM solution, such that the parameter to be evaluated in future time-step is not separately defined as a function of the value of the parameter at present time-step.

For example:

G(t+dt) = F(G(t)) + S(G(t+dt))

  • In this form, the solution in successive time-step is a function of present and future timesteps, and thus due to matrix inversions involved in the solution, the calculation task becomes exhaustive.
  • However, due to crosschecking of equilibrium at each timestep, this strategy is unconditionally stable and converges independently to the size of the timestep, hence a larger timestep can be considered.
  • Application: The implicit solver is generally limited to static and quasi-static boundary conditions due to the large computational costs associated with it.

Explicit Solver

Implicit Solver

Faster Computation

Slower Computation

Conditionally stable due to timestep restraint

Unconditionally stable

Dynamic Analysis

Static and Quasi-Static analysis

Example: Impact Analysis, Explosive Analysis

Example: Static Structural Analysis

Aim

Use explicit and implicit methodologies to calculate the displacement in subsequent timesteps for the given force equation as f(u) = `u^3+9u^2+4u`, with incremental loading in both cases (tolerance provided for the implicit solver is 0.01 ). We will compare solutions obtained from both methodologies to the actual solution.

Explanation

The following terminologies are being utilized:

F is external applied load, t denotes time, and dt timestep size

f is internally evolved load

k is stiffness, R denotes the tolerance

u is displacement, du is displacement in the time interval

Assuming initial force and displacement to be zero and the incremental load in each timestep to be 4 units, this implies:

u0 = 0, F0 = 0 and dF = 4

f0 = F0 = 0, this implies R0 = 0

Utilizing the equation df = ki*du

Explicit Methodology

First iteration:

k0 = (df/du)u0, this implies k0 = 4

du1 = df/k0, this implies du1 =1

u1 = u0 + du1, this implies u1 = 1

k1 = (df/du)u1, this implies k1 = 25

f1 = ()u1, his implies f1 = 14

F1 = F0 + dF, this implies F1 =4

R1 = f1 – F1 = 10

Second iteration:

du2 = df/k1, this implies du2 =0.16

u2 = u1 + du2, this implies u2 = 1.16

k2 = (df/du)u2, this implies k2 = 28.9168

f2 = ()u2, his implies f2 = 18.311296

F2 = F1 + dF, this implies F2 =8

R2 = f2 – F2 = 10.311296

Third iteration:

du3 = df/k2, this implies du1 =0.13833

u3 = u2 + du3, this implies u3 = 1.29833

k3 = (df/du)u3, this implies k3 = 32.427

f3 = ()u3, his implies f3 = 22.552811

F3 = F2 + dF, this implies F3 =12

R3 = f3 – F3 = 10.552811

Fourth iteration:

du4 = df/k3, this implies du4 =0.123353

u4 = u3 + du4, this implies u4 = 1.413353

k4 = (df/du)u4, this implies k4 = 35.433

f4 = ()u4, his implies f4 = 26.454

F4 = F3 + dF, this implies F4 =16

R4 = f4 – F4 = 10.454

For the above analysis I have utilized the below MATLAB script file to compute up to 10 successive time steps.

% explicit method for solvingg non linear dynamic problem, considering

% incremental loads

% given, u as displacement, f(u)is internal force

% k(u) as stiffness, F as external force

% f(u)= (u^3)+9(u^2)+4u;

% k(u)= f'(u)= 3(u^2)+18u+4;

% initial conditions are as follows

% initial displacement is zero u(1)=0;

% after each timestep, load increment is 4 unis, dF = 4;

u=zeros(1,10); dF=4;k=zeros(1,10);

F(1)=0;

for i=1:1:11

k(i)=(3*(u(i)^2)+18*u(i)+4);

du(i+1)=dF/k(i);

u(i+1)=u(i)+du(i+1);

f(i+1)=(u(i+1)^3)+9*(u(i+1)^2)+4*u(i+1);

F(i+1)=i*dF;

R(i+1)=f(i+1)-F(i+1);

end

Table 1 Iteration Table for explicit solver analysis

Timestep

du

u

F

f

k

R

0

0

0

0

0

4

0

1

1

1

4

14

25

10

2

0.16

1.16

8

18.3113

28.9168

10.3113

3

0.1383

1.2983

12

22.5527

32.4269

10.5527

4

0.1234

1.4217

16

26.7508

35.6538

10.7508

5

0.1122

1.5339

20

30.9192

38.6680

10.9192

6

0.1034

1.6373

24

35.0659

41.5141

11.0659

7

0.0964

1.7337

28

39.1959

44.2229

11.1959

8

0.0905

1.8241

32

43.3128

46.8164

11.3128

9

0.0854

1.9096

36

47.4191

49.3114

11.4191

10

0.0811

1.9907

40

51.5166

51.7206

11.6066

Implicit Methodology

The explicit solver calculations are performed in MATLAB through the script file code defined below:

%implicit method for solving non linear dynamic problem, considering

% incremental loads

% given, u as displacement, f(u)is internal force

% k(u) as stiffness, F as external force

% f(u)= (u^3)+9(u^2)+4u;

% k(u)= f'(u)= 3(u^2)+18u+4;

% initial conditions are as follows

% initial displacement is zero u(1)=0;

% after each timestep, load increment is 4 unis, dF = 4;

u=zeros(1,10); dF=4;k=zeros(1,10);du=zeros(1,10);f=zeros(1,10);R(1)=0;

F(1)=0;

for i=1:1:11

k(i)=(3*(u(i)^2)+18*u(i)+4);

du(i+1)=dF/k(i);

u(i+1)=u(i)+du(i+1);

f(i+1)=(u(i+1)^3)+9*(u(i+1)^2)+4*u(i+1);

F(i+1)=i*dF;

R(i+1)=f(i+1)-F(i+1);

k(i+1)=(3*(u(i+1)^2)+18*u(i+1)+4);

if abs(R(i+1))>0.01

while abs(R(i+1))>0.01

du(i+1)=-R(i+1)/k(i+1);

u(i+1)=u(i+1)+du(i+1);

f(i+1)=(u(i+1)^3)+9*(u(i+1)^2)+4*u(i+1);

R(i+1)=f(i+1)-F(i+1);

k(i+1)=(3*(u(i+1)^2)+18*u(i+1)+4);

end

else

end

end

Table 2 Implicit Solver Calculation table

Timestep

u

F

f

k

R

0

0

0

0

4

0

1

0.4722

4

4.0012

13.1691

0.0012

2

0.7244

8

8

18.6129

0

3

0.9169

12

12.0059

23.0274

0.0059

4

1.0772

16

16.0022

26.8709

0.0022

5

1.2170

20

20.0010

30.3499

0.0010

6

1.3422

24

24.0006

33.5643

0.0006

7

1.4563

28

28.0003

36.5753

0.0003

8

1.5616

32

32.0002

39.4253

0.0002

9

1.6597

36

36.0002

42.1372

0.0002

10

1.7517

40

40.0001

44.7374

0.0001

Plots

Figure 1 Displacement vs Force plot

Figure 2 Time step vs Residual plot

The above plot shows the force equilibrium in implicit analysis and the instability in the explicit analysis. As the residual tolerance limit in the implicit analysis is 0.01, the residual plot shows successful implementation of implicit solver code (with close to zero value for implicit analysis) so as to conform with an actual solution, however, the large residual values in explicit solution shows its departure from an actual solution.

Conclusion

The above plot shows the force equilibrium in implicit analysis and the instability in the explicit analysis. As the residual tolerance limit in the implicit analysis is 0.01, the residual plot shows successful implementation of implicit solver code (with close to zero value for implicit analysis) so as to conform with an actual solution, however, the large residual values in explicit solution shows its departure from an actual solution. Concluding, the implicit solution with provided tolerance works better with assumed timestep, however, there is an added computation cost, therefore with smaller load increments and timesteps better solution with explicit methodology can be obtained

Application

Application of explicit solvers is generally preferable to situations with highly transient behaviors (Dynamic Analysis) such as depicting significant jerk and acceleration and high strain rates example: explosive testing, impact testing, however, they can also be successfully employed to quasi-static conditions, but are not preferable for static conditions.

LS Dyna is specially designed to solve Nonlinear Dynamic Transient analysis using explicit solver algorithms.

The implicit solver is generally limited to static and quasi-static boundary conditions due to the large computational costs associated with it.

Explicit Solver

Implicit Solver

Dynamic Analysis

Static and Quasi-Static analysis

Example: Impact Analysis, Explosive Analysis

Example: Static Structural Analysis

Your portfolio, next

Ship work like this
in your own course.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.

Talk to a career counsellor

Free 20-minute call. We'll map the right course to where you want to work.

By submitting you agree to our Terms and Privacy Policy.