v0.14.0
Classes | Typedefs | Functions | Variables
ADOLCPlasticity Namespace Reference

Classes

struct  ADOLCPlasticityIntegrators
 
struct  ClosestPointProjection
 Closest point projection algorithm. More...
 
struct  CommonData
 common data used by volume elements More...
 
struct  J2Plasticity
 J2 plasticity (Kinematic Isotropic (Linear) Hardening) More...
 
struct  J2Plasticity< 2 >
 [J2 2D] More...
 
struct  J2Plasticity< 3 >
 J2 (Von Misses) plasticity. More...
 
struct  MakeB
 Calculate tensorial base functions. Apply bBar method when needed. More...
 
struct  OpCalculateStress
 
struct  OpLhsImpl
 Assemble left hand side. More...
 
struct  OpLhsImpl< DIM, GAUSS, AssemblyDomainEleOp >
 
struct  OpRhsImpl
 Assemble right hand side. More...
 
struct  OpRhsImpl< DIM, GAUSS, AssemblyDomainEleOp >
 
struct  OpUpdate
 
struct  ParaboloidalPlasticity
 [J2 2D] More...
 
struct  TSUpdate
 Update internal fluxes (update history variables) More...
 
struct  TSUpdateImpl
 [TSUpdateImpl] More...
 

Typedefs

using Pip = boost::ptr_deque< ForcesAndSourcesCore::UserDataOperator >
 

Functions

FTensor::Dg< double, 3, 6 > voight_to_strain_op ()
 Op convert Vight strain vector to strain tensor. More...
 
FTensor::Dg< double, 3, 6 > strain_to_voight_op ()
 Op convert strain tensor to Vight strain vector. More...
 
FTensor::Dg< double, 3, 6 > voight_to_stress_op ()
 Op convert Vight stress vector to stress tensor. More...
 
MoFEMErrorCode ADOLCPlasticityRes (SNES snes, Vec chi, Vec r, void *ctx)
 Internal SNES function used at integration points to calulate stress. More...
 
MoFEMErrorCode ADOLCPlasticityJac (SNES, Vec, Mat, Mat, void *ctx)
 Internal SNES function used at integration points to calulate tangent matrix. More...
 
template<int DIM>
ForcesAndSourcesCore::UserDataOperatorgetRawPtrOpCalculateStress (MoFEM::Interface &m_field, boost::shared_ptr< CommonData > common_data_ptr, boost::shared_ptr< ClosestPointProjection > cp_ptr, bool calc_lhs)
 Get opreator to calulate stress. More...
 
template<>
ForcesAndSourcesCore::UserDataOperatorgetRawPtrOpCalculateStress< 3 > (MoFEM::Interface &m_field, boost::shared_ptr< CommonData > common_data_ptr, boost::shared_ptr< ClosestPointProjection > cp_ptr, bool calc_lhs)
 
template<>
ForcesAndSourcesCore::UserDataOperatorgetRawPtrOpCalculateStress< 2 > (MoFEM::Interface &m_field, boost::shared_ptr< CommonData > common_data_ptr, boost::shared_ptr< ClosestPointProjection > cp_ptr, bool calc_lhs)
 
template<int DIM, AssemblyType A, IntegrationType I, typename DomainEleOp >
MoFEMErrorCode opFactoryDomainRhs (MoFEM::Interface &m_field, string field_name, Pip &pip, std::string block_name, boost::shared_ptr< CommonData > common_data_ptr, boost::shared_ptr< ClosestPointProjection > cp_ptr, Sev sev=Sev::inform)
 Assemble the left hand side, i.e. tangent matrix. More...
 
template<int DIM, AssemblyType A, IntegrationType I, typename DomainEleOp >
MoFEMErrorCode opFactoryDomainLhs (MoFEM::Interface &m_field, string field_name, Pip &pip, std::string block_name, boost::shared_ptr< CommonData > common_data_ptr, boost::shared_ptr< ClosestPointProjection > cp_ptr)
 Assemble the left hand side, i.e. tangent matrix. More...
 
template<int DIM>
MoFEMErrorCode opFactoryDomainUpdate (MoFEM::Interface &m_field, Pip &pip, std::string block_name, boost::shared_ptr< CommonData > common_data_ptr, boost::shared_ptr< ClosestPointProjection > cp_ptr)
 Push operators to update history variables. More...
 
