Challenge

Week - 2 - Explicit and Implicit Analysis

Objective: To solve a simple non-linear problem A bar under tension is with both implicit and explicit approaches with the force in the bar being a non-linear function of the displacement.

Introduction:

For all nonlinear and non-static analyses, incremental load (also known as displacement steps) are needed. In more simplistic terminology, this means we need to break down the physics/time relationship to solve a mathematical problem. To do this, we form two groups: either time-dependent or time-independent problems. To solve these problems, we commonly use ‘implicit’ and/or ‘explicit’ methods

We refer to problems as ‘time-dependent’ when the effects of acceleration are pronounced and cannot be neglected. For example, in a drop test, the highest force occurs within the first few milliseconds as the item decelerates to a halt. In this case, the effect of such a deceleration must be accounted for.

In contrast, when loads are slowly applied onto a structure or surface (i.e., when a monitor is placed onto a table) the loading can be considered ‘quasi-static’ or ‘time-independent’. This is because the loading time is slow enough that the acceleration effects are negligible.

For all nonlinear and non-static analyses, incremental load (also known as displacement steps) is needed. In more simplistic terminology, this means we need to break down the physics/time relationship to solve a mathematical problem. To do this, we form two groups: either time-dependent or time-independent problems. To solve these problems, we commonly use ‘implicit’ and/or ‘explicit’ methods

Explicit Method: In each step, the stiffness matrix is recalculated according to the change of material characteristic and geometry according to the step time, and the smaller the incremental step size that this recalculation is, the more accurate the calculation is. In this interpretation, there is no need for equilibrium between the forces acting on the internal structure and the forces acting on the outside.

Implicit Method: At every increment step, Newton-Raphson iteration occurs and the internal force acting on the structure and the external force acting externally must be balanced each time. Thus, the step size can be significantly larger than explicit. In order to move on to the next step, it is necessary to meet the equilibrium requirement. In the case of contact or collision, it is not easy to maintain this equilibrium condition. In this case, applying Modified Newton-Raphson, or interpreting it as explicit, is surprisingly easy to solve. \

The Problem

Consider the case of a simple bar in tension as shown in Figure.

Suppose that the force in the bar is a nonlinear function of the displacement

`F(u) = u^3+9u^2+4u` ----(1)

From (1) it follows that the stiffness of the bar is

`k(u) = (dF)/ (du) = 3u^2+18u+4`

  • Explicit Analysis

This method we use an incremental explicit load control scheme three equal load increments (or steps) of `DeltaF = 1` unit each are used to load the tension bar. The variables used are u for displacement,`f` for internal force in the bar, `F` for the external force applied to the bar, and `K` for stiffness. Incremental displacements or incremental externally applied forces are represented as `Deltau` or `DeltaF` respectively. Use is made of the relationship

`∆F=k×∆u`

`ul(Step- 1)`

`u_0 = 0.0, ⇒ k(u_0) =4 , DeltaF = 1,`

`Deltau_1 = (DeltaF)/(k(u_0)) = 0.25,`

`u_1 = u_0 + Deltau_1 = 0.`

`F_(external)=DeltaF=1`

`F_(Internal) = u^3+9u^2+4u=1.5781`

`ul(Step -2)`

`u_1 = 0.25, ⇒ k(u_1) =8.688 , DeltaF = 1,`

`Deltau_2 = (DeltaF)/(k(u_1)) = 0.1151,`

`u_2 = u_1 + Deltau_2 = 0.3651`

`F_(external)=DeltaF+DeltaF=2`

`F_(Internal)=u^3+9u^2+4u=2.708`

`ul(Step -3)`

`u_2 = 0.3651, ⇒ k(u_2) =10.9717 , DeltaF = 1,`

`Deltau_3 = (DeltaF)/(k(u_2)) = 0.0911,`

`u_3 = u_2 + Deltau_3 = 0.4562`

`F_(external)=DeltaF+DeltaF+DeltaF = 3`

`F_(Internal)=u^3+9u^2+4u=3.7928`

It is evident from the results that external and internal forces are NOT in equilibrium because `F_(external)!=F_(Internal)`

