v0.14.0
Loading...
Searching...
No Matches
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 :
197 VolumeElementForcesAndSourcesCore::UserDataOperator("DISPLACEMENT",OPROW),
198 commonData(common_data),
199 periodicCommonData(periodic_common_data) {
200 }
NonlinearElasticElement::CommonData & commonData

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 }
static Index< 'p', 3 > p
@ MOFEM_DATA_INCONSISTENCY
Definition: definitions.h:31
UBlasMatrix< double > MatrixDouble
Definition: Types.hpp:77
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: