v0.14.0
Public Member Functions | Private Attributes | List of all members
ADOLCPlasticity::OpRhsImpl< DIM, GAUSS, AssemblyDomainEleOp > Struct Template Reference

#include <users_modules/adolc-plasticity/src/ADOLCPlasticity.hpp>

Inheritance diagram for ADOLCPlasticity::OpRhsImpl< DIM, GAUSS, AssemblyDomainEleOp >:
[legend]
Collaboration diagram for ADOLCPlasticity::OpRhsImpl< DIM, GAUSS, AssemblyDomainEleOp >:
[legend]

Public Member Functions

 OpRhsImpl (std::string field_name, boost::shared_ptr< CommonData > common_data_ptr)
 
MoFEMErrorCode iNtegrate (EntitiesFieldData::EntData &data)
 [OpRhsImpl integrate] More...
 
- Public Member Functions inherited from MoFEM::OpBaseImpl< A, EleOp >
 OpBaseImpl (const std::string row_field_name, const std::string col_field_name, const OpType type, boost::shared_ptr< Range > ents_ptr=nullptr)
 
MoFEMErrorCode doWork (int row_side, int col_side, EntityType row_type, EntityType col_type, EntData &row_data, EntData &col_data)
 Do calculations for the left hand side. More...
 
MoFEMErrorCode doWork (int row_side, EntityType row_type, EntData &row_data)
 Do calculations for the right hand side. More...
 

Private Attributes

boost::shared_ptr< CommonDatacommonDataPtr
 
MatrixDouble baseStorage
 Store tensorial base functions. More...
 

Additional Inherited Members

- Public Types inherited from MoFEM::OpBaseImpl< A, EleOp >
using OpType = typename EleOp::OpType
 
using EntData = EntitiesFieldData::EntData
 
using MatSetValuesHook = boost::function< MoFEMErrorCode(ForcesAndSourcesCore::UserDataOperator *op_ptr, const EntitiesFieldData::EntData &row_data, const EntitiesFieldData::EntData &col_data, MatrixDouble &m)>
 
- Public Attributes inherited from MoFEM::OpBaseImpl< A, EleOp >
TimeFun timeScalingFun
 assumes that time variable is set More...
 
FEFun feScalingFun
 assumes that time variable is set More...
 
boost::shared_ptr< RangeentsPtr
 Entities on which element is run. More...
 
- Static Public Attributes inherited from MoFEM::OpBaseImpl< A, EleOp >
static MatSetValuesHook matSetValuesHook
 
- Protected Member Functions inherited from MoFEM::OpBaseImpl< A, EleOp >
template<int DIM>
FTensor::Tensor1< FTensor::PackPtr< double *, DIM >, DIM > getNf ()
 
template<int DIM>
FTensor::Tensor2< FTensor::PackPtr< double *, DIM >, DIM, DIM > getLocMat (const int rr)
 
virtual MoFEMErrorCode iNtegrate (EntData &row_data, EntData &col_data)
 Integrate grad-grad operator. More...
 
virtual MoFEMErrorCode aSsemble (EntData &row_data, EntData &col_data, const bool trans)
 
virtual MoFEMErrorCode iNtegrate (EntData &data)
 Class dedicated to integrate operator. More...
 
virtual MoFEMErrorCode aSsemble (EntData &data)
 
virtual size_t getNbOfBaseFunctions (EntitiesFieldData::EntData &data)
 Get number of base functions. More...
 
- Protected Attributes inherited from MoFEM::OpBaseImpl< A, EleOp >
int nbRows
 number of dofs on rows More...
 
int nbCols
 number if dof on column More...
 
int nbIntegrationPts
 number of integration points More...
 
int nbRowBaseFunctions
 number or row base functions More...
 
int rowSide
 row side number More...
 
int colSide
 column side number More...
 
EntityType rowType
 row type More...
 
EntityType colType
 column type More...
 
bool assembleTranspose
 
bool onlyTranspose
 
MatrixDouble locMat
 local entity block matrix More...
 
MatrixDouble locMatTranspose
 local entity block matrix More...
 
VectorDouble locF
 local entity vector More...
 

Detailed Description

template<int DIM, typename AssemblyDomainEleOp>
struct ADOLCPlasticity::OpRhsImpl< DIM, GAUSS, AssemblyDomainEleOp >

