v0.14.0
Public Member Functions | Public Attributes | List of all members
BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd Struct Reference

#include <users_modules/homogenisation/src/BCs_RVELagrange_Periodic.hpp>

Inheritance diagram for BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd:
[legend]
Collaboration diagram for BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd:
[legend]

Public Member Functions

 OpRVEBCsPeriodicColInd (const string field_name, RVEBC_Data_Periodic &data, CommonDataPeriodic &common_data_periodic, CommonFunctionsPeriodic &common_functions_periodic, bool ho_geometry=false)
 
PetscErrorCode doWork (int side, EntityType type, DataForcesAndSourcesCore::EntData &data)
 

Public Attributes

RVEBC_Data_PeriodicdAta
 
bool hoGeometry
 
CommonDataPeriodiccommonDataPeriodic
 
CommonFunctionsPeriodiccommonFunctionsPeriodic
 
ublas::vector< VectorDouble > field_data_nodes
 
MatrixDouble N_mat
 

Detailed Description

Definition at line 161 of file BCs_RVELagrange_Periodic.hpp.

Constructor & Destructor Documentation

◆ OpRVEBCsPeriodicColInd()

BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd::OpRVEBCsPeriodicColInd ( const string  field_name,
RVEBC_Data_Periodic data,
CommonDataPeriodic common_data_periodic,
CommonFunctionsPeriodic common_functions_periodic,
bool  ho_geometry = false 
)
inline

Definition at line 168 of file BCs_RVELagrange_Periodic.hpp.

174  :
177  ),
178  dAta(data),
179  hoGeometry(ho_geometry),
180  commonDataPeriodic(common_data_periodic),
181  commonFunctionsPeriodic(common_functions_periodic) {
182  }

Member Function Documentation

◆ doWork()

PetscErrorCode BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd::doWork ( int  side,
EntityType  type,
DataForcesAndSourcesCore::EntData data 
)
inline

Definition at line 189 of file BCs_RVELagrange_Periodic.hpp.

189  {
190  PetscFunctionBegin;
191 
192  if(type==MBVERTEX){
193  commonDataPeriodic.ColInd.resize(2);
194  commonDataPeriodic.ColN.resize(2);
195  }
196  int nb;
197  //Global indices Columns
198  if(data.getIndices().size()==0) PetscFunctionReturn(0);
199 
200  switch(type){
201  case MBVERTEX:
202  nb=data.getIndices().size()/2; //for one face for nodes only (total indieces are for both faces)
203  commonDataPeriodic.ColInd[0][type][side].resize(nb); //1st face of prism -- nodes
204  commonDataPeriodic.ColInd[1][type][side].resize(nb); //2nd face of prism -- nodes
205  //different indices for cols
206  for(int ii=0; ii<nb; ii++){
207  commonDataPeriodic.ColInd[0][type][side][ii]=data.getIndices()[ii];
208  commonDataPeriodic.ColInd[1][type][side][ii]=data.getIndices()[ii+nb];
209  }
210 // cout<<"commonDataPeriodic.ColInd[0] "<<"type "<<type << " side "<< side << " = "<< commonDataPeriodic.ColInd[0][type][side]<<endl;
211 // cout<<"commonDataPeriodic.ColInd[0] "<<"type "<<type << " side "<< side << " = "<< commonDataPeriodic.ColInd[1][type][side]<<endl;
212 // cout<<"type "<<type << " side "<< side <<endl;
213  commonDataPeriodic.ColN[0][type][side]=data.getN();
214  commonDataPeriodic.ColN[1][type][side]=data.getN();
215  break;
216  case MBEDGE:
217  if(side<3){ //1st face eges 0, 1, 2 (cananical numbering)-- same indices for both faces
218  commonDataPeriodic.ColInd[0][type][side]=data.getIndices();
219  commonDataPeriodic.ColN[0][type][side]=data.getN();
220 // cout<<"col_type "<<col_type << " col_side "<< col_side <<endl;
221 // cout<<"col_data.getIndices "<<col_data.getIndices()<<endl;
222  }
223  else if (side >= 6){ //2nd face edges 6,7,8
224  commonDataPeriodic.ColInd[1][type][side-6]=data.getIndices();
225  commonDataPeriodic.ColN[1][type][side-6]=data.getN();
226 // cout<<"col_type "<<col_type << " col_side "<< col_side <<endl;
227  }
228  break;
229  case MBTRI:
230  if(side==3){//1st face face 3
231  commonDataPeriodic.ColInd[0][type][side]=data.getIndices();
232  commonDataPeriodic.ColN[0][type][side]=data.getN();
233  }
234  else{ //2nd face face 4
235  commonDataPeriodic.ColInd[1][type][side-1]=data.getIndices();
236  commonDataPeriodic.ColN[1][type][side-1]=data.getN();
237  }
238  break;
239  default:
240  SETERRQ(PETSC_COMM_SELF,1,"data inconsitency");
241  }
242  PetscFunctionReturn(0);
243  }

Member Data Documentation

◆ commonDataPeriodic

CommonDataPeriodic& BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd::commonDataPeriodic

Definition at line 165 of file BCs_RVELagrange_Periodic.hpp.

◆ commonFunctionsPeriodic

CommonFunctionsPeriodic& BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd::commonFunctionsPeriodic

Definition at line 166 of file BCs_RVELagrange_Periodic.hpp.

◆ dAta

RVEBC_Data_Periodic& BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd::dAta

Definition at line 163 of file BCs_RVELagrange_Periodic.hpp.

◆ field_data_nodes

ublas::vector<VectorDouble > BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd::field_data_nodes

Definition at line 185 of file BCs_RVELagrange_Periodic.hpp.

◆ hoGeometry

bool BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd::hoGeometry

Definition at line 164 of file BCs_RVELagrange_Periodic.hpp.

◆ N_mat

MatrixDouble BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd::N_mat

Definition at line 186 of file BCs_RVELagrange_Periodic.hpp.


The documentation for this struct was generated from the following file:
BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd::dAta
RVEBC_Data_Periodic & dAta
Definition: BCs_RVELagrange_Periodic.hpp:163
BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd::hoGeometry
bool hoGeometry
Definition: BCs_RVELagrange_Periodic.hpp:164
convert.type
type
Definition: convert.py:64
MoFEM::ForcesAndSourcesCore::UserDataOperator::OPCOL
@ OPCOL
operator doWork function is executed on FE columns
Definition: ForcesAndSourcesCore.hpp:568
BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd::commonDataPeriodic
CommonDataPeriodic & commonDataPeriodic
Definition: BCs_RVELagrange_Periodic.hpp:165
BCs_RVELagrange_Periodic::CommonDataPeriodic::ColInd
ublas::vector< map< EntityType, map< int, ublas::vector< int > > > > ColInd
Definition: BCs_RVELagrange_Periodic.hpp:143
field_name
constexpr auto field_name
Definition: poisson_2d_homogeneous.cpp:13
UserDataOperator
ForcesAndSourcesCore::UserDataOperator UserDataOperator
Definition: HookeElement.hpp:75
BCs_RVELagrange_Periodic::CommonDataPeriodic::ColN
ublas::vector< map< EntityType, map< int, MatrixDouble > > > ColN
Definition: BCs_RVELagrange_Periodic.hpp:148
BCs_RVELagrange_Periodic::OpRVEBCsPeriodicColInd::commonFunctionsPeriodic
CommonFunctionsPeriodic & commonFunctionsPeriodic
Definition: BCs_RVELagrange_Periodic.hpp:166