v0.15.0
Loading...
Searching...
No Matches
EshelbianPlasticity::PhysicalEquations Struct Referenceabstract

#include "users_modules/eshelbian_plasticity/src/EshelbianPlasticity.hpp"

Inheritance diagram for EshelbianPlasticity::PhysicalEquations:
[legend]
Collaboration diagram for EshelbianPlasticity::PhysicalEquations:
[legend]

Public Types

typedef FTensor::Tensor1< adouble, 3 > ATensor1
 
typedef FTensor::Tensor2< adouble, 3, 3 > ATensor2
 
typedef FTensor::Tensor3< adouble, 3, 3, 3 > ATensor3
 
typedef FTensor::Tensor1< double, 3 > DTensor1
 
typedef FTensor::Tensor2< double, 3, 3 > DTensor2
 
typedef FTensor::Tensor3< double, 3, 3, 3 > DTensor3
 
typedef FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > DTensor0Ptr
 
typedef FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, 3, 3 > DTensor2Ptr
 
typedef FTensor::Tensor3< FTensor::PackPtr< double *, 1 >, 3, 3, 3 > DTensor3Ptr
 

Public Member Functions

 PhysicalEquations ()=delete
 
 PhysicalEquations (const int size_active, const int size_dependent)
 
virtual ~PhysicalEquations ()=default
 
virtual MoFEMErrorCode recordTape (const int tag, DTensor2Ptr *t_h)=0
 
virtual UserDataOperatorreturnOpJacobian (const int tag, const bool eval_rhs, const bool eval_lhs, boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr)
 
virtual VolUserDataOperatorreturnOpSpatialPhysical (const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const double alpha_u)
 
virtual VolUserDataOperatorreturnOpSpatialPhysicalExternalStrain (const std::string &field_name, boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< ExternalStrainVec > external_strain_vec_ptr, std::map< std::string, boost::shared_ptr< ScalingMethod > > smv)
 
virtual VolUserDataOperatorreturnOpSpatialPhysical_du_du (std::string row_field, std::string col_field, boost::shared_ptr< DataAtIntegrationPts > data_ptr, const double alpha)
 
virtual VolUserDataOperatorreturnOpCalculateEnergy (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< double > total_energy_ptr)
 
virtual VolUserDataOperatorreturnOpCalculateStretchFromStress (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr)
 
virtual VolUserDataOperatorreturnOpCalculateVarStretchFromStress (boost::shared_ptr< DataAtIntegrationPts > data_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr)
 
virtual VolUserDataOperatorreturnOpSetScale (boost::shared_ptr< double > scale_ptr, boost::shared_ptr< PhysicalEquations > physics_ptr)
 
Dependent variables
DTensor2Ptr get_P ()
 
Derivatives of dependent variables
DTensor3Ptr get_P_dh0 ()
 
DTensor3Ptr get_P_dh1 ()
 
DTensor3Ptr get_P_dh2 ()
 

Public Attributes

std::vector< doubleactiveVariables
 
std::vector< doubledependentVariablesPiola
 
std::vector< doubledependentVariablesPiolaDirevatives
 

Active variables

DTensor2Ptr get_h ()
 
template<int S>
static DTensor2Ptr get_VecTensor2 (std::vector< double > &v)
 
template<int S>
static DTensor0Ptr get_VecTensor0 (std::vector< double > &v)
 
template<int S0>
static DTensor3Ptr get_vecTensor3 (std::vector< double > &v, const int nba)
 

Detailed Description

Definition at line 331 of file EshelbianPlasticity.hpp.

Member Typedef Documentation

◆ ATensor1

◆ ATensor2

◆ ATensor3

◆ DTensor0Ptr

◆ DTensor1

◆ DTensor2

◆ DTensor2Ptr

◆ DTensor3

◆ DTensor3Ptr

Constructor & Destructor Documentation

◆ PhysicalEquations() [1/2]

EshelbianPlasticity::PhysicalEquations::PhysicalEquations ( )
delete

◆ PhysicalEquations() [2/2]

EshelbianPlasticity::PhysicalEquations::PhysicalEquations ( const int size_active,
const int size_dependent )
inline

Definition at line 346 of file EshelbianPlasticity.hpp.

347 : activeVariables(size_active, 0),
348 dependentVariablesPiola(size_dependent, 0),
349 dependentVariablesPiolaDirevatives(size_dependent * size_active, 0) {}

◆ ~PhysicalEquations()

