v0.10.0
Public Types | Public Member Functions | Public Attributes | List of all members
EshelbianPlasticity::PhysicalEquations Struct Referenceabstract

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

Inheritance 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::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 ()
 
virtual MoFEMErrorCode recordTape (const int tag, DTensor2Ptr *t_h)=0
 
virtual OpJacobianreturnOpJacobian (const std::string &field_name, const int tag, const bool eval_rhs, const bool eval_lhs, boost::shared_ptr< DataAtIntegrationPts > &data_ptr, boost::shared_ptr< PhysicalEquations > &physics_ptr)=0
 
Dependent variables
DTensor2Ptr get_P ()
 
DTensor2Ptr get_Sigma ()
 
DTensor0Ptr get_Phi ()
 
doubleget_PhiRef ()
 
DTensor2Ptr get_Flow ()
 
Derivatives of dependent variables
DTensor3Ptr get_P_dh0 ()
 
DTensor3Ptr get_P_dH0 ()
 
DTensor3Ptr get_P_dh1 ()
 
DTensor3Ptr get_P_dH1 ()
 
DTensor3Ptr get_P_dh2 ()
 
DTensor3Ptr get_P_dH2 ()
 
DTensor3Ptr get_Sigma_dh0 ()
 
DTensor3Ptr get_Sigma_dH0 ()
 
DTensor3Ptr get_Sigma_dh1 ()
 
DTensor3Ptr get_Sigma_dH1 ()
 
DTensor3Ptr get_Sigma_dh2 ()
 
DTensor3Ptr get_Sigma_dH2 ()
 
DTensor2Ptr get_Phi_dh ()
 
DTensor2Ptr get_Phi_dH ()
 
DTensor3Ptr get_Flow_dh0 ()
 
DTensor3Ptr get_Flow_dH0 ()
 
DTensor3Ptr get_Flow_dh1 ()
 
DTensor3Ptr get_Flow_dH1 ()
 
DTensor3Ptr get_Flow_dh2 ()
 
DTensor3Ptr get_Flow_dH2 ()
 

Public Attributes

std::vector< doubleactiveVariables
 
std::vector< doubledependentVariables
 
std::vector< doubledependentVariablesDirevatives
 

Active variables

DTensor2Ptr get_h ()
 
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, int S1, int S2>
static DTensor3Ptr get_vecTensor3 (std::vector< double > &v)
 

Detailed Description

Definition at line 379 of file EshelbianPlasticity.hpp.

Member Typedef Documentation

◆ ATensor1

Definition at line 381 of file EshelbianPlasticity.hpp.

◆ ATensor2

Definition at line 382 of file EshelbianPlasticity.hpp.

◆ ATensor3

Definition at line 383 of file EshelbianPlasticity.hpp.

◆ DTensor0Ptr

Definition at line 384 of file EshelbianPlasticity.hpp.

◆ DTensor2Ptr

Definition at line 386 of file EshelbianPlasticity.hpp.

◆ DTensor3Ptr

Definition at line 387 of file EshelbianPlasticity.hpp.

Constructor & Destructor Documentation

◆ PhysicalEquations() [1/2]

EshelbianPlasticity::PhysicalEquations::PhysicalEquations ( )
delete

◆ PhysicalEquations() [2/2]

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

Definition at line 390 of file EshelbianPlasticity.hpp.

391  : activeVariables(size_active, 0), dependentVariables(size_dependent, 0),
392  dependentVariablesDirevatives(size_dependent * size_active, 0) {}

◆ ~PhysicalEquations()

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

Definition at line 393 of file EshelbianPlasticity.hpp.

393 {}

Member Function Documentation

◆ get_Flow()

DTensor2Ptr EshelbianPlasticity::PhysicalEquations::get_Flow ( )

Definition at line 470 of file EshelbianPlasticity.hpp.

470  {
471  return get_VecTensor2<9 + 9 + 1>(dependentVariables);
472  }

◆ get_Flow_dh0()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_Flow_dh0 ( )

Definition at line 525 of file EshelbianPlasticity.hpp.

525  {
526  return get_vecTensor3<9 + 9 + 1, 0, 0>(dependentVariablesDirevatives);
527  }

◆ get_Flow_dH0()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_Flow_dH0 ( )

Definition at line 528 of file EshelbianPlasticity.hpp.

528  {
529  return get_vecTensor3<9 + 9 + 1, 1, 0>(dependentVariablesDirevatives);
530  }

◆ get_Flow_dh1()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_Flow_dh1 ( )

Definition at line 531 of file EshelbianPlasticity.hpp.

531  {
532  return get_vecTensor3<9 + 9 + 1, 0, 1>(dependentVariablesDirevatives);
533  }

◆ get_Flow_dH1()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_Flow_dH1 ( )

Definition at line 534 of file EshelbianPlasticity.hpp.

534  {
535  return get_vecTensor3<9 + 9 + 1, 1, 1>(dependentVariablesDirevatives);
536  }

◆ get_Flow_dh2()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_Flow_dh2 ( )

