v0.13.0
Public Member Functions | Public Attributes | List of all members
PeriodicNitscheConstrains::OpGetVolumeData Struct Reference

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

Inherits VolumeElementForcesAndSourcesCore::UserDataOperator.

Collaboration diagram for PeriodicNitscheConstrains::OpGetVolumeData:
[legend]

Public Member Functions

 OpGetVolumeData (NonlinearElasticElement::CommonData &common_data, CommonData &periodic_common_data)
 
PetscErrorCode doWork (int side, EntityType type, DataForcesAndSourcesCore::EntData &data)
 

Public Attributes

NonlinearElasticElement::CommonDatacommonData
 
CommonDataperiodicCommonData
 

Detailed Description

Definition at line 188 of file NitschePeriodicMethod.hpp.

Constructor & Destructor Documentation

◆ OpGetVolumeData()

PeriodicNitscheConstrains::OpGetVolumeData::OpGetVolumeData ( NonlinearElasticElement::CommonData common_data,
CommonData periodic_common_data 
)

Definition at line 193 of file NitschePeriodicMethod.hpp.

196  :
198  commonData(common_data),
199  periodicCommonData(periodic_common_data) {
200  }
ForcesAndSourcesCore::UserDataOperator UserDataOperator
NonlinearElasticElement::CommonData & commonData

Member Function Documentation

◆ doWork()

PetscErrorCode PeriodicNitscheConstrains::OpGetVolumeData::doWork ( int  side,
EntityType  type,
DataForcesAndSourcesCore::EntData data 
)

Definition at line 202 of file NitschePeriodicMethod.hpp.

202  {
203  PetscFunctionBegin;
204  if(data.getIndices().size()==0) PetscFunctionReturn(0);
205  try {
206  EntityHandle this_tet = getNumeredEntFiniteElementPtr()->getEnt();
207  int nb_gauss_pts = data.getN().size1();
208  for(int ffgg = 0;ffgg<nb_gauss_pts;ffgg++) {
209  int gg = periodicCommonData.inTetTetGaussPtsNumber[this_tet][ffgg];
210  CommonData::MultiIndexData gauss_pt_data(gg,side,type);
211  pair<CommonData::Container::iterator,bool> p;
212  p = periodicCommonData.volumesContainer.insert(gauss_pt_data);
213  if(!p.second) {
214  SETERRQ(PETSC_COMM_SELF,MOFEM_DATA_INCONSISTENCY,"data not inserted");
215  }
216  CommonData::MultiIndexData &p_data = const_cast<CommonData::MultiIndexData&>(*p.first);
217  MatrixDouble &diff_shape_fun = p_data.diffShapeFunctions;
218  diff_shape_fun = data.getDiffN(ffgg);
219  p_data.iNdices = data.getIndices();
220  if(type == MBVERTEX) {
223  }
224  }
225  } catch (const std::exception& ex) {
226  ostringstream ss;
227  ss << "throw in method: " << ex.what() << endl;
228  SETERRQ(PETSC_COMM_SELF,1,ss.str().c_str());
229  }
230  PetscFunctionReturn(0);
231  }
static Index< 'p', 3 > p
@ MOFEM_DATA_INCONSISTENCY
Definition: definitions.h:44
UBlasMatrix< double > MatrixDouble
Definition: Types.hpp:88
std::vector< MatrixDouble > jacStress
this is simply material tangent operator
std::vector< MatrixDouble3by3 > sTress
map< EntityHandle, vector< int > > inTetTetGaussPtsNumber

Member Data Documentation

◆ commonData

NonlinearElasticElement::CommonData& PeriodicNitscheConstrains::OpGetVolumeData::commonData

Definition at line 190 of file NitschePeriodicMethod.hpp.

◆ periodicCommonData

CommonData& PeriodicNitscheConstrains::OpGetVolumeData::periodicCommonData

Definition at line 191 of file NitschePeriodicMethod.hpp.


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