GetFEM++
5.3
|
Master contact body which surface will be used to project contact stresses and stiffness terms. More...
#include <getfem_level_set_contact.h>
Inherits level_set_contact::contact_body.
Public Member Functions | |
master_contact_body (model &_md, const std::string &_var_name, size_type _mult_order, size_type _mult_mim_order) | |
create master contact body with a model, name where masters displacements are defined, order for Lagrange multiplier, order for the integration method | |
master_contact_body (model &_md, const std::string &_var_name, size_type _mult_order, const std::string &_mult_int_method, contact_integration _integration=PER_ELEMENT, scalar_type _regularized_tollerance=1e-6, scalar_type _small_weight_multiplier=0.001, scalar_type _max_contact_angle=45) | |
the same as above, but specifically provide itegration method on the contact surface (_mult_int_method), additionally, specify if surface contact elements have to be cut by the level set. More... | |
void | add_slave (slave_contact_body &scb, size_type slave_contact_region=-1) |
associate a slave contact body with this master. More... | |
size_type | contact_mim_order () const |
order of integration of boundary contact terms | |
getfem::pintegration_method | contact_int_method () const |
integration method on the contact surface, use it when the master is created with a specific integration method and not the approx_order | |
size_type | volume_region () const |
region of all volume elements without the boundary | |
size_type | boundary_region () const |
boundary elements, added after creation of the master contact body | |
const contact_pair_info & | get_pair_info (const std::string &slave_var_name) const |
access to a structure that contains all the info about contact pair between this master and a slave, defined on More... | |
contact_pair_info & | get_pair_info (const std::string &slave_var_name) |
the same as above, but non-const | |
std::shared_ptr< mesh_im > | build_mesh_im_on_boundary (size_type region) |
return a pointer to mesh_im used for contact surface calculations | |
face_type | ext_face_of_elem (size_type cv) const |
gives a face, corresponding to newly created boundary element More... | |
Static Public Member Functions | |
static bool | any_contact_change () |
contact detection for all masters/slave couples More... | |
static void | clear_all_contact_history () |
should be used in the beginning of a step to clean data structures that store previous contact element lists (used to verify if contact surface is converged to one list) | |
Public Attributes | |
const size_type | mult_mf_order |
approximation order for Lagrange multiplier on the contact surface | |
const contact_integration | integration |
integration approach for contact elements that are partially crossed by level sets: PER_ELEMENT - a whole element is incuded into contact (default) REGULARIZED_LEVEL_SET - Gauss points where projected value of the level set is < zero are set to zero or small value (with gradual transition) | |
const scalar_type | regularized_tollerance |
width of transition for a regularazied Heaviside function in case of REGULARIZED_LEVEL_SET | |
const scalar_type | small_weight_multiplier |
in case of REGULARIZED_LEVEL_SET this value scales weight of Gauss points that have negative level set value | |
const scalar_type | max_contact_angle |
if the angle (in degrees) between contact element and level set contour exceed this value, this element is not included in contact algorithm | |
Protected Member Functions | |
bool | master_contact_changed (void) |
contact detection for all slaves | |
void | clear_contact_history (void) |
clearing previous contact elem lists | |
Master contact body which surface will be used to project contact stresses and stiffness terms.
It contains and manages the slaves and knows other masters. Master contact body must be created with mesh_fem that allows automatic addition of mesh_fem description on new elements (use mesh_fem::set_auto_add or use set_classical_finite_element). This feature is used when new boundary elements are created from faces. At the same time the mesh_im object that is used to add for instance some structural bricks on the volume (elastostatic, nonlinear_elastostatic, updated_lagrangian) should be either created before master contact body, or set on master_contact_body::volume_region() if it's created after. This is to avoid integration of the volume integrals on the boundary elemenents of lower dimension.
Definition at line 287 of file getfem_level_set_contact.h.
level_set_contact::master_contact_body::master_contact_body | ( | model & | _md, |
const std::string & | _var_name, | ||
size_type | _mult_order, | ||
const std::string & | _mult_int_method, | ||
contact_integration | _integration = PER_ELEMENT , |
||
scalar_type | _regularized_tollerance = 1e-6 , |
||
scalar_type | _small_weight_multiplier = 0.001 , |
||
scalar_type | _max_contact_angle = 45 |
||
) |
the same as above, but specifically provide itegration method on the contact surface (_mult_int_method), additionally, specify if surface contact elements have to be cut by the level set.
The later ensures that contact surface is strictly a domain that overlaps with the slave, hence this allows smooth growth of the contact surface. The level set cutting is done using regularized Heaviside function
Definition at line 99 of file getfem_level_set_contact.cc.
void level_set_contact::master_contact_body::add_slave | ( | slave_contact_body & | scb, |
size_type | slave_contact_region = -1 |
||
) |
associate a slave contact body with this master.
\ specify a region of expected contact interaction. \ (takes the whole master boundary if not specified)
Definition at line 162 of file getfem_level_set_contact.cc.
const level_set_contact::contact_pair_info & level_set_contact::master_contact_body::get_pair_info | ( | const std::string & | slave_var_name | ) | const |
access to a structure that contains all the info about contact pair between this master and a slave, defined on
slave_var_name |
Definition at line 132 of file getfem_level_set_contact.cc.
|
static |
contact detection for all masters/slave couples
Definition at line 235 of file getfem_level_set_contact.cc.
level_set_contact::face_type level_set_contact::master_contact_body::ext_face_of_elem | ( | size_type | cv | ) | const |
gives a face, corresponding to newly created boundary element
cv |
Definition at line 153 of file getfem_level_set_contact.cc.