When equilibrium can not be found#

DAVE is all about finding equilibrium positions. That means that if an equilibrium position can not be found then something is wrong.

This section is about finding the cause and solving it. This is done by showing examples of situations where no equilibrium can be found and explaining why that is and how to solve it.

Equilibrium does not always exist (Engines)#

It is very easy to make a model that does not converge:

  • make a body

  • give it a mass

  • make it free to move vertically.

We have now made a model of a falling object. DAVE will fail to find equilibrium.

Model Discontinuities#

It is possible that there are positions of nodes in the model where the state, and thus the forces, make a jump. This can cause the solver to get stuck in a loop.

Examples (and solutions) are:

  • Cable winding around a circle: [example](./../nodes/Cables - disconnection angle)

  • Roundbar breaking contact with a catenary

  • Contact shifting between meshes

Uniqueness#

“This is not the equilibrium you are looking for”

Equilibrium positions that have a low stability (region) may be difficult to find. This can result in the solver finding another equilibrium position. An example is a ship with a crane turning upside-down.

If this happens then one or more of the following can help:

  • move the model closer to the intended equilibrium position before starting the solver

  • in the solver setting (gui: edit -> solver-settings)

    • set the “mobility” to something low. eg 20

    • set the up-is-up factor to 1.0

    • set do_linear_first to True

  • temporarily restrain the problematic items with 6D springs, then solve, lower stiffness, repeat.