Definition at line 534 of file ADOLCPlasticity.hpp.

Constructor & Destructor Documentation

◆ OpRhsImpl()

template<int DIM, typename AssemblyDomainEleOp >
ADOLCPlasticity::OpRhsImpl< DIM, GAUSS, AssemblyDomainEleOp >::OpRhsImpl ( std::string  field_name,
boost::shared_ptr< CommonData common_data_ptr 
)
Examples
ADOLCPlasticity.hpp.

Definition at line 558 of file ADOLCPlasticity.hpp.

560  : AssemblyDomainEleOp(field_name, field_name, AssemblyDomainEleOp::OPROW),
561  commonDataPtr(common_data_ptr) {}

Member Function Documentation

◆ iNtegrate()

template<int DIM, typename AssemblyDomainEleOp >
MoFEMErrorCode ADOLCPlasticity::OpRhsImpl< DIM, GAUSS, AssemblyDomainEleOp >::iNtegrate ( EntitiesFieldData::EntData data)

[OpRhsImpl integrate]

Examples
ADOLCPlasticity.hpp.

Definition at line 565 of file ADOLCPlasticity.hpp.

566  {
568  using OP = AssemblyDomainEleOp;
571  double *w_ptr = &(OP::getGaussPts()(DIM, 0));
572  // Calulate tensorial base functions. Apply bBar method when needed
574  data, baseStorage, commonDataPtr->bBar, OP::getGaussPts().size2(), w_ptr,
576  auto t_stress = getFTensor2SymmetricFromMat<3>(commonDataPtr->stressMatrix);
577  const auto vol = OP::getMeasure();
578  auto t_w = OP::getFTensor0IntegrationWeight();
579  for (int gg = 0; gg != OP::nbIntegrationPts; gg++) {
580  double alpha = vol * t_w;
581  for (int bb = 0; bb != OP::nbRows; ++bb) {
582  OP::locF[bb] += alpha * (t_stress(i, j) * t_diff(i, j));
583  ++t_diff;
584  }
585  ++t_w;
586  ++t_stress;
587  }
589 }

Member Data Documentation

◆ baseStorage

template<int DIM, typename AssemblyDomainEleOp >
MatrixDouble ADOLCPlasticity::OpRhsImpl< DIM, GAUSS, AssemblyDomainEleOp >::baseStorage
private

Store tensorial base functions.

Definition at line 541 of file ADOLCPlasticity.hpp.

◆ commonDataPtr

template<int DIM, typename AssemblyDomainEleOp >
boost::shared_ptr<CommonData> ADOLCPlasticity::OpRhsImpl< DIM, GAUSS, AssemblyDomainEleOp >::commonDataPtr
private

Definition at line 540 of file ADOLCPlasticity.hpp.


The documentation for this struct was generated from the following file:
ADOLCPlasticity::MakeB::getFTensor2SymmetricDiffBase
static FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 6 >, 3 > getFTensor2SymmetricDiffBase(DataForcesAndSourcesCore::EntData &data, MatrixDouble &storage, const bool b_bar, const int nb_integration_pts, double *w_ptr, FTensor::Number< 2 >)
Definition: ADOLCPlasticity.cpp:186
ADOLCPlasticity::OpRhsImpl< DIM, GAUSS, AssemblyDomainEleOp >::baseStorage
MatrixDouble baseStorage
Store tensorial base functions.
Definition: ADOLCPlasticity.hpp:541
FTensor::Number
Definition: Number.hpp:11
i
FTensor::Index< 'i', SPACE_DIM > i
Definition: hcurl_divergence_operator_2d.cpp:27
field_name
constexpr auto field_name
Definition: poisson_2d_homogeneous.cpp:13
FTensor::Index< 'i', 3 >
ADOLCPlasticity::OpRhsImpl< DIM, GAUSS, AssemblyDomainEleOp >::commonDataPtr
boost::shared_ptr< CommonData > commonDataPtr
Definition: ADOLCPlasticity.hpp:540
j
FTensor::Index< 'j', 3 > j
Definition: matrix_function.cpp:19
AssemblyDomainEleOp
FormsIntegrators< DomainEleOp >::Assembly< A >::OpBase AssemblyDomainEleOp
Definition: tensor_divergence_operator.cpp:59
OP
MoFEMFunctionReturn
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:416
MoFEMFunctionBegin
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:346