v0.13.2
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
SimpleContactProblem::OpContactALELhs Struct Reference

Operator used as base struct for OpContactTractionSlaveSlave_dX, OpContactTractionMasterSlave_dX, OpContactTractionMasterMaster_dX and OpCalDerIntCompFunSlaveSlave_dX. More...

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

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

Public Member Functions

MoFEMErrorCode doWork (int row_side, int col_side, EntityType row_type, EntityType col_type, EntData &row_data, EntData &col_data)
 
virtual MoFEMErrorCode iNtegrate (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)
 

Public Attributes

boost::shared_ptr< CommonDataSimpleContactcommonDataSimpleContact
 
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
 

Detailed Description

Operator used as base struct for OpContactTractionSlaveSlave_dX, OpContactTractionMasterSlave_dX, OpContactTractionMasterMaster_dX and OpCalDerIntCompFunSlaveSlave_dX.

Definition at line 547 of file SimpleContact.hpp.

Constructor & Destructor Documentation

◆ OpContactALELhs()

SimpleContactProblem::OpContactALELhs::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 
)
inline

Definition at line 576 of file SimpleContact.hpp.

581 : ContactOp(field_name_1, field_name_2, UserDataOperator::OPROWCOL,
582 face_type),
583 commonDataSimpleContact(common_data_contact), rankRow(rank_row),
584 rankCol(rank_col) {
585 sYmm = false; // This will make sure to loop over all entities
586 }
boost::shared_ptr< CommonDataSimpleContact > commonDataSimpleContact
ContactPrismElementForcesAndSourcesCore::UserDataOperator ContactOp

Member Function Documentation

◆ aSsemble()

MoFEMErrorCode SimpleContactProblem::OpContactALELhs::aSsemble ( EntData row_data,
EntData col_data 
)

Definition at line 3957 of file SimpleContact.cpp.

3958 {
3959
3961
3962 // get pointer to first global index on row
3963 const int *row_indices = &*row_data.getIndices().data().begin();
3964 // get pointer to first global index on column
3965 const int *col_indices = &*col_data.getIndices().data().begin();
3966
3967 // assemble local matrix
3968 CHKERR MatSetValues(getSNESB(), row_nb_dofs, row_indices, col_nb_dofs,
3969 col_indices, &*matLhs.data().begin(), ADD_VALUES);
3971}
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:346
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:416
#define CHKERR
Inline error check.
Definition: definitions.h:535
MoFEMErrorCode MatSetValues(Mat M, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, const double *ptr, InsertMode iora)
Assemble PETSc matrix.
const VectorInt & getIndices() const
Get global indices of dofs on entity.

◆ doWork()

MoFEMErrorCode SimpleContactProblem::OpContactALELhs::doWork ( int  row_side,
int  col_side,
EntityType  row_type,
EntityType  col_type,
EntData row_data,
EntData col_data 
)

Definition at line 3841 of file SimpleContact.cpp.

3843 {
3844
3846 row_nb_dofs = row_data.getIndices().size();
3847 if (!row_nb_dofs)
3849 col_nb_dofs = col_data.getIndices().size();
3850 if (!col_nb_dofs)
3852 nb_gauss_pts = row_data.getN().size1();
3853
3854 nb_base_fun_row = row_data.getFieldData().size() / rankRow;
3855 nb_base_fun_col = col_data.getFieldData().size() / rankCol;
3856
3858 matLhs.clear();
3859
3860 // integrate local matrix for entity block
3861 CHKERR iNtegrate(row_data, col_data);
3862
3863 // assemble local matrix
3864 CHKERR aSsemble(row_data, col_data);
3865
3867}
#define MoFEMFunctionReturnHot(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:447
MatrixDouble & getN(const FieldApproximationBase base)
get base functions this return matrix (nb. of rows is equal to nb. of Gauss pts, nb....
const VectorDouble & getFieldData() const
get dofs values
virtual MoFEMErrorCode iNtegrate(EntData &row_data, EntData &col_data)
MoFEMErrorCode aSsemble(EntData &row_data, EntData &col_data)

◆ iNtegrate()

virtual MoFEMErrorCode SimpleContactProblem::OpContactALELhs::iNtegrate ( EntData row_data,
EntData col_data 
)
inlinevirtual

Member Data Documentation

◆ col_nb_dofs

int SimpleContactProblem::OpContactALELhs::col_nb_dofs

Definition at line 556 of file SimpleContact.hpp.

◆ colIndices

VectorInt SimpleContactProblem::OpContactALELhs::colIndices

Definition at line 553 of file SimpleContact.hpp.

◆ commonDataSimpleContact

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

Definition at line 549 of file SimpleContact.hpp.

◆ matLhs

MatrixDouble SimpleContactProblem::OpContactALELhs::matLhs

Definition at line 551 of file SimpleContact.hpp.

◆ nb_base_fun_col

int SimpleContactProblem::OpContactALELhs::nb_base_fun_col

Definition at line 560 of file SimpleContact.hpp.

◆ nb_base_fun_row

int SimpleContactProblem::OpContactALELhs::nb_base_fun_row

Definition at line 559 of file SimpleContact.hpp.

◆ nb_gauss_pts

int SimpleContactProblem::OpContactALELhs::nb_gauss_pts

Definition at line 557 of file SimpleContact.hpp.

◆ rankCol

int SimpleContactProblem::OpContactALELhs::rankCol

Definition at line 563 of file SimpleContact.hpp.

◆ rankRow

int SimpleContactProblem::OpContactALELhs::rankRow

Definition at line 562 of file SimpleContact.hpp.

◆ row_nb_dofs

int SimpleContactProblem::OpContactALELhs::row_nb_dofs

Definition at line 555 of file SimpleContact.hpp.

◆ rowIndices

VectorInt SimpleContactProblem::OpContactALELhs::rowIndices

Definition at line 552 of file SimpleContact.hpp.


The documentation for this struct was generated from the following files: