v0.14.0 |
LHS-operator for the simple contact element. More...
#include <users_modules/mortar_contact/src/SimpleContact.hpp>
Public Member Functions | |
MoFEMErrorCode | iNtegrate (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... | |
OpCalDerIntCompFunSlaveSlave_dX (const string lagrange_field_name, const string mesh_nodes_field, boost::shared_ptr< double > cn, boost::shared_ptr< CommonDataSimpleContact > common_data_contact, int row_rank, const int col_rank) | |
Public Member Functions inherited from SimpleContactProblem::OpContactALELhs | |
MoFEMErrorCode | doWork (int row_side, int col_side, EntityType row_type, EntityType col_type, EntData &row_data, EntData &col_data) |
MoFEMErrorCode | aSsemble (EntData &row_data, EntData &col_data) |
OpContactALELhs (const string field_name_1, const string field_name_2, boost::shared_ptr< CommonDataSimpleContact > common_data_contact, const ContactOp::FaceType face_type, const int rank_row, const int rank_col) | |
Private Attributes | |
boost::shared_ptr< double > | cNPtr |
Additional Inherited Members | |
Public Attributes inherited from SimpleContactProblem::OpContactALELhs | |
boost::shared_ptr< CommonDataSimpleContact > | commonDataSimpleContact |
MatrixDouble | matLhs |
VectorInt | rowIndices |
VectorInt | colIndices |
int | row_nb_dofs |
int | col_nb_dofs |
int | nb_gauss_pts |
int | nb_base_fun_row |
int | nb_base_fun_col |
int | rankRow |
int | rankCol |
LHS-operator for the simple contact element.
Integrates the variation with respect to slave material positions of the complementarity function to fulfill KKT conditions in the integral sense and assembles components to LHS global matrix.
Definition at line 3236 of file SimpleContact.hpp.
|
inline |
lagrange_field_name | String of field name for lagrange multipliers for rows |
mesh_nodes_field | String of field name for material positions for columns |
cn | regularisation/augmentation parameter affecting convergence |
common_data_contact | Pointer to the common data for simple contact element |
row_rank | Parameter setting the dimension of the associated field for rows (in this case is 1) |
col_rank | Parameter setting the dimension of the associated field for cols (in this case is 3) |
Definition at line 3315 of file SimpleContact.hpp.
|
virtual |
Integrates linearisation of the complementarity function at slave face gauss points and assembles components to LHS global matrix.
Integrates and assembles the variation with respect to slave 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)}, \mathbf{X}^{(1)}, \delta \lambda)}[\Delta \mathbf{X}^{(1)}] = \int_{{{\mathcal{T}}^{(1)}_{\xi}}} -\left[ \textrm{D}\mathbf{N}^{(1)}(\mathbf{X}^{(1)})[\Delta\mathbf{X}^{(1)}] - \frac{\mathbf{N}^{(1)}(\mathbf{X}^{(1)})}{||{{\mathbf N}^{(1)}(\xi, \eta)}||} \textrm{D}\mathbf{N}^{(1)}(\mathbf{X}^{(1)})[\Delta\mathbf{X}^{(1)}] \cdot \frac{\mathbf{N}^{(1)}(\mathbf{X}^{(1)})}{||{{\mathbf N}^{(1)}(\xi, \eta)}||} \right] \cdot \left( {\mathbf{x}}^{(1)} - {\mathbf{x}}^{(2)}\right) 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} {\xi} {\text d} {\eta}} \\ + \int_{{{\mathcal{T}}^{(1)}_{\xi}}} \overline C(\lambda, \mathbf{x}^{(i)}, \mathbf{X}^{(1)}, \delta \lambda) \textrm{D}\mathbf{N}^{(1)}(\mathbf{X}^{(1)})[\Delta\mathbf{X}^{(1)}] \cdot \frac{\mathbf{N}^{(1)}(\mathbf{X}^{(1)})}{||{{\mathbf N}^{(1)}(\xi, \eta)}||} \delta{{\lambda}} \,\,{ {\text d} {\xi} {\text d} {\eta}} \]
where
\[ \textrm{D}\mathbf{N}^{(1)}(\mathbf{X}^{(1)})[\Delta\mathbf{X}^{(1)}] = \frac{\partial{\Delta\mathbf{X}}^{(1)}} {\partial\xi} \times \frac{\partial {\mathbf{X}}^{(1)}}{\partial\eta} + \frac{\partial{\mathbf{X}}^{(1)}} {\partial\xi} \times \frac{\partial {\Delta\mathbf{X}}^{(1)}}{\partial\eta} \]
where \(\xi, \eta\) are coordinates in the parent space \(({\mathcal{T}}^{(1)}_\xi)\) 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 here is chosen to be \(r = 1\) 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) \]
Reimplemented from SimpleContactProblem::OpContactALELhs.
Definition at line 3716 of file SimpleContact.cpp.
|
private |
Definition at line 3329 of file SimpleContact.hpp.