20#ifndef __BCSRVEVOLUME_HPP
21#define __BCSRVEVOLUME_HPP
26 struct MyVolumeFE:
public VolumeElementForcesAndSourcesCore {
41 struct OpVolumeCal:
public VolumeElementForcesAndSourcesCore::UserDataOperator {
51 int row_side,
int col_side,
52 EntityType row_type,EntityType col_type,
53 DataForcesAndSurcesCore::EntData &row_data,
54 DataForcesAndSurcesCore::EntData &col_data) {
56 if(
dAta.
tEts.find(getNumeredEntFiniteElementPtr()->getEnt()) ==
dAta.
tEts.end()) {
57 PetscFunctionReturn(0);
61 if(row_type == MBVERTEX && col_type==MBVERTEX) {
64 int Indices[1]; Indices[0]=pcomm->rank();
65 double Vol_elm[1]; Vol_elm[0]=0;
66 for(
unsigned int gg = 0;gg<row_data.getN().size1();gg++) {
67 if(getHoGaussPtsDetJac().
size()>0) {
70 Vol_elm[0]+=getVolume()*getGaussPts()(3,gg)*getHoGaussPtsDetJac()[gg];
73 Vol_elm[0]+=getVolume()*getGaussPts()(3,gg);
81 PetscFunctionReturn(0);
90 map<int,NonlinearElasticElement::BlockData>::iterator sit = setOfBlocks.begin();
91 for(;sit!=setOfBlocks.end();sit++) {
ForcesAndSourcesCore::UserDataOperator UserDataOperator
static PetscErrorCode ierr
#define MYPCOMM_INDEX
default communicator number PCOMM
constexpr auto field_name
definition of volume element
MyVolumeFE(MoFEM::Interface &_mField)
NonlinearElasticElement::BlockData & dAta
MoFEM::Interface & mField
PetscErrorCode doWork(int row_side, int col_side, EntityType row_type, EntityType col_type, DataForcesAndSurcesCore::EntData &row_data, DataForcesAndSurcesCore::EntData &col_data)
OpVolumeCal(MoFEM::Interface &m_field, string field_name, Vec _RVE_volume_Vec, NonlinearElasticElement::BlockData &data)
BCs_RVEVolume(MoFEM::Interface &m_field)
MoFEM::Interface & mField
PetscErrorCode setRVEVolumeOperators(MoFEM::Interface &mField, string field_name, Vec _RVE_volume_Vec, map< int, NonlinearElasticElement::BlockData > &setOfBlocks)
MyVolumeFE & getLoopFeLhs()
get lhs volume element
virtual moab::Interface & get_moab()=0
Deprecated interface functions.
data for calculation heat conductivity and heat capacity elements
Range tEts
constrains elements in block set