You are here
How to capture "Jump" in a Runge-Kutta time marching solution?
Thu, 2012-01-05 03:43 - imechanicaid
Dear friends,
When I run my MATLAB code to solve a nonlinear aeroelastic problem, solution diverges because of a "jump". I do expect a jump at this point, but I can not go through it and time marching solution stops. I appreciate any suggestion and help.
Thank You So Much
Forums:
TL;DR: Don't use Runge-Kutta
I hate to tell you this, but Runge-Kutta is not really designed for situations in which the stiffness curve has a negative slope. This is a common problem in mechanics, and even Newton-Rhapson can't handle softening well, and that's the method used in most commercial nonlinear FEA codes.
One potential solution is to use displacement control instead of force control (assuming you are currently using force control).
Displacement control can handle some softening, but not something like post-buckling. If you're doing that sort of thing, you'll need to switch to a Riks (arc length) method. The following page has some examples of when and why the Riks method is necessary.
http://en.wikiversity.org/wiki/Nonlinear_finite_elements/Buckling_of_beams
My Company - Red Cedar Technology
May be you could try using
May be you could try using total variational diminishing (TVD) Runge Kutta scheme.
Thank you for your
Thank you for your comment.
As far as I know, RK method results in desired degree of accuracy provided that time step is small enough. Additionally, This is a system of nonlinear differential (not algebraic) equations. Now I'm trying to implement one of implicit RK methods that can solve stiff problems, but it's too slow because in each time step a system of nonlinear algebraic equations ahould be solved. I appreciate any further suggestion.
Bests