CASM  1.1.0
A Clusters Approach to Statistical Mechanics
CASM::StrainConverter Class Reference

#include <StrainConverter.hh>

Detailed Description

Definition at line 39 of file StrainConverter.hh.

Public Member Functions

 StrainConverter (const STRAIN_METRIC &_MODE, const MatrixXd &_sop_transf_mat, const std::vector< std::vector< Index > > &_order_strain)
 
 StrainConverter (const std::string &mode_name)
 
Index dim () const
 
Matrix3d strain_metric (Eigen::Ref< const Matrix3d > const &F) const
 Get the strain metric in the current mode. More...
 
Matrix3d strain_metric_to_F (Eigen::Ref< const Matrix3d > const &E) const
 
VectorXd unroll_E (Eigen::Ref< const Matrix3d > const &E) const
 Unrolls the green-lagrange metric ( or any symmetric metric) More...
 
Matrix3d rollup_E (Eigen::Ref< const VectorXd > const &_unrolled_E) const
 
VectorXd unrolled_strain_metric (Eigen::Ref< const Matrix3d > const &F) const
 
Matrix3d unrolled_strain_metric_to_F (Eigen::Ref< const VectorXd > const &E) const
 
VectorXd sop (Matrix3d &E, Matrix3d &C, Matrix3d &U, Eigen::Ref< const Matrix3d > const &F) const
 
VectorXd sop (Matrix3d &E, Matrix3d &C, Matrix3d &U, Eigen::Ref< const Matrix3d > const &F, STRAIN_METRIC MODE) const
 
void set_mode (const std::string &mode_name)
 
const Eigen::MatrixXd & sop_transf_mat () const
 
SymGroupRepID symrep_ID () const
 
void set_symmetrized_sop (const SymGroup &pg)
 
void set_conventional_sop_transf_mat ()
 
void set_conventional_order_symmetric ()
 
void set_conventional_order_unsymmetric ()
 

Static Public Member Functions

static Matrix3d green_lagrange (Eigen::Ref< const Matrix3d > const &F)
 GREEN_LAGRANGE = (C-I)/2. More...
 
static Matrix3d green_lagrange_to_F (Eigen::Ref< const Matrix3d > const &E)
 GREEN_LAGRANGE = 1/2 * (F^{T} F - I) More...
 
static Matrix3d biot (Eigen::Ref< const Matrix3d > const &F)
 BIOT = (U-I) More...
 
static Matrix3d biot_to_F (Eigen::Ref< const Matrix3d > const &B)
 BIOT = (U-I) More...
 
static Matrix3d hencky (Eigen::Ref< const Matrix3d > const &F)
 HENCKY = log(C)/2. More...
 
static Matrix3d hencky_to_F (Eigen::Ref< const Matrix3d > const &H)
 HENCKY = log(C)/2. More...
 
static Matrix3d euler_almansi (Eigen::Ref< const Matrix3d > const &F)
 EULER_ALMANSI = (I-(F F^{T})^(-1))/2. More...
 
static Matrix3d euler_almansi_to_F (Eigen::Ref< const Matrix3d > const &A)
 EULER_ALMANSI = (I-(F F^{T})^(-1))/2. More...
 
static Matrix3d disp_grad (Eigen::Ref< const Matrix3d > const &F)
 DISP_GRAD = F. More...
 
static Matrix3d disp_grad_to_F (Eigen::Ref< const Matrix3d > const &F)
 
static Matrix3d metric_tensor (Eigen::Ref< const Matrix3d > const &F)
 
static Matrix3d right_stretch_tensor (Matrix3d &C, Eigen::Ref< const Matrix3d > const &F)
 
static Matrix3d right_stretch_tensor (Eigen::Ref< const Matrix3d > const &F)
 
static Matrix3d strain_metric (Eigen::Ref< const Matrix3d > const &F, STRAIN_METRIC MODE)
 

Private Types

typedef Matrix3d(* MetricFuncPtr) (Eigen::Ref< const Matrix3d > const &)
 

Private Attributes

STRAIN_METRIC STRAIN_METRIC_MODE
 
MatrixXd m_sop_transf_mat
 
std::vector< std::vector< Index > > m_order_strain
 
Eigen::VectorXd m_weight_strain
 
SymGroupRepID m_symrep_ID
 
MetricFuncPtr curr_metric_func
 
MetricFuncPtr curr_inv_metric_func
 

Member Typedef Documentation

◆ MetricFuncPtr

typedef Matrix3d(* CASM::StrainConverter::MetricFuncPtr) (Eigen::Ref< const Matrix3d > const &)
private