virtual EshelbianPlasticity::PhysicalEquations::~PhysicalEquations ( )
virtualdefault

Member Function Documentation

◆ get_h()

DTensor2Ptr EshelbianPlasticity::PhysicalEquations::get_h ( )
inline

Definition at line 444 of file EshelbianPlasticity.hpp.

static DTensor2Ptr get_VecTensor2(std::vector< double > &v)

◆ get_P()

DTensor2Ptr EshelbianPlasticity::PhysicalEquations::get_P ( )
inline

Definition at line 452 of file EshelbianPlasticity.hpp.

452 {
454 }

◆ get_P_dh0()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_P_dh0 ( )
inline

Definition at line 462 of file EshelbianPlasticity.hpp.

462 {
464 activeVariables.size());
465 }
static DTensor3Ptr get_vecTensor3(std::vector< double > &v, const int nba)

◆ get_P_dh1()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_P_dh1 ( )
inline

Definition at line 466 of file EshelbianPlasticity.hpp.

◆ get_P_dh2()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_P_dh2 ( )
inline

Definition at line 470 of file EshelbianPlasticity.hpp.

◆ get_VecTensor0()

template<int S>
static DTensor0Ptr EshelbianPlasticity::PhysicalEquations::get_VecTensor0 ( std::vector< double > & v)
inlinestatic

Definition at line 406 of file EshelbianPlasticity.hpp.

406 {
407 return DTensor0Ptr(&v[S + 0]);
408 }
const double v
phase velocity of light in medium (cm/ns)
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > DTensor0Ptr

◆ get_VecTensor2()

template<int S>
static DTensor2Ptr EshelbianPlasticity::PhysicalEquations::get_VecTensor2 ( std::vector< double > & v)
inlinestatic

Definition at line 400 of file EshelbianPlasticity.hpp.

400 {
401 return DTensor2Ptr(&v[S + 0], &v[S + 1], &v[S + 2], &v[S + 3], &v[S + 4],
402 &v[S + 5], &v[S + 6], &v[S + 7], &v[S + 8]);
403 }
FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, 3, 3 > DTensor2Ptr

◆ get_vecTensor3()

template<int S0>
static DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_vecTensor3 ( std::vector< double > & v,
const int nba )
inlinestatic

Definition at line 411 of file EshelbianPlasticity.hpp.

412 {
413
414 const int A00 = nba * 0 + S0;
415 const int A01 = nba * 1 + S0;
416 const int A02 = nba * 2 + S0;
417 const int A10 = nba * 3 + S0;
418 const int A11 = nba * 4 + S0;
419 const int A12 = nba * 5 + S0;
420 const int A20 = nba * 6 + S0;
421 const int A21 = nba * 7 + S0;
422 const int A22 = nba * 8 + S0;
423
424 return DTensor3Ptr(
425
426 &v[A00 + 0], &v[A00 + 1], &v[A00 + 2], &v[A01 + 0], &v[A01 + 1],
427 &v[A01 + 2], &v[A02 + 0], &v[A02 + 1], &v[A02 + 2],
428
429 &v[A10 + 0], &v[A10 + 1], &v[A10 + 2], &v[A11 + 0], &v[A11 + 1],
430 &v[A11 + 2], &v[A12 + 0], &v[A12 + 1], &v[A12 + 2],
431
432 &v[A20 + 0], &v[A20 + 1], &v[A20 + 2], &v[A21 + 0], &v[A21 + 1],
433 &v[A21 + 2], &v[A22 + 0], &v[A22 + 1], &v[A22 + 2]
434
435 );
436 }
FTensor::Tensor3< FTensor::PackPtr< double *, 1 >, 3, 3, 3 > DTensor3Ptr

◆ recordTape()

virtual MoFEMErrorCode EshelbianPlasticity::PhysicalEquations::recordTape ( const int tag,
DTensor2Ptr * t_h )
pure virtual

◆ returnOpCalculateEnergy()

VolUserDataOperator * EshelbianPlasticity::PhysicalEquations::returnOpCalculateEnergy ( boost::shared_ptr< DataAtIntegrationPts > data_ptr,
boost::shared_ptr< double > total_energy_ptr )
virtual

Reimplemented in EshelbianPlasticity::HMHHencky.

Definition at line 274 of file EshelbianADOL-C.cpp.

276 {
277 return nullptr;
278}

◆ returnOpCalculateStretchFromStress()

