G+Smo  23.12.0
Geometry + Simulation Modules
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
gsMaterialMatrixBaseDim< dim, T > Class Template Reference

Detailed Description

template<short_t dim, class T>
class gismo::gsMaterialMatrixBaseDim< dim, T >

This class defines the base class for material matrices.

Template Parameters
TReal type
+ Inheritance diagram for gsMaterialMatrixBaseDim< dim, T >:
+ Collaboration diagram for gsMaterialMatrixBaseDim< dim, T >:

Public Types

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

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.
 
virtual 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.
 
virtual gsMatrix< T > eval3D_CauchyStress (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const
 { function_description } More...
 
virtual gsMatrix< T > eval3D_CauchyVector (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const
 Evaluates the Cauchy Stress vector on patch on in-plane points u with height z. More...
 
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.
 
virtual gsMatrix< T > eval3D_detF (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const
 { function_description } More...
 
virtual gsMatrix< T > eval3D_dmatrix (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const
 Evaluates the derivative of the matrix on patch on in-plane points u with height z. More...
 
virtual gsMatrix< T > eval3D_matrix (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const
 Evaluates the matrix on patch on in-plane points u with height z. More...
 
virtual gsMatrix< T > eval3D_pstrain (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const override
 See gsMaterialMatrixBase for details.
 
virtual gsMatrix< T > eval3D_pstress (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const
 Evaluates the principal stress on patch on in-plane points u with height z. More...
 
virtual gsMatrix< T > eval3D_pstressDir (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const
 Evaluates the principal stress directions on patch on in-plane points u with height z. More...
 
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.
 
virtual gsMatrix< T > eval3D_stress (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const
 { function_description } More...
 
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_vector (const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const
 Evaluates the vector on patch on in-plane points u with height z. More...
 
virtual const function_ptr getDensity () const
 Gets the Density.
 
virtual const function_ptr getParameter (const index_t i) const
 Gets parameter i. More...
 
virtual const function_ptr getThickness () const
 Gets the Density.
 
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.
 
virtual enum MatIntegration isMatIntegrated () const
 Specifies how the matrix is integrated. More...
 
virtual enum MatIntegration isVecIntegrated () const
 Specifies how the vector is integrated. More...
 
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.
 
virtual std::ostream & print (std::ostream &os) const
 Prints the object as a string.
 
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...
 
virtual void pstretch_into (const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const
 Evaluates the stretches in the shell (3x1 vector) More...
 
virtual void pstretchDir_into (const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const
 Evaluates the directions of the stretches in the shell (3x1 vector per direction) More...
 
virtual void resetParameters ()
 See gsMaterialMatrixBase for details.
 
virtual void setDensity (function_ptr Density)
 Sets the density.
 
virtual void setDensity (const gsFunctionSet< T > &Density)
 Sets the density.
 
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...
 
virtual void setThickness (const function_ptr &thickness)
 Sets the thickness.
 
virtual void setThickness (const gsFunctionSet< T > &thickness)
 Sets the thickness.
 
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...
 
virtual ~gsMaterialMatrixBaseDim ()
 Destructor.
 

Private Member Functions

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. More...
 
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<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.
 

Member Function Documentation

std::enable_if< _dim==2, void >::type _computeMetricDeformed_impl ( const index_t  patch,
const gsMatrix< T > &  u 
) const
private

Implementation of _computeMetricUndeformed for planar geometries.

SetZero does not work with gsThreaded?

virtual gsMatrix<T> eval3D_CauchyStress ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z,
enum MaterialOutput  out 
) 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 in gsMaterialMatrixLinear< dim, T >, gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >, gsMaterialMatrixTFT< dim, T, linear >, and gsMaterialMatrixTFT< 2, T >.

virtual gsMatrix<T> eval3D_CauchyVector ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z,
enum MaterialOutput  out 
) const
inlinevirtualinherited

Evaluates the Cauchy Stress vector on patch on in-plane points u with height z.

note: the Cauchy stress vector is returned in the actual basis

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 (vector) ordered per z coordinate per point [(u1,z1) (u2,z1) .. (un,z1), (u1,z2) .. (un,z2), .., (u1,zm) .. (un,zm)]

Reimplemented in gsMaterialMatrixLinear< dim, T >, and gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >.

virtual gsMatrix<T> eval3D_detF ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z,
enum MaterialOutput  out 
) 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 in gsMaterialMatrixLinear< dim, T >, and gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >.

virtual gsMatrix<T> eval3D_dmatrix ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z,
enum MaterialOutput  out 
) const
inlinevirtualinherited

Evaluates the derivative of the matrix on patch on in-plane points u with height z.

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 (matrix) ordered per z coordinate per point [(u1,z1) (u2,z1) .. (un,z1), (u1,z2) .. (un,z2), .., (u1,zm) .. (un,zm)] every column has 9*3=27 entries. To obtain the derivatives of C, one can do the following

dC = eval.reshapeCol(k,9,3); dCd11 = dC.reshapeCol(0,3,3); dCd22 = dC.reshapeCol(1,3,3); dCd11 = dC.reshapeCol(2,3,3);

Reimplemented in gsMaterialMatrixLinear< dim, T >, and gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >.

virtual gsMatrix<T> eval3D_matrix ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z,
enum MaterialOutput  out 
) const
inlinevirtualinherited

Evaluates the matrix on patch on in-plane points u with height z.

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 (matrix) ordered per z coordinate per point [(u1,z1) (u2,z1) .. (un,z1), (u1,z2) .. (un,z2), .., (u1,zm) .. (un,zm)]

Reimplemented in gsMaterialMatrixLinear< dim, T >, gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >, gsMaterialMatrixTFT< dim, T, linear >, gsMaterialMatrixTFT< 2, T >, and gsMaterialMatrixComposite< dim, T >.

virtual gsMatrix<T> eval3D_pstress ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z,
enum MaterialOutput  out 
) const
inlinevirtualinherited

Evaluates the principal stress on patch on in-plane points u with height z.

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 stress) ordered per z coordinate per point [(u1,z1) (u2,z1) .. (un,z1), (u1,z2) .. (un,z2), .., (u1,zm) .. (un,zm)]

Reimplemented in gsMaterialMatrixLinear< dim, T >, gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >, gsMaterialMatrixTFT< dim, T, linear >, and gsMaterialMatrixTFT< 2, T >.

virtual gsMatrix<T> eval3D_pstressDir ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z,
enum MaterialOutput  out 
) const
inlinevirtualinherited

Evaluates the principal stress directions on patch on in-plane points u with height z.

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 stress directions) ordered per z coordinate per point [(u1,z1) (u2,z1) .. (un,z1), (u1,z2) .. (un,z2), .., (u1,zm) .. (un,zm)]

Reimplemented in gsMaterialMatrixLinear< dim, T >, and gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >.

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 gsMatrix<T> eval3D_stress ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z,
enum MaterialOutput  out 
) 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 in gsMaterialMatrixLinear< dim, T >, gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >, gsMaterialMatrixTFT< dim, T, linear >, and gsMaterialMatrixTFT< 2, T >.

virtual gsMatrix<T> eval3D_vector ( const index_t  patch,
const gsMatrix< T > &  u,
const gsMatrix< T > &  z,
enum MaterialOutput  out 
) const
inlinevirtualinherited

Evaluates the vector on patch on in-plane points u with height z.

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 (vector) ordered per z coordinate per point [(u1,z1) (u2,z1) .. (un,z1), (u1,z2) .. (un,z2), .., (u1,zm) .. (un,zm)]

Reimplemented in gsMaterialMatrixLinear< dim, T >, gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >, gsMaterialMatrixTFT< dim, T, linear >, gsMaterialMatrixTFT< 2, T >, and gsMaterialMatrixComposite< dim, T >.

virtual const function_ptr getParameter ( const index_t  i) const
inlinevirtualinherited

Gets parameter i.

Parameters
[in]iThe parameter index
Returns
The parameter.
virtual enum MatIntegration isMatIntegrated ( ) const
inlinevirtualinherited

Specifies how the matrix is integrated.

Possible options to specify the integration of the matrix (see enum MatIntegration)

  • NotIntegrated The matrix is not integrated, hence the values of eval3D_matrix provide the through-thickness value for each z coordinate
  • Integrated The matrix is already integrated; the integrated values are returned for any z coordinate
  • Constant The matrix is constant over the thickness, but not yet integrated
  • Linear The matrix is linearly dependent of the thickness value, say a*z+b, hence the 0th moment w.r.t. z is a*t, the 1st moment is 1/2*b*t^2, etc.
Returns
Return MatIntegration enumeration

Reimplemented in gsMaterialMatrixLinear< dim, T >, gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >, gsMaterialMatrixTFT< dim, T, linear >, gsMaterialMatrixTFT< 2, T >, and gsMaterialMatrixComposite< dim, T >.

virtual enum MatIntegration isVecIntegrated ( ) const
inlinevirtualinherited

Specifies how the vector is integrated.

Possible options to specify the integration of the vector (see enum MatIntegration)

  • NotIntegrated The vector is not integrated, hence the values of eval3D_matrix provide the through-thickness value for each z coordinate
  • Integrated The vector is already integrated; the integrated values are returned for any z coordinate
  • Constant The vector is constant over the thickness, but not yet integrated
  • Linear The vector is linearly dependent of the thickness value, say a*z+b, hence the 0th moment w.r.t. z is a*t, the 1st moment is 1/2*b*t^2, etc.
Returns
Return MatIntegration enumeration

Reimplemented in gsMaterialMatrixLinear< dim, T >, gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >, gsMaterialMatrixTFT< dim, T, linear >, gsMaterialMatrixTFT< 2, T >, and gsMaterialMatrixComposite< dim, T >.

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 pstretch_into ( const index_t  patch,
const gsMatrix< T > &  u,
gsMatrix< T > &  result 
) const
inlinevirtualinherited

Evaluates the stretches 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 gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >, and gsMaterialMatrixComposite< dim, T >.

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

Evaluates the directions of the stretches 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 gsMaterialMatrixNonlinear< dim, T, matId, comp, mat, imp >, and 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 >.