rbe_solve
- compas_cra.equilibrium.rbe_solve(assembly, mu=0.84, density=1.0, verbose=False, timer=False)
RBE solver with penalty formulation using Pyomo + IPOPT.
- Parameters:
- assembly
Assembly
The rigid block assembly.
- mufloat, optional
Friction coefficient value.
- densityfloat, optional
Density of the block material.
- verbosebool, optional
Print information during the execution of the algorithm.
- timerbool, optional
Time the solving time.
- assembly
- Returns:
Assembly
The assembly is updated in place, also return Assembly for compas.rpc and compas.cloud
Notes
This function solves the following optimisation problem, Eq.(6) :
\[\begin{split}\begin{align} \begin{split} \min_{\bf{\tilde{f}}} \quad & \frac{1}{2}\:{\bf{\tilde{f}}^\intercal}\:{\bf{H}}\:{\bf{\tilde{f}}} \\ \textrm{s.t.} \quad & {{\bf{A}}_{eq}}\:{\bf{B}}\:{\bf{\tilde{f}}} = -{\bf{p}} \\ & {\bf{A}}_{fr}\:{\bf{B}}\:{\bf{\tilde{f}}} \le {\bf{0}} \\ & f_{jkn}^{i+}\, ,f_{jkn}^{i-} \ge 0 \;, \quad \forall i,j,k \;, \end{split} \end{align}\end{split}\]For more information please check our research paper: Coupled Rigid-Block Analysis: Stability-Aware Design of Complex Discrete-Element Assemblies