fedoo.constraint.MeanMotion
- class MeanMotion(node_set=None, components=None, weights=None, center=None, surface_mesh=None, normalize_weights=True, finite_rotation=None, name='Mean motion')
Constraint defining selected global DOFs equal to a mean motion.
The constraint projects the displacement field of selected nodes onto the rigid-body modes using a weighted least-squares fit. Selected fitted translations are exposed through the global vector
MeanDispand selected fitted rotations are exposed through the global vectorMeanRot. Prescribing these global DOFs with standard Dirichlet boundary conditions drives the selected face in a mean sense while still allowing local deformation.- Parameters:
node_set (str, int, array_like, Mesh or None, optional) – Nodes used to compute the mean motion. If a mesh is given, its elements are used to compute area/length nodal weights automatically. If
Noneall problem mesh nodes are used.components (str or list[str]) – Mean-motion components exposed as global DOFs. Accepted aliases include
"RotX","MeanRotX","DispZ","MeanDispZ","Rot","MeanRot","Disp"and"MeanDisp". Vector aliases expand to all components available in the current modeling dimension.weights (array_like or None, optional) – Nodal weights. By default, weights are area/length based when
node_setis a mesh, otherwise all selected nodes have equal weight.center (int, array_like or None, optional) – Rotation center. If
None, the weighted centroid of the selected nodes is used. If an int is given, the corresponding problem mesh node is used.surface_mesh (Mesh or None, optional) – Surface mesh used to define both selected nodes and area/length weights. This is equivalent to passing the mesh as
node_set.normalize_weights (bool, default=True) – If True, normalize weights so that their sum is one.
finite_rotation (bool or None, default=None) – If
None, finite rotation is enabled automatically when geometrical nonlinearity is active on the problem and at least one rotation component is selected. If False, rotations are small-rotation vector components and the constraint is linear. If True, rotations are finite rotation-vector components and the constraint is linearized at each Newton iteration usingsimcoon.dR_drotvec.name (str, optional) – Constraint name.
- __init__(node_set=None, components=None, weights=None, center=None, surface_mesh=None, normalize_weights=True, finite_rotation=None, name='Mean motion')
Methods
MeanMotion.generate(problem[, t_fact, ...])MeanMotion.initialize(problem)MeanMotion.register_global_dofs(problem)Register global DOFs required by this boundary condition.
Return a condensed one line str describing the object
Map global variable names to their local global-DOF index.