v0.14.0 |
LHS-operator for the simple contact element. More...
#include <users_modules/mortar_contact/src/SimpleContact.hpp>
Public Member Functions | |
OpCalDerIntCompFunOverSpatPosSlaveMaster (const string lagrange_field_name, const string field_name, boost::shared_ptr< CommonDataSimpleContact > common_data_contact, boost::shared_ptr< double > cn) | |
MoFEMErrorCode | doWork (int row_side, int col_side, EntityType row_type, EntityType col_type, EntData &row_data, EntData &col_data) |
Integrates linearisation of the complementarity function at slave face gauss points and assembles components to LHS global matrix. More... | |
Private Attributes | |
boost::shared_ptr< CommonDataSimpleContact > | commonDataSimpleContact |
boost::shared_ptr< double > | cNPtr |
MatrixDouble | NN |
LHS-operator for the simple contact element.
Integrates the variation with respect to master spatial positions of the complementarity function to fulfill KKT conditions in the integral senseand assembles components to LHS global matrix.
Definition at line 1448 of file SimpleContact.hpp.
|
inline |
Definition at line 1450 of file SimpleContact.hpp.
MoFEMErrorCode SimpleContactProblem::OpCalDerIntCompFunOverSpatPosSlaveMaster::doWork | ( | int | row_side, |
int | col_side, | ||
EntityType | row_type, | ||
EntityType | col_type, | ||
EntData & | row_data, | ||
EntData & | col_data | ||
) |
Integrates linearisation of the complementarity function at slave face gauss points and assembles components to LHS global matrix.
Integrates the variation with respect to master spatial positions of the complementarity function to fulfill KKT conditions in the integral sense and assembles components to LHS global matrix.
\[ {\text D}{\overline C(\lambda, \mathbf{x}^{(i)}, \delta \lambda)}[\Delta \mathbf{x}^{(2)}] = \int_{{\gamma}^{(1)}_{\text c}} \Delta \mathbf{x}^{(2)} \cdot \mathbf{n}(\mathbf{x}^{(1)}) c_{\text n} \left( 1 + {\text {sign}}\left( \lambda - c_{\text n} g_{\textrm{n}} \right) {\left| \lambda - c_{\text n} g_{\textrm{n}}\right|}^{r-1}\right) \delta{{\lambda}} \,\,{ {\text d} {\gamma}} \]
where \({\gamma}^{(1)}_{\text c}\) is the surface integration domain of the slave surface, \( \lambda\) is the Lagrange multiplier, \(\mathbf{x}^{(i)}\) are the coordinates of the overlapping gauss points at slave and master triangles for \(i = 1\) and \(i = 2\), respectively. Furthermore, \( c_{\text n}\) works as an augmentation parameter and affects convergence, \(r\) is regularisation parameter that can be chosen in \([1, 1.1]\) ( \(r = 1\) is the default value) and \( g_{\textrm{n}}\) is the gap function evaluated at the slave triangle gauss points as:
\[ g_{\textrm{n}} = - \mathbf{n}(\mathbf{x}^{(1)}) \cdot \left( \mathbf{x}^{(1)} - \mathbf{x}^{(2)} \right) \]
Definition at line 2049 of file SimpleContact.cpp.
|
private |
Definition at line 1499 of file SimpleContact.hpp.
|
private |
Definition at line 1498 of file SimpleContact.hpp.
|
private |
Definition at line 1500 of file SimpleContact.hpp.