Definition at line 537 of file EshelbianPlasticity.hpp.

537  {
538  return get_vecTensor3<9 + 9 + 1, 0, 2>(dependentVariablesDirevatives);
539  }

◆ get_Flow_dH2()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_Flow_dH2 ( )

Definition at line 540 of file EshelbianPlasticity.hpp.

540  {
541  return get_vecTensor3<9 + 9 + 1, 1, 2>(dependentVariablesDirevatives);
542  }

◆ get_h()

DTensor2Ptr EshelbianPlasticity::PhysicalEquations::get_h ( )

Definition at line 453 of file EshelbianPlasticity.hpp.

453 { return get_VecTensor2<0>(activeVariables); }

◆ get_H()

DTensor2Ptr EshelbianPlasticity::PhysicalEquations::get_H ( )

Definition at line 454 of file EshelbianPlasticity.hpp.

454 { return get_VecTensor2<9>(activeVariables); }

◆ get_P()

DTensor2Ptr EshelbianPlasticity::PhysicalEquations::get_P ( )

Definition at line 462 of file EshelbianPlasticity.hpp.

462 { return get_VecTensor2<0>(dependentVariables); }

◆ get_P_dh0()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_P_dh0 ( )

Definition at line 480 of file EshelbianPlasticity.hpp.

480  {
481  return get_vecTensor3<0, 0, 0>(dependentVariablesDirevatives);
482  }

◆ get_P_dH0()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_P_dH0 ( )

Definition at line 483 of file EshelbianPlasticity.hpp.

483  {
484  return get_vecTensor3<0, 1, 0>(dependentVariablesDirevatives);
485  }

◆ get_P_dh1()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_P_dh1 ( )

Definition at line 486 of file EshelbianPlasticity.hpp.

486  {
487  return get_vecTensor3<0, 0, 1>(dependentVariablesDirevatives);
488  }

◆ get_P_dH1()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_P_dH1 ( )

Definition at line 489 of file EshelbianPlasticity.hpp.

489  {
490  return get_vecTensor3<0, 1, 1>(dependentVariablesDirevatives);
491  }

◆ get_P_dh2()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_P_dh2 ( )

Definition at line 492 of file EshelbianPlasticity.hpp.

492  {
493  return get_vecTensor3<0, 0, 2>(dependentVariablesDirevatives);
494  }

◆ get_P_dH2()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_P_dH2 ( )

Definition at line 495 of file EshelbianPlasticity.hpp.

495  {
496  return get_vecTensor3<0, 1, 2>(dependentVariablesDirevatives);
497  }

◆ get_Phi()

DTensor0Ptr EshelbianPlasticity::PhysicalEquations::get_Phi ( )

Definition at line 466 of file EshelbianPlasticity.hpp.

466  {
467  return get_VecTensor0<18>(dependentVariables);
468  }

◆ get_Phi_dh()

DTensor2Ptr EshelbianPlasticity::PhysicalEquations::get_Phi_dh ( )

Definition at line 518 of file EshelbianPlasticity.hpp.

518  {
519  return get_VecTensor2<18 * (9 + 9) + 0>(dependentVariablesDirevatives);
520  }

◆ get_Phi_dH()

DTensor2Ptr EshelbianPlasticity::PhysicalEquations::get_Phi_dH ( )

Definition at line 521 of file EshelbianPlasticity.hpp.

521  {
522  return get_VecTensor2<18 * (9 + 9) + 9>(dependentVariablesDirevatives);
523  }

◆ get_PhiRef()

double& EshelbianPlasticity::PhysicalEquations::get_PhiRef ( )

Definition at line 469 of file EshelbianPlasticity.hpp.

469 { return dependentVariables[18]; }

◆ get_Sigma()

DTensor2Ptr EshelbianPlasticity::PhysicalEquations::get_Sigma ( )

Definition at line 463 of file EshelbianPlasticity.hpp.

463  {
464  return get_VecTensor2<9>(dependentVariables);
465  }

◆ get_Sigma_dh0()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_Sigma_dh0 ( )

Definition at line 499 of file EshelbianPlasticity.hpp.

499  {
500  return get_vecTensor3<9, 0, 0>(dependentVariablesDirevatives);
501  }

◆ get_Sigma_dH0()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_Sigma_dH0 ( )

Definition at line 502 of file EshelbianPlasticity.hpp.

502  {
503  return get_vecTensor3<9, 1, 0>(dependentVariablesDirevatives);
504  }

◆ get_Sigma_dh1()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_Sigma_dh1 ( )

Definition at line 505 of file EshelbianPlasticity.hpp.

505  {
506  return get_vecTensor3<9, 0, 1>(dependentVariablesDirevatives);
507  }

◆ get_Sigma_dH1()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_Sigma_dH1 ( )

Definition at line 508 of file EshelbianPlasticity.hpp.

508  {
509  return get_vecTensor3<9, 1, 1>(dependentVariablesDirevatives);
510  }

◆ get_Sigma_dh2()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_Sigma_dh2 ( )

