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

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

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

Public Member Functions

 OpRVEBCsPeriodicRowInd (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 249 of file BCs_RVELagrange_Periodic.hpp.

Constructor & Destructor Documentation

◆ OpRVEBCsPeriodicRowInd()

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

Definition at line 256 of file BCs_RVELagrange_Periodic.hpp.

262  :
265  ),
266  dAta(data),
267  hoGeometry(ho_geometry),
268  commonDataPeriodic(common_data_periodic),
269  commonFunctionsPeriodic(common_functions_periodic) {
270  }

Member Function Documentation

◆ doWork()

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

Definition at line 277 of file BCs_RVELagrange_Periodic.hpp.

277  {
278  PetscFunctionBegin;
279 // cout<<"type "<<type << " side "<< side <<endl;
280  if(data.getIndices().size()==0) PetscFunctionReturn(0);
281  if(type == MBEDGE && side >= 3) PetscFunctionReturn(0); //ignore second triangel edges (cananical number 6 to 8)
282  if(type == MBTRI && side == 4) PetscFunctionReturn(0); //ignore second triangel face (cananical number 4)
283 
284 
285  if(type==MBVERTEX){
286  commonDataPeriodic.RowInd.resize(2);
287  commonDataPeriodic.RowN.resize(2);
288  }
289 
290  int nb;
291  //Global indices Rows
292  switch(type){
293  case MBVERTEX:
294  nb=data.getIndices().size()/2;
295  commonDataPeriodic.RowInd[0][type][side].resize(nb); //1st face of prism -- nodes
296  commonDataPeriodic.RowInd[1][type][side].resize(nb); //2nd face of prism -- nodes
297 
298  //same indices for rows
299  for(int ii=0; ii<nb; ii++){
300  commonDataPeriodic.RowInd[0][type][side][ii]=data.getIndices()[ii];
301  commonDataPeriodic.RowInd[1][type][side][ii]=data.getIndices()[ii];
302  }
303 // cout<<"type "<<type << " side "<< side <<endl;
304 // cout<<"commonDataPeriodic.RowInd[0] "<<"type "<<type << " side "<< side << " = "<< commonDataPeriodic.RowInd[0][type][side]<<endl;
305  commonDataPeriodic.RowN[0][type][side]=data.getN();
306  commonDataPeriodic.RowN[1][type][side]=data.getN();
307  break;
308  case MBEDGE:
309  if(side<3){ //1st face eges 0, 1, 2 (cananical numbering)-- same indices for both faces
310  commonDataPeriodic.RowInd[0][type][side]=data.getIndices();
311  commonDataPeriodic.RowInd[1][type][side]=data.getIndices();
312  commonDataPeriodic.RowN[0][type][side]=data.getN();
313  commonDataPeriodic.RowN[1][type][side]=data.getN();
314 // cout<<"commonDataPeriodic.RowInd[0] "<<"type "<<type << " side "<< side << " = "<< commonDataPeriodic.RowInd[0][type][side]<<endl;
315 // cout<<"type "<<type << " side "<< side <<endl;
316  }
317  break;
318  case MBTRI:
319  if(side==3){//1st face face 3
320  commonDataPeriodic.RowInd[0][type][side]=data.getIndices();
321  commonDataPeriodic.RowInd[1][type][side]=data.getIndices();
322  commonDataPeriodic.RowN[0][type][side]=data.getN();
323  commonDataPeriodic.RowN[1][type][side]=data.getN();
324  }
325  break;
326  default:
327  SETERRQ(PETSC_COMM_SELF,1,"data inconsitency");
328  }
329 
330 // string aaa;
331 // cin>>aaa;
332  PetscFunctionReturn(0);
333  }

Member Data Documentation

◆ commonDataPeriodic

CommonDataPeriodic& BCs_RVELagrange_Periodic::OpRVEBCsPeriodicRowInd::commonDataPeriodic

Definition at line 253 of file BCs_RVELagrange_Periodic.hpp.

◆ commonFunctionsPeriodic

CommonFunctionsPeriodic& BCs_RVELagrange_Periodic::OpRVEBCsPeriodicRowInd::commonFunctionsPeriodic

Definition at line 254 of file BCs_RVELagrange_Periodic.hpp.

◆ dAta

RVEBC_Data_Periodic& BCs_RVELagrange_Periodic::OpRVEBCsPeriodicRowInd::dAta

Definition at line 251 of file BCs_RVELagrange_Periodic.hpp.

◆ field_data_nodes

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

Definition at line 273 of file BCs_RVELagrange_Periodic.hpp.

◆ hoGeometry

bool BCs_RVELagrange_Periodic::OpRVEBCsPeriodicRowInd::hoGeometry

Definition at line 252 of file BCs_RVELagrange_Periodic.hpp.

◆ N_mat

MatrixDouble BCs_RVELagrange_Periodic::OpRVEBCsPeriodicRowInd::N_mat

Definition at line 274 of file BCs_RVELagrange_Periodic.hpp.


The documentation for this struct was generated from the following file:
BCs_RVELagrange_Periodic::CommonDataPeriodic::RowInd
ublas::vector< map< EntityType, map< int, ublas::vector< int > > > > RowInd
Definition: BCs_RVELagrange_Periodic.hpp:142
BCs_RVELagrange_Periodic::OpRVEBCsPeriodicRowInd::commonDataPeriodic
CommonDataPeriodic & commonDataPeriodic
Definition: BCs_RVELagrange_Periodic.hpp:253
convert.type
type
Definition: convert.py:64
BCs_RVELagrange_Periodic::CommonDataPeriodic::RowN
ublas::vector< map< EntityType, map< int, MatrixDouble > > > RowN
Definition: BCs_RVELagrange_Periodic.hpp:147
field_name
constexpr auto field_name
Definition: poisson_2d_homogeneous.cpp:13
UserDataOperator
ForcesAndSourcesCore::UserDataOperator UserDataOperator
Definition: HookeElement.hpp:75
BCs_RVELagrange_Periodic::OpRVEBCsPeriodicRowInd::dAta
RVEBC_Data_Periodic & dAta
Definition: BCs_RVELagrange_Periodic.hpp:251
BCs_RVELagrange_Periodic::OpRVEBCsPeriodicRowInd::hoGeometry
bool hoGeometry
Definition: BCs_RVELagrange_Periodic.hpp:252
BCs_RVELagrange_Periodic::OpRVEBCsPeriodicRowInd::commonFunctionsPeriodic
CommonFunctionsPeriodic & commonFunctionsPeriodic
Definition: BCs_RVELagrange_Periodic.hpp:254
MoFEM::ForcesAndSourcesCore::UserDataOperator::OPROW
@ OPROW
operator doWork function is executed on FE rows
Definition: ForcesAndSourcesCore.hpp:567