Summary of explicit analysis results



  • Implicit Analysis

An implicit analysis is the same as the explicit analysis, except that at the end of each step Newton-Raphson iterations are used to enforce equilibrium before moving to the next step.

Basically, an incremental force is applied to advance the solution forward at the beginning of a step. However, internal forces and external forces will not be in equilibrium unless the stiffness is linear for the given step.

Hence, in order to achieve equilibrium, corrections must be made to the displacement. This is accomplished by using Newton-Raphson iterations to minimize the residual, `R=F_(Internal)-F_(external)`

Expanding the residual as a Taylor series about the current displacement `u^j` gives

`R^(j+1) = R^j(u^j) + (dR(u^j))/ (du )deltau^(j+1) + ... = R^j + k(u^j)deltau^(j+1 )+ ...`

By neglecting higher-order terms in the series, setting `R^(j+1) = 0` and solving for `deltau^(j+1)` the following correction is obtained

The iteration variable is `j` and it may take several iterations for the norm of the residual, `|R|`, to be reduced below the `10^(−2)`

`ul(Step- 1)`

`u_0 = 0.0, ⇒ k(u_0) =4 , DeltaF = 1,`

`Deltau_1 = (DeltaF)/(k(u_0)) = 0.25,`

`u_1 = u_0 + Deltau_1 = 0.25`

Checking the residual `|R|`

`F_(external)=DeltaF = 1`

`F_(Internal)=u_1^3+9u_1^2+4u_1=1.578`

`R^((0))=F_(Internal)-F_(external)=0.578`

`|R^((0))| > 10^(−2)` ---- Newton-Raphson iterations are necessary.

Calculate the correction to `u_1 = u_1^((0))`

`deltau^((1 ))= −[k(u_1^((0)))]^(−1)*R^((0))=-(8.6875)^(-1)*0.578=-0.0665`

The updated value of `u_1^((1)) = u_1^((0)) + deltau^((1))=0.25-0.0665=0.1835`

Checking the residual `|R|`

`F_(external)=DeltaF = 1`

`F_(Internal)=(u_1^((1)))^3+9(u_1^((1)))^2+4u_1^((1))=1.0432`

`R^((1))=F_(Internal)-F_(external)=0.0432`

`|R^((1))| > 10^(−2) ⇒` Newton-Raphson iterations are necessary.

Calculate the correction to `u_1 = u_1^((0))`

`deltau^((2))=deltau^((1)) −[k(u_1^((1)))]^(−1)*R^((1))=-0.0665-(7.404)^(-1)*0.0432=-0.0723`

The updated value of `u_1^((2)) = u_1^((0)) + deltau^((2))=0.25-0.0723=0.1777`

Checking the residual `|R|`

`F_(external)=DeltaF = 1`

`F_(Internal)=(u_1^((2)))^3+9(u_1^((2)))^2+4u_1^((2))=1.0006`

`R^((2))=F_(Internal)-F_(external)=0.0006`

`|R^((2))| < 10^(−2) ⇒` No further iterations are necessary.

Therefore, the final value is `u_1 = u_1^((2)) =0.1777`

`ul(Step- 2)`

`u_1 = 0.1777,`

`k(u_1) =7.2933 , DeltaF = 1,`

`Deltau_2 = (DeltaF)/(k(u_1)) = 0.1371, u_2 = u_1 + Deltau_2 = 0.3148`

Checking the residual `|R|`

`F_(external)=DeltaF+DeltaF = 2`

`F_(Internal)=u_2^3+9u_2^2+4u_2=2.1822`

`R^((0))=F_(Internal)-F_(external)=0.1822`

`|R^((0))| > 10^(−2)`⇒ Newton-Raphson iterations are necessary

Calculate the correction to `u_1 = u_1^((0))`

`deltau^((1 ))= −[k(u_2^((0)))]^(−1)*R^((0))=-(9.9637)^(-1)*0.1822=-0.0182`

The updated value of `u_2^((1)) = u_2^((0)) + deltau^((1))=0.3148-0.0182=0.2966`