template<>
MoFEMErrorCode opFactoryDomainUpdate< 3 > (MoFEM::Interface &m_field, Pip &pip, std::string block_name, boost::shared_ptr< CommonData > common_data_ptr, boost::shared_ptr< ClosestPointProjection > cp_ptr)
 Push operators to update history variables. More...
 
template<>
MoFEMErrorCode opFactoryDomainUpdate< 2 > (MoFEM::Interface &m_field, Pip &pip, std::string block_name, boost::shared_ptr< CommonData > common_data_ptr, boost::shared_ptr< ClosestPointProjection > cp_ptr)
 Push operators to update history variables. More...
 
boost::shared_ptr< TSUpdatecreateTSUpdate (std::string fe_name, boost::shared_ptr< FEMethod > fe_ptr)
 
template<typename MODEL >
auto createMaterial (std::array< int, ClosestPointProjection::LAST_TAPE > tapes_tags={0, 1, 2})
 
template<typename T1 , typename T2 , int DIM1, int DIM2>
double calcAveStrain (bool b_bar, const int nb_gauss_pts, FTensor::Tensor2< T1, DIM1, DIM2 > &&t_grad, FTensor::Tensor0< T2 > &&t_w)
 
template<typename T1 , typename T2 , int DIM1, int DIM2, int DIM3>
FTensor::Tensor1< T2, DIM3 > calcStrain (bool b_bar, double ave_tr_strain, FTensor::Tensor2< T1, DIM1, DIM2 > &t_grad, FTensor::Tensor1< T2, DIM3 > &&t_voight_strain)
 
template<int DIM>
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 6 >, 3 > getFTensor2SymmetricDiffBaseImpl (DataForcesAndSourcesCore::EntData &data, MatrixDouble &storage, const bool b_bar, const int nb_integration_pts, double *w_ptr, FTensor::Number< DIM >)
 [BBar method] More...
 
template<int DIM>
MoFEMErrorCode opFactoryDomainUpdateImpl (MoFEM::Interface &m_field, Pip &pip, std::string block_name, boost::shared_ptr< CommonData > common_data_ptr, boost::shared_ptr< ClosestPointProjection > cp_ptr)
 
boost::shared_ptr< TSUpdatecreateTSUpdate (std::string fe_name, boost::shared_ptr< FEMethod > fe_ptr)
 Create test update object. More...
 

Variables

static FTensor::Dg< double, 3, 6 > tStrainToVoightOp = strain_to_voight_op()
 

Typedef Documentation

◆ Pip

Examples
ADOLCPlasticity.hpp.

Definition at line 399 of file ADOLCPlasticity.hpp.

Function Documentation

◆ ADOLCPlasticityJac()

MoFEMErrorCode ADOLCPlasticity::ADOLCPlasticityJac ( SNES  snes,
Vec  chi,
Mat  A,
Mat  ,
void *  ctx 
)

Internal SNES function used at integration points to calulate tangent matrix.

Function executed by nested SENES at evaluationg tangent matrix.

Examples
ADOLCPlasticity.hpp.

Definition at line 584 of file ClosetPointProjection.cpp.

585  {
587  ClosestPointProjection *cp;
588  cp = (ClosestPointProjection *)ctx;
589 
590  auto plastic_strain = cp->getPlasticStrain();
591  auto internal_variables = cp->getInternalVariables();
592 
593  {
594  const double *array;
595  CHKERR VecGetArrayRead(chi, &array);
596  for (auto ii = 0; ii < 6; ii++) {
597  plastic_strain[ii] = array[ii];
598  }
599  for (auto ii = 0; ii < cp->nbInternalVariables; ii++) {
600  internal_variables[ii] = array[6 + ii];
601  }
602  cp->deltaGamma = array[6 + cp->nbInternalVariables];
603  CHKERR VecRestoreArrayRead(chi, &array);
604  }
605  CHKERR cp->playPotentials();
606  CHKERR cp->calculateA();
608 }

◆ ADOLCPlasticityRes()

MoFEMErrorCode ADOLCPlasticity::ADOLCPlasticityRes ( SNES  snes,
Vec  chi,
Vec  r,
void *  ctx 
)

