Calculate tangent operator for contact force for change of integration point positions, as result of change os spatial positions.
More...
#include <users_modules/mortar_contact/src/SimpleContact.hpp>
Calculate tangent operator for contact force for change of integration point positions, as result of change os spatial positions.
Definition at line 2361 of file SimpleContact.hpp.
◆ OpLhsConvectIntegrationPtsContactTraction()
SimpleContactProblem::OpLhsConvectIntegrationPtsContactTraction::OpLhsConvectIntegrationPtsContactTraction |
( |
const string |
row_field_name, |
|
|
const string |
col_field_name, |
|
|
boost::shared_ptr< CommonDataSimpleContact > |
common_data_contact, |
|
|
const ContactOp::FaceType |
face_type, |
|
|
boost::shared_ptr< MatrixDouble > |
diff_convect |
|
) |
| |
|
inline |
◆ doWork()
MoFEMErrorCode SimpleContactProblem::OpLhsConvectIntegrationPtsContactTraction::doWork |
( |
int |
row_side, |
|
|
int |
col_side, |
|
|
EntityType |
row_type, |
|
|
EntityType |
col_type, |
|
|
EntData & |
row_data, |
|
|
EntData & |
col_data |
|
) |
| |
Definition at line 2873 of file SimpleContact.cpp.
2878 const int nb_row_dofs = row_data.
getIndices().size();
2879 const int nb_col_dofs = col_data.
getIndices().size();
2880 if (nb_row_dofs && (nb_col_dofs && col_type == MBVERTEX)) {
2882 const int nb_gauss_pts = getGaussPtsSlave().size2();
2883 int nb_base_fun_row = nb_row_dofs / 3;
2884 int nb_base_fun_col = nb_col_dofs / 3;
2886 matLhs.resize(nb_row_dofs, nb_col_dofs,
false);
2889 const double area_s =
2900 auto t_const_unit_n =
2902 auto t_diff_lambda_xi = getFTensor1FromMat<2>(
2904 auto t_w = getFTensor0IntegrationWeightSlave();
2906 auto get_diff_ksi = [](
auto &
m,
auto gg) {
2908 &
m(0, gg), &
m(1, gg), &
m(2, gg), &
m(3, gg), &
m(4, gg), &
m(5, gg));
2913 for (
int gg = 0; gg != nb_gauss_pts; ++gg) {
2915 double val_s = t_w * area_s;
2918 for (
int rr = 0; rr != nb_base_fun_row; ++rr) {
2930 auto t_diff_convect = get_diff_ksi(*
diffConvect, 3 * gg);
2932 for (
int cc = 0; cc != nb_base_fun_col; ++cc) {
2933 t_mat(
i,
j) -= val_s * t_base_row * t_const_unit_n(
i) *
2934 (t_diff_lambda_xi(
I) * t_diff_convect(
I,
j));
◆ commonDataSimpleContact
boost::shared_ptr<CommonDataSimpleContact> SimpleContactProblem::OpLhsConvectIntegrationPtsContactTraction::commonDataSimpleContact |
◆ diffConvect
boost::shared_ptr<MatrixDouble> SimpleContactProblem::OpLhsConvectIntegrationPtsContactTraction::diffConvect |
|
private |
◆ matLhs
MatrixDouble SimpleContactProblem::OpLhsConvectIntegrationPtsContactTraction::matLhs |
|
private |
The documentation for this struct was generated from the following files:
MoFEMErrorCode MatSetValues(Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const double *ptr, InsertMode iora)
Assemble PETSc matrix.