G+Smo  24.08.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp > Class Template Reference

Detailed Description

template<short_t dim, class T, short_t matId, bool comp, enum Material mat = decodeMat_id<matId>::material, enum Implementation imp = decodeMat_id<matId>::implementation>
class gismo::gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >

This class defines hyperelastic material matrices.

Template Parameters
dimThe dimension of the problem (2 = planar, 3 = surface)
TReal type
matIdEncoded ID for material (see encodeMat_id)
compCompressibility flag
matMaterial flag (see Material)
impImplementation flag (see Implementation)
+ Inheritance diagram for gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >:
+ Collaboration diagram for gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >:

Public Types

typedef memory::shared_ptr
< gsMaterialMatrixNonlinear
Ptr
 Shared pointer for gsMaterialMatrixNonlinear.
 
typedef memory::unique_ptr
< gsMaterialMatrixNonlinear
uPtr
 Unique pointer for gsMaterialMatrixNonlinear.
 

Public Member Functions

void _computeMetricDeformed (const index_t patch, const gsMatrix< T > &u) const
 Computes metric quantities on the deformed geometry.
 
void _computeMetricUndeformed (const index_t patch, const gsMatrix< T > &u) const
 Computes metric quantities on the undeformed geometry.
 
void _computePStrain (const gsMatrix< T > &C) const
 Computes the stretch given deformation tensor C, into class members m_stretches and m_stretchDirs.
 
void _computePStress (const gsMatrix< T > &C) const
 Computes the principal stresses of a given stress tensor S, into class members m_pstress and m_pstressvec.
 
void _computeStretch (const gsMatrix< T > &C, const gsMatrix< T > &gcon_ori) const
 Computes the stretch given deformation tensor C, into class members m_stretches and m_stretchDirs.
 
std::pair< gsVector< T >
, gsMatrix< T > > 
_evalPStrain (const gsMatrix< T > &C) const
 Computes the principal strain given deformation tensor C, into a pair.
 
std::pair< gsVector< T >
, gsMatrix< T > > 
_evalPStress (const gsMatrix< T > &S) const
 Computes the principal stress given stress tensor S, into a pair.
 
std::pair< gsVector< T >
, gsMatrix< T > > 
_evalStretch (const gsMatrix< T > &C, const gsMatrix< T > &gcon_ori) const
 Computes the stretch given deformation tensor C, into a pair.
 
gsMatrix< T > _getAcon_def (index_t k, T z) const
 Returns the contravariant a tensor on the deformed geometry.
 
gsMatrix< T > _getacon_def (index_t k, T z) const
 Returns the contravariant basis vector a on the deformed geometry.
 
gsMatrix< T > _getAcon_ori (index_t k, T z) const
 Returns the contravariant a tensor on the original geometry.
 
gsMatrix< T > _getacon_ori (index_t k, T z) const
 Returns the contravariant basis vector a on the original geometry.
 
gsMatrix< T > _getAcov_def (index_t k, T z) const
 Returns the covariant a tensor on the deformed geometry.
 
gsMatrix< T > _getacov_def (index_t k, T z) const
 Returns the covariant basis vector a on the deformed geometry.
 
gsMatrix< T > _getAcov_ori (index_t k, T z) const
 Returns the covariant a tensor on the original geometry.
 
gsMatrix< T > _getacov_ori (index_t k, T z) const
 Returns the covariant basis vector a on the original geometry.
 
gsMatrix< T > _getBcov_def (index_t k, T z) const
 Returns the covariant b tensor on the deformed geometry.
 
gsMatrix< T > _getBcov_ori (index_t k, T z) const
 Returns the covariant b tensor on the original geometry.
 
gsMatrix< T > _getGcon_def (index_t k, T z) const
 Returns the contravariant metric tensor on the deformed geometry.
 
gsMatrix< T > _getgcon_def (index_t k, T z) const
 Returns the contravariant basis vector g on the deformed geometry.
 
gsMatrix< T > _getGcon_ori (index_t k, T z) const
 Returns the contravariant metric tensor on the original geometry.
 
gsMatrix< T > _getgcon_ori (index_t k, T z) const
 Returns the contravariant basis vector g on the original geometry.
 
gsMatrix< T > _getGcov_def (index_t k, T z) const
 Returns the covariant metric tensor on the deformed geometry.
 
gsMatrix< T > _getgcov_def (index_t k, T z) const
 Returns the covariant basis vector g on the deformed geometry.
 
gsMatrix< T > _getGcov_ori (index_t k, T z) const
 Returns the covariant metric tensor on the original geometry.
 
gsMatrix< T > _getgcov_ori (index_t k, T z) const
 Returns the covariant basis vector g on the original geometry.
 
void _getMetric (const index_t k, const T z) const
 Gets metric quantities on the deformed and undeformed geometries.
 
void _getMetric (index_t k, T z, const gsMatrix< T > &C) const
 Gets metric quantities on the deformed and undeformed geometries.
 
void _getMetricDeformed (const index_t k, const T z) const
 Gets metric quantities on the deformed geometry.
 
void _getMetricUndeformed (const index_t k, const T z) const
 Gets metric quantities on the undeformed geometry.
 
gsMatrix< T > _getncov_def (index_t k, T z) const
 Returns the covariant n tensor on the deformed geometry.
 
gsMatrix< T > _getncov_ori (index_t k, T z) const
 Returns the covariant n tensor on the original geometry.
 
gsMatrix< T > _transformation (const gsMatrix< T > &basis1, const gsMatrix< T > &basis2) const
 Computes the stretch given deformation tensor C, into class members m_stretches and m_stretchDirs.
 
void defaultOptions () override
 See gsMaterialMatrixBase for details.
 
