Calculation

Once all the elements, supports and loads are in place, solving the calculation is as easy as calling the solve method.

SystemElements.solve(force_linear=False, verbosity=0, max_iter=200, geometrical_non_linear=False, **kwargs)[source]

Compute the results of current model.

Parameters:
  • force_linear – (bool) Force a linear calculation. Even when the system has non linear nodes.
  • verbosity – (int) 0. Log calculation outputs. 1. silence.
  • max_iter – (int) Maximum allowed iterations.
  • geometrical_non_linear – (bool) Calculate second order effects and determine the buckling factor.
Returns:

(array) Displacements vector.

Development **kwargs:
param naked:(bool) Whether or not to run the solve function without doing post processing.
param discretize_kwargs:
 When doing a geometric non linear analysis you can reduce or increase the number of elements created that are used for determining the buckling_factor

Non linear

The model will automatically do a non linear calculation if there are non linear nodes present in the SystemElements state. You can however force the model to do a linear calculation with the force_linear parameter.

Geometrical non linear

To start a geometrical non linear calculation you’ll need to set the geometrical_non_linear to True. It is also wise to pass a discretize_kwargs dictionary.

ss.solve(geometrical_non_linear=True, discretize_kwargs=dict(n=20))

With this dictionary you can set the amount of discretization elements generated during the geometrical non linear calculation. This calculation is an approximation and gets more accurate with more discretization elements.