v0.14.0
Public Member Functions | Public Attributes | List of all members
SimpleContactProblem::OpLagGapProdGaussPtsSlave Struct Reference

Operator for the simple contact element. More...

#include <users_modules/mortar_contact/src/SimpleContact.hpp>

Inheritance diagram for SimpleContactProblem::OpLagGapProdGaussPtsSlave:
[legend]
Collaboration diagram for SimpleContactProblem::OpLagGapProdGaussPtsSlave:
[legend]

Public Member Functions

 OpLagGapProdGaussPtsSlave (const string lagrange_field_name, boost::shared_ptr< CommonDataSimpleContact > common_data_contact)
 
MoFEMErrorCode doWork (int side, EntityType type, EntData &data)
 

Public Attributes

boost::shared_ptr< CommonDataSimpleContactcommonDataSimpleContact
 

Detailed Description

Operator for the simple contact element.

Calculates the product of Lagrange multipliers with gaps evaluated at the gauss points on the slave triangle.

Definition at line 942 of file SimpleContact.hpp.

Constructor & Destructor Documentation

◆ OpLagGapProdGaussPtsSlave()

SimpleContactProblem::OpLagGapProdGaussPtsSlave::OpLagGapProdGaussPtsSlave ( const string  lagrange_field_name,
boost::shared_ptr< CommonDataSimpleContact common_data_contact 
)
inline

Definition at line 945 of file SimpleContact.hpp.

948  : ContactOp(lagrange_field_name, UserDataOperator::OPROW,
949  ContactOp::FACESLAVE),
950  commonDataSimpleContact(common_data_contact) {}

Member Function Documentation

◆ doWork()

MoFEMErrorCode SimpleContactProblem::OpLagGapProdGaussPtsSlave::doWork ( int  side,
EntityType  type,
EntData data 
)

Definition at line 1503 of file SimpleContact.cpp.

1504  {
1506 
1507  if (type != MBVERTEX)
1509 
1510  const int nb_gauss_pts = data.getN().size1();
1511 
1512  commonDataSimpleContact->lagGapProdPtr.get()->resize(nb_gauss_pts);
1513  commonDataSimpleContact->lagGapProdPtr.get()->clear();
1514 
1515  int nb_base_fun_row = data.getFieldData().size();
1516 
1517  auto t_lagrange_slave =
1518  getFTensor0FromVec(*commonDataSimpleContact->lagMultAtGaussPtsPtr);
1519 
1520  auto t_lag_gap_prod_slave =
1522 
1523  auto t_gap_ptr = getFTensor0FromVec(*commonDataSimpleContact->gapPtr);
1524 
1525  for (int gg = 0; gg != nb_gauss_pts; ++gg) {
1526  t_lag_gap_prod_slave += t_gap_ptr * t_lagrange_slave;
1527  ++t_gap_ptr;
1528  ++t_lag_gap_prod_slave;
1529  ++t_lagrange_slave;
1530  }
1531 
1533 }

Member Data Documentation

◆ commonDataSimpleContact

boost::shared_ptr<CommonDataSimpleContact> SimpleContactProblem::OpLagGapProdGaussPtsSlave::commonDataSimpleContact

Definition at line 944 of file SimpleContact.hpp.


The documentation for this struct was generated from the following files:
MoFEMFunctionReturnHot
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:447
MoFEM::EntitiesFieldData::EntData::getFieldData
const VectorDouble & getFieldData() const
get dofs values
Definition: EntitiesFieldData.hpp:1241
SimpleContactProblem::OpLagGapProdGaussPtsSlave::commonDataSimpleContact
boost::shared_ptr< CommonDataSimpleContact > commonDataSimpleContact
Definition: SimpleContact.hpp:944
convert.type
type
Definition: convert.py:64
MoFEM::getFTensor0FromVec
static auto getFTensor0FromVec(ublas::vector< T, A > &data)
Get tensor rank 0 (scalar) form data vector.
Definition: Templates.hpp:135
SimpleContactProblem::ContactOp
ContactPrismElementForcesAndSourcesCore::UserDataOperator ContactOp
Definition: SimpleContact.hpp:30
MoFEM::EntitiesFieldData::EntData::getN
MatrixDouble & getN(const FieldApproximationBase base)
get base functions this return matrix (nb. of rows is equal to nb. of Gauss pts, nb....
Definition: EntitiesFieldData.hpp:1305
MoFEMFunctionReturn
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:416
MoFEMFunctionBegin
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:346
MoFEM::ForcesAndSourcesCore::UserDataOperator::OPROW
@ OPROW
operator doWork function is executed on FE rows
Definition: ForcesAndSourcesCore.hpp:567