v0.14.0 |
LHS-operator for the simple contact element. More...
#include <users_modules/mortar_contact/src/SimpleContact.hpp>
Public Member Functions | |
OpCalDerIntCompFunOverLambdaSlaveSlave (const string lagrange_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 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 variation of the complementarity function with respect to Lagrange multipliers to fulfils KKT conditions in the integral sense on slave side and assembles components to LHS global matrix.
Definition at line 1386 of file SimpleContact.hpp.
|
inline |
Definition at line 1388 of file SimpleContact.hpp.
MoFEMErrorCode SimpleContactProblem::OpCalDerIntCompFunOverLambdaSlaveSlave::doWork | ( | int | row_side, |
int | col_side, | ||
EntityType | row_type, | ||
EntityType | col_type, | ||
EntData & | row_data, | ||
EntData & | col_data | ||
) |
Integrates the complementarity function at slave face gauss points and assembles components to LHS global matrix.
Integrates variation of the complementarity function with respect to Lagrange multipliers to fulfils KKT conditions in the integral sense nd assembles components to LHS global matrix.
\[ {\text D}{\overline C(\lambda, \mathbf{x}^{(i)}, \delta \lambda)}[\Delta \lambda] = \int_{{\gamma}^{(1)}_{\text c}} \Delta \lambda \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 1992 of file SimpleContact.cpp.
|
private |
Definition at line 1435 of file SimpleContact.hpp.
|
private |
Definition at line 1434 of file SimpleContact.hpp.
|
private |
Definition at line 1436 of file SimpleContact.hpp.