Definition at line 150 of file StrainConverter.hh.

Constructor & Destructor Documentation

◆ StrainConverter() [1/2]

CASM::StrainConverter::StrainConverter ( const STRAIN_METRIC _MODE,
const MatrixXd _sop_transf_mat,
const std::vector< std::vector< Index > > &  _order_strain 
)
inline

Definition at line 77 of file StrainConverter.hh.

◆ StrainConverter() [2/2]

CASM::StrainConverter::StrainConverter ( const std::string &  mode_name)
inline

Definition at line 96 of file StrainConverter.hh.

Member Function Documentation

◆ biot()

Matrix3d CASM::StrainConverter::biot ( Eigen::Ref< const Matrix3d > const &  F)
static

BIOT = (U-I)

Definition at line 47 of file StrainConverter.cc.

◆ biot_to_F()

Matrix3d CASM::StrainConverter::biot_to_F ( Eigen::Ref< const Matrix3d > const &  B)
static

BIOT = (U-I)

Definition at line 53 of file StrainConverter.cc.

◆ dim()

Index CASM::StrainConverter::dim ( ) const
inline

Definition at line 98 of file StrainConverter.hh.

◆ disp_grad()

Matrix3d CASM::StrainConverter::disp_grad ( Eigen::Ref< const Matrix3d > const &  F)
static

DISP_GRAD = F.

Definition at line 84 of file StrainConverter.cc.

◆ disp_grad_to_F()

static Matrix3d CASM::StrainConverter::disp_grad_to_F ( Eigen::Ref< const Matrix3d > const &  F)
inlinestatic

Definition at line 61 of file StrainConverter.hh.

◆ euler_almansi()

Matrix3d CASM::StrainConverter::euler_almansi ( Eigen::Ref< const Matrix3d > const &  F)
static

EULER_ALMANSI = (I-(F F^{T})^(-1))/2.

Definition at line 71 of file StrainConverter.cc.

◆ euler_almansi_to_F()

Matrix3d CASM::StrainConverter::euler_almansi_to_F ( Eigen::Ref< const Matrix3d > const &  A)
static

EULER_ALMANSI = (I-(F F^{T})^(-1))/2.

Definition at line 77 of file StrainConverter.cc.

◆ green_lagrange()

Matrix3d CASM::StrainConverter::green_lagrange ( Eigen::Ref< const Matrix3d > const &  F)
static

GREEN_LAGRANGE = (C-I)/2.

GREEN_LAGRANGE = 1/2 * (F^{T} F - I)

Definition at line 34 of file StrainConverter.cc.

◆ green_lagrange_to_F()

Matrix3d CASM::StrainConverter::green_lagrange_to_F ( Eigen::Ref< const Matrix3d > const &  E)
static

GREEN_LAGRANGE = 1/2 * (F^{T} F - I)

Definition at line 40 of file StrainConverter.cc.

◆ hencky()

Matrix3d CASM::StrainConverter::hencky ( Eigen::Ref< const Matrix3d > const &  F)
static

HENCKY = log(C)/2.

Definition at line 59 of file StrainConverter.cc.

◆ hencky_to_F()

Matrix3d CASM::StrainConverter::hencky_to_F ( Eigen::Ref< const Matrix3d > const &  H)
static

HENCKY = log(C)/2.

Definition at line 65 of file StrainConverter.cc.

◆ metric_tensor()

Matrix3d CASM::StrainConverter::metric_tensor ( Eigen::Ref< const Matrix3d > const &  F)
static

Definition at line 13 of file StrainConverter.cc.

◆ right_stretch_tensor() [1/2]

Matrix3d CASM::StrainConverter::right_stretch_tensor ( Eigen::Ref< const Matrix3d > const &  F)
static

Definition at line 27 of file StrainConverter.cc.

◆ right_stretch_tensor() [2/2]

Matrix3d CASM::StrainConverter::right_stretch_tensor ( Matrix3d C,
Eigen::Ref< const Matrix3d > const &  F 
)
static

Definition at line 19 of file StrainConverter.cc.

◆ rollup_E()

Matrix3d CASM::StrainConverter::rollup_E ( Eigen::Ref< const VectorXd > const &  _unrolled_E) const

Definition at line 164 of file StrainConverter.cc.

◆ set_conventional_order_symmetric()

void CASM::StrainConverter::set_conventional_order_symmetric ( )

Definition at line 315 of file StrainConverter.cc.

◆ set_conventional_order_unsymmetric()

void CASM::StrainConverter::set_conventional_order_unsymmetric ( )

Definition at line 338 of file StrainConverter.cc.

