v0.9.1
Public Member Functions | Private Attributes | List of all members
EshelbianPlasticity::OpCalculateStrainEnergy Struct Reference

#include <users_modules/eshelbian_plasticty/src/EshelbianPlasticity.hpp>

Inherits VolUserDataOperator.

Public Member Functions

 OpCalculateStrainEnergy (const std::string field_name, boost::shared_ptr< DataAtIntegrationPts > data_at_pts, boost::shared_ptr< double > &e)
 
MoFEMErrorCode doWork (int side, EntityType type, DataForcesAndSourcesCore::EntData &data)
 

Private Attributes

boost::shared_ptr< DataAtIntegrationPtsdataAtPts
 
boost::shared_ptr< doubleenergy
 

Detailed Description

Definition at line 1162 of file EshelbianPlasticity.hpp.

Constructor & Destructor Documentation

◆ OpCalculateStrainEnergy()

EshelbianPlasticity::OpCalculateStrainEnergy::OpCalculateStrainEnergy ( const std::string  field_name,
boost::shared_ptr< DataAtIntegrationPts data_at_pts,
boost::shared_ptr< double > &  e 
)

Definition at line 1164 of file EshelbianPlasticity.hpp.

1168  dataAtPts(data_at_pts), energy(e) {}
boost::shared_ptr< DataAtIntegrationPts > dataAtPts
VolumeElementForcesAndSourcesCore::UserDataOperator VolUserDataOperator

Member Function Documentation

◆ doWork()

MoFEMErrorCode EshelbianPlasticity::OpCalculateStrainEnergy::doWork ( int  side,
EntityType  type,
DataForcesAndSourcesCore::EntData data 
)

Definition at line 2496 of file EshelbianOperators.cpp.

2497  {
2499  int nb_integration_pts = data.getN().size1();
2500  auto v = getVolume();
2501  auto t_w = getFTensor0IntegrationWeight();
2502  auto t_P = getFTensor2FromMat<3, 3>(*(dataAtPts->approxPAtPts));
2503  auto t_h = getFTensor2FromMat<3, 3>(*(dataAtPts->hAtPts));
2504 
2507 
2508  for (int gg = 0; gg != nb_integration_pts; ++gg) {
2509  const double a = t_w * v;
2510  (*energy) += a * t_P(i, J) * t_h(i, J);
2511  ++t_w;
2512  ++t_P;
2513  ++t_h;
2514  }
2515 
2517 }
#define MoFEMFunctionReturn(a)
Last executable line of each PETSc function used for error handling. Replaces return()
Definition: definitions.h:482
FTensor::Index< 'J', 3 > J
Definition: PlasticOps.hpp:71
boost::shared_ptr< DataAtIntegrationPts > dataAtPts
#define MoFEMFunctionBegin
First executable line of each MoFEM function, used for error handling. Final line of MoFEM functions ...
Definition: definitions.h:412
MatrixDouble & getN(const FieldApproximationBase base)
get base functions this return matrix (nb. of rows is equal to nb. of Gauss pts, nb....
FTensor::Index< 'i', 2 > i
[Common data]
Definition: ContactOps.hpp:26

Member Data Documentation

◆ dataAtPts

boost::shared_ptr<DataAtIntegrationPts> EshelbianPlasticity::OpCalculateStrainEnergy::dataAtPts
private

Definition at line 1174 of file EshelbianPlasticity.hpp.

◆ energy

boost::shared_ptr<double> EshelbianPlasticity::OpCalculateStrainEnergy::energy
private

Definition at line 1175 of file EshelbianPlasticity.hpp.


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