dr_numpy

compas_dr.solvers.dr_numpy(indata, kmax=10000, dt=1.0, tol1=0.001, tol2=1e-06, c=0.1, rk_steps=2, callback=None, callback_args=None)

Implementation of the dynamic relaxation method for form finding and analysis of articulated networks of axial-force members.

Parameters:
indatacompas_dr.numdata.InputData

An input data object.

kmaxint, optional

The maximum number of iterations.

dtfloat, optional

The time step for the integration scheme.

tol1float, optional

Tolerance for the sum of the length of all residual force vectors.

tol2float, optional

Tolerance for the sum of the length of all displacement vectors.

cfloat, optional

Value used to calculate coefficients “a” and “b”, with “a” used as a multiplication factor for the starting velocity for the RK integration at every iteration, and “b” used as a multiplication factor for the acceleration used during RK integration.

rk_steps{1, 2, 4}, optional

The number of Runge Kutta integration steps.

callbackcallable, optional

User-defined function that is called at every iteration. If provided, the callback will be called at every iteration with the following arguments

  • k: the number of the current iteration

  • x: the current vertex coordinates

  • crit1: the norm of the residual forces

  • crit2: the norm of the displacement vectors

  • callback_args: optional additional arguments

callback_argstuple, optional

Additional arguments passed to the callback.

Returns:
compas_dr.numdata.ResultData

A result data object.

Raises:
ValueError

If a callback function is provided that is not callable.

Notes

For more info, see [1].

References

[1]

De Laet L., Veenendaal D., Van Mele T., Mollaert M. and Block P., Bending incorporated: designing tension structures by integrating bending-active elements, Proceedings of Tensinet Symposium 2013,Istanbul, Turkey, 2013.

Examples

>>>