Loading [MathJax]/extensions/tex2jax.js
PolyFEM
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
polyfem::assembler::ElasticityTensor Class Reference

#include <MatParams.hpp>

Public Member Functions

void resize (const int size)
 
double operator() (int i, int j) const
 
double & operator() (int i, int j)
 
void set_from_entries (const std::vector< double > &entries, const std::string &stress_unit)
 
void set_from_lambda_mu (const double lambda, const double mu, const std::string &stress_unit)
 
void set_from_young_poisson (const double young, const double poisson, const std::string &stress_unit)
 
void set_orthotropic (double Ex, double Ey, double Ez, double nuXY, double nuXZ, double nuYZ, double muYZ, double muZX, double muXY, const std::string &stress_unit)
 
void set_orthotropic (double Ex, double Ey, double nuXY, double muXY, const std::string &stress_unit)
 
void set_transversely_isotropic (double Et, double Ea, double nu_t, double nu_a, double Ga, const std::string &stress_units)
 
template<int DIM>
double compute_stress (const std::array< double, DIM > &strain, const int j) const
 
void rotate_stiffness (const Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, 0, 6, 6 > &rotation_mtx_voigt)
 
void unrotate_stiffness ()
 

Private Attributes

Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, 0, 6, 6 > stiffness_tensor_
 
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, 0, 6, 6 > reference_stiffness_tensor_
 
int size_
 

Detailed Description

Definition at line 41 of file MatParams.hpp.

Member Function Documentation

◆ compute_stress()

template<int DIM>
template double polyfem::assembler::ElasticityTensor::compute_stress< 6 > ( const std::array< double, DIM > &  strain,
const int  j 
) const

Definition at line 336 of file MatParams.cpp.

Referenced by polyfem::assembler::HookeLinearElasticity::assemble(), and polyfem::assembler::HookeLinearElasticity::assign_stress_tensor().

Here is the caller graph for this function:

◆ operator()() [1/2]

double & polyfem::assembler::ElasticityTensor::operator() ( int  i,
int  j 
)

Definition at line 114 of file MatParams.cpp.

References stiffness_tensor_.

◆ operator()() [2/2]

double polyfem::assembler::ElasticityTensor::operator() ( int  i,
int  j 
) const

Definition at line 103 of file MatParams.cpp.

References stiffness_tensor_.

◆ resize()

void polyfem::assembler::ElasticityTensor::resize ( const int  size)

Definition at line 91 of file MatParams.cpp.

References size_, and stiffness_tensor_.

Referenced by polyfem::autogen::saint_venant_2d_function(), polyfem::assembler::HookeLinearElasticity::set_size(), and polyfem::assembler::SaintVenantElasticity::set_size().

Here is the caller graph for this function:

◆ rotate_stiffness()

void polyfem::assembler::ElasticityTensor::rotate_stiffness ( const Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, 0, 6, 6 > &  rotation_mtx_voigt)

Definition at line 346 of file MatParams.cpp.

References reference_stiffness_tensor_, and stiffness_tensor_.

Referenced by polyfem::assembler::HookeLinearElasticity::assemble(), polyfem::assembler::HookeLinearElasticity::assign_stress_tensor(), polyfem::assembler::SaintVenantElasticity::assign_stress_tensor(), and polyfem::assembler::SaintVenantElasticity::compute_energy_aux().

Here is the caller graph for this function:

◆ set_from_entries()

void polyfem::assembler::ElasticityTensor::set_from_entries ( const std::vector< double > &  entries,
const std::string &  stress_unit 
)

Definition at line 125 of file MatParams.cpp.

References entries, set_orthotropic(), set_transversely_isotropic(), and size_.

Referenced by polyfem::assembler::HookeLinearElasticity::add_multimaterial(), and polyfem::assembler::SaintVenantElasticity::add_multimaterial().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ set_from_lambda_mu()

void polyfem::assembler::ElasticityTensor::set_from_lambda_mu ( const double  lambda,
const double  mu,
const std::string &  stress_unit 
)

Definition at line 211 of file MatParams.cpp.

References size_.

Referenced by polyfem::assembler::HookeLinearElasticity::add_multimaterial(), and polyfem::assembler::SaintVenantElasticity::add_multimaterial().

Here is the caller graph for this function:

◆ set_from_young_poisson()

void polyfem::assembler::ElasticityTensor::set_from_young_poisson ( const double  young,
const double  poisson,
const std::string &  stress_unit 
)

Definition at line 255 of file MatParams.cpp.

References size_, and stiffness_tensor_.

Referenced by polyfem::assembler::HookeLinearElasticity::add_multimaterial(), and polyfem::assembler::SaintVenantElasticity::add_multimaterial().

Here is the caller graph for this function:

◆ set_orthotropic() [1/2]

void polyfem::assembler::ElasticityTensor::set_orthotropic ( double  Ex,
double  Ey,
double  Ez,
double  nuXY,
double  nuXZ,
double  nuYZ,
double  muYZ,
double  muZX,
double  muXY,
const std::string &  stress_unit 
)

Definition at line 278 of file MatParams.cpp.

References size_, and stiffness_tensor_.

Referenced by set_from_entries().

Here is the caller graph for this function:

◆ set_orthotropic() [2/2]

void polyfem::assembler::ElasticityTensor::set_orthotropic ( double  Ex,
double  Ey,
double  nuXY,
double  muXY,
const std::string &  stress_unit 
)

Definition at line 301 of file MatParams.cpp.

References size_, and stiffness_tensor_.

◆ set_transversely_isotropic()

void polyfem::assembler::ElasticityTensor::set_transversely_isotropic ( double  Et,
double  Ea,
double  nu_t,
double  nu_a,
double  Ga,
const std::string &  stress_units 
)

Definition at line 316 of file MatParams.cpp.

References size_, and stiffness_tensor_.

Referenced by set_from_entries().

Here is the caller graph for this function:

◆ unrotate_stiffness()

void polyfem::assembler::ElasticityTensor::unrotate_stiffness ( )

Definition at line 352 of file MatParams.cpp.

References reference_stiffness_tensor_, and stiffness_tensor_.

Member Data Documentation

◆ reference_stiffness_tensor_

Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, 0, 6, 6> polyfem::assembler::ElasticityTensor::reference_stiffness_tensor_
private

Definition at line 71 of file MatParams.hpp.

Referenced by rotate_stiffness(), and unrotate_stiffness().

◆ size_

int polyfem::assembler::ElasticityTensor::size_
private

◆ stiffness_tensor_

Eigen::Matrix<double, Eigen::Dynamic, Eigen::Dynamic, 0, 6, 6> polyfem::assembler::ElasticityTensor::stiffness_tensor_
private

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