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

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

Inheritance diagram for PeriodicNitscheConstrains::OpGetVolumeData:
[legend]
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 
)
inline

Definition at line 193 of file NitschePeriodicMethod.hpp.

196  :
198  commonData(common_data),
199  periodicCommonData(periodic_common_data) {
200  }

Member Function Documentation

◆ doWork()

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

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  }

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:
EntityHandle
NonlinearElasticElement::CommonData::jacStress
std::vector< MatrixDouble > jacStress
this is simply material tangent operator
Definition: NonLinearElasticElement.hpp:113
PeriodicNitscheConstrains::CommonData::inTetTetGaussPtsNumber
map< EntityHandle, vector< int > > inTetTetGaussPtsNumber
Definition: NitschePeriodicMethod.hpp:37
PeriodicNitscheConstrains::OpGetVolumeData::periodicCommonData
CommonData & periodicCommonData
Definition: NitschePeriodicMethod.hpp:191
MoFEM::Types::MatrixDouble
UBlasMatrix< double > MatrixDouble
Definition: Types.hpp:77
convert.type
type
Definition: convert.py:64
PeriodicNitscheConstrains::CommonData::sTress
vector< MatrixDouble > sTress
Definition: NitschePeriodicMethod.hpp:43
PeriodicNitscheConstrains::OpGetVolumeData::commonData
NonlinearElasticElement::CommonData & commonData
Definition: NitschePeriodicMethod.hpp:190
NonlinearElasticElement::CommonData::sTress
std::vector< MatrixDouble3by3 > sTress
Definition: NonLinearElasticElement.hpp:111
PeriodicNitscheConstrains::CommonData::stressJacobian
vector< MatrixDouble > stressJacobian
Definition: NitschePeriodicMethod.hpp:42
UserDataOperator
ForcesAndSourcesCore::UserDataOperator UserDataOperator
Definition: HookeElement.hpp:75
MOFEM_DATA_INCONSISTENCY
@ MOFEM_DATA_INCONSISTENCY
Definition: definitions.h:31
PeriodicNitscheConstrains::CommonData::volumesContainer
Container volumesContainer
Definition: NitschePeriodicMethod.hpp:78