waves
Basic FE playground
katoptron::Contact Class Reference

Class used to specify in Python the different contact interfaces. More...

#include <wContact.h>

Inheritance diagram for katoptron::Contact:
Collaboration diagram for katoptron::Contact:

Public Member Functions

 Contact (Problem &pbl, int no, std::string _Contact_name, Eigen::Vector3d _slave_normal, double dg=0.)
 Contact constructor. More...
 
 Contact (Problem &pbl, std::string const &name, std::string _Contact_name, Eigen::Vector3d _slave_normal, double dg=0.)
 Contact constructor. More...
 
 Contact (Problem &pbl, int no, std::string _Contact_name, Eigen::Vector3d _slave_normal, std::vector< double > _dg)
 Contact constructor. More...
 
 Contact (Problem &pbl, std::string const &name, std::string _Contact_name, Eigen::Vector3d _slave_normal, std::vector< double > _dg)
 Contact constructor. More...
 
void setMaster (katoptron::Problem &pbl, int no, Eigen::Vector3d _master_normal)
 Set the master surface. More...
 
void setMaster (katoptron::Problem &pbl, std::string const &name, Eigen::Vector3d _master_normal)
 Set the master surface. More...
 
void setSlaveBoundary (std::string const &file_name, std::string const &name)
 Set slave boundary (optional) More...
 
void setMasterBoundary (std::string const &file_name, std::string const &name)
 Set master boundary (optional) More...
 
void setSlaveDirichlet (std::string const &file_name, std::string const &name)
 Set slave Dirichlet boundary (optional) More...
 
void setMasterDirichlet (std::string const &file_name, std::string const &name)
 Set master Dirichlet boundary (optional) More...
 
void setInitialyClosed ()
 Activate all the Lagrange multipliers associated to the current contact interface. More...
 
void setInitialyOpen ()
 Inactivate all the Lagrange multipliers associated to the current contact interface. More...
 
void setNoUpdate ()
 Specify to the active set strategy that this interface should not be updated. More...
 
void setUpdate ()
 Specify to the active set strategy that this interface should be updated if required. More...
 
void setMeshTying ()
 Replace this contact interface by a mesh tying interface. More...
 
void setSticking ()
 Specify that this interface is sticking. More...
 
void setNoSticking ()
 Specify that this interface is not sticking (default). More...
 
void setStandardShapeFunctions ()
 Specify that the discretization of the Lagrange multipliers use standard shape functions (default). More...
 
void setDualShapeFunctions ()
 Specify that the discretization of the Lagrange multipliers use dual shape functions. More...
 
void setSignoriniContact ()
 Specify that this interface is a Signorini contact. More...
 
void setTwoBodyContact ()
 Specify that this interface is a not Signorini contact (default). More...
 
void setInitiallyClosedNodes (std::vector< double > _initially_closed_nodes)
 Specify a list of slave nodes where the Lagrange multipliers should be initially closed. More...
 
void setScale (double a)
 Specify the scale. More...
 
virtual void write (std::ostream &out) const
 Display information. More...
 

Public Attributes

std::string Contact_name
 
std::vector< tbox::Element * > slave_elems
 
std::vector< tbox::Element * > master_elems
 
std::vector< int > slave_boundary_nodes
 
std::vector< int > master_boundary_nodes
 
std::vector< int > slave_dirichlet_nodes
 
std::vector< int > master_dirichlet_nodes
 
std::vector< int > initially_closed_nodes = {}
 
bool initial_closed = true
 
bool standard_shape_functions = true
 
bool is_Signorini = false
 
bool no_Update = false
 
bool sticking = false
 
bool mesh_tying = false
 
int nb_Lagrange_multipliers = 1
 
Eigen::Vector3d slave_normal
 
Eigen::Vector3d master_normal
 
double dg
 
double scale = 1.
 
std::vector< double > dg_vector
 

Detailed Description

Class used to specify in Python the different contact interfaces.

Constructor & Destructor Documentation

◆ Contact() [1/4]

Contact::Contact ( katoptron::Problem pbl,
int  no,
std::string  _Contact_name,
Eigen::Vector3d  _slave_normal,
double  _dg = 0. 
)

Contact constructor.

Arguments:

  • pbl: a Problem object,
  • no: the ID of the slave surface of the msh,
  • _Contact_name: the name of new contact interface (does not have to be a nametag of the msh),
  • _slave_normal: the slave normal,
  • dg: the initial displacement along the slave normal.

◆ Contact() [2/4]

Contact::Contact ( katoptron::Problem pbl,
std::string const &  name,
std::string  _Contact_name,
Eigen::Vector3d  _slave_normal,
double  _dg = 0. 
)

Contact constructor.

Arguments:

  • pbl: a Problem object,
  • name: the name of the slave surface of the msh,
  • _Contact_name: the name of new contact interface (does not have to be a nametag of the msh),
  • _slave_normal: the slave normal,
  • dg: the initial displacement along the slave normal.

◆ Contact() [3/4]

Contact::Contact ( katoptron::Problem pbl,
int  no,
std::string  _Contact_name,
Eigen::Vector3d  _slave_normal,
std::vector< double >  _dg 
)

Contact constructor.

Arguments:

  • pbl: a Problem object,
  • no: the ID of the slave surface of the msh,
  • _Contact_name: the name of new contact interface (does not have to be a nametag of the msh),
  • _slave_normal: the slave normal,
  • _dg: the initial displacement along the slave normal (value can be different for the different samples).

◆ Contact() [4/4]

Contact::Contact ( katoptron::Problem pbl,
std::string const &  name,
std::string  _Contact_name,
Eigen::Vector3d  _slave_normal,
std::vector< double >  _dg 
)