Internal SNES function used at integration points to calulate stress.

Function executed by nested SENES at evaluationg residual.

Examples
ADOLCPlasticity.hpp.

Definition at line 558 of file ClosetPointProjection.cpp.

558  {
560  ClosestPointProjection *cp;
561  cp = (ClosestPointProjection *)ctx;
562 
563  auto plastic_strain = cp->getPlasticStrain();
564  auto internal_variables = cp->getInternalVariables();
565 
566  {
567  const double *array;
568  CHKERR VecGetArrayRead(chi, &array);
569  for (auto ii = 0; ii < 6; ii++) {
570  plastic_strain[ii] = array[ii];
571  }
572  for (auto ii = 0; ii < cp->nbInternalVariables; ii++) {
573  internal_variables[ii] = array[6 + ii];
574  }
575  cp->deltaGamma = array[6 + cp->nbInternalVariables];
576  CHKERR VecRestoreArrayRead(chi, &array);
577  }
578  CHKERR cp->playPotentials_NoHessian();
579  CHKERR cp->calculateR(r);
580 
582 }

◆ calcAveStrain()

template<typename T1 , typename T2 , int DIM1, int DIM2>
double ADOLCPlasticity::calcAveStrain ( bool  b_bar,
const int  nb_gauss_pts,
FTensor::Tensor2< T1, DIM1, DIM2 > &&  t_grad,
FTensor::Tensor0< T2 > &&  t_w 
)

Definition at line 18 of file ADOLCPlasticity.cpp.

20  {
21  if constexpr (DIM1 != DIM2)
23  "Case of mixed dimension by gradient not implemented");
24 
25 
27  double ave_tr_strain = 0;
28  if (b_bar) {
29  double v = 0;
30  for (auto gg = 0; gg != nb_gauss_pts; ++gg) {
31  v += t_w;
32  ave_tr_strain += t_w * t_grad(i, i);
33  ++t_grad;
34  ++t_w;
35  }
36  ave_tr_strain /= (DIM1 * v);
37  }
38  return ave_tr_strain;
39 }

◆ calcStrain()

template<typename T1 , typename T2 , int DIM1, int DIM2, int DIM3>
FTensor::Tensor1<T2, DIM3> ADOLCPlasticity::calcStrain ( bool  b_bar,
double  ave_tr_strain,
FTensor::Tensor2< T1, DIM1, DIM2 > &  t_grad,
FTensor::Tensor1< T2, DIM3 > &&  t_voight_strain 
)

Definition at line 43 of file ADOLCPlasticity.cpp.

45  {
46 
47  if constexpr (DIM1 != DIM2)
49  "Case of mixed dimessnion by gradient not implemented");
50 
54  FTensor::Tensor2_symmetric<double, 3> t_strain{0., 0., 0., 0., 0., 0.};
55  t_strain(i, j) = (t_grad(i, j) || t_grad(j, i)) / 2;
56  double tr_strain = t_grad(i, i) / DIM1;
57  if (b_bar) {
61  t_strain(i, j) += (ave_tr_strain - tr_strain) * t_kd(i, j);
62  }
63  {
66  t_voight_strain(Z) = tStrainToVoightOp(i, j, Z) * t_strain(i, j);
67  }
68  return t_voight_strain;
69 };

◆ createMaterial()

template<typename MODEL >
auto ADOLCPlasticity::createMaterial ( std::array< int, ClosestPointProjection::LAST_TAPE tapes_tags = {0, 1, 2})
inline
Examples
ADOLCPlasticityMaterialModels.hpp.

Definition at line 721 of file ADOLCPlasticityMaterialModels.hpp.

722  {0, 1, 2}) {
723  auto cp_ptr = boost::make_shared<MODEL>();
724  cp_ptr->getDefaultMaterialParameters();
725  cp_ptr->createMatAVecR();
726  cp_ptr->snesCreate();
727  cp_ptr->recordTapes();
728  cp_ptr->tapesTags = tapes_tags;
729  return cp_ptr;
730 }

◆ createTSUpdate() [1/2]

boost::shared_ptr<TSUpdate> ADOLCPlasticity::createTSUpdate ( std::string  fe_name,
boost::shared_ptr< FEMethod fe_ptr 
)

◆ createTSUpdate() [2/2]

