fedoo.LagrangeMultiplierAssembly

class LagrangeMultiplierAssembly(mesh, constraints, name='LagrangeMultiplier', multiplier_names=None, space: ModelingSpace | None = None)

Enforce MPC-generated linear constraints with Lagrange multipliers.

The wrapped object may be an MPC, a ListBC, any BC object whose generate method produces only MPC leaves, or an iterable of such objects. Wrapped constraints must not also be added to the problem boundary conditions, since that would enforce them a second time through elimination.

Parameters:
  • mesh (fedoo.Mesh) – Mesh associated with the constraint. It should share the nodes of the assembly with which this constraint is summed.

  • constraints (MPC, ListBC, BC object or iterable of BC objects) – Constraint(s) to enforce. Any wrapped object must generate only fedoo.MPC leaves.

  • name (str, default = "LagrangeMultiplier") – Assembly name. It is also the name of the global vector that gathers the Lagrange-multiplier DOFs.

  • multiplier_names (list of str or None, default = None) – Names of the multiplier DOFs, one per generated equation. If None, the multipliers are gathered as a single global vector named name.

  • space (ModelingSpace, optional) – Modeling space. If None, the active modeling space is used.

Notes

The multipliers give the system a zero diagonal block and an indefinite saddle-point structure, so a direct solver is required.

__init__(mesh, constraints, name='LagrangeMultiplier', multiplier_names=None, space: ModelingSpace | None = None)

Methods

LagrangeMultiplierAssembly.assemble_global_mat([...])

Launch the assembly of global matrix.

LagrangeMultiplierAssembly.delete_global_mat()

Delete Global Matrix and Global Vector related to the assembly.

LagrangeMultiplierAssembly.get_all()

Return a dict with all the known Assembly (with a name).

LagrangeMultiplierAssembly.get_global_matrix()

Get the last computed global matrix.

LagrangeMultiplierAssembly.get_global_vector()

Get the last computed global vector.

LagrangeMultiplierAssembly.initialize(pb)

Initialize the assembly for the current problem.

LagrangeMultiplierAssembly.iter_leaf()

Iterate over the leaf assemblies contained in this object.

LagrangeMultiplierAssembly.register_global_dofs(pb)

Register global DOFs required by the assembly on a problem.

LagrangeMultiplierAssembly.reset()

Reset the assembly.

LagrangeMultiplierAssembly.set_start(pb)

Begin a new time iteration.

LagrangeMultiplierAssembly.to_start(pb)

Restart the current time iteration.

LagrangeMultiplierAssembly.update(pb[, compute])

Update the assembly for the current problem state.

LagrangeMultiplierAssembly.name

Name of the assembly if defined.

LagrangeMultiplierAssembly.space

Modeling space associated to the assembly.

LagrangeMultiplierAssembly.current

Assembly associated to the mesh of the deformed geometry.

LagrangeMultiplierAssembly.associated_assembly_sum

AssemblySum object that contains the assembly.