PolyFEM
Loading...
Searching...
No Matches
ElasticityUtils.hpp File Reference
#include <polyfem/Common.hpp>
#include <polyfem/assembler/AssemblerData.hpp>
#include <polyfem/basis/ElementBases.hpp>
#include <polyfem/utils/AutodiffTypes.hpp>
#include <polyfem/utils/Types.hpp>
#include <polyfem/utils/MatrixUtils.hpp>
#include <Eigen/Dense>
#include <vector>
#include <array>
#include <functional>
Include dependency graph for ElasticityUtils.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Namespaces

namespace  polyfem
 

Typedefs

typedef std::array< double, 2 > polyfem::DampingParameters
 

Enumerations

enum class  polyfem::ElasticityTensorType { polyfem::CAUCHY , polyfem::PK1 , polyfem::PK2 , polyfem::F }
 

Functions

Eigen::VectorXd polyfem::gradient_from_energy (const int size, const int n_bases, const assembler::NonLinearAssemblerData &data, const std::function< DScalar1< double, Eigen::Matrix< double, 6, 1 > >(const assembler::NonLinearAssemblerData &)> &fun6, const std::function< DScalar1< double, Eigen::Matrix< double, 8, 1 > >(const assembler::NonLinearAssemblerData &)> &fun8, const std::function< DScalar1< double, Eigen::Matrix< double, 12, 1 > >(const assembler::NonLinearAssemblerData &)> &fun12, const std::function< DScalar1< double, Eigen::Matrix< double, 18, 1 > >(const assembler::NonLinearAssemblerData &)> &fun18, const std::function< DScalar1< double, Eigen::Matrix< double, 24, 1 > >(const assembler::NonLinearAssemblerData &)> &fun24, const std::function< DScalar1< double, Eigen::Matrix< double, 30, 1 > >(const assembler::NonLinearAssemblerData &)> &fun30, const std::function< DScalar1< double, Eigen::Matrix< double, 60, 1 > >(const assembler::NonLinearAssemblerData &)> &fun60, const std::function< DScalar1< double, Eigen::Matrix< double, 81, 1 > >(const assembler::NonLinearAssemblerData &)> &fun81, const std::function< DScalar1< double, Eigen::Matrix< double, Eigen::Dynamic, 1, 0, SMALL_N, 1 > >(const assembler::NonLinearAssemblerData &)> &funN, const std::function< DScalar1< double, Eigen::Matrix< double, Eigen::Dynamic, 1, 0, 1000, 1 > >(const assembler::NonLinearAssemblerData &)> &funBigN, const std::function< DScalar1< double, Eigen::VectorXd >(const assembler::NonLinearAssemblerData &)> &funn)
 
Eigen::MatrixXd polyfem::hessian_from_energy (const int size, const int n_bases, const assembler::NonLinearAssemblerData &data, const std::function< DScalar2< double, Eigen::Matrix< double, 6, 1 >, Eigen::Matrix< double, 6, 6 > >(const assembler::NonLinearAssemblerData &)> &fun6, const std::function< DScalar2< double, Eigen::Matrix< double, 8, 1 >, Eigen::Matrix< double, 8, 8 > >(const assembler::NonLinearAssemblerData &)> &fun8, const std::function< DScalar2< double, Eigen::Matrix< double, 12, 1 >, Eigen::Matrix< double, 12, 12 > >(const assembler::NonLinearAssemblerData &)> &fun12, const std::function< DScalar2< double, Eigen::Matrix< double, 18, 1 >, Eigen::Matrix< double, 18, 18 > >(const assembler::NonLinearAssemblerData &)> &fun18, const std::function< DScalar2< double, Eigen::Matrix< double, 24, 1 >, Eigen::Matrix< double, 24, 24 > >(const assembler::NonLinearAssemblerData &)> &fun24, const std::function< DScalar2< double, Eigen::Matrix< double, 30, 1 >, Eigen::Matrix< double, 30, 30 > >(const assembler::NonLinearAssemblerData &)> &fun30, const std::function< DScalar2< double, Eigen::Matrix< double, 60, 1 >, Eigen::Matrix< double, 60, 60 > >(const assembler::NonLinearAssemblerData &)> &fun60, const std::function< DScalar2< double, Eigen::Matrix< double, 81, 1 >, Eigen::Matrix< double, 81, 81 > >(const assembler::NonLinearAssemblerData &)> &fun81, const std::function< DScalar2< double, Eigen::Matrix< double, Eigen::Dynamic, 1, 0, SMALL_N, 1 >, Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic, 0, SMALL_N, SMALL_N > >(const assembler::NonLinearAssemblerData &)> &funN, const std::function< DScalar2< double, Eigen::VectorXd, Eigen::MatrixXd >(const assembler::NonLinearAssemblerData &)> &funn)
 
double polyfem::von_mises_stress_for_stress_tensor (const Eigen::MatrixXd &stress)
 
Eigen::MatrixXd polyfem::pk1_from_cauchy (const Eigen::MatrixXd &stress, const Eigen::MatrixXd &F)
 
Eigen::MatrixXd polyfem::pk2_from_cauchy (const Eigen::MatrixXd &stress, const Eigen::MatrixXd &F)
 
void polyfem::compute_diplacement_grad (const int size, const ElementAssemblyValues &vals, const Eigen::MatrixXd &local_pts, const int p, const Eigen::MatrixXd &displacement, Eigen::MatrixXd &displacement_grad)
 
void polyfem::compute_diplacement_grad (const int size, const ElementBases &bs, const ElementAssemblyValues &vals, const Eigen::MatrixXd &local_pts, const int p, const Eigen::MatrixXd &displacement, Eigen::MatrixXd &displacement_grad)
 
double polyfem::convert_to_lambda (const bool is_volume, const double E, const double nu)
 
double polyfem::convert_to_mu (const double E, const double nu)
 
Eigen::Matrix2d polyfem::d_lambda_mu_d_E_nu (const bool is_volume, const double E, const double nu)
 
Eigen::Matrix2d polyfem::d_E_nu_d_lambda_mu (const bool is_volume, const double lambda, const double mu)
 
double polyfem::convert_to_E (const bool is_volume, const double lambda, const double mu)
 
double polyfem::convert_to_nu (const bool is_volume, const double lambda, const double mu)
 
template<typename AutoDiffVect >
void polyfem::get_local_disp (const assembler::NonLinearAssemblerData &data, const int size, AutoDiffVect &local_disp)
 
template<typename AutoDiffVect , typename AutoDiffGradMat >
void polyfem::compute_disp_grad_at_quad (const assembler::NonLinearAssemblerData &data, const AutoDiffVect &local_disp, const int p, const int size, AutoDiffGradMat &def_grad)
 
template<typename AutoDiffGradMat >
AutoDiffGradMat::Scalar polyfem::first_invariant (const AutoDiffGradMat &B)
 
template<typename AutoDiffGradMat >
AutoDiffGradMat::Scalar polyfem::second_invariant (const AutoDiffGradMat &B)
 
template<typename AutoDiffGradMat >
AutoDiffGradMat::Scalar polyfem::third_invariant (const AutoDiffGradMat &B)
 

Variables

constexpr int polyfem::SMALL_N = POLYFEM_SMALL_N
 
constexpr int polyfem::BIG_N = POLYFEM_BIG_N