smish.dev
newmark_stability

Regular Newmark-β Method

The update procedure of the Newmark-β method is:

{u˙i+1=u˙i+((1γ)u¨i+γu¨i+1)Δtui+1=ui+u˙iΔt+((12β)u¨i+βu¨i+1)Δt2

where the accelerations are given by solving Mu¨+Cu˙+f(u)=0. For a single-dof toy problem where f(u)=ku and there is no damping, then we just have u¨=kmu=ω2u. Plugging this back into the update procedure above gives

{u˙i+1=u˙i((1γ)ui+γui+1)ω2Δtui+1=ui+u˙iΔt((12β)ui+βui+1)ω2Δt2

Rearrange things so that all the new stuff is on the left, and the old stuff on the right

{u˙i+1+γui+1ω2Δt=u˙i(1γ)uiω2Δtui+1(1+βω2Δt2)=ui+u˙iΔt(12β)uiω2Δt2

and put it in matrix form so we can actually see what's going on

[1γω2Δt01+βω2Δt2][u˙i+1ui+1]=[1(γ1)ω2ΔtΔt1+(β12)ω2Δt2][u˙iui][u˙i+1ui+1]=[A][u˙iui]

whereA:=[1γω2Δt0(1+βω2Δt2)]1[1(γ1)ω2ΔtΔt1+(β12)ω2Δt2]

If the update matrix A had an eigenvalue with magnitude greater than 1, then applying it over and over would make u,u˙ grow without bound-- which is obviously wrong. So, which combinations of {β,γ,Δt} ensure that the eigenvalues of A stay inside the unit disk?

Since A is only 2x2, we can just write out its eigenvalues in closed form (with τ:=ωΔt):

regular_newmark_update_matrix

 

In theory, we could visualize the 3D region defined by ||λ1,2(β,γ,τ)||1, but instead we'll just fix γ=12 (since there is no point using Newmark-β with any other value of γ) and plot the stability region in 2D:

 

regular_newmark_stability_region_1

regular_newmark_stability_region_2

 

This shows the classical stability results:

 


 

Constrained Newmark-β Method

What happens if we're using Newmark-β to integrate through time, but we would also like to prescribe the motion of a degree of freedom to match some function of time, U(t)?

 

Displacement Control

One natural way to constrain the motion of that degree of freedom is to modify the way the acceleration is calculated to ensure that the displacement takes on the right value at the end of the step:

ui+1=U(ti+1)=U(ti)+u˙iΔt+((12β)u¨i+βu¨i+1)Δt2βu¨i+1Δt2=U(ti+1)U(ti)u˙iΔt(12β)u¨iΔt2u¨i+1=U(ti+1)U(ti)u˙iΔt(12β)u¨iΔt2βΔt2

This, together with the velocity update step, give us two equations relating {u¨i+1,u˙i+1} to {u¨i,u˙i}, so we can figure out the update matrix for this case as well:

[u¨i+1u˙i+1]=[112β1βΔt(1γ2β)Δt1γβ][u¨iu˙i]+[U(ti+1)U(ti)βΔt20]

Like before, calculate the eigenvalues to figure out the stability criteria

eigenvalues_direct_control

Note: this eigenvalues of this update matrix do not depend on Δt, so any instabilities associated with this enforcement approach do not go away with timestep refinement!

and plot the stability region

displacement_control_stability_region_1

displacement_control_stability_region_2

This region is equivalent to the inequality

12γ2β

which is a well-known sufficient condition for Newmark-β stability, but there is an important difference in this context: it's not a sufficient condition any more, it's a necessary condition. This means that some of the common choices of β=16 (linear acceleration) and β=0 (central difference) do not work with displacement control, for any timestep.

For example, consider what happens when trying to directly prescribe U(t)=14sin(2πt), with β=16.

direct_linear_acceleration

While it's not surprising to see a time integrator go unstable with large timesteps, it is surprising to see that taking arbitrarily small timesteps doesn't help. This goes back to the note earlier about how the stability of the constrained dofs doesn't depend on the timestep. So, displacement control cannot be used with linear acceleration or central difference methods.


Velocity Control

Another possible interpretation of the constraint is u˙i+1=U˙(ti+1). If we put this assumption into the update equations like before and turn the algebraic crank, we eventually get

[γΔt0βΔt21][u¨i+1ui+1]=[(γ1)Δt0(12β)Δt21][u¨iui]+[U˙(ti+1)U˙(ti)0]

This time around, the eigenvalues of the update matrix are simple

velocity_control_stability

and the expression for λ just tells us that γ12 (which is already satisfied by any of the useful Newmark methods).


Summary

 

Mathematica notebooks are available for the stability analyses and a basic numerical example.