Definition at line 511 of file EshelbianPlasticity.hpp.

511  {
512  return get_vecTensor3<9, 0, 2>(dependentVariablesDirevatives);
513  }

◆ get_Sigma_dH2()

DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_Sigma_dH2 ( )

Definition at line 514 of file EshelbianPlasticity.hpp.

514  {
515  return get_vecTensor3<9, 1, 2>(dependentVariablesDirevatives);
516  }

◆ get_VecTensor0()

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

Definition at line 418 of file EshelbianPlasticity.hpp.

418  {
419  return DTensor0Ptr(&v[S + 0]);
420  }

◆ get_VecTensor2()

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

Definition at line 412 of file EshelbianPlasticity.hpp.

412  {
413  return DTensor2Ptr(&v[S + 0], &v[S + 1], &v[S + 2], &v[S + 3], &v[S + 4],
414  &v[S + 5], &v[S + 6], &v[S + 7], &v[S + 8]);
415  }

◆ get_vecTensor3()

template<int S0, int S1, int S2>
static DTensor3Ptr EshelbianPlasticity::PhysicalEquations::get_vecTensor3 ( std::vector< double > &  v)
static

Definition at line 423 of file EshelbianPlasticity.hpp.

423  {
424  constexpr int A00 = 18 * S0 + 18 * 0 + 9 * S1 + 3 * S2;
425  constexpr int A01 = 18 * S0 + 18 * 1 + 9 * S1 + 3 * S2;
426  constexpr int A02 = 18 * S0 + 18 * 2 + 9 * S1 + 3 * S2;
427  constexpr int A10 = 18 * S0 + 18 * 3 + 9 * S1 + 3 * S2;
428  constexpr int A11 = 18 * S0 + 18 * 4 + 9 * S1 + 3 * S2;
429  constexpr int A12 = 18 * S0 + 18 * 5 + 9 * S1 + 3 * S2;
430  constexpr int A20 = 18 * S0 + 18 * 6 + 9 * S1 + 3 * S2;
431  constexpr int A21 = 18 * S0 + 18 * 7 + 9 * S1 + 3 * S2;
432  constexpr int A22 = 18 * S0 + 18 * 8 + 9 * S1 + 3 * S2;
433  return DTensor3Ptr(
434 
435  &v[A00 + 0], &v[A00 + 1], &v[A00 + 2], &v[A01 + 0], &v[A01 + 1],
436  &v[A01 + 2], &v[A02 + 0], &v[A02 + 1], &v[A02 + 2],
437 
438  &v[A10 + 0], &v[A10 + 1], &v[A10 + 2], &v[A11 + 0], &v[A11 + 1],
439  &v[A11 + 2], &v[A12 + 0], &v[A12 + 1], &v[A12 + 2],
440 
441  &v[A20 + 0], &v[A20 + 1], &v[A20 + 2], &v[A21 + 0], &v[A21 + 1],
442  &v[A21 + 2], &v[A22 + 0], &v[A22 + 1], &v[A22 + 2]
443 
444  );
445  }

◆ recordTape()

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

◆ returnOpJacobian()

virtual OpJacobian* EshelbianPlasticity::PhysicalEquations::returnOpJacobian ( const std::string &  field_name,
const int  tag,
const bool  eval_rhs,
const bool  eval_lhs,
boost::shared_ptr< DataAtIntegrationPts > &  data_ptr,
boost::shared_ptr< PhysicalEquations > &  physics_ptr 
)
pure virtual

Member Data Documentation

◆ activeVariables

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

Definition at line 403 of file EshelbianPlasticity.hpp.

◆ dependentVariables

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

Definition at line 404 of file EshelbianPlasticity.hpp.

◆ dependentVariablesDirevatives

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

Definition at line 405 of file EshelbianPlasticity.hpp.


The documentation for this struct was generated from the following file:
EshelbianPlasticity::PhysicalEquations::DTensor3Ptr
FTensor::Tensor3< FTensor::PackPtr< double *, 1 >, 3, 3, 3 > DTensor3Ptr
Definition: EshelbianPlasticity.hpp:387
EshelbianPlasticity::PhysicalEquations::dependentVariables
std::vector< double > dependentVariables
Definition: EshelbianPlasticity.hpp:404
EshelbianPlasticity::PhysicalEquations::DTensor0Ptr
FTensor::Tensor0< FTensor::PackPtr< double *, 1 > > DTensor0Ptr
Definition: EshelbianPlasticity.hpp:384
EshelbianPlasticity::PhysicalEquations::DTensor2Ptr
FTensor::Tensor2< FTensor::PackPtr< double *, 1 >, 3, 3 > DTensor2Ptr
Definition: EshelbianPlasticity.hpp:386
EshelbianPlasticity::PhysicalEquations::activeVariables
std::vector< double > activeVariables
Definition: EshelbianPlasticity.hpp:403
EshelbianPlasticity::PhysicalEquations::dependentVariablesDirevatives
std::vector< double > dependentVariablesDirevatives
Definition: EshelbianPlasticity.hpp:405