fedoo.constraint.Contact
- class Contact(slave_nodes: list[int] | Mesh, surface_mesh: Mesh, normal_law: str = 'linear', search_algorithm: str = 'bucket', space: ModelingSpace | None = None, name: str = 'Contact nodes 2 surface')
Contact Assembly based on a node 2 surface formulation
- __init__(slave_nodes: list[int] | Mesh, surface_mesh: Mesh, normal_law: str = 'linear', search_algorithm: str = 'bucket', space: ModelingSpace | None = None, name: str = 'Contact nodes 2 surface')
Assembly related to surface 2 surface contact, using a node 2 surface formulation with a penality method.
- Parameters:
slave_nodes (numpy array of int or Mesh) – List of nodes indices: nodes that belong to the slave surface or Mesh of the slave surface (in this case, the slave node indices are extracted).
surface_mesh (fedoo.Mesh) – Mesh of the master surface
normal_law (str in {'linear', 'bilinear'}, default = 'linear') – Type of contact law for the normal contact.
space (ModelingSpace) – Modeling space associated to the weakform. If None is specified, the active ModelingSpace is considered.
name (str) – The name of contact assembly
Notes
- Several attributes can be modified to change the contact behavior:
eps_n: contact penalty parameter. Need to be adjusted depending of the rigidity of the material in contact.
clearance: Contact clearance to adjust the two surfaces.
contact_search_once: If True (default) the elmement in contact are only searched at the begining of iteration. It avoid oscilations between contact and non contact state during the NR iterations.
tol: Tolerance for possible slide of a node outside an element.
max_dist: Max distance from nodes at which contact is considered.
eps_a: Penalty parameter for soft contact in bilinear contact law (only used if bilinear law is choosen).
limit_soft_contact: For bilinear contact law, define the penetration limit between soft contact (stiffness eps_a), and hard contact (stiffness eps_n) - only used if bilinear law is choosen.
Methods
Contact.assemble_global_mat
([compute])Launch the assembly of global matrix.
Contact.contact_search
([contact_list, ...])Delete Global Matrix and Global Vector related to the assembly.
Return a dict with all the known Assembly (with a name).
Get the last computed global matrix.
Get the last computed global vector.
Initialize the assembly for the current problem.
Reset the assembly.
Contact.set_disp
(disp)Contact.set_start
(problem)Begin a new time iteration.
Contact.to_start
(pb)Restart the current time iteration.
Contact.update
(pb[, compute])Update the assembly for the current problem state.
Name of the assembly if defined.
Modeling space associated to the assembly.
Penalty parameter for soft contact in bilinear contact law.
Contact penalty parameter.
Max distance from nodes at which contact is considered.
Contact clearance to adjust the two surfaces.
Tolerance for possible slide of a node outside an element.
It True, only search contact at the begining of iteration.
For bilinear contact law, define the penetration limit between soft contact (stiffness eps_a), and hard contact (stiffness eps_n).
Dictionary of state variables associated to the associated for the current problem.
Name of the contact law.
Assembly associated to the mesh of the deformed geometry.
AssemblySum object that contains the assembly.