43 typedef memory::shared_ptr< gsMaterialMatrixTFT >
Ptr;
46 typedef memory::unique_ptr< gsMaterialMatrixTFT >
uPtr;
89 m_materialMat(
give(materialMatrix))
91 if (materialMatrix.get()->hasUndeformed())
93 if (materialMatrix.get()->hasDeformed())
94 this->
setDeformed(materialMatrix.get()->getDeformed());
96 this->
setThickness(materialMatrix.get()->getThickness());
98 m_options.
addReal(
"SlackMultiplier",
"Multiplies the original value of the matrix for the slack state",0);
99 m_options.
addSwitch(
"Explicit",
"Explicit iterations; use tension field from a fixed deformed geometry that does not change when calling setDeformed",
false);
106 {
return MatIntegration::Linear;}
112 {
return MatIntegration::Linear;}
121 { m_materialMat->density_into( patch,u,result ); }
125 { m_materialMat->thickness_into( patch,u,result ); }
158 {
return m_materialMat->eval3D_CauchyPStress(patch,u,z,out);}
171 {
return m_materialMat->eval3D_pstretch( patch,u,z ); }
175 {
return m_materialMat->eval3D_pstretchDir( patch,u,z ); }
179 { m_materialMat->setParameters(pars); }
183 { m_materialMat->info(); }
188 Base::setUndeformed(undeformed);
189 m_materialMat->setUndeformed(m_patches);
195 Base::setDeformed(deformed);
196 m_materialMat->setDeformed(m_defpatches);
202 Base::setUndeformed(undeformed);
203 m_materialMat->setUndeformed(m_patches);
209 Base::setDeformed(deformed);
210 m_materialMat->setDeformed(m_defpatches);
223 m_defpatches0 = deformed;
230 std::ostream &
print(std::ostream &os)
const override;
239 template <
bool _linear>
242 template <
bool _linear>
265 using Base::m_patches;
266 using Base::m_defpatches;
268 using Base::m_options;
277 #ifndef GISMO_BUILD_LIB
278 #include GISMO_HPP_HEADER(gsMaterialMatrixTFT.hpp)
MaterialOutput
This class describes the output type.
Definition: gsMaterialMatrixUtils.h:98
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.
Definition: gsMaterialMatrixTFT.hpp:162
enum MatIntegration isVecIntegrated() const override
Definition: gsMaterialMatrixTFT.h:110
void updateDeformed(const function_ptr &deformed)
Updates the reference to the deformed patches used for TFT (explicit only)
Definition: gsMaterialMatrixTFT.h:221
memory::unique_ptr< gsMaterialMatrixTFT > uPtr
Unique pointer for gsMaterialMatrixTFT.
Definition: gsMaterialMatrixTFT.h:46
const gsMaterialMatrixBase< T > * material() const override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.h:233
shared_ptr< T > make_shared_not_owned(const T *x)
Creates a shared pointer which does not eventually delete the underlying raw pointer. Usefull to refer to objects which should not be destroyed.
Definition: gsMemory.h:189
std::vector< T * > release(std::vector< unique_ptr< T > > &cont)
Takes a vector of smart pointers, releases them and returns the corresponding raw pointers...
Definition: gsMemory.h:228
gsMaterialMatrixBase< T >::Ptr material_ptr
Shared pointer to a gsMaterialMatrixBase.
Definition: gsMaterialMatrixTFT.h:49
enum MatIntegration isMatIntegrated() const override
Definition: gsMaterialMatrixTFT.h:104
gsMatrix< T > eval3D_strain(const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.hpp:124
#define short_t
Definition: gsConfig.h:35
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.
Definition: gsMaterialMatrixTFT.hpp:206
gsMatrix< T > eval3D_CauchyPStress(const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out) const override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.h:157
S give(S &x)
Definition: gsMemory.h:266
gsMatrix< T > eval3D_pstress(const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out=MaterialOutput::Generic) const override
Definition: gsMaterialMatrixTFT.hpp:68
#define index_t
Definition: gsConfig.h:32
std::ostream & print(std::ostream &os) const override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.hpp:36
void density_into(const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.h:120
void setUndeformed(function_ptr undeformed) override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.h:186
memory::shared_ptr< gsMaterialMatrixTFT > Ptr
Shared pointer for gsMaterialMatrixTFT.
Definition: gsMaterialMatrixTFT.h:43
This class defines the base class for material matrices.
Definition: gsMaterialMatrixBase.h:32
gsMatrix< T > eval3D_pstretchDir(const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.h:174
Base class with dimension in template; used for metric computations.
memory::shared_ptr< gsFunctionSet > Ptr
Shared pointer for gsFunctionSet.
Definition: gsFunctionSet.h:223
void setUndeformed(const gsFunctionSet< T > *undeformed) override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.h:200
gsMatrix< T > eval_theta(const gsMatrix< T > &Cs, const gsMatrix< T > &Ns, const gsMatrix< T > &Es) const
Computes theta.
Definition: gsMaterialMatrixTFT.hpp:462
gsMatrix< T > eval3D_pstrain(const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.hpp:96
gsMaterialMatrixTFT(const material_ptr &materialMatrix)
Constructs a TFT material matrix using a reference to another material matrix.
Definition: gsMaterialMatrixTFT.h:87
Interface for the set of functions defined on a domain (the total number of functions in the set equa...
Definition: gsFuncData.h:23
gsMatrix< T > eval3D_theta(const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out=MaterialOutput::Generic) const override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.hpp:311
This class defines a linear material.
Definition: gsMaterialMatrixTFT.h:39
std::enable_if< _linear, gsMatrix< T > >::type _eval3D_matrix_impl(const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out=MaterialOutput::Generic) const
Provides an implementation of eval3D_matrix for gsMaterialMatrixLinear.
Definition: gsMaterialMatrixTFT.hpp:378
Provides material matrix utilities.
gsMatrix< T > eval3D_gamma(const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out=MaterialOutput::Generic) const override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.hpp:343
void info() const override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.h:182
This class defines the base class for material matrices.
Definition: gsMaterialMatrixBaseDim.h:35
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.
Definition: gsMaterialMatrixTFT.hpp:49
gsMatrix< T > eval3D_tensionfield(const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z, enum MaterialOutput out=MaterialOutput::Generic) const override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.hpp:305
void addReal(const std::string &label, const std::string &desc, const Real &value)
Adds a option named label, with description desc and value value.
Definition: gsOptionList.cpp:211
void thickness_into(const index_t patch, const gsMatrix< T > &u, gsMatrix< T > &result) const override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.h:124
gsMaterialMatrixTFT(gsMaterialMatrixBase< T > &materialMatrix)
Constructs a TFT material matrix using a reference to another material matrix.
Definition: gsMaterialMatrixTFT.h:77
Provides a base class for material matrices.
void setParameters(const std::vector< gsFunctionSet< T > * > &pars) override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.h:178
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.
Definition: gsMaterialMatrixTFT.hpp:62
memory::shared_ptr< gsMaterialMatrixBase > Ptr
Shared pointer for gsGeometry.
Definition: gsMaterialMatrixBase.h:41
void addSwitch(const std::string &label, const std::string &desc, const bool &value)
Adds a option named label, with description desc and value value.
Definition: gsOptionList.cpp:235
MatIntegration
This class describes if an object is integrated through-thickness or not.
Definition: gsMaterialMatrixUtils.h:35
void setDeformed(const gsFunctionSet< T > *deformed) override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.h:207
void updateDeformed(const gsFunctionSet< T > *deformed)
Updates the reference to the deformed patches used for TFT (explicit only)
Definition: gsMaterialMatrixTFT.h:214
gsMaterialMatrixBase< T > * material() override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.h:236
void setDeformed(function_ptr deformed) override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.h:193
gsMatrix< T > eval3D_pstretch(const index_t patch, const gsMatrix< T > &u, const gsMatrix< T > &z) const override
See gsMaterialMatrixBase for details.
Definition: gsMaterialMatrixTFT.h:170
virtual void setThickness(const function_ptr &thickness)
Sets the thickness.
Definition: gsMaterialMatrixBase.h:650
gsFunctionSet< T >::Ptr function_ptr
Shared pointer to a gsFunctionSet.
Definition: gsMaterialMatrixTFT.h:55
shared_ptr< T > make_shared(T *x)
Definition: gsMemory.h:181