8#ifndef model_PolyhedronInclusion_H_
9#define model_PolyhedronInclusion_H_
44 ,
private std::map<size_t,Plane<dim>>
48 typedef Eigen::Matrix<double,voigtSize,voigtSize> MatrixVoigtSize;
49 typedef Eigen::Matrix<double,dim,dim> MatrixDim;
50 typedef Eigen::Matrix<double,dim,1> VectorDim;
57 const std::map<
size_t,std::vector<size_t>>& faceIDs);
84 const std::map<size_t,PolyhedronInclusionNodeIO<dim>>&
nodes;
85 const std::map<size_t,std::vector<std::pair<size_t,VectorDim>>>
faces;
97 const std::map<
size_t,std::vector<size_t>>& faceIDs,
101 const double& _mobilityReduction,
106 bool contains(
const VectorDim&
x)
const override;
107 MatrixDim
stress(
const VectorDim&
x)
const override;
109 MatrixDim
strain(
const VectorDim&
x)
const ;
110 double eshelbyTensorComponent(
const int&
i,
const int&
j,
const int&
k,
const int&l,
const MatrixDim& PHI,
const MatrixDim&
delta,
const Psi_I1& psi,
const VectorDim& Svnorm,
const VectorDim& Vnorm,
const VectorDim& Vdir)
const;
112 const std::map<size_t,Plane<dim>>&
planes()
const;
EshelbyInclusionBase(const MatrixDim &_eT, const double &_nu, const double &_mu, const double &_mobilityReduction, const int &_phaseID, const std::shared_ptr< SecondPhase< dim > > &sph)
MatrixDim stress(const VectorDim &x) const override
const std::map< size_t, std::vector< std::pair< size_t, VectorDim > > > faces
const std::map< size_t, PolyhedronInclusionNodeIO< dim > > & nodes
static double Psi_I1_a_a_b(double a, double b, double le)
static double Psi_I1_b_le_le(double a, double b, double le)
static double Psi_I1_b_b_le(double a, double b, double le)
static std::map< size_t, std::vector< std::pair< size_t, VectorDim > > > getFaces(const std::map< size_t, PolyhedronInclusionNodeIO< dim > > &nodesMap, const std::map< size_t, std::vector< size_t > > &faceIDs)
static double Psi_I1_a_b_b(double a, double b, double le)
MatrixDim strain(const VectorDim &x) const
static double Phi_u_II_le(double a, double b, double le)
static const SymmetricVoigtTraits< dim > voigtTraits
const std::map< size_t, Plane< dim > > & planes() const
static double Phi_u_II_a(double a, double b, double le)
MatrixDim elasticStrain(const VectorDim &x) const
static double Psi_I1_b_b_b(double a, double b, double le)
static double Psi_I1_a_a_a(double a, double b, double le)
PolyhedronInclusion(const std::map< size_t, PolyhedronInclusionNodeIO< dim > > &nodesMap, const std::map< size_t, std::vector< size_t > > &faceIDs, const MatrixDim &_eT, const double &_nu, const double &_mu, const double &_mobilityReduction, const int &_phaseID, const std::shared_ptr< SecondPhase< dim > > &sph)
static double Psi_I1_a_le_le(double a, double b, double le)
static double Psi_I1_a_b_le(double a, double b, double le)
MatrixVoigtSize eshelbyTensorVoigt(const VectorDim &x) const
double eshelbyTensorComponent(const int &i, const int &j, const int &k, const int &l, const MatrixDim &PHI, const MatrixDim &delta, const Psi_I1 &psi, const VectorDim &Svnorm, const VectorDim &Vnorm, const VectorDim &Vdir) const
static double Psi_I1_a_a_le(double a, double b, double le)
bool contains(const VectorDim &x) const override
static double Psi_I1_le_le_le(double a, double b, double le)
static double Phi_u_II_b(double a, double b, double le)
static constexpr int voigtSize