◆ set_conventional_sop_transf_mat()

void CASM::StrainConverter::set_conventional_sop_transf_mat ( )

Definition at line 304 of file StrainConverter.cc.

◆ set_mode()

void CASM::StrainConverter::set_mode ( const std::string &  mode_name)

GREEN_LAGRANGE = 1/2 * (F^{T} F - I)

BIOT = (U-I)

HENCKY = log(C)/2

EULER_ALMANSI = 0.5 * (I-(F F^{T})^(-1))

STRETCH = U

DISP_GRAD = F

Definition at line 211 of file StrainConverter.cc.

◆ set_symmetrized_sop()

void CASM::StrainConverter::set_symmetrized_sop ( const SymGroup pg)

Definition at line 267 of file StrainConverter.cc.

◆ sop() [1/2]

VectorXd CASM::StrainConverter::sop ( Matrix3d E,
Matrix3d C,
Matrix3d U,
Eigen::Ref< const Matrix3d > const &  F 
) const

Definition at line 203 of file StrainConverter.cc.

◆ sop() [2/2]

VectorXd CASM::StrainConverter::sop ( Matrix3d E,
Matrix3d C,
Matrix3d U,
Eigen::Ref< const Matrix3d > const &  F,
STRAIN_METRIC  MODE 
) const

Definition at line 191 of file StrainConverter.cc.

◆ sop_transf_mat()

const Eigen::MatrixXd& CASM::StrainConverter::sop_transf_mat ( ) const
inline

Definition at line 123 of file StrainConverter.hh.

◆ strain_metric() [1/2]

Matrix3d CASM::StrainConverter::strain_metric ( Eigen::Ref< const Matrix3d > const &  F) const

Get the strain metric in the current mode.

Definition at line 131 of file StrainConverter.cc.

◆ strain_metric() [2/2]

Matrix3d CASM::StrainConverter::strain_metric ( Eigen::Ref< const Matrix3d > const &  F,
STRAIN_METRIC  MODE 
)
static

GREEN_LAGRANGE = 1/2 * (F^{T} F - I)

BIOT = (U-I)

HENCKY = log(C)/2

EULER_ALMANSI = 0.5 * (I-(F F^{T})^(-1))

STRETCH

DISP_GRAD

Definition at line 91 of file StrainConverter.cc.

◆ strain_metric_to_F()

Matrix3d CASM::StrainConverter::strain_metric_to_F ( Eigen::Ref< const Matrix3d > const &  E) const

Definition at line 140 of file StrainConverter.cc.

◆ symrep_ID()

SymGroupRepID CASM::StrainConverter::symrep_ID ( ) const
inline

Definition at line 125 of file StrainConverter.hh.

◆ unroll_E()

VectorXd CASM::StrainConverter::unroll_E ( Eigen::Ref< const Matrix3d > const &  E) const

Unrolls the green-lagrange metric ( or any symmetric metric)

Definition at line 151 of file StrainConverter.cc.

◆ unrolled_strain_metric()

VectorXd CASM::StrainConverter::unrolled_strain_metric ( Eigen::Ref< const Matrix3d > const &  F) const

Definition at line 177 of file StrainConverter.cc.

◆ unrolled_strain_metric_to_F()

Matrix3d CASM::StrainConverter::unrolled_strain_metric_to_F ( Eigen::Ref< const VectorXd > const &  E) const

Definition at line 183 of file StrainConverter.cc.

Member Data Documentation

◆ curr_inv_metric_func

MetricFuncPtr CASM::StrainConverter::curr_inv_metric_func
private

Definition at line 152 of file StrainConverter.hh.

◆ curr_metric_func

MetricFuncPtr CASM::StrainConverter::curr_metric_func
private

Definition at line 151 of file StrainConverter.hh.

◆ m_order_strain

std::vector<std::vector<Index> > CASM::StrainConverter::m_order_strain
private

Definition at line 144 of file StrainConverter.hh.

◆ m_sop_transf_mat

MatrixXd CASM::StrainConverter::m_sop_transf_mat
private

Definition at line 140 of file StrainConverter.hh.

◆ m_symrep_ID

SymGroupRepID CASM::StrainConverter::m_symrep_ID
private

Definition at line 147 of file StrainConverter.hh.

◆ m_weight_strain

Eigen::VectorXd CASM::StrainConverter::m_weight_strain
private

Definition at line 145 of file StrainConverter.hh.

◆ STRAIN_METRIC_MODE

STRAIN_METRIC CASM::StrainConverter::STRAIN_METRIC_MODE
private

Definition at line 139 of file StrainConverter.hh.


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