G+Smo  25.01.0
Geometry + Simulation Modules
 
Loading...
Searching...
No Matches
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< gsMaterialMatrixNonlinearPtr
 Shared pointer for gsMaterialMatrixNonlinear.
 
typedef memory::unique_ptr< gsMaterialMatrixNonlinearuPtr
 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.
 
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.
 
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.
 
virtual gsMatrix< T > eval3D_strain (const index_t, const gsMatrix< T > &, const gsMatrix< T > &) const
 { function_description }
 
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.
 
virtual gsMatrix< T > eval3D_tensionfield (const index_t, const gsMatrix< T > &, const gsMatrix< T > &, enum MaterialOutput) const
 to do
 
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.
 
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 ()
 Destructor.
 
 gsMaterialMatrixNonlinear (const gsFunctionSet< T > &mp, const gsFunctionSet< T > &thickness)
 Constructor without material parameters.
 
 gsMaterialMatrixNonlinear (const gsFunctionSet< T > &mp, const gsFunctionSet< T > &thickness, const std::vector< gsFunctionSet< T > * > &pars)
 General constructor without density.
 
 gsMaterialMatrixNonlinear (const gsFunctionSet< T > &mp, const gsFunctionSet< T > &thickness, const std::vector< gsFunctionSet< T > * > &pars, const gsFunctionSet< T > &Density)
 Full general constructor.
 
 gsMaterialMatrixNonlinear (const gsFunctionSet< T > &thickness, const std::vector< gsFunctionSet< T > * > &pars)
 General constructor without density and multipatch.
 
 gsMaterialMatrixNonlinear (const gsFunctionSet< T > &thickness, const std::vector< gsFunctionSet< T > * > &pars, const gsFunctionSet< T > &Density)
 General constructor without multipatch.
 
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 gsMaterialMatrixBase< T > * material ()
 Returns this.
 
virtual const gsMaterialMatrixBase< T > * material () const
 Returns this.
 
virtual index_t numParameters () const
 Gets the number of parameters.
 
virtual gsOptionListoptions ()
 Returns the options.
 
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, const gsMatrix< T > &, gsMatrix< T > &) const
 Evaluates the priciple stresses in the shell (3x1 vector)
 
virtual void pstressDir_into (const index_t, const gsMatrix< T > &, gsMatrix< T > &) const
 Evaluates the directions of the priciple stresses in the shell (3x1 vector per direction)
 
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 (const gsFunctionSet< T > &Density)
 Sets the density.
 
virtual void setDensity (function_ptr 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.
 
virtual void setParameter (const index_t i, const function_ptr &par)
 Sets the material parameters.
 
virtual void setParameter (const index_t i, const gsFunctionSet< T > &par)
 Sets the material parameters.
 
virtual void setParameters (const std::vector< function_ptr > &pars)
 Sets the material parameters.
 
virtual void setParameters (const std::vector< gsFunctionSet< T > * > &pars)
 Sets the material parameters.
 
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, const gsMatrix< T > &, gsMatrix< T > &) const
 Constructs a transformation matrix that transforms a quantity (IN VOIGHT NOTATION) in the spectral basis to the (undeformed) convariant basis.
 

Protected Member Functions

_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.
 
_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.
 
_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.
 
_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.
 
_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\).
 
_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.
 
_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.
 
_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\).
 
_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\).
 
_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.
 
_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.
 
_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.
 
_dJ_da (const index_t a) const
 First derivative of the compressibilty function \(\J\) w.r.t. the stretche \(\lambda_a\).
 
_dp_da (const index_t a) const
 First derivative of the Lagrange multiplier for incompressible materials w.r.t. the stretch \(\lambda_a\).
 
_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.
 
_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.
 
_dPsi_da (const index_t a) const
 First derivative of a strain energy density function \(\Psi\) w.r.t. the stretch \(\lambda_a\).
 
_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\).
 
_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.
 
_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\).
 
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.
 
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.
 