virtual void density_into (const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const override
 See gsMaterialMatrixBase for details.
 
gsMatrix< T > eval3D_CauchyPStress (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out=MaterialOutput::Generic) const override
 See gsMaterialMatrixBase for details.
 
gsMatrix< T > eval3D_CauchyStress (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const override
 See gsMaterialMatrixBase for details.
 
gsMatrix< T > eval3D_CauchyVector (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out=MaterialOutput::Generic) const override
 See gsMaterialMatrixBase for details.
 
virtual gsMatrix< T > eval3D_con2cart (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const override
 See gsMaterialMatrixBase for details.
 
virtual gsMatrix< T > eval3D_cov2cart (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const override
 See gsMaterialMatrixBase for details.
 
virtual gsMatrix< T > eval3D_deformation (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const override
 See gsMaterialMatrixBase for details.
 
gsMatrix< T > eval3D_detF (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const override
 See gsMaterialMatrixBase for details.
 
gsMatrix< T > eval3D_dmatrix (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out=MaterialOutput::Generic) const override
 See gsMaterialMatrixBase for details.
 
gsMatrix< T > eval3D_matrix (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out=MaterialOutput::Generic) const override
 See gsMaterialMatrixBase for details.
 
gsMatrix< T > eval3D_matrix_C (const gsMatrix< T > &Cmat, const index_t patch, const gsVector< T > &u, const T z, enum MaterialOutput out=MaterialOutput::Generic) const override
 See gsMaterialMatrixBase for details.
 
virtual gsMatrix< T > eval3D_pstrain (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const override
 See gsMaterialMatrixBase for details.
 
gsMatrix< T > eval3D_pstress (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out=MaterialOutput::Generic) const override
 See gsMaterialMatrixBase for details.
 
gsMatrix< T > eval3D_pstressDir (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out=MaterialOutput::Generic) const override
 See gsMaterialMatrixBase for details.
 
virtual gsMatrix< T > eval3D_pstressTransform (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Provides the transformation of the principle stresses. More...
 
virtual gsMatrix< T > eval3D_pstretch (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const override
 See gsMaterialMatrixBase for details.
 
virtual gsMatrix< T > eval3D_pstretchDir (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const override
 See gsMaterialMatrixBase for details.
 
virtual gsMatrix< T > eval3D_pstretchTransform (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Provides the transformation of the principle stretches. More...
 
virtual gsMatrix< T > eval3D_spec2con (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const override
 See gsMaterialMatrixBase for details.
 
virtual gsMatrix< T > eval3D_spec2cov (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const override
 See gsMaterialMatrixBase for details.
 
virtual gsMatrix< T > eval3D_strain (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const override
 See gsMaterialMatrixBase for details.
 
gsMatrix< T > eval3D_stress (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const override
 See gsMaterialMatrixBase for details.
 
gsMatrix< T > eval3D_stress_C (const gsMatrix< T > &Cmat, const index_t patch, const gsVector< T > &u, const T z, enum MaterialOutput out=MaterialOutput::Generic) const
 See gsMaterialMatrixBase for details.
 
virtual gsMatrix< T > eval3D_tensionfield (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const override
 See gsMaterialMatrixBase for details.
 
gsMatrix< T > eval3D_vector (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out=MaterialOutput::Generic) const override
 See gsMaterialMatrixBase for details.
 
gsMatrix< T > eval3D_vector_C (const gsMatrix< T > &Cmat, const index_t patch, const gsVector< T > &u, const T z, enum MaterialOutput out=MaterialOutput::Generic) const override
 See gsMaterialMatrixBase for details.
 
const function_ptr getAlpha (const index_t &i) const override
 Gets Alpha_i.
 
virtual const function_ptr getDensity () const
 Gets the Density.
 
const function_ptr getMu (const index_t &i) const override
 Gets Mu_i.
 
virtual const function_ptr getParameter (const index_t i) const
 Gets parameter i. More...
 
const function_ptr getPoissonsRatio () const override
 Gets the Poisson's Ratio.
 
const function_ptr getRatio () const override
 Gets the Ratio for the MR material.
 
virtual const function_ptr getThickness () const
 Gets the Density.
 
const function_ptr getYoungsModulus () const override
 Gets the YoungsModulus.
 
 gsMaterialMatrixNonlinear (const gsFunctionSet< T > &mp, const gsFunctionSet< T > &thickness)
 Constructor without material parameters. More...
 
 gsMaterialMatrixNonlinear (const gsFunctionSet< T > &mp, const gsFunctionSet< T > &thickness, const std::vector< gsFunctionSet< T > * > &pars)
 General constructor without density. More...
 
 gsMaterialMatrixNonlinear (const gsFunctionSet< T > &thickness, const std::vector< gsFunctionSet< T > * > &pars)
 General constructor without density and multipatch. More...
 
 gsMaterialMatrixNonlinear (const gsFunctionSet< T > &thickness, const std::vector< gsFunctionSet< T > * > &pars, const gsFunctionSet< T > &Density)
 General constructor without multipatch. More...
 
 gsMaterialMatrixNonlinear (const gsFunctionSet< T > &mp, const gsFunctionSet< T > &thickness, const std::vector< gsFunctionSet< T > * > &pars, const gsFunctionSet< T > &Density)
 Full general constructor. More...
 
 gsMaterialMatrixNonlinear ()
 Destructor.
 
virtual bool hasDensity () const
 Returns true if a density is assigned.
 
virtual bool hasThickness () const
 Returns true if a thickness is assigned.
 
virtual void info () const
 Prints info.
 
enum MatIntegration isMatIntegrated () const override
 See gsMaterialMatrixBase for details.
 
enum MatIntegration isVecIntegrated () const override
 See gsMaterialMatrixBase for details.
 
virtual const
gsMaterialMatrixBase< T > * 
material () const
 Returns this.
 
virtual gsMaterialMatrixBase< T > * material ()
 Returns this.
 
virtual index_t numParameters () const
 Gets the number of parameters.
 
virtual gsOptionListoptions ()
 Returns the options. More...
 
virtual void parameters_into (const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const override
 See gsMaterialMatrixBase for details.
 
std::ostream & print (std::ostream &os) const override
 See gsMaterialMatrixBase for details.
 
virtual void pstress_into (const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const
 Evaluates the priciple stresses in the shell (3x1 vector) More...
 
virtual void pstressDir_into (const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const
 Evaluates the directions of the priciple stresses in the shell (3x1 vector per direction) More...
 
void pstretch_into (const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const override
 See gsMaterialMatrixBase for details.
 
void pstretchDir_into (const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const override
 See gsMaterialMatrixBase for details.
 
virtual void resetParameters ()
 See gsMaterialMatrixBase for details.
 
void setAlpha (const index_t &i, const gsFunctionSet< T > &Alpha_i) override
 Sets Alpha_i.
 
virtual void setDensity (function_ptr Density)
 Sets the density.
 
virtual void setDensity (const gsFunctionSet< T > &Density)
 Sets the density.
 
void setMu (const index_t &i, const gsFunctionSet< T > &Mu_i) override
 Sets Mu_i.
 
virtual void setOptions (gsOptionList opt)
 Sets the options. More...
 
virtual void setParameter (const index_t i, const function_ptr &par)
 Sets the material parameters. More...
 
virtual void setParameter (const index_t i, const gsFunctionSet< T > &par)
 Sets the material parameters. More...
 
virtual void setParameters (const std::vector< function_ptr > &pars)
 Sets the material parameters. More...
 
virtual void setParameters (const std::vector< gsFunctionSet< T > * > &pars)
 Sets the material parameters. More...
 
void setPoissonsRatio (const gsFunctionSet< T > &PoissonsRatio) override
 Sets the Poisson's Ratio.
 
void setRatio (const gsFunctionSet< T > &Ratio) override
 Sets the Ratio for the MR material.
 
virtual void setThickness (const function_ptr &thickness)
 Sets the thickness.
 
virtual void setThickness (const gsFunctionSet< T > &thickness)
 Sets the thickness.
 
void setYoungsModulus (const gsFunctionSet< T > &YoungsModulus) override
 Sets the YoungsModulus.
 
virtual void thickness_into (const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const override
 See gsMaterialMatrixBase for details.
 
virtual void transform_into (const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const
 Constructs a transformation matrix that transforms a quantity (IN VOIGHT NOTATION) in the spectral basis to the (undeformed) convariant basis. More...
 

Protected Member Functions

constexpr T _Cabcd (const index_t a, const index_t b, const index_t c, const index_t d) const
 The material matrix for stretch-based implementations. More...
 
constexpr T _Cijkl (const index_t i, const index_t j, const index_t k, const index_t l) const
 Returns an entry of the material tensor C for incompressible materials. More...
 
constexpr T _Cijkl (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Returns an entry of the material tensor C for compressible materials, with static condensation included. More...
 
constexpr T _Cijkl3D (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Returns an entry of the material tensor C for compressible materials without static condensation. More...
 
constexpr T _d2J_dab (const index_t a, const index_t b) const
 First derivative of the compressibilty function \(\J\) w.r.t. the stretches \(\lambda_a\) and \(\lambda_b\). More...
 
constexpr T _d2Psi (const index_t i, const index_t j, const index_t k, const index_t l) const
 Provides the second (mixed) derivative of the incompressible strain energy density function w.r.t. components C_{ij} and C_{kl} of the deformation tensor. More...
 
constexpr T _d2Psi (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Provides the second (mixed) derivative of the compressible strain energy density function w.r.t. components C_{ij} and C_{kl} of the deformation tensor. More...
 
constexpr T _d2Psi_dab (const index_t a, const index_t b) const
 Second derivative of a strain energy density function \(\Psi\) w.r.t. the stretches \(\lambda_a\) and \(\lambda_b\). More...
 
constexpr T _d2Psi_dab_vol (const index_t a, const index_t b) const
 Second derivative of the volumetric part of a strain energy density function \(\Psi_{vol}\) w.r.t. the stretches \(\lambda_a\) and \(\lambda_b\). More...
 
constexpr T _d2Psi_vol (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Provides the second (mixed) derivative of the volumetric part of the compressible strain energy density function w.r.t. components C_{ij} and C_{kl} of the deformation tensor. More...
 
constexpr T _dI_1 (const index_t i, const index_t j) const
 Provides the derivative of the first invariant compressible materials w.r.t. component C_{ij} of the deformation tensor. More...
 
constexpr T _dI_2 (const index_t i, const index_t j, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Provides the derivative of the second invariant for compressible materials w.r.t. component C_{ij} of the deformation tensor. More...
 
constexpr T _dJ_da (const index_t a) const
 First derivative of the compressibilty function \(\J\) w.r.t. the stretche \(\lambda_a\). More...
 
constexpr T _dp_da (const index_t a) const
 First derivative of the Lagrange multiplier for incompressible materials w.r.t. the stretch \(\lambda_a\). More...
 
constexpr T _dPsi (const index_t i, const index_t j) const
 Provides the derivative of the incompressible strain energy density function w.r.t. component C_{ij} of the deformation tensor. More...
 
constexpr T _dPsi (const index_t i, const index_t j, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Provides the derivative of the compressible strain energy density function w.r.t. component C_{ij} of the deformation tensor. More...
 
constexpr T _dPsi_da (const index_t a) const
 First derivative of a strain energy density function \(\Psi\) w.r.t. the stretch \(\lambda_a\). More...
 
constexpr T _dPsi_da_vol (const index_t a) const
 First derivative of the volumetric part of a strain energy density function \(\Psi_{vol}\) w.r.t. the stretch \(\lambda_a\). More...
 
constexpr T _dPsi_vol (const index_t i, const index_t j, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Provides the derivative of the volumetric part of the compressible strain energy density function w.r.t. component C_{ij} of the deformation tensor. More...
 
constexpr T _dSa_db (const index_t a, const index_t b) const
 First derivative of the \(a^{\text{th}\) component of the stress w.r.t. the stretch \(\lambda_b\). More...
 
gsMatrix< T > _eval3D_Compressible_C33 (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Evaluates the C33 (through thickness) component of the deformation tensor C for compressible materials. More...
 
gsMatrix< T > _eval3D_Compressible_detF (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Evaluates the jacobian determinant for compressible materials. More...
 
gsMatrix< T > _eval3D_Compressible_matrix (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Evalluates the compressible material matrix. More...
 
gsMatrix< T > _eval3D_Compressible_stress (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Evalluates the compressible stress vector. More...
 
gsMatrix< T > _eval3D_Incompressible_detF (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Evaluates the jacobian determinant for compressible materials. More...
 
gsMatrix< T > _eval3D_Incompressible_matrix (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Evalluates the incompressible material matrix. More...
 
gsMatrix< T > _eval3D_Incompressible_stress (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Evalluates the incompressible stress vector. More...
 
gsMatrix< T > _eval_Compressible_CauchyVector (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Equivalent to _eval_Compressible_vector but for the Cauchy Vector.
 
gsMatrix< T > _eval_Incompressible_CauchyVector (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Equivalent to _eval_Incompressible_vector but for the Cauchy Vector.
 
void _initialize ()
 Initializes the object. More...
 
constexpr T _p () const
 Lagrange multiplier for incompressible materials.
 
constexpr T _Sa (const index_t a) const
 Component \(a\) of the stress. More...
 
constexpr T _Sii (const index_t i) const
 Returns an entry of the diagonal of the stress tensor S for incompressible materials. More...
 
constexpr T _Sii (const index_t i, const gsMatrix< T > &c) const
 Returns an entry of the diagonal of the stress tensor S for incompressible materials. More...
 
constexpr T _Sij (const index_t i, const index_t j) const
 Returns an entry of the stress tensor S for incompressible materials. More...
 
constexpr T _Sij (const index_t i, const index_t j, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Returns an entry of the stress tensor S for compressible materials. More...
 
 gsMaterialMatrixNonlinear (const gsFunctionSet< T > *mp, const gsFunctionSet< T > *thickness, const std::vector< gsFunctionSet< T > * > &pars, const gsFunctionSet< T > *Density)
 Full general constructor. More...
 

Private Member Functions

template<bool _com>
constexpr std::enable_if< _com,
T >::type 
_Cabcd_impl (const index_t a, const index_t b, const index_t c, const index_t d) const
 Specialization of _Cabcd(a,b,c,d) for compressible materials.
 
template<bool _com>
constexpr std::enable_if<!_com,
T >::type 
_Cabcd_impl (const index_t a, const index_t b, const index_t c, const index_t d) const
 Specialization of _Cabcd(a,b,c,d) for incompressible materials.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::SvK
&&_imp==Implementation::Analytical,
T >::type 
_Cijkl3D_impl (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Cijkl3D(i,j,k,l,c,cinv) for SvK materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::NH
&&_imp==Implementation::Analytical,
T >::type 
_Cijkl3D_impl (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Cijkl3D(i,j,k,l,c,cinv) for NH materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::MR
&&_imp==Implementation::Analytical,
T >::type 
_Cijkl3D_impl (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Cijkl3D(i,j,k,l,c,cinv) for MR materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::OG
&&_imp==Implementation::Analytical,
T >::type 
_Cijkl3D_impl (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Cijkl3D(i,j,k,l,c,cinv) for OG materials implemented analytically (not implemented)
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::NH_ext
&&_imp==Implementation::Analytical,
T >::type 
_Cijkl3D_impl (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Cijkl3D(i,j,k,l,c,cinv) for Extended NH materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _imp==Implementation::Spectral,
T >::type 
_Cijkl3D_impl (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Cijkl3D(i,j,k,l,c,cinv) for all materials implemented spectrally.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _imp==Implementation::Generalized,
T >::type 
_Cijkl3D_impl (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Cijkl3D(i,j,k,l,c,cinv) for all materials implemented generally.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::SvK
&&_imp==Implementation::Analytical,
T >::type 
_Cijkl_impl (const index_t i, const index_t j, const index_t k, const index_t l) const
 Specialization for incompressible Cijkl(i,j,k,l) for SvK materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::NH
&&_imp==Implementation::Analytical,
T >::type 
_Cijkl_impl (const index_t i, const index_t j, const index_t k, const index_t l) const
 Specialization for incompressible Cijkl(i,j,k,l) for NH materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::MR
&&_imp==Implementation::Analytical,
T >::type 
_Cijkl_impl (const index_t i, const index_t j, const index_t k, const index_t l) const
 Specialization for incompressible Cijkl(i,j,k,l) for MR materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::OG
&&_imp==Implementation::Analytical,
T >::type 
_Cijkl_impl (const index_t i, const index_t j, const index_t k, const index_t l) const
 Specialization for incompressible Cijkl(i,j,k,l) for OG materials implemented analytically (not implemented)
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::NH_ext
&&_imp==Implementation::Analytical,
T >::type 
_Cijkl_impl (const index_t i, const index_t j, const index_t k, const index_t l) const
 Specialization for incompressible Cijkl(i,j,k,l) for Extended NH materials implemented analytically (not implemented)
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _imp==Implementation::Spectral,
T >::type 
_Cijkl_impl (const index_t i, const index_t j, const index_t k, const index_t l) const
 Specialization for incompressible Cijkl(i,j,k,l) for all materials implemented spectrally.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _imp==Implementation::Generalized,
T >::type 
_Cijkl_impl (const index_t i, const index_t j, const index_t k, const index_t l) const
 Specialization for incompressible Cijkl(i,j,k,l) for all materials implemented generally.
 
template<enum Implementation _imp>
constexpr std::enable_if< _imp==Implementation::Spectral,
T >::type 
_Cijkl_impl (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Cijkl(i,j,k,l,c,cinv) for all materials implemented generally. More...
 
template<enum Implementation _imp>
constexpr std::enable_if
<!(_imp==Implementation::Spectral),
T >::type 
_Cijkl_impl (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Cijkl(i,j,k,l,c,cinv) for all materials implemented not spectrally.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if< _com
&&(_mat==Material::NH), T >
::type 
_d2Psi_dab_impl (const index_t a, const index_t b) const
 Specialization of _d2Psi_dab(a,b) for compressible NH materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if<!_com
&&(_mat==Material::NH), T >
::type 
_d2Psi_dab_impl (const index_t a, const index_t b) const
 Specialization of _d2Psi_dab(a,b) for incompressible NH materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if< _com
&&(_mat==Material::MR), T >
::type 
_d2Psi_dab_impl (const index_t a, const index_t b) const
 Specialization of _d2Psi_dab(a,b) for compressible MR materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if<!_com
&&(_mat==Material::MR), T >
::type 
_d2Psi_dab_impl (const index_t a, const index_t b) const
 Specialization of _d2Psi_dab(a,b) for incompressible MR materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if< _com
&&(_mat==Material::OG), T >
::type 
_d2Psi_dab_impl (const index_t a, const index_t b) const
 Specialization of _d2Psi_dab(a,b) for compressible OG materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if<!_com
&&(_mat==Material::OG), T >
::type 
_d2Psi_dab_impl (const index_t a, const index_t b) const
 Specialization of _d2Psi_dab(a,b) for incompressible OG materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if< _com
&&(_mat==Material::NH_ext), T >
::type 
_d2Psi_dab_impl (const index_t a, const index_t b) const
 Specialization of _d2Psi_dab(a,b) for compressible Extended NH materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if<!_com
&&(_mat==Material::NH_ext), T >
::type 
_d2Psi_dab_impl (const index_t a, const index_t b) const
 Specialization of _d2Psi_dab(a,b) for incompressible Extended NH materials (not implemented)
 
template<enum Material _mat>
constexpr std::enable_if< _mat==Material::NH,
T >::type 
_d2Psi_impl (const index_t i, const index_t j, const index_t k, const index_t l) const
 Implementation of _d2Psi(i,j) for NH materials.
 
template<enum Material _mat>
constexpr std::enable_if< _mat==Material::MR,
T >::type 
_d2Psi_impl (const index_t i, const index_t j, const index_t k, const index_t l) const
 Implementation of _d2Psi(i,j) for MR materials.
 
template<enum Material _mat>
constexpr std::enable_if< _mat==Material::NH,
T >::type 
_d2Psi_impl (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Implementation of _d2Psi(i,j,c,cinv) for NH materials.
 
template<enum Material _mat>
constexpr std::enable_if< _mat==Material::MR,
T >::type 
_d2Psi_impl (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Implementation of _d2Psi(i,j,c,cinv) for MR materials.
 
template<enum Material _mat>
constexpr std::enable_if< _mat==Material::NH_ext,
T >::type 
_d2Psi_impl (const index_t i, const index_t j, const index_t k, const index_t l, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Implementation of _d2Psi(i,j,c,cinv) for Extended NH materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if< _com
&&(_mat==Material::NH), T >
::type 
_dPsi_da_impl (const index_t a) const
 Specialization of _dPsi_da(a) for compressible NH materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if<!_com
&&(_mat==Material::NH), T >
::type 
_dPsi_da_impl (const index_t a) const
 Specialization of _dPsi_da(a) for incompressible NH materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if< _com
&&(_mat==Material::MR), T >
::type 
_dPsi_da_impl (const index_t a) const
 Specialization of _dPsi_da(a) for compressible MR materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if<!_com
&&(_mat==Material::MR), T >
::type 
_dPsi_da_impl (const index_t a) const
 Specialization of _dPsi_da(a) for incompressible MR materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if< _com
&&(_mat==Material::OG), T >
::type 
_dPsi_da_impl (const index_t a) const
 Specialization of _dPsi_da(a) for compressible OG materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if<!_com
&&(_mat==Material::OG), T >
::type 
_dPsi_da_impl (const index_t a) const
 Specialization of _dPsi_da(a) for incompressible OG materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if< _com
&&(_mat==Material::NH_ext), T >
::type 
_dPsi_da_impl (const index_t a) const
 Specialization of _dPsi_da(a) for compressible Extended NH materials.
 
template<enum Material _mat, bool _com>
constexpr std::enable_if<!_com
&&(_mat==Material::NH_ext), T >
::type 
_dPsi_da_impl (const index_t a) const
 Specialization of _dPsi_da(a) for incompressible Extended NH materials (not implemented)
 
template<enum Material _mat>
constexpr std::enable_if< _mat==Material::NH,
T >::type 
_dPsi_impl (const index_t i, const index_t j) const
 Implementation of _dPsi(i,j) for NH materials.
 
template<enum Material _mat>
constexpr std::enable_if< _mat==Material::MR,
T >::type 
_dPsi_impl (const index_t i, const index_t j) const
 Implementation of _dPsi(i,j) for MR materials.
 
template<enum Material _mat>
constexpr std::enable_if< _mat==Material::NH,
T >::type 
_dPsi_impl (const index_t i, const index_t j, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Implementation of _dPsi(i,j,c,cinv) for NH materials.
 
template<enum Material _mat>
constexpr std::enable_if< _mat==Material::MR,
T >::type 
_dPsi_impl (const index_t i, const index_t j, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Implementation of _dPsi(i,j,c,cinv) for MR materials.
 
template<enum Material _mat>
constexpr std::enable_if< _mat==Material::NH_ext,
T >::type 
_dPsi_impl (const index_t i, const index_t j, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Implementation of _dPsi(i,j,c,cinv) for Extended NH materials.
 
template<bool _com>
constexpr std::enable_if< _com,
T >::type 
_dSa_db_impl (const index_t a, const index_t b) const
 Specialization of _dSa_db(a,b) for compressible materials.
 
template<bool _com>
constexpr std::enable_if<!_com,
T >::type 
_dSa_db_impl (const index_t a, const index_t b) const
 Specialization of _dSa_db(a,b) for incompressible materials.
 
template<enum Material _mat, bool _com>
std::enable_if< _mat==Material::SvK,
gsMatrix< T > >::type 
_eval3D_CauchyVector_impl (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Same as _eval3D_vector_impl for the Cauchy stress.
 
template<enum Material _mat, bool _com>
std::enable_if< _com &&!(_mat==Material::SvK),
gsMatrix< T > >::type 
_eval3D_CauchyVector_impl (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Same as _eval3D_vector_impl for the Cauchy stress.
 
template<enum Material _mat, bool _com>
std::enable_if<!_com &&!(_mat==Material::SvK),
gsMatrix< T > >::type 
_eval3D_CauchyVector_impl (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Same as _eval3D_vector_impl for the Cauchy stress.
 
template<enum Material _mat, bool _com>
std::enable_if< _mat==Material::SvK,
gsMatrix< T > >::type 
_eval3D_detF_impl (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Implementation of jacobina determinant (detF) More...
 
template<enum Material _mat, bool _comp>
std::enable_if<!(!_comp &&_mat==Material::NH),
gsMatrix< T > >::type 
_eval3D_dmatrix_impl (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const
 { function_description } More...
 
template<enum Material _mat, bool _com>
std::enable_if< _mat==Material::SvK,
gsMatrix< T > >::type 
_eval3D_matrix_impl (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Implementation of the 3D (in-plane+thickness) evaluator of the material matrix, specialization for SvK material (incompressible) More...
 
template<enum Material _mat, bool _com>
std::enable_if< _com &&!(_mat==Material::SvK),
gsMatrix< T > >::type 
_eval3D_matrix_impl (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Implementation of the 3D (in-plane+thickness) evaluator of the material matrix, specialization compressible models. More...
 
template<enum Material _mat, bool _com>
std::enable_if<!_com &&!(_mat==Material::SvK),
gsMatrix< T > >::type 
_eval3D_matrix_impl (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Implementation of the 3D (in-plane+thickness) evaluator of the material matrix, specialization for incompressible models. More...
 
template<enum Material _mat, bool _com>
std::enable_if<!_com &&!(_mat==Material::SvK),
gsMatrix< T > >::type 
_eval3D_pstress_impl (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Implementation of the 3D (in-plane+thickness) evaluator of the stress vector, specialization for compressible models. More...
 
template<enum Material _mat, bool _com>
std::enable_if< _mat==Material::SvK,
gsMatrix< T > >::type 
_eval3D_stress_impl (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Implementation of the 3D (in-plane+thickness) evaluator of the stress vector, specialization for SvK material (incompressible) More...
 
template<enum Material _mat, bool _com>
std::enable_if< _com &&!(_mat==Material::SvK),
gsMatrix< T > >::type 
_eval3D_stress_impl (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Implementation of the 3D (in-plane+thickness) evaluator of the stress vector, specialization for incompressible models. More...
 
template<enum Material _mat, bool _com>
std::enable_if<!_com &&!(_mat==Material::SvK),
gsMatrix< T > >::type 
_eval3D_stress_impl (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Implementation of the 3D (in-plane+thickness) evaluator of the stress vector, specialization for compressible models. More...
 
template<bool _com>
std::enable_if< _com, void >::type _pstretch_into_impl (const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const
 Implementation of pstretch_into, specialization for compressible materials. More...
 
template<bool _com>
std::enable_if<!_com, void >::type _pstretch_into_impl (const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const
 Implementation of pstretch_into, specialization for incompressible materials. More...
 
template<bool _com>
std::enable_if< _com, void >::type _pstretchDir_into_impl (const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const
 Implementation of stretchDir_into, specialization for compressible materials. More...
 
template<bool _com>
std::enable_if<!_com, void >::type _pstretchDir_into_impl (const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const
 Implementation of stretchDir_into, specialization for incompressible materials. More...
 
template<bool _com>
constexpr std::enable_if< _com,
T >::type 
_Sa_impl (const index_t a) const
 Specialization of _Sa(a) for compressible materials.
 
template<bool _com>
constexpr std::enable_if<!_com,
T >::type 
_Sa_impl (const index_t a) const
 Specialization of _Sa(a) for incompressible materials.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::SvK
&&_imp==Implementation::Analytical,
T >::type 
_Sij_impl (const index_t i, const index_t j) const
 Specialization for incompressible Sij(i,j) for SvK materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::NH
&&_imp==Implementation::Analytical,
T >::type 
_Sij_impl (const index_t i, const index_t j) const
 Specialization for incompressible Sij(i,j) for NH materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::MR
&&_imp==Implementation::Analytical,
T >::type 
_Sij_impl (const index_t i, const index_t j) const
 Specialization for incompressible Sij(i,j) for MR materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::OG
&&_imp==Implementation::Analytical,
T >::type 
_Sij_impl (const index_t i, const index_t j) const
 Specialization for incompressible Sij(i,j) for OG materials implemented analytically (not implemented)
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::NH_ext
&&_imp==Implementation::Analytical,
T >::type 
_Sij_impl (const index_t i, const index_t j) const
 Specialization for incompressible Sij(i,j) for Extended NH materials implemented analytically (not implemented)
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _imp==Implementation::Spectral,
T >::type 
_Sij_impl (const index_t i, const index_t j) const
 Specialization for incompressible Sij(i,j) for all materials implemented spectrally.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _imp==Implementation::Generalized,
T >::type 
_Sij_impl (const index_t i, const index_t j) const
 Specialization for incompressible Sij(i,j) for all materials implemented generally.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::SvK
&&_imp==Implementation::Analytical,
T >::type 
_Sij_impl (const index_t i, const index_t j, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Sij(i,j,c,cinv) for SvK materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::NH
&&_imp==Implementation::Analytical,
T >::type 
_Sij_impl (const index_t i, const index_t j, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Sij(i,j,c,cinv) for NH materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::MR
&&_imp==Implementation::Analytical,
T >::type 
_Sij_impl (const index_t i, const index_t j, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Sij(i,j,c,cinv) for MR materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::OG
&&_imp==Implementation::Analytical,
T >::type 
_Sij_impl (const index_t i, const index_t j, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Sij(i,j,c,cinv) for OG materials implemented analytically (not implemented)
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _mat==Material::NH_ext
&&_imp==Implementation::Analytical,
T >::type 
_Sij_impl (const index_t i, const index_t j, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Sij(i,j,c,cinv) for Extended NH materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _imp==Implementation::Spectral,
T >::type 
_Sij_impl (const index_t i, const index_t j, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Sij(i,j,c,cinv) for all materials implemented spectrally.
 
template<enum Material _mat, enum Implementation _imp>
constexpr std::enable_if< _imp==Implementation::Generalized,
T >::type 
_Sij_impl (const index_t i, const index_t j, const gsMatrix< T > &c, const gsMatrix< T > &cinv) const
 Specialization for compressible Sij(i,j,c,cinv) for all materials implemented generally.
 

Constructor & Destructor Documentation

gsMaterialMatrixNonlinear ( const gsFunctionSet< T > &  mp,
const gsFunctionSet< T > &  thickness 
)

Constructor without material parameters.

Parameters
[in]mpOriginal geometry
[in]thicknessThickness function
gsMaterialMatrixNonlinear ( const gsFunctionSet< T > &  mp,
const gsFunctionSet< T > &  thickness,
const std::vector< gsFunctionSet< T > * > &  pars 
)

General constructor without density.

Parameters
[in]mpOriginal geometry
[in]thicknessThickness function
[in]parsVector with parameters (E, nu)
gsMaterialMatrixNonlinear ( const gsFunctionSet< T > &  thickness,
const std::vector< gsFunctionSet< T > * > &  pars 
)

General constructor without density and multipatch.

Parameters
[in]thicknessThickness function
[in]parsVector with parameters (E, nu)
gsMaterialMatrixNonlinear ( const gsFunctionSet< T > &  thickness,
const std::vector< gsFunctionSet< T > * > &  pars,
const gsFunctionSet< T > &  Density 
)

General constructor without multipatch.

Parameters
[in]thicknessThickness function
[in]parsVector with parameters (E, nu)
gsMaterialMatrixNonlinear ( const gsFunctionSet< T > &  mp,
const gsFunctionSet< T > &  thickness,
const std::vector< gsFunctionSet< T > * > &  pars,
const gsFunctionSet< T > &  Density 
)

Full general constructor.

Parameters
[in]mpOriginal geometry
[in]thicknessThickness function
[in]parsVector with parameters (E, nu)
[in]DensityDensity function
gsMaterialMatrixNonlinear ( const gsFunctionSet< T > *  mp,
const gsFunctionSet< T > *  thickness,
const std::vector< gsFunctionSet< T > * > &  pars,
const gsFunctionSet< T > *  Density 
)
protected

Full general constructor.

Parameters
[in]mpOriginal geometry
[in]thicknessThickness function
[in]parsVector with parameters (E, nu)
[in]DensityDensity function

Member Function Documentation

constexpr T _Cabcd ( const index_t  a,
const index_t  b,
const index_t  c,
const index_t  d 
) const
protected

The material matrix for stretch-based implementations.

Parameters
[in]a,b,c,dThe indices a,b,c,d
constexpr T _Cijkl ( const index_t  i,
const index_t  j,
const index_t  k,
const index_t  l 
) const
protected

Returns an entry of the material tensor C for incompressible materials.

Parameters
[in]i,j,k,lThe indices
Returns
C^{ijkl}
constexpr T _Cijkl ( const index_t  i,
const index_t  j,
const index_t  k,
const index_t  l,
const gsMatrix< T > &  c,
const gsMatrix< T > &  cinv 
) const
protected

Returns an entry of the material tensor C for compressible materials, with static condensation included.

Parameters
[in]i,j,k,lThe indices
[in]cThe deformation tensor
[in]cinvThe inverse of the deformation tensor
Returns
C^{ijkl}
constexpr T _Cijkl3D ( const index_t  i,
const index_t  j,
const index_t  k,
const index_t  l,
const gsMatrix< T > &  c,
const gsMatrix< T > &  cinv 
) const
protected

Returns an entry of the material tensor C for compressible materials without static condensation.

Parameters
[in]i,j,k,lThe indices
[in]cThe deformation tensor
[in]cinvThe inverse of the deformation tensor
Returns
C^{ijkl}
constexpr std::enable_if< _imp==Implementation::Spectral, T >::type _Cijkl_impl ( const index_t  i,
const index_t  j,
const index_t  k,
const index_t  l,
const gsMatrix< T > &  c,
const gsMatrix< T > &  cinv 
) const
private

Specialization for compressible Cijkl(i,j,k,l,c,cinv) for all materials implemented generally.

Note
The specialization is required because static condensation for spectrally implemented material models is performed before the transformation. For all other implementation, static condensation is performed using the Cijkl3D function.
constexpr T _d2J_dab ( const index_t  a,
const index_t  b 
) const
protected

First derivative of the compressibilty function \(\J\) w.r.t. the stretches \(\lambda_a\) and \(\lambda_b\).

Parameters
[in]a,bThe indices a,b
constexpr T _d2Psi ( const index_t  i,
const index_t  j,
const index_t  k,
const index_t  l 
) const
protected

Provides the second (mixed) derivative of the incompressible strain energy density function w.r.t. components C_{ij} and C_{kl} of the deformation tensor.

Parameters
[in]i,jThe indices of C_{ij}
[in]k,lThe indices of C_{kl}
Returns
The second (mixed) derivative of psi w.r.t. C_{ij} and C_{kl}
constexpr T _d2Psi ( const index_t  i,
const index_t  j,
const index_t  k,
const index_t  l,
const gsMatrix< T > &  c,
const gsMatrix< T > &  cinv 
) const
protected

Provides the second (mixed) derivative of the compressible strain energy density function w.r.t. components C_{ij} and C_{kl} of the deformation tensor.

Parameters
[in]i,jThe indices of C_{ij}
[in]k,lThe indices of C_{kl}
[in]cThe deformation tensor
[in]cinvThe inverse of the deformation tensor
Returns
The second (mixed) derivative of psi w.r.t. C_{ij} and C_{kl}
constexpr T _d2Psi_dab ( const index_t  a,
const index_t  b 
) const
protected

Second derivative of a strain energy density function \(\Psi\) w.r.t. the stretches \(\lambda_a\) and \(\lambda_b\).

Parameters
[in]a,bThe indices a,b
constexpr T _d2Psi_dab_vol ( const index_t  a,
const index_t  b 
) const
protected

Second derivative of the volumetric part of a strain energy density function \(\Psi_{vol}\) w.r.t. the stretches \(\lambda_a\) and \(\lambda_b\).

Parameters
[in]a,bThe indices a,b
constexpr T _d2Psi_vol ( const index_t  i,
const index_t  j,
const index_t  k,
const index_t  l,
const gsMatrix< T > &  c,
const gsMatrix< T > &  cinv 
) const
protected

Provides the second (mixed) derivative of the volumetric part of the compressible strain energy density function w.r.t. components C_{ij} and C_{kl} of the deformation tensor.

Parameters
[in]i,jThe indices of C_{ij}
[in]k,lThe indices of C_{kl}
[in]cThe deformation tensor
[in]cinvThe inverse of the deformation tensor
Returns
The second (mixed) derivative of psi w.r.t. C_{ij} and C_{kl}
constexpr T _dI_1 ( const index_t  i,
const index_t  j 
) const
protected

Provides the derivative of the first invariant compressible materials w.r.t. component C_{ij} of the deformation tensor.

Note
\(I_1=\trace{\mathbf{C}}\)
Parameters
[in]i,jThe indices of C
Returns
The derivative the first invariant w.r.t. C_{ij}
constexpr T _dI_2 ( const index_t  i,
const index_t  j,
const gsMatrix< T > &  c,
const gsMatrix< T > &  cinv 
) const
protected

Provides the derivative of the second invariant for compressible materials w.r.t. component C_{ij} of the deformation tensor.

Note
\(I_1=\frac{1}{2}\left( \trace{\mathbf{C}^2} + (\trace{\mathbf{C}})^2 \right)\)
Parameters
[in]i,jThe indices of C
[in]cThe deformation tensor
[in]cinvThe inverse of the deformation tensor
Returns
The derivative the second invariant w.r.t. C_{ij}
constexpr T _dJ_da ( const index_t  a) const
protected

First derivative of the compressibilty function \(\J\) w.r.t. the stretche \(\lambda_a\).

Parameters
[in]aThe index a
constexpr T _dp_da ( const index_t  a) const
protected

First derivative of the Lagrange multiplier for incompressible materials w.r.t. the stretch \(\lambda_a\).

Parameters
[in]aThe index a
constexpr T _dPsi ( const index_t  i,
const index_t  j 
) const
protected

Provides the derivative of the incompressible strain energy density function w.r.t. component C_{ij} of the deformation tensor.

Parameters
[in]i,jThe indices of C
Returns
The derivative of psi w.r.t. C_{ij}
constexpr T _dPsi ( const index_t  i,
const index_t  j,
const gsMatrix< T > &  c,
const gsMatrix< T > &  cinv 
) const
protected

Provides the derivative of the compressible strain energy density function w.r.t. component C_{ij} of the deformation tensor.

Parameters
[in]i,jThe indices of C
[in]cThe deformation tensor
[in]cinvThe inverse of the deformation tensor
Returns
The derivative of psi w.r.t. C_{ij}
constexpr T _dPsi_da ( const index_t  a) const
protected

First derivative of a strain energy density function \(\Psi\) w.r.t. the stretch \(\lambda_a\).

Parameters
[in]aThe index a
constexpr T _dPsi_da_vol ( const index_t  a) const
protected

First derivative of the volumetric part of a strain energy density function \(\Psi_{vol}\) w.r.t. the stretch \(\lambda_a\).

Parameters
[in]aThe index a
constexpr T _dPsi_vol ( const index_t  i,
const index_t  j,
const gsMatrix< T > &  c,
const gsMatrix< T > &  cinv 
) const
protected

Provides the derivative of the volumetric part of the compressible strain energy density function w.r.t. component C_{ij} of the deformation tensor.

Parameters
[in]i,jThe indices of C
[in]cThe deformation tensor
[in]cinvThe inverse of the deformation tensor
Returns
The derivative of psi w.r.t. C_{ij}
constexpr T _dSa_db ( const index_t  a,
const index_t  b 
) const
protected

First derivative of the \(a^{\text{th}\) component of the stress w.r.t. the stretch \(\lambda_b\).

Parameters
[in]a,bThe indices a,b
gsMatrix< T > _eval3D_Compressible_C33 ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
protected

Evaluates the C33 (through thickness) component of the deformation tensor C for compressible materials.

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Returns
C33 values (every column for a point u*z)
gsMatrix< T > _eval3D_Compressible_detF ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
protected

Evaluates the jacobian determinant for compressible materials.

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Returns
{ description_of_the_return_value }
gsMatrix< T > _eval3D_Compressible_matrix ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
protected

Evalluates the compressible material matrix.

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Returns
The matrices (9x1 per column), stored per thickness per in-plane point [(u1,t1) (u2,t1),...,(u1,t2),(u2,t2)]
gsMatrix< T > _eval3D_Compressible_stress ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
protected

Evalluates the compressible stress vector.

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Returns
The vectors (3x1 per column), stored per thickness per in-plane point [(u1,t1) (u2,t1),...,(u1,t2),(u2,t2)]
std::enable_if< _mat==Material::SvK, gsMatrix< T > >::type _eval3D_detF_impl ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
private

Implementation of jacobina determinant (detF)

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Template Parameters
_matThe material model
_comCompressibility parameter (true: compressible, false: incompressible)
Returns
The stress vector (3x1 per column), stored per thickness per in-plane point [(u1,t1) (u2,t1),...,(u1,t2),(u2,t2)]
std::enable_if<!(!_comp && _mat==Material::NH), gsMatrix<T> >::type _eval3D_dmatrix_impl ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z,
enum MaterialOutput  out 
) const
private

{ function_description }

Parameters
[in]patchThe patch
[in]u{ parameter_description }
[in]z{ parameter_description }
[in]outThe out
Template Parameters
_mat{ description }
_comp{ description }
Returns
{ description_of_the_return_value }
gsMatrix< T > _eval3D_Incompressible_detF ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
protected

Evaluates the jacobian determinant for compressible materials.

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Returns
{ description_of_the_return_value }
gsMatrix< T > _eval3D_Incompressible_matrix ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
protected

Evalluates the incompressible material matrix.

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Returns
The matrices (9x1 per column), stored per thickness per in-plane point [(u1,t1) (u2,t1),...,(u1,t2),(u2,t2)]
gsMatrix< T > _eval3D_Incompressible_stress ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
protected

Evalluates the incompressible stress vector.

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Returns
The vectors (3x1 per column), stored per thickness per in-plane point [(u1,t1) (u2,t1),...,(u1,t2),(u2,t2)]
std::enable_if< _mat==Material::SvK, gsMatrix< T > >::type _eval3D_matrix_impl ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
private

Implementation of the 3D (in-plane+thickness) evaluator of the material matrix, specialization for SvK material (incompressible)

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Template Parameters
_matThe material model
_comCompressibility parameter (true: compressible, false: incompressible)
Returns
The material matrix (9x1 per column), stored per thickness per in-plane point [(u1,t1) (u2,t1),...,(u1,t2),(u2,t2)]
std::enable_if<_com && !(_mat==Material::SvK), gsMatrix<T> >::type _eval3D_matrix_impl ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
private

Implementation of the 3D (in-plane+thickness) evaluator of the material matrix, specialization compressible models.

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Template Parameters
_matThe material model
_comCompressibility parameter (true: compressible, false: incompressible)
Returns
The material matrix (9x1 per column), stored per thickness per in-plane point [(u1,t1) (u2,t1),...,(u1,t2),(u2,t2)]
std::enable_if<!_com && !(_mat==Material::SvK), gsMatrix<T> >::type _eval3D_matrix_impl ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
private

Implementation of the 3D (in-plane+thickness) evaluator of the material matrix, specialization for incompressible models.

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Template Parameters
_matThe material model
_comCompressibility parameter (true: compressible, false: incompressible)
Returns
The material matrix (9x1 per column), stored per thickness per in-plane point [(u1,t1) (u2,t1),...,(u1,t2),(u2,t2)]
std::enable_if<!_com && !(_mat==Material::SvK), gsMatrix<T> >::type _eval3D_pstress_impl ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
private

Implementation of the 3D (in-plane+thickness) evaluator of the stress vector, specialization for compressible models.

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Template Parameters
_matThe material model
_comCompressibility parameter (true: compressible, false: incompressible)
Returns
The principal stresses (3x1 per column), stored per thickness per in-plane point [(u1,t1) (u2,t1),...,(u1,t2),(u2,t2)]
std::enable_if< _mat==Material::SvK, gsMatrix< T > >::type _eval3D_stress_impl ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
private

Implementation of the 3D (in-plane+thickness) evaluator of the stress vector, specialization for SvK material (incompressible)

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Template Parameters
_matThe material model
_comCompressibility parameter (true: compressible, false: incompressible)
Returns
The stress vector (3x1 per column), stored per thickness per in-plane point [(u1,t1) (u2,t1),...,(u1,t2),(u2,t2)]
std::enable_if<_com && !(_mat==Material::SvK), gsMatrix<T> >::type _eval3D_stress_impl ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
private

Implementation of the 3D (in-plane+thickness) evaluator of the stress vector, specialization for incompressible models.

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Template Parameters
_matThe material model
_comCompressibility parameter (true: compressible, false: incompressible)
Returns
The stress vector (3x1 per column), stored per thickness per in-plane point [(u1,t1) (u2,t1),...,(u1,t2),(u2,t2)]
std::enable_if<!_com && !(_mat==Material::SvK), gsMatrix<T> >::type _eval3D_stress_impl ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
private

Implementation of the 3D (in-plane+thickness) evaluator of the stress vector, specialization for compressible models.

Parameters
[in]patchThe patch index
[in]uThe in-plane coordinates to be evaluated on
[in]zThe through-thickness coordinate
Template Parameters
_matThe material model
_comCompressibility parameter (true: compressible, false: incompressible)
Returns
The stress vector (3x1 per column), stored per thickness per in-plane point [(u1,t1) (u2,t1),...,(u1,t2),(u2,t2)]
void _initialize ( )
protected

Initializes the object.

Initializes options, flags and defines the number of parameters

std::enable_if<_com, void>::type _pstretch_into_impl ( const index_t  patch,
const gsMatrix< T > &  u,
gsMatrix< T > &  result 
) const
private

Implementation of pstretch_into, specialization for compressible materials.

Parameters
[in]uThe in-plane coordinates to be evaluated on
resultThe result
Template Parameters
_comCompressibility parameter (true: compressible, false: incompressible)
std::enable_if<!_com, void>::type _pstretch_into_impl ( const index_t  patch,
const gsMatrix< T > &  u,
gsMatrix< T > &  result 
) const
private

Implementation of pstretch_into, specialization for incompressible materials.

Parameters
[in]uThe in-plane coordinates to be evaluated on
resultThe result
Template Parameters
_comCompressibility parameter (true: compressible, false: incompressible)
std::enable_if<_com, void>::type _pstretchDir_into_impl ( const index_t  patch,
const gsMatrix< T > &  u,
gsMatrix< T > &  result 
) const
private

Implementation of stretchDir_into, specialization for compressible materials.

Parameters
[in]uThe in-plane coordinates to be evaluated on
resultThe result
Template Parameters
_comCompressibility parameter (true: compressible, false: incompressible)
std::enable_if<!_com, void>::type _pstretchDir_into_impl ( const index_t  patch,
const gsMatrix< T > &  u,
gsMatrix< T > &  result 
) const
private

Implementation of stretchDir_into, specialization for incompressible materials.

Parameters
[in]uThe in-plane coordinates to be evaluated on
resultThe result
Template Parameters
_comCompressibility parameter (true: compressible, false: incompressible)
constexpr T _Sa ( const index_t  a) const
protected

Component \(a\) of the stress.

Parameters
[in]aThe index a
constexpr T _Sii ( const index_t  i) const
protected

Returns an entry of the diagonal of the stress tensor S for incompressible materials.

Parameters
[in]iThe index
Returns
S^{ii}
constexpr T _Sii ( const index_t  i,
const gsMatrix< T > &  c 
) const
protected

Returns an entry of the diagonal of the stress tensor S for incompressible materials.

Parameters
[in]iThe index
[in]cThe deformation tensor
Returns
S^{ii}
constexpr T _Sij ( const index_t  i,
const index_t  j 
) const
protected

Returns an entry of the stress tensor S for incompressible materials.

Parameters
[in]i,jThe indices
Returns
S^{ij}
constexpr T _Sij ( const index_t  i,
const index_t  j,
const gsMatrix< T > &  c,
const gsMatrix< T > &  cinv 
) const
protected

Returns an entry of the stress tensor S for compressible materials.

Parameters
[in]i,jThe indices
[in]cThe deformation tensor
[in]cinvThe inverse of the deformation tensor
Returns
S^{ij}
virtual gsMatrix<T> eval3D_pstressTransform ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
inlinevirtualinherited

Provides the transformation of the principle stresses.

Parameters
[in]patchThe patch to be evaluated on
[in]uThe in-plane shell coordinates to be eveluated on
[in]zThe point through-thickness coorinate
Returns
Matrix with the result (deformation tensor) ordered per z coordinate per point [(u1,z1) (u2,z1) .. (un,z1), (u1,z2) .. (un,z2), .., (u1,zm) .. (un,zm)]
virtual gsMatrix<T> eval3D_pstretchTransform ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z 
) const
inlinevirtualinherited

Provides the transformation of the principle stretches.

Parameters
[in]patchThe patch to be evaluated on
[in]uThe in-plane shell coordinates to be eveluated on
[in]zThe point through-thickness coorinate
Returns
Matrix with the result (deformation tensor) ordered per z coordinate per point [(u1,z1) (u2,z1) .. (un,z1), (u1,z2) .. (un,z2), .., (u1,zm) .. (un,zm)]
virtual const function_ptr getParameter ( const index_t  i) const
inlinevirtualinherited

Gets parameter i.

Parameters
[in]iThe parameter index
Returns
The parameter.
virtual gsOptionList& options ( )
inlinevirtualinherited

Returns the options.

Returns
gsOptionList

Reimplemented in gsMaterialMatrixComposite< dim, T >.

virtual void pstress_into ( const index_t  patch,
const gsMatrix< T > &  u,
gsMatrix< T > &  result 
) const
inlinevirtualinherited

Evaluates the priciple stresses in the shell (3x1 vector)

Parameters
[in]patchThe patch to be evaluated on
[in]uThe in-plane shell coordinates to be eveluated on
resultThe result

Reimplemented in gsMaterialMatrixComposite< dim, T >.

virtual void pstressDir_into ( const index_t  patch,
const gsMatrix< T > &  u,
gsMatrix< T > &  result 
) const
inlinevirtualinherited

Evaluates the directions of the priciple stresses in the shell (3x1 vector per direction)

Parameters
[in]patchThe patch to be evaluated on
[in]uThe in-plane shell coordinates to be eveluated on
resultThe result

Reimplemented in gsMaterialMatrixComposite< dim, T >.

virtual void setOptions ( gsOptionList  opt)
inlinevirtualinherited

Sets the options.

Parameters
[in]optgsOptionList

Reimplemented in gsMaterialMatrixComposite< dim, T >.

virtual void setParameter ( const index_t  i,
const function_ptr &  par 
)
inlinevirtualinherited

Sets the material parameters.

Parameters
[in]parsFunction pointers for the parameters in a container
virtual void setParameter ( const index_t  i,
const gsFunctionSet< T > &  par 
)
inlinevirtualinherited

Sets the material parameters.

Parameters
[in]parsFunction pointers for the parameters in a container
virtual void setParameters ( const std::vector< function_ptr > &  pars)
inlinevirtualinherited

Sets the material parameters.

Parameters
[in]parsFunction pointers for the parameters in a container
virtual void setParameters ( const std::vector< gsFunctionSet< T > * > &  pars)
inlinevirtualinherited

Sets the material parameters.

Parameters
[in]parsFunction pointers for the parameters in a container

Reimplemented in gsMaterialMatrixTFT< dim, T, linear >, and gsMaterialMatrixTFT< 2, T >.

virtual void transform_into ( const index_t  patch,
const gsMatrix< T > &  u,
gsMatrix< T > &  result 
) const
inlinevirtualinherited

Constructs a transformation matrix that transforms a quantity (IN VOIGHT NOTATION) in the spectral basis to the (undeformed) convariant basis.

Parameters
[in]patchThe patch to be evaluated on
[in]uThe in-plane shell coordinates to be eveluated on
resultThe result

Reimplemented in gsMaterialMatrixComposite< dim, T >.