boost::shared_ptr<TSUpdate> ADOLCPlasticity::createTSUpdate ( std::string  fe_name,
boost::shared_ptr< FEMethod fe_ptr 
)

Create test update object.

Parameters
fe_name
fe_ptr
Returns
boost::shared_ptr<TSUpdate>

Definition at line 630 of file ADOLCPlasticity.cpp.

631  {
632  return boost::make_shared<TSUpdateImpl>(fe_name, fe_ptr);
633 }

◆ getFTensor2SymmetricDiffBaseImpl()

template<int DIM>
FTensor::Tensor2_symmetric<FTensor::PackPtr<double *, 6>, 3> ADOLCPlasticity::getFTensor2SymmetricDiffBaseImpl ( DataForcesAndSourcesCore::EntData data,
MatrixDouble &  storage,
const bool  b_bar,
const int  nb_integration_pts,
double w_ptr,
FTensor::Number< DIM >   
)

[BBar method]

Calculate base for B-bar method

Template Parameters
DIMDimension of problem
Parameters
dataaccess to base functions
storagestorage for base functions at integration points
b_barflag to sith on B-bar method
nb_integration_ptsnumber of integration points
w_ptrintegration weights
Returns
FTensor::Tensor2_symmetric<FTensor::PackPtr<double *, 6>, 3>

Definition at line 85 of file ADOLCPlasticity.cpp.

88  {
89  const auto nb_dofs = data.getFieldData().size();
90  const auto nb_bases = data.getN().size2();
91 
92  storage.resize(nb_integration_pts, 6 * nb_dofs, false);
93 
101 
102  // get tensorial base
103  auto get_ftensor2_symmetric = [&](const int gg, const int rr) {
104  return getFTensor2SymmetricFromPtr<3>(&storage(gg, 6 * rr));
105  };
106 
107  // calculate base
108  auto calc_base = [&]() {
109  auto t_t2_diff = get_ftensor2_symmetric(0, 0);
110  for (auto gg = 0; gg != nb_integration_pts; ++gg) {
111  auto t_diff = data.getFTensor1DiffN<DIM>(gg, 0);
112  for (auto b = 0; b != nb_dofs / DIM; ++b) {
114 
115  t_grad(i, j) = 0;
116 
117  t_grad(N0, J) = t_diff(J);
118  t_t2_diff(i, j) = (t_grad(i, j) || t_grad(j, i)) / 2;
119  ++t_t2_diff;
120 
121  t_grad(i, j) = 0;
122  t_grad(N1, J) = t_diff(J);
123  t_t2_diff(i, j) = (t_grad(i, j) || t_grad(j, i)) / 2;
124  ++t_t2_diff;
125 
126  t_grad(i, j) = 0;
127  if constexpr (DIM == 3) {
128  t_grad(N2, J) = t_diff(J);
129  t_t2_diff(i, j) = (t_grad(i, j) || t_grad(j, i)) / 2;
130  ++t_t2_diff;
131  }
132 
133  ++t_diff;
134  }
135  }
136  return get_ftensor2_symmetric(0, 0);
137  };
138 
139  // calculate volume average of trace
140  auto calc_vol = [&](auto &&t_t2_dff) {
141  std::vector<double> vol(nb_dofs, 0);
142  for (auto gg = 0; gg != nb_integration_pts; ++gg) {
143  for (auto b = 0; b != nb_dofs; ++b) {
144  vol[b] += w_ptr[gg] * t_t2_dff(i, i) / DIM;
145  ++t_t2_dff;
146  }
147  }
148  double sum = 0;
149  for (auto gg = 0; gg != nb_integration_pts; ++gg) {
150  sum += w_ptr[gg];
151  }
152  for (auto &v : vol) {
153  v /= sum;
154  }
155  return vol;
156  };
157 
158  // modify base for B-bar method
159  auto make_b_bar = [&](auto &&vol) {
160  auto t_t2_diff = get_ftensor2_symmetric(0, 0);
162  for (auto gg = 0; gg != nb_integration_pts; ++gg) {
163  for (auto b = 0; b != nb_dofs; ++b) {
164  const auto trace = t_t2_diff(J, J) / DIM;
165  t_t2_diff(I, J) += (vol[b] - trace) * t_kd(I, J);
166  ++t_t2_diff;
167  }
168  }
169  return get_ftensor2_symmetric(0, 0);
170  };
171 
172  return b_bar ? make_b_bar(calc_vol(calc_base())) : calc_base();
173 };