Checking the residual `|R|`

`F_(external)= DeltaF+DeltaF = 2`

`F_(Internal)=(u_2^((1)))^3+9(u_2^((1)))^2+4u_2^((1))=2.0042`

`R^((1))=F_(Internal)-F_(external)=0.0042`

`|R^((1))| < 10^(−2) ⇒` No further iterations are necessary.

Therefore, the final value is `u_2 = u_2^((1)) =0.2966`

`ul(Step- 3)`

`u_2 = 0.2966,`

`k(u_2) =9.6027 , DeltaF = 1,`

`Deltau_3 = (DeltaF)/(k(u_2)) = 0.1041, u_3 = u_2 + Deltau_3 =0.4007`

Checking the residual `|R|`

`F_(external)=DeltaF+DeltaF+DeltaF = 3`

`F_(Internal)=u_3^3+9u_3^2+4u_3=3.1121`

`R^((0))=F_(Internal)-F_(external)=0.1121`

`R^((0)) > 10^(−2) ⇒` Newton-Raphson iterations are necessary

Calculate the correction to `u_2 = u_2^((0))`

`deltau^((2 ))= −[k(u_3^((0)))]^(−1)*R^((0))=-(11.6942)^(-1)*0.1121=-0.00958`

The updated value of `u_3^((1)) = u_3^((0)) + deltau^((2))=0.4007-0.00958=0.3911`

Checking the residual `|R|`

`F_(external)=DeltaF+DeltaF+DeltaF = 3`

`F_(Internal)=(u_3^((1)))^3+9(u_3^((1)))^2+4u_3^((1))=3.0008`

`R^((1))=F_(Internal)-F_(external)=0.0008`

`R^((1)) < 10^(−2) ⇒`No further iterations are necessary.

Therefore, the final value is `u_3 = u_3^((2)) =0.3911`

It is evident from the table that the external forces and internal forces are coming into equilibrium `F_(external)=F_(Internal)`

Summary of Implicit analysis results

Plot Implicit vs Explicit Results

Conclusion

In dynamic analysis, nodal forces associated with mass/inertia and damping are included.

In the nonlinear implicit analysis, the solution of each step requires a series of trial solutions (iterations) to establish equilibrium within a certain tolerance. In explicit analysis, no iteration is required as the nodal accelerations are solved directly.

The time step in the explicit analysis must be less than the Courant time step (the time it takes a sound wave to travel across an element). Implicit transient analysis has no inherent limit on the size of the time step. As such, implicit time steps are generally several orders of magnitude larger than explicit time steps.

Implicit analysis requires a numerical solver to invert the stiffness matrix once or even several times over the course of a load/time step. This matrix inversion is an expensive operation, especially for large models. Explicit doesn't require this step.

Explicit analysis handles nonlinearities with relative ease as compared to implicit analysis. This would include the treatment of contact and material nonlinearities.

In explicit dynamic analysis, nodal accelerations are solved directly (not iteratively) as the inverse of the diagonal mass matrix times the net nodal force vector where net nodal force includes contributions from exterior sources (body forces, applied pressure, contact, etc.), element stress, damping, bulk viscosity, and hourglass control. Once accelerations are known at time n, velocities are calculated at time n+1/2, and displacements at time n+1. From displacements comes strain. From strain comes stress. And the cycle is repeated.

Use implicit for “slow analysis”

If the thing you calculate happens over several seconds… there is no sense in using explicit solver. It will take forever to dig through the millions of time increments needed for this to compute! Instead, set a “reasonable” time step for implicit analysis (let’s say 100 equal time increments for your analysis). Sure, each of those implicit time increments will compute much longer than a single explicit increment. But not longer than hundreds of thousands of them!

Use explicit for “fast analysis”

If what you calculate happens in the small fraction of a second explicit is Perfect. In an implicit analysis, your time increment would be super small… maybe even as small as the increment in the explicit analysis. In such a case explicit analysis will run MUCH faster since it doesn’t require “global equilibrium” iterations. The implicit analysis does require those iterations (regardless of the time step!)

  
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.