v0.10.0
Public Member Functions | Public Attributes | Private Attributes | List of all members
DataAtIntegrationPts Struct Reference

#include <users_modules/basic_finite_elements/src/HookeElement.hpp>

Collaboration diagram for DataAtIntegrationPts:
[legend]

Public Member Functions

 DataAtIntegrationPts ()
 
 DataAtIntegrationPts (MoFEM::Interface &m_field)
 
MoFEMErrorCode getParameters ()
 
MoFEMErrorCode getBlockData (BlockData &data)
 
MoFEMErrorCode setBlocks ()
 

Public Attributes

boost::shared_ptr< MatrixDoublesmallStrainMat
 
boost::shared_ptr< MatrixDoublehMat
 
boost::shared_ptr< MatrixDoubleFMat
 
boost::shared_ptr< MatrixDoubleHMat
 
boost::shared_ptr< VectorDoubledetHVec
 
boost::shared_ptr< MatrixDoubleinvHMat
 
boost::shared_ptr< MatrixDoublecauchyStressMat
 
boost::shared_ptr< MatrixDoublestiffnessMat
 
boost::shared_ptr< VectorDoubleenergyVec
 
boost::shared_ptr< MatrixDoubleeshelbyStressMat
 
boost::shared_ptr< MatrixDoubleeshelbyStress_dx
 
Range forcesOnlyOnEntitiesRow
 
Range forcesOnlyOnEntitiesCol
 
boost::shared_ptr< MatrixDouble > gradDispPtr
 
boost::shared_ptr< VectorDouble > pPtr
 
FTensor::Ddg< double, 3, 3 > tD
 
double pOisson
 
double yOung
 
double lAmbda
 
double mU
 
std::map< int, BlockDatasetOfBlocksData
 

Private Attributes

MoFEM::InterfacemField
 

Detailed Description

Examples
ElasticityMixedFormulation.hpp, EshelbianPlasticity.cpp, HookeElement.cpp, HookeElement.hpp, and elasticity_mixed_formulation.cpp.

Definition at line 92 of file HookeElement.hpp.

Constructor & Destructor Documentation

◆ DataAtIntegrationPts() [1/2]

DataAtIntegrationPts::DataAtIntegrationPts ( )
Examples
ElasticityMixedFormulation.hpp.

Definition at line 109 of file HookeElement.hpp.

109  {
110 
111  smallStrainMat = boost::shared_ptr<MatrixDouble>(new MatrixDouble());
112  hMat = boost::shared_ptr<MatrixDouble>(new MatrixDouble());
113  FMat = boost::shared_ptr<MatrixDouble>(new MatrixDouble());
114 
115  HMat = boost::shared_ptr<MatrixDouble>(new MatrixDouble());
116  detHVec = boost::shared_ptr<VectorDouble>(new VectorDouble());
117  invHMat = boost::shared_ptr<MatrixDouble>(new MatrixDouble());
118 
119  cauchyStressMat = boost::shared_ptr<MatrixDouble>(new MatrixDouble());
120  stiffnessMat = boost::shared_ptr<MatrixDouble>(new MatrixDouble());
121  energyVec = boost::shared_ptr<VectorDouble>(new VectorDouble());
122  eshelbyStressMat = boost::shared_ptr<MatrixDouble>(new MatrixDouble());
123  stiffnessMat = boost::shared_ptr<MatrixDouble>(new MatrixDouble());
124 
125  eshelbyStress_dx = boost::shared_ptr<MatrixDouble>(new MatrixDouble());
126  }
ublas::vector< double, DoubleAllocator > VectorDouble
Definition: Types.hpp:74
ublas::matrix< double, ublas::row_major, DoubleAllocator > MatrixDouble
Definition: Types.hpp:76
boost::shared_ptr< MatrixDouble > HMat
boost::shared_ptr< MatrixDouble > invHMat
boost::shared_ptr< MatrixDouble > smallStrainMat
boost::shared_ptr< MatrixDouble > cauchyStressMat
boost::shared_ptr< MatrixDouble > eshelbyStress_dx
boost::shared_ptr< MatrixDouble > FMat
boost::shared_ptr< MatrixDouble > eshelbyStressMat
boost::shared_ptr< MatrixDouble > stiffnessMat
boost::shared_ptr< MatrixDouble > hMat
boost::shared_ptr< VectorDouble > energyVec
boost::shared_ptr< VectorDouble > detHVec

◆ DataAtIntegrationPts() [2/2]

DataAtIntegrationPts::DataAtIntegrationPts ( MoFEM::Interface m_field)

Definition at line 46 of file ElasticityMixedFormulation.hpp.

46  : mField(m_field) {
47 
48  // Setting default values for coeffcients
49  gradDispPtr = boost::shared_ptr<MatrixDouble>(new MatrixDouble());
50  pPtr = boost::shared_ptr<VectorDouble>(new VectorDouble());
51 
52  ierr = setBlocks();
53  CHKERRABORT(PETSC_COMM_WORLD, ierr);
54  }
static MoFEMErrorCodeGeneric< PetscErrorCode > ierr
Definition: Exceptions.hpp:87
boost::shared_ptr< MatrixDouble > gradDispPtr
boost::shared_ptr< VectorDouble > pPtr

Member Function Documentation

◆ getBlockData()

MoFEMErrorCode DataAtIntegrationPts::getBlockData ( BlockData data)
Examples
ElasticityMixedFormulation.hpp.

Definition at line 65 of file ElasticityMixedFormulation.hpp.

65  {
67 
68  yOung = data.yOung;
69  pOisson = data.pOisson;
70  lAmbda = (yOung * pOisson) / ((1. + pOisson) * (1. - 2. * pOisson));
71  mU = yOung / (2. * (1. + pOisson));
72 
77 
78  tD(i, j, k, l) = 0.;
79 
80  tD(0, 0, 0, 0) = 2 * mU;
81  tD(0, 1, 0, 1) = mU;
82  tD(0, 1, 1, 0) = mU;
83  tD(0, 2, 0, 2) = mU;
84  tD(0, 2, 2, 0) = mU;
85  tD(1, 0, 0, 1) = mU;
86  tD(1, 0, 1, 0) = mU;
87  tD(1, 1, 1, 1) = 2 * mU;
88  tD(1, 2, 1, 2) = mU;
89  tD(1, 2, 2, 1) = mU;
90  tD(2, 0, 0, 2) = mU;
91  tD(2, 0, 2, 0) = mU;
92  tD(2, 1, 1, 2) = mU;
93  tD(2, 1, 2, 1) = mU;
94  tD(2, 2, 2, 2) = 2 * mU;
95 
97  }
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:415
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:485
FTensor::Index< 'l', 3 > l
FTensor::Index< 'j', 3 > j
FTensor::Index< 'i', 3 > i
FTensor::Index< 'k', 3 > k
FTensor::Ddg< double, 3, 3 > tD

◆ getParameters()

MoFEMErrorCode DataAtIntegrationPts::getParameters ( )
Examples
ElasticityMixedFormulation.hpp, and elasticity_mixed_formulation.cpp.

Definition at line 56 of file ElasticityMixedFormulation.hpp.

56  {
57  MoFEMFunctionBegin; // They will be overwriten by BlockData
58  CHKERR PetscOptionsBegin(PETSC_COMM_WORLD, "", "Problem", "none");
59 
60  ierr = PetscOptionsEnd();
61  CHKERRQ(ierr);
63  }
#define CHKERR
Inline error check.
Definition: definitions.h:604

◆ setBlocks()

MoFEMErrorCode DataAtIntegrationPts::setBlocks ( )
Examples
ElasticityMixedFormulation.hpp.

Definition at line 99 of file ElasticityMixedFormulation.hpp.