gsMatrix< T > _eval3D_Compressible_matrix (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Evalluates the compressible material matrix.
 
gsMatrix< T > _eval3D_Compressible_stress (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Evalluates the compressible stress vector.
 
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.
 
gsMatrix< T > _eval3D_Incompressible_matrix (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Evalluates the incompressible material matrix.
 
gsMatrix< T > _eval3D_Incompressible_stress (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const
 Evalluates the incompressible stress vector.
 
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.
 
_p () const
 Lagrange multiplier for incompressible materials.
 
_Sa (const index_t a) const
 Component \(a\) of the stress.
 
_Sii (const index_t i) const
 Returns an entry of the diagonal of the stress tensor S for incompressible materials.
 
_Sii (const index_t i, const gsMatrix< T > &c) const
 Returns an entry of the diagonal of the stress tensor S for incompressible materials.
 
_Sij (const index_t i, const index_t j) const
 Returns an entry of the stress tensor S for incompressible materials.
 
_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.
 
 gsMaterialMatrixNonlinear (const gsFunctionSet< T > *mp, const gsFunctionSet< T > *thickness, const std::vector< gsFunctionSet< T > * > &pars, const gsFunctionSet< T > *Density)
 Full general constructor.
 

Private Member Functions

template<bool _com>
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>
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>
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>
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>
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>
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>
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>
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>
std::enable_if< _mat==Material::OG &&_imp==Implementation::Analytical, T >::type _Cijkl3D_impl (const index_t, const index_t, const index_t, const index_t, 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>
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>
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>
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>
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>
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>
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.
 
template<enum Implementation _imp>
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, enum Implementation _imp>
std::enable_if< _mat==Material::OG &&_imp==Implementation::Analytical, T >::type _Cijkl_impl (const index_t, const index_t, const index_t, const index_t) const
 Specialization for incompressible Cijkl(i,j,k,l) for OG materials implemented analytically (not implemented)
 
template<enum Material _mat, enum Implementation _imp>
std::enable_if< _mat==Material::NH_ext &&_imp==Implementation::Analytical, T >::type _Cijkl_impl (const index_t, const index_t, const index_t, const index_t) const
 Specialization for incompressible Cijkl(i,j,k,l) for Extended NH materials implemented analytically (not implemented)
 
template<short_t _dim>
std::enable_if< _dim==2, void >::type _computeMetricDeformed_impl (const index_t patch, const gsMatrix< T > &u) const
 Implementation of _computeMetricUndeformed for planar geometries.
 
template<short_t _dim>
std::enable_if< _dim==3, void >::type _computeMetricDeformed_impl (const index_t patch, const gsMatrix< T > &u) const
 Implementation of _computeMetricUndeformed for surface geometries.
 
template<short_t _dim>
std::enable_if< _dim==2, void >::type _computeMetricUndeformed_impl (const index_t patch, const gsMatrix< T > &u) const
 Implementation of _getMetric for planar geometries.
 
template<short_t _dim>
std::enable_if< _dim==3, void >::type _computeMetricUndeformed_impl (const index_t patch, const gsMatrix< T > &u) const
 Implementation of _getMetric for surface geometries.
 
template<enum Material _mat, bool _com>
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>
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>
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>
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>
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>
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>
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>
std::enable_if<!_com &&(_mat==Material::NH_ext), T >::type _d2Psi_dab_impl (const index_t, const index_t) const
 Specialization of _d2Psi_dab(a,b) for incompressible Extended NH materials (not implemented)
 
template<enum Material _mat>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
std::enable_if<!_com &&(_mat==Material::NH_ext), T >::type _dPsi_da_impl (const index_t) const
 Specialization of _dPsi_da(a) for incompressible Extended NH materials (not implemented)
 
template<enum Material _mat>
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>
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>
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>
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>
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>
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>
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)
 
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 }
 
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)
 
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.
 
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.
 
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.
 
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)
 
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.
 
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.
 
template<short_t _dim>
std::enable_if< _dim==2, gsMatrix< T > >::type _getBcov_def_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for planar geometries.
 
template<short_t _dim>
std::enable_if< _dim==3, gsMatrix< T > >::type _getBcov_def_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for surface geometries.
 
template<short_t _dim>
std::enable_if< _dim==2, gsMatrix< T > >::type _getBcov_ori_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for planar geometries.
 
template<short_t _dim>
std::enable_if< _dim==3, gsMatrix< T > >::type _getBcov_ori_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for surface geometries.
 
template<short_t _dim>
std::enable_if< _dim==2, gsMatrix< T > >::type _getGcon_def_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for planar geometries.
 
template<short_t _dim>
std::enable_if< _dim==3, gsMatrix< T > >::type _getGcon_def_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for surface geometries.
 
template<short_t _dim>
std::enable_if< _dim==2, gsMatrix< T > >::type _getGcon_ori_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for planar geometries.
 
template<short_t _dim>
std::enable_if< _dim==3, gsMatrix< T > >::type _getGcon_ori_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for surface geometries.
 
template<short_t _dim>
std::enable_if< _dim==2, gsMatrix< T > >::type _getGcov_def_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for planar geometries.
 
template<short_t _dim>
std::enable_if< _dim==3, gsMatrix< T > >::type _getGcov_def_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for surface geometries.
 
template<short_t _dim>
std::enable_if< _dim==2, gsMatrix< T > >::type _getgcov_def_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for planar geometries.
 
template<short_t _dim>
std::enable_if< _dim==3, gsMatrix< T > >::type _getgcov_def_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for surface geometries.
 
template<short_t _dim>
std::enable_if< _dim==2, gsMatrix< T > >::type _getGcov_ori_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for planar geometries.
 
template<short_t _dim>
std::enable_if< _dim==3, gsMatrix< T > >::type _getGcov_ori_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for surface geometries.
 
template<short_t _dim>
std::enable_if< _dim==2, gsMatrix< T > >::type _getgcov_ori_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for planar geometries.
 
template<short_t _dim>
std::enable_if< _dim==3, gsMatrix< T > >::type _getgcov_ori_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for surface geometries.
 
template<short_t _dim>
std::enable_if< _dim==2, void >::type _getMetric_impl (const index_t k, const T z) const
 Implementation of _getMetricDeformed for planar geometries.
 
template<short_t _dim>
std::enable_if< _dim==2, void >::type _getMetricDeformed_impl (const index_t k, const T z) const
 Implementation of _getMetricDeformed for surface geometries.
 
template<short_t _dim>
std::enable_if< _dim==3, void >::type _getMetricDeformed_impl (const index_t k, const T z) const
 Implementation of _getMetricDeformed for surface geometries.
 
template<short_t _dim>
std::enable_if< _dim==2, void >::type _getMetricUndeformed_impl (const index_t k, const T z) const
 Implementation of _getMetricUndeformed for planar geometries.
 
template<short_t _dim>
std::enable_if< _dim==3, void >::type _getMetricUndeformed_impl (const index_t k, const T z) const
 Implementation of _getMetricUndeformed for surface geometries.
 
template<short_t _dim>
std::enable_if< _dim==2, gsMatrix< T > >::type _getncov_def_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for planar geometries.
 
template<short_t _dim>
std::enable_if< _dim==3, gsMatrix< T > >::type _getncov_def_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for surface geometries.
 
template<short_t _dim>
std::enable_if< _dim==2, gsMatrix< T > >::type _getncov_ori_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for planar geometries.
 
template<short_t _dim>
std::enable_if< _dim==3, gsMatrix< T > >::type _getncov_ori_impl (index_t k, T z) const
 Implementation of _getMetricUndeformed for surface geometries.
 
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.
 
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.
 
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.
 
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.
 
template<bool _com>
std::enable_if< _com, T >::type _Sa_impl (const index_t a) const
 Specialization of _Sa(a) for compressible materials.
 
template<bool _com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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.
 
template<enum Material _mat, enum Implementation _imp>
std::enable_if< _mat==Material::OG &&_imp==Implementation::Analytical, T >::type _Sij_impl (const index_t, const index_t) const
 Specialization for incompressible Sij(i,j) for OG materials implemented analytically (not implemented)
 
template<enum Material _mat, enum Implementation _imp>
std::enable_if< _mat==Material::NH_ext &&_imp==Implementation::Analytical, T >::type _Sij_impl (const index_t, const index_t) const
 Specialization for incompressible Sij(i,j) for Extended NH materials implemented analytically (not implemented)
 
template<enum Material _mat, enum Implementation _imp>
std::enable_if< _mat==Material::SvK &&_imp==Implementation::Analytical, T >::type _Sij_impl (const index_t, const index_t, const gsMatrix< T > &, const gsMatrix< T > &) const
 Specialization for compressible Sij(i,j,c,cinv) for SvK materials implemented analytically.
 
template<enum Material _mat, enum Implementation _imp>
std::enable_if< _mat==Material::OG &&_imp==Implementation::Analytical, T >::type _Sij_impl (const index_t, const index_t, const gsMatrix< T > &, const gsMatrix< T > &) const
 Specialization for compressible Sij(i,j,c,cinv) for OG materials implemented analytically (not implemented)
 

Constructor & Destructor Documentation

◆ gsMaterialMatrixNonlinear() [1/6]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
gsMaterialMatrixNonlinear ( const gsFunctionSet< T > &  mp,
const gsFunctionSet< T > &  thickness 
)

Constructor without material parameters.

Parameters
[in]mpOriginal geometry
[in]thicknessThickness function

◆ gsMaterialMatrixNonlinear() [2/6]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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() [3/6]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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() [4/6]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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() [5/6]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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() [6/6]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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

◆ _Cabcd()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _Cabcd ( const index_t  a,
const index_t  b,
const index_t  c,
const index_t  d 
) const
inlineprotected

The material matrix for stretch-based implementations.

Parameters
[in]a,b,c,dThe indices a,b,c,d

◆ _Cijkl() [1/2]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _Cijkl ( const index_t  i,
const index_t  j,
const index_t  k,
const index_t  l 
) const
inlineprotected

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

Parameters
[in]i,j,k,lThe indices
Returns
C^{ijkl}

◆ _Cijkl() [2/2]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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
inlineprotected

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}

◆ _Cijkl3D()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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
inlineprotected

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}

◆ _Cijkl_impl()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
template<enum Implementation _imp>
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
inlineprivate

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.

◆ _computeMetricDeformed_impl()

template<short_t dim, class T >
template<short_t _dim>
std::enable_if< _dim==2, void >::type _computeMetricDeformed_impl ( const index_t  patch,
const gsMatrix< T > &  u 
) const
privateinherited

Implementation of _computeMetricUndeformed for planar geometries.

SetZero does not work with gsThreaded?

◆ _d2J_dab()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _d2J_dab ( const index_t  a,
const index_t  b 
) const
inlineprotected

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

Parameters
[in]a,bThe indices a,b

◆ _d2Psi() [1/2]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _d2Psi ( const index_t  i,
const index_t  j,
const index_t  k,
const index_t  l 
) const
inlineprotected

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}

◆ _d2Psi() [2/2]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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
inlineprotected

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}

◆ _d2Psi_dab()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _d2Psi_dab ( const index_t  a,
const index_t  b 
) const
inlineprotected

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

◆ _d2Psi_dab_vol()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _d2Psi_dab_vol ( const index_t  a,
const index_t  b 
) const
inlineprotected

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

◆ _d2Psi_vol()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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
inlineprotected

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}

◆ _dI_1()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _dI_1 ( const index_t  i,
const index_t  j 
) const
inlineprotected

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}

◆ _dI_2()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _dI_2 ( const index_t  i,
const index_t  j,
const gsMatrix< T > &  c,
const gsMatrix< T > &  cinv 
) const
inlineprotected

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}

◆ _dJ_da()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _dJ_da ( const index_t  a) const
inlineprotected

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

Parameters
[in]aThe index a

◆ _dp_da()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _dp_da ( const index_t  a) const
inlineprotected

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

Parameters
[in]aThe index a

◆ _dPsi() [1/2]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _dPsi ( const index_t  i,
const index_t  j 
) const
inlineprotected

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}

◆ _dPsi() [2/2]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _dPsi ( const index_t  i,
const index_t  j,
const gsMatrix< T > &  c,
const gsMatrix< T > &  cinv 
) const
inlineprotected

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}

◆ _dPsi_da()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _dPsi_da ( const index_t  a) const
inlineprotected

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

Parameters
[in]aThe index a

◆ _dPsi_da_vol()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _dPsi_da_vol ( const index_t  a) const
inlineprotected

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

◆ _dPsi_vol()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _dPsi_vol ( const index_t  i,
const index_t  j,
const gsMatrix< T > &  c,
const gsMatrix< T > &  cinv 
) const
inlineprotected

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}

◆ _dSa_db()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _dSa_db ( const index_t  a,
const index_t  b 
) const
inlineprotected

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

◆ _eval3D_Compressible_C33()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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)

◆ _eval3D_Compressible_detF()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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 }

◆ _eval3D_Compressible_matrix()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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)]

◆ _eval3D_Compressible_stress()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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)]

◆ _eval3D_detF_impl()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
template<enum Material _mat, bool _comp>
std::enable_if< _comp &&!(_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)]

◆ _eval3D_dmatrix_impl()

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>
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
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 }

◆ _eval3D_Incompressible_detF()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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 }

◆ _eval3D_Incompressible_matrix()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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)]

◆ _eval3D_Incompressible_stress()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
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)]

◆ _eval3D_matrix_impl() [1/3]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
template<enum Material _mat, bool _comp>
std::enable_if< _comp &&!(_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)]

◆ _eval3D_matrix_impl() [2/3]

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>
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
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)]

◆ _eval3D_matrix_impl() [3/3]

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>
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
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)]

◆ _eval3D_pstress_impl()

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>
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
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)]

◆ _eval3D_stress_impl() [1/3]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
template<enum Material _mat, bool _comp>
std::enable_if< _comp &&!(_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)]

◆ _eval3D_stress_impl() [2/3]

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>
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
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)]

