v0.15.0
Loading...
Searching...
No Matches
ElasticExample::OpCalculateTraction Struct Reference

#include "tutorials/vec-0/src/CalculateTraction.hpp"

Inheritance diagram for ElasticExample::OpCalculateTraction:
[legend]
Collaboration diagram for ElasticExample::OpCalculateTraction:
[legend]

Public Member Functions

 OpCalculateTraction (boost::shared_ptr< MatrixDouble > stress_ptr, boost::shared_ptr< MatrixDouble > traction_ptr)
 
MoFEMErrorCode doWork (int side, EntityType type, EntData &data)
 

Private Attributes

boost::shared_ptr< MatrixDouble > stressPtr
 
boost::shared_ptr< MatrixDouble > tractionPtr
 

Detailed Description

Examples
mofem/tutorials/vec-7/adjoint.cpp.

Definition at line 12 of file CalculateTraction.hpp.

Constructor & Destructor Documentation

◆ OpCalculateTraction()

ElasticExample::OpCalculateTraction::OpCalculateTraction ( boost::shared_ptr< MatrixDouble > stress_ptr,
boost::shared_ptr< MatrixDouble > traction_ptr )
inline

Definition at line 13 of file CalculateTraction.hpp.

15 : BoundaryEleOp(NOSPACE, BoundaryEleOp::OPSPACE), stressPtr(stress_ptr),
16 tractionPtr(traction_ptr) {}
BoundaryEle::UserDataOperator BoundaryEleOp
@ NOSPACE
Definition definitions.h:83
boost::shared_ptr< MatrixDouble > tractionPtr
boost::shared_ptr< MatrixDouble > stressPtr

Member Function Documentation

◆ doWork()

MoFEMErrorCode ElasticExample::OpCalculateTraction::doWork ( int side,
EntityType type,
EntData & data )
inline

Definition at line 18 of file CalculateTraction.hpp.

18 {
22 auto nb_int_pts = getGaussPts().size2();
23 tractionPtr->resize(SPACE_DIM, nb_int_pts, false);
24 auto t_normal = getFTensor1NormalsAtGaussPts();
25 auto t_stress = getFTensor2SymmetricFromMat<SPACE_DIM>(*stressPtr);
26 auto t_traction = getFTensor1FromMat<SPACE_DIM>(*tractionPtr);
27 for (auto gg = 0; gg != nb_int_pts; ++gg) {
28 const auto l = std::sqrt(t_normal(j) * t_normal(j));
29 t_traction(i) = (t_stress(i, j) * t_normal(j)) / l;
30 ++t_normal;
31 ++t_stress;
32 ++t_traction;
33 }
35 }
constexpr int SPACE_DIM
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
FTensor::Index< 'i', SPACE_DIM > i
FTensor::Index< 'l', 3 > l
FTensor::Index< 'j', 3 > j

Member Data Documentation

◆ stressPtr

boost::shared_ptr<MatrixDouble> ElasticExample::OpCalculateTraction::stressPtr
private

Definition at line 38 of file CalculateTraction.hpp.

◆ tractionPtr

boost::shared_ptr<MatrixDouble> ElasticExample::OpCalculateTraction::tractionPtr
private

Definition at line 39 of file CalculateTraction.hpp.


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