99  {
102  mField, BLOCKSET | MAT_ELASTICSET, it)) {
103  Mat_Elastic mydata;
104  CHKERR it->getAttributeDataStructure(mydata);
105  int id = it->getMeshsetId();
106  EntityHandle meshset = it->getMeshset();
107  CHKERR mField.get_moab().get_entities_by_type(
108  meshset, MBTET, setOfBlocksData[id].tEts, true);
109  setOfBlocksData[id].iD = id;
110  setOfBlocksData[id].yOung = mydata.data.Young;
111  setOfBlocksData[id].pOisson = mydata.data.Poisson;
112  }
114  }
@ MAT_ELASTICSET
block name is "MAT_ELASTIC"
Definition: definitions.h:228
@ BLOCKSET
Definition: definitions.h:217
#define _IT_CUBITMESHSETS_BY_BCDATA_TYPE_FOR_LOOP_(MESHSET_MANAGER, CUBITBCTYPE, IT)
Iterator that loops over a specific Cubit MeshSet in a moFEM field.
std::map< int, BlockData > setOfBlocksData
virtual moab::Interface & get_moab()=0

Member Data Documentation

◆ cauchyStressMat

boost::shared_ptr<MatrixDouble> DataAtIntegrationPts::cauchyStressMat

Definition at line 102 of file HookeElement.hpp.

◆ detHVec

boost::shared_ptr<VectorDouble> DataAtIntegrationPts::detHVec

Definition at line 99 of file HookeElement.hpp.

◆ energyVec

boost::shared_ptr<VectorDouble> DataAtIntegrationPts::energyVec

Definition at line 104 of file HookeElement.hpp.

◆ eshelbyStress_dx

boost::shared_ptr<MatrixDouble> DataAtIntegrationPts::eshelbyStress_dx

Definition at line 107 of file HookeElement.hpp.

◆ eshelbyStressMat

boost::shared_ptr<MatrixDouble> DataAtIntegrationPts::eshelbyStressMat

Definition at line 105 of file HookeElement.hpp.

◆ FMat

boost::shared_ptr<MatrixDouble> DataAtIntegrationPts::FMat

Definition at line 96 of file HookeElement.hpp.

◆ forcesOnlyOnEntitiesCol

Range DataAtIntegrationPts::forcesOnlyOnEntitiesCol

Definition at line 129 of file HookeElement.hpp.

◆ forcesOnlyOnEntitiesRow

Range DataAtIntegrationPts::forcesOnlyOnEntitiesRow

Definition at line 128 of file HookeElement.hpp.

◆ gradDispPtr

boost::shared_ptr<MatrixDouble> DataAtIntegrationPts::gradDispPtr

◆ hMat

boost::shared_ptr<MatrixDouble> DataAtIntegrationPts::hMat

Definition at line 95 of file HookeElement.hpp.

◆ HMat

boost::shared_ptr<MatrixDouble> DataAtIntegrationPts::HMat

Definition at line 98 of file HookeElement.hpp.

◆ invHMat

boost::shared_ptr<MatrixDouble> DataAtIntegrationPts::invHMat

Definition at line 100 of file HookeElement.hpp.

◆ lAmbda

double DataAtIntegrationPts::lAmbda

◆ mField

MoFEM::Interface& DataAtIntegrationPts::mField
private

◆ mU

double DataAtIntegrationPts::mU

◆ pOisson

double DataAtIntegrationPts::pOisson

◆ pPtr

boost::shared_ptr<VectorDouble> DataAtIntegrationPts::pPtr

◆ setOfBlocksData

std::map<int, BlockData> DataAtIntegrationPts::setOfBlocksData

◆ smallStrainMat

boost::shared_ptr<MatrixDouble> DataAtIntegrationPts::smallStrainMat

Definition at line 94 of file HookeElement.hpp.

◆ stiffnessMat

boost::shared_ptr<MatrixDouble> DataAtIntegrationPts::stiffnessMat

Definition at line 103 of file HookeElement.hpp.

◆ tD

FTensor::Ddg<double, 3, 3> DataAtIntegrationPts::tD

◆ yOung

double DataAtIntegrationPts::yOung

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