◆ _eval3D_stress_impl() [3/3]

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>
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
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)]

◆ _initialize()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
void _initialize ( )
protected

Initializes the object.

Initializes options, flags and defines the number of parameters

◆ _pstretch_into_impl() [1/2]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
template<bool _comp>
std::enable_if< _comp, 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)

◆ _pstretch_into_impl() [2/2]

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>
template<bool _com>
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)

◆ _pstretchDir_into_impl() [1/2]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
template<bool _comp>
std::enable_if< _comp, 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)

◆ _pstretchDir_into_impl() [2/2]

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>
template<bool _com>
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)

◆ _Sa()

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _Sa ( const index_t  a) const
inlineprotected

Component \(a\) of the stress.

Parameters
[in]aThe index a

◆ _Sii() [1/2]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _Sii ( const index_t  i) const
inlineprotected

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

Parameters
[in]iThe index
Returns
S^{ii}

◆ _Sii() [2/2]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _Sii ( const index_t  i,
const gsMatrix< T > &  c 
) const
inlineprotected

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}

◆ _Sij() [1/2]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _Sij ( const index_t  i,
const index_t  j 
) const
inlineprotected

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

Parameters
[in]i,jThe indices
Returns
S^{ij}

◆ _Sij() [2/2]

template<short_t dim, class T , short_t matId, bool comp, enum Material mat, enum Implementation imp>
T _Sij ( const index_t  i,
const index_t  j,
const gsMatrix< T > &  c,
const gsMatrix< T > &  cinv 
) const
inlineprotected

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}

◆ eval3D_pstressTransform()

template<class T >
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)]

◆ eval3D_pstretchTransform()

template<class T >
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)]

◆ eval3D_strain()

template<short_t dim, class T >
virtual gsMatrix< T > eval3D_strain ( const index_t  ,
const gsMatrix< T > &  ,
const gsMatrix< T > &   
) const
inlinevirtualinherited

{ function_description }

Parameters
[in]patchThe patch
[in]u{ parameter_description }
[in]z{ parameter_description }
[in]outThe out
Returns
{ description_of_the_return_value }

Reimplemented from gsMaterialMatrixBase< T >.

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

◆ eval3D_tensionfield()

template<short_t dim, class T >
virtual gsMatrix< T > eval3D_tensionfield ( const index_t  ,
const gsMatrix< T > &  ,
const gsMatrix< T > &  ,
enum MaterialOutput   
) const
inlinevirtualinherited

to do

Parameters
[in]patchThe patch
[in]uThe in-plane shell coordinates to be eveluated on
[in]zThe point through-thickness coorinate
[in]out(for classes with MatIntegration==Integrated, more details about MaterialOutput can be found in gsMaterialMatrixUtils)
Returns
Matrix with the result (principal strain) ordered per z coordinate per point [(u1,z1) (u2,z1) .. (un,z1), (u1,z2) .. (un,z2), .., (u1,zm) .. (un,zm)]

Reimplemented from gsMaterialMatrixBase< T >.

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

◆ getParameter()

template<class T >
virtual const function_ptr getParameter ( const index_t  i) const
inlinevirtualinherited

Gets parameter i.

Parameters
[in]iThe parameter index
Returns
The parameter.

◆ options()

template<class T >
virtual gsOptionList & options ( )
inlinevirtualinherited

Returns the options.

Returns
gsOptionList

Reimplemented in gsMaterialMatrixComposite< dim, T >.

◆ pstress_into()

template<class T >
virtual void pstress_into ( const index_t  ,
const gsMatrix< T > &  ,
gsMatrix< T > &   
) 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 >.

◆ pstressDir_into()

template<class T >
virtual void pstressDir_into ( const index_t  ,
const gsMatrix< T > &  ,
gsMatrix< T > &   
) 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 >.

◆ setOptions()

template<class T >
virtual void setOptions ( gsOptionList  opt)
inlinevirtualinherited

Sets the options.

Parameters
[in]optgsOptionList

Reimplemented in gsMaterialMatrixComposite< dim, T >.

◆ setParameter() [1/2]

template<class 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

◆ setParameter() [2/2]

template<class T >
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

◆ setParameters() [1/2]

template<class T >
virtual void setParameters ( const std::vector< function_ptr > &  pars)
inlinevirtualinherited

Sets the material parameters.

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

◆ setParameters() [2/2]

template<class T >
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 >.

◆ transform_into()

template<class T >
virtual void transform_into ( const index_t  ,
const gsMatrix< T > &  ,
gsMatrix< T > &   
) 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 >.