Contact constructor.

Arguments:

  • pbl: a Problem object,
  • name: the name of the slave surface of the msh,
  • _Contact_name: the name of new contact interface (does not have to be a nametag of the msh),
  • _slave_normal: the slave normal,
  • _dg: the initial displacement along the slave normal (value can be different for the different samples).

Member Function Documentation

◆ setDualShapeFunctions()

void Contact::setDualShapeFunctions ( )

Specify that the discretization of the Lagrange multipliers use dual shape functions.

◆ setInitiallyClosedNodes()

void Contact::setInitiallyClosedNodes ( std::vector< double >  _initially_closed_nodes)

Specify a list of slave nodes where the Lagrange multipliers should be initially closed.

◆ setInitialyClosed()

void Contact::setInitialyClosed ( )

Activate all the Lagrange multipliers associated to the current contact interface.

◆ setInitialyOpen()

void Contact::setInitialyOpen ( )

Inactivate all the Lagrange multipliers associated to the current contact interface.

◆ setMaster() [1/2]

void Contact::setMaster ( katoptron::Problem pbl,
int  no,
Eigen::Vector3d  _master_normal 
)

Set the master surface.

Arguments:

  • pbl: a Problem object,
  • no: the ID of the master surface of the msh,
  • _master_normal: the master normal.

◆ setMaster() [2/2]

void Contact::setMaster ( katoptron::Problem pbl,
std::string const &  name,
Eigen::Vector3d  _master_normal 
)

Set the master surface.

Arguments:

  • pbl: a Problem object,
  • name: the name of the master surface of the msh,
  • _master_normal: the master normal.

◆ setMasterBoundary()

void Contact::setMasterBoundary ( std::string const &  file_name,
std::string const &  name 
)

Set master boundary (optional)

Arguments:

  • file_name: name of the msh file to use,
  • name: the name of the master boundary of the msh.

◆ setMasterDirichlet()

void Contact::setMasterDirichlet ( std::string const &  file_name,
std::string const &  name 
)

Set master Dirichlet boundary (optional)

Arguments:

  • file_name: name of the msh file to use,
  • name: the name of the master Dirichlet boundary of the msh.

◆ setMeshTying()

void Contact::setMeshTying ( )

Replace this contact interface by a mesh tying interface.

◆ setNoSticking()

void Contact::setNoSticking ( )

Specify that this interface is not sticking (default).

◆ setNoUpdate()

void Contact::setNoUpdate ( )

Specify to the active set strategy that this interface should not be updated.

◆ setScale()

void Contact::setScale ( double  a)

Specify the scale.

◆ setSignoriniContact()

void Contact::setSignoriniContact ( )

Specify that this interface is a Signorini contact.

◆ setSlaveBoundary()

void Contact::setSlaveBoundary ( std::string const &  file_name,
std::string const &  name 
)

Set slave boundary (optional)

Arguments:

  • file_name: name of the msh file to use,
  • name: the name of the slave boundary of the msh.

◆ setSlaveDirichlet()

void Contact::setSlaveDirichlet ( std::string const &  file_name,
std::string const &  name 
)

Set slave Dirichlet boundary (optional)

Arguments:

  • file_name: name of the msh file to use,
  • name: the name of the slave Dirichlet boundary of the msh.

◆ setStandardShapeFunctions()

void Contact::setStandardShapeFunctions ( )

Specify that the discretization of the Lagrange multipliers use standard shape functions (default).

◆ setSticking()

void Contact::setSticking ( )

Specify that this interface is sticking.

◆ setTwoBodyContact()

void Contact::setTwoBodyContact ( )

Specify that this interface is a not Signorini contact (default).

◆ setUpdate()

void Contact::setUpdate ( )

Specify to the active set strategy that this interface should be updated if required.

◆ write()

void Contact::write ( std::ostream &  out) const
virtual

Display information.

Member Data Documentation

◆ Contact_name

std::string katoptron::Contact::Contact_name

◆ dg

double katoptron::Contact::dg

◆ dg_vector

std::vector<double> katoptron::Contact::dg_vector

◆ initial_closed

bool katoptron::Contact::initial_closed = true

◆ initially_closed_nodes

std::vector<int> katoptron::Contact::initially_closed_nodes = {}

◆ is_Signorini

bool katoptron::Contact::is_Signorini = false

◆ master_boundary_nodes

std::vector<int> katoptron::Contact::master_boundary_nodes

◆ master_dirichlet_nodes

std::vector<int> katoptron::Contact::master_dirichlet_nodes

◆ master_elems

std::vector<tbox::Element *> katoptron::Contact::master_elems

◆ master_normal

Eigen::Vector3d katoptron::Contact::master_normal

◆ mesh_tying

bool katoptron::Contact::mesh_tying = false

◆ nb_Lagrange_multipliers

int katoptron::Contact::nb_Lagrange_multipliers = 1

◆ no_Update

bool katoptron::Contact::no_Update = false

◆ scale

double katoptron::Contact::scale = 1.

◆ slave_boundary_nodes

std::vector<int> katoptron::Contact::slave_boundary_nodes

◆ slave_dirichlet_nodes

std::vector<int> katoptron::Contact::slave_dirichlet_nodes

◆ slave_elems

std::vector<tbox::Element *> katoptron::Contact::slave_elems

◆ slave_normal

Eigen::Vector3d katoptron::Contact::slave_normal

◆ standard_shape_functions

bool katoptron::Contact::standard_shape_functions = true

◆ sticking

bool katoptron::Contact::sticking = false

The documentation for this class was generated from the following files: