15 #ifndef __BCS_RVELAGRANGE_TRAC_RIGID_TRANS_HPP
16 #define __BCS_RVELAGRANGE_TRAC_RIGID_TRANS_HPP
41 int row_side,
int col_side,
42 EntityType row_type,EntityType col_type,
49 if(row_data.getIndices().size()==0) PetscFunctionReturn(0);
50 if(col_data.getIndices().size()==0) PetscFunctionReturn(0);
51 if(col_type==MBVERTEX) {
54 getNumeredEntFiniteElementPtr()->getRowDofsByPetscGlobalDofIdx(
55 col_data.getIndices()[0]);
56 const FENumeredDofEntity *dof_ptr;
57 if (
auto ptr = weak_ptr_dof.lock())
62 int rank = dof_ptr->getNbOfCoeffs();
71 for(
int nn=0; nn<3; nn++){
83 SETERRQ(PETSC_COMM_SELF,1,
"not implemented");
87 int nb_rows=row_data.getIndices().size();
88 int nb_cols=col_data.getIndices().size();
90 Aij,nb_rows,&row_data.getIndices()[0],nb_cols,&col_data.getIndices()[0],&
Mat_face(0,0),ADD_VALUES
96 Aij,nb_cols,&col_data.getIndices()[0],nb_rows,&row_data.getIndices()[0],&
Mat_face_Tran(0,0),ADD_VALUES
100 }
catch (
const std::exception& ex) {
102 ss <<
"throw in method: " << ex.what() << endl;
103 SETERRQ(PETSC_COMM_SELF,1,ss.str().c_str());
105 PetscFunctionReturn(0);
110 string field_name,
string lagrang_field_name,Mat aij,map<int,RVEBC_Data>
setOfRVEBC
113 map<int,RVEBC_Data>::iterator sit =
setOfRVEBC.begin();
116 feRVEBCLhs.getOpPtrVector().push_back(
new OpRVEBCsLhs(field_name,lagrang_field_name,aij, sit->second));
118 PetscFunctionReturn(0);
ForcesAndSourcesCore::UserDataOperator UserDataOperator
EntitiesFieldData::EntData EntData
@ MOFEM_DATA_INCONSISTENCY
static MoFEMErrorCodeGeneric< PetscErrorCode > ierr
UBlasMatrix< double > MatrixDouble
constexpr auto MatSetValues
map< int, RVEBC_Data > setOfRVEBC
maps side set id with appropriate FluxData
\biref operator to calculate the LHS for the RVE bounary conditions
MatrixDouble Mat_face_Tran
OpRVEBCsLhs(const string field_name, const string lagrang_field_name, Mat aij, RVEBC_Data &data)
PetscErrorCode doWork(int row_side, int col_side, EntityType row_type, EntityType col_type, DataForcesAndSourcesCore::EntData &row_data, DataForcesAndSourcesCore::EntData &col_data)
PetscErrorCode setRVEBCsRigidBodyTranOperators(string field_name, string lagrang_field_name, Mat aij, map< int, RVEBC_Data > setOfRVEBC)
BCs_RVELagrange_Trac_Rigid_Trans(MoFEM::Interface &m_field)
Deprecated interface functions.