◆ getRawPtrOpCalculateStress()

template<int DIM>
ForcesAndSourcesCore::UserDataOperator* ADOLCPlasticity::getRawPtrOpCalculateStress ( MoFEM::Interface m_field,
boost::shared_ptr< CommonData common_data_ptr,
boost::shared_ptr< ClosestPointProjection cp_ptr,
bool  calc_lhs 
)

Get opreator to calulate stress.

Examples
ADOLCPlasticity.hpp.

◆ getRawPtrOpCalculateStress< 2 >()

template<>
ForcesAndSourcesCore::UserDataOperator * ADOLCPlasticity::getRawPtrOpCalculateStress< 2 > ( MoFEM::Interface m_field,
boost::shared_ptr< CommonData common_data_ptr,
boost::shared_ptr< ClosestPointProjection cp_ptr,
bool  calc_lhs 
)
Examples
ADOLCPlasticity.hpp.

Definition at line 554 of file ADOLCPlasticity.cpp.

556  {
557  return new OpCalculateStress<2>(m_field, common_data_ptr, cp_ptr, calc_lhs);
558 }

◆ getRawPtrOpCalculateStress< 3 >()

template<>
ForcesAndSourcesCore::UserDataOperator * ADOLCPlasticity::getRawPtrOpCalculateStress< 3 > ( MoFEM::Interface m_field,
boost::shared_ptr< CommonData common_data_ptr,
boost::shared_ptr< ClosestPointProjection cp_ptr,
bool  calc_lhs 
)
Examples
ADOLCPlasticity.hpp.

Definition at line 547 of file ADOLCPlasticity.cpp.

549  {
550  return new OpCalculateStress<3>(m_field, common_data_ptr, cp_ptr, calc_lhs);
551 }

◆ opFactoryDomainUpdate< 2 >()

template<>
MoFEMErrorCode ADOLCPlasticity::opFactoryDomainUpdate< 2 > ( MoFEM::Interface m_field,
Pip pip,
std::string  block_name,
boost::shared_ptr< CommonData common_data_ptr,
boost::shared_ptr< ClosestPointProjection cp_ptr 
)

Push operators to update history variables.

Template Parameters
DIMdimension of the problem
Parameters
m_fieldcore interface
pip
block_namemesh block name caring material parameters
common_data_ptr
cp_ptr
Returns
MoFEMErrorCode
Examples
ADOLCPlasticity.hpp.

Definition at line 586 of file ADOLCPlasticity.cpp.

589  {
590  return opFactoryDomainUpdateImpl<2>(m_field, pip, block_name, common_data_ptr,
591  cp_ptr);
592 };

◆ opFactoryDomainUpdate< 3 >()

template<>
MoFEMErrorCode ADOLCPlasticity::opFactoryDomainUpdate< 3 > ( MoFEM::Interface m_field,
Pip pip,
std::string  block_name,
boost::shared_ptr< CommonData common_data_ptr,
boost::shared_ptr< ClosestPointProjection cp_ptr 
)

Push operators to update history variables.

Template Parameters
DIMdimension of the problem
Parameters
m_fieldcore interface
pip
block_namemesh block name caring material parameters
common_data_ptr
cp_ptr
Returns
MoFEMErrorCode
Examples
ADOLCPlasticity.hpp.

Definition at line 576 of file ADOLCPlasticity.cpp.

579  {
580  return opFactoryDomainUpdateImpl<3>(m_field, pip, block_name, common_data_ptr,
581  cp_ptr);
582 };

◆ opFactoryDomainUpdateImpl()

template<int DIM>
MoFEMErrorCode ADOLCPlasticity::opFactoryDomainUpdateImpl ( MoFEM::Interface m_field,
Pip pip,
std::string  block_name,
boost::shared_ptr< CommonData common_data_ptr,
boost::shared_ptr< ClosestPointProjection cp_ptr 
)

Definition at line 562 of file ADOLCPlasticity.cpp.

565  {
567  CHKERR cp_ptr->addMatBlockOps(m_field, pip, block_name, Sev::noisy);
568  pip.push_back(
569  getRawPtrOpCalculateStress<DIM>(m_field, common_data_ptr, cp_ptr, false));
570  pip.push_back(new OpUpdate(common_data_ptr));
572 };

◆ strain_to_voight_op()

FTensor::Dg<double, 3, 6> ADOLCPlasticity::strain_to_voight_op ( )
inline

Op convert strain tensor to Vight strain vector.

Examples
ADOLCPlasticity.hpp.

Definition at line 39 of file ADOLCPlasticity.hpp.

39  {
40  return FTensor::Dg<double, 3, 6>{1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
41  1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0,
42  0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
43  0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0};
44 };

◆ voight_to_strain_op()

FTensor::Dg<double, 3, 6> ADOLCPlasticity::voight_to_strain_op ( )
inline

Op convert Vight strain vector to strain tensor.

Examples
ADOLCPlasticity.hpp, and ADOLCPlasticityMaterialModels.hpp.

Definition at line 29 of file ADOLCPlasticity.hpp.

29  {
30  return FTensor::Dg<double, 3, 6>{1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
31  0.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0,
32  0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
33  0.0, 0.0, 0.5, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0};
34 };

◆ voight_to_stress_op()

FTensor::Dg<double, 3, 6> ADOLCPlasticity::voight_to_stress_op ( )
inline

Op convert Vight stress vector to stress tensor.

Examples
ADOLCPlasticity.hpp, and ADOLCPlasticityMaterialModels.hpp.

Definition at line 49 of file ADOLCPlasticity.hpp.

49  {
50  return FTensor::Dg<double, 3, 6>{1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
51  1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0,
52  0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
53  0.0, 0.0, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0};
54 };

Variable Documentation

◆ tStrainToVoightOp

FTensor::Dg<double, 3, 6> ADOLCPlasticity::tStrainToVoightOp = strain_to_voight_op()
static

Definition at line 15 of file ADOLCPlasticity.cpp.

CHK_THROW_MESSAGE
#define CHK_THROW_MESSAGE(err, msg)
Check and throw MoFEM exception.
Definition: definitions.h:596
J
FTensor::Index< 'J', DIM1 > J
Definition: level_set.cpp:30
FTensor::Tensor2_symmetric
Definition: Tensor2_symmetric_value.hpp:13
MoFEM::getFTensor2SymmetricFromPtr< 3 >
FTensor::Tensor2_symmetric< FTensor::PackPtr< double *, 6 >, 3 > getFTensor2SymmetricFromPtr< 3 >(double *ptr)
Definition: Templates.hpp:998
sdf.r
int r
Definition: sdf.py:8
FTensor::Tensor2< double, 3, 3 >
I
constexpr IntegrationType I
Definition: operators_tests.cpp:31
FTensor::Number< 0 >
CHKERR
#define CHKERR
Inline error check.
Definition: definitions.h:535
DIM1
constexpr int DIM1
Definition: level_set.cpp:21
ADOLCPlasticity::tStrainToVoightOp
static FTensor::Dg< double, 3, 6 > tStrainToVoightOp
Definition: ADOLCPlasticity.cpp:15
i
FTensor::Index< 'i', SPACE_DIM > i
Definition: hcurl_divergence_operator_2d.cpp:27
t_kd
constexpr auto t_kd
Definition: free_surface.cpp:137
FTensor::Index
Definition: Index.hpp:23
v
const double v
phase velocity of light in medium (cm/ns)
Definition: initial_diffusion.cpp:40
FTensor::Dg
Definition: Dg_value.hpp:9
j
FTensor::Index< 'j', 3 > j
Definition: matrix_function.cpp:19
MOFEM_DATA_INCONSISTENCY
@ MOFEM_DATA_INCONSISTENCY
Definition: definitions.h:31
DIM2
constexpr int DIM2
Definition: level_set.cpp:22
OpCalculateStress
Definition: HookeElement.hpp:153
PlasticOps::trace
double trace(FTensor::Tensor2_symmetric< T, 2 > &t_stress)
Definition: PlasticOpsGeneric.hpp:80
FTensor::Kronecker_Delta_symmetric
Kronecker Delta class symmetric.
Definition: Kronecker_Delta.hpp:49
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