20 #ifndef __mast__element_property_card_base__ 21 #define __mast__element_property_card_base__ 32 class MaterialPropertyCardBase;
35 template <
typename ValType>
class FieldFunction;
75 virtual std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
78 virtual std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
81 virtual std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
84 virtual std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
87 virtual std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
90 virtual std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
93 virtual std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
96 virtual std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
99 virtual std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
102 virtual std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
105 virtual std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
108 virtual std::unique_ptr<MAST::FieldFunction<RealMatrixX> >
139 libmesh_error_msg(
"Not Implemented, this needs to be reimplemented for individual card type; In " << __PRETTY_FUNCTION__ <<
" in " << __FILE__ <<
" at line " << __LINE__);
150 libmesh_error_msg(
"Not Implemented, this needs to be reimplemented for individual card type; In " << __PRETTY_FUNCTION__ <<
" in " << __FILE__ <<
" at line " << __LINE__);
161 libmesh_error_msg(
"Not Implemented, this needs to be reimplemented for individual card type; In " << __PRETTY_FUNCTION__ <<
" in " << __FILE__ <<
" at line " << __LINE__);
170 libmesh_error_msg(
"Not Implemented, this needs to be reimplemented for individual card type; In " << __PRETTY_FUNCTION__ <<
" in " << __FILE__ <<
" at line " << __LINE__);
177 virtual unsigned int dim()
const = 0;
202 libmesh_error_msg(
"Not implemented, this needs to be reimplemented for individual card type; In " << __PRETTY_FUNCTION__ <<
" in " << __FILE__ <<
" at line " << __LINE__);
255 #endif // __mast__element_property_card_base__ virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > prestress_A_matrix(MAST::ElementBase &e) const =0
virtual MAST::BendingOperatorType bending_model(const MAST::GeomElem &elem) const =0
returns the bending model to be used for the element.
MAST::StrainType _strain_type
type of nonlinear strain to be used for analysis
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > thermal_expansion_B_matrix(const MAST::ElementBase &e) const =0
virtual const RealVectorX & y_vector() const
constant reference to vector in the x-y plane of the element.
virtual bool get_warping_only() const
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > thermal_capacitance_matrix(const MAST::ElementBase &e) const =0
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > prestress_B_matrix(MAST::ElementBase &e) const =0
virtual void init()
Only used by 1D sections.
virtual const MAST::MaterialPropertyCardBase & get_material() const
return the material property.
void set_diagonal_mass_matrix(bool m)
sets the mass matrix to be diagonal or consistent
virtual const MAST::FieldFunction< Real > * section(const MAST::ElementBase &e) const =0
virtual bool if_prestressed() const
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > damping_matrix(const MAST::ElementBase &e) const =0
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > stiffness_B_matrix(const MAST::ElementBase &e) const =0
virtual void set_bending_model(MAST::BendingOperatorType b)
sets the bending model to be used for the 1D element Added by DJN to increase section polymorphism ...
void set_strain(MAST::StrainType strain)
sets the type of strain to be used, which is LINEAR_STRAIN by default
virtual bool if_isotropic() const =0
return true if the property is isotropic
virtual ~ElementPropertyCardBase()
virtual destructor
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > inertia_matrix(const MAST::ElementBase &e) const =0
bool _diagonal_mass
flag to use a diagonal mass matrix.
bool contains(const std::string &nm) const
checks if the card contains the specified property value
virtual RealVectorX & y_vector()
vector in the x-y plane of the element.
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > transverse_shear_stiffness_matrix(const MAST::ElementBase &e) const =0
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > thermal_conductance_matrix(const MAST::ElementBase &e) const =0
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > stiffness_A_matrix(const MAST::ElementBase &e) const =0
Matrix< Real, Dynamic, 1 > RealVectorX
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > stiffness_D_matrix(const MAST::ElementBase &e) const =0
provides a methods to store property values
This class acts as a wrapper around libMesh::Elem for the purpose of providing a uniform interface fo...
const MAST::StrainType strain_type() const
returns the type of strain to be used for this element
virtual const MAST::MaterialPropertyCardBase & set_material(MAST::MaterialPropertyCardBase &mat) const
return the material property.
bool if_diagonal_mass_matrix() const
returns the type of strain to be used for this element
virtual std::unique_ptr< MAST::FieldFunction< RealMatrixX > > thermal_expansion_A_matrix(const MAST::ElementBase &e) const =0
virtual unsigned int dim() const =0
dimension of the element for which this property is defined
virtual int extra_quadrature_order(const MAST::GeomElem &elem) const =0
returns the extra quadrature order (on top of the system) that this element should use...
ElementPropertyCardBase()
This is the base class for elements that implement calculation of finite element quantities over the ...