VolUserDataOperator * EshelbianPlasticity::PhysicalEquations::returnOpCalculateStretchFromStress ( boost::shared_ptr< DataAtIntegrationPts > data_ptr,
boost::shared_ptr< PhysicalEquations > physics_ptr )
virtual

Reimplemented in EshelbianPlasticity::HMHHencky.

Definition at line 280 of file EshelbianADOL-C.cpp.

282 {
283 return nullptr;
284}

◆ returnOpCalculateVarStretchFromStress()

VolUserDataOperator * EshelbianPlasticity::PhysicalEquations::returnOpCalculateVarStretchFromStress ( boost::shared_ptr< DataAtIntegrationPts > data_ptr,
boost::shared_ptr< PhysicalEquations > physics_ptr )
virtual

Reimplemented in EshelbianPlasticity::HMHHencky.

Definition at line 286 of file EshelbianADOL-C.cpp.

288 {
289 return nullptr;
290};

◆ returnOpJacobian()

UserDataOperator * EshelbianPlasticity::PhysicalEquations::returnOpJacobian ( const int tag,
const bool eval_rhs,
const bool eval_lhs,
boost::shared_ptr< DataAtIntegrationPts > data_ptr,
boost::shared_ptr< PhysicalEquations > physics_ptr )
virtual

Reimplemented in EshelbianPlasticity::HMHHencky, and EshelbianPlasticity::HMHNeohookean.

Definition at line 497 of file EshelbianADOL-C.cpp.

500 {
501 return (new OpHMHH(tag, eval_rhs, eval_lhs, data_ptr, physics_ptr));
502}

◆ returnOpSetScale()

VolUserDataOperator * EshelbianPlasticity::PhysicalEquations::returnOpSetScale ( boost::shared_ptr< double > scale_ptr,
boost::shared_ptr< PhysicalEquations > physics_ptr )
virtual

Reimplemented in EshelbianPlasticity::HMHNeohookean.

Definition at line 308 of file EshelbianADOL-C.cpp.

310 {
311 return new OpGetScale(scale_ptr);
312};

◆ returnOpSpatialPhysical()

VolUserDataOperator * EshelbianPlasticity::PhysicalEquations::returnOpSpatialPhysical ( const std::string & field_name,
boost::shared_ptr< DataAtIntegrationPts > data_ptr,
const double alpha_u )
virtual

Reimplemented in EshelbianPlasticity::HMHHencky, and EshelbianPlasticity::HMHNeohookean.

Definition at line 99 of file EshelbianADOL-C.cpp.

101 {
102 return new OpSpatialPhysical(field_name, data_ptr, alpha_u);
103}
constexpr auto field_name

◆ returnOpSpatialPhysical_du_du()

VolUserDataOperator * EshelbianPlasticity::PhysicalEquations::returnOpSpatialPhysical_du_du ( std::string row_field,
std::string col_field,
boost::shared_ptr< DataAtIntegrationPts > data_ptr,
const double alpha )
virtual

Reimplemented in EshelbianPlasticity::HMHHencky, and EshelbianPlasticity::HMHNeohookean.

Definition at line 268 of file EshelbianADOL-C.cpp.

270 {
271 return new OpSpatialPhysical_du_du(row_field, col_field, data_ptr, alpha);
272}

◆ returnOpSpatialPhysicalExternalStrain()

VolUserDataOperator * EshelbianPlasticity::PhysicalEquations::returnOpSpatialPhysicalExternalStrain ( const std::string & field_name,
boost::shared_ptr< DataAtIntegrationPts > data_ptr,
boost::shared_ptr< ExternalStrainVec > external_strain_vec_ptr,
std::map< std::string, boost::shared_ptr< ScalingMethod > > smv )
virtual

Reimplemented in EshelbianPlasticity::HMHHencky, and EshelbianPlasticity::HMHNeohookean.

Definition at line 105 of file EshelbianADOL-C.cpp.

109 {
110 return nullptr;
111}

Member Data Documentation

◆ activeVariables

std::vector<double> EshelbianPlasticity::PhysicalEquations::activeVariables

Definition at line 391 of file EshelbianPlasticity.hpp.

◆ dependentVariablesPiola

std::vector<double> EshelbianPlasticity::PhysicalEquations::dependentVariablesPiola

Definition at line 392 of file EshelbianPlasticity.hpp.

◆ dependentVariablesPiolaDirevatives

std::vector<double> EshelbianPlasticity::PhysicalEquations::dependentVariablesPiolaDirevatives

Definition at line 393 of file EshelbianPlasticity.hpp.


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