20 #ifndef __mast__bending_operator__ 21 #define __mast__bending_operator__ 30 #include "libmesh/elem.h" 31 #include "libmesh/quadrature.h" 32 #include "libmesh/fe_base.h" 39 class StructuralElementBase;
41 class SensitivityParameters;
42 class FEMOperatorMatrix;
45 template <
typename ValType>
class FieldFunction;
85 bool request_jacobian,
99 bool request_jacobian,
135 initialize_bending_strain_operator (
const MAST::FEBase& fe,
136 const unsigned int qp,
144 initialize_bending_strain_operator_for_yz (
const MAST::FEBase& fe,
145 const unsigned int qp,
167 initialize_bending_strain_operator (
const MAST::FEBase& fe,
168 const unsigned int qp,
175 initialize_bending_strain_operator_for_z (
const MAST::FEBase& fe,
176 const unsigned int qp,
186 std::unique_ptr<MAST::BendingOperator1D>
189 const std::vector<libMesh::Point>& pts);
191 std::unique_ptr<MAST::BendingOperator2D>
194 const std::vector<libMesh::Point>& pts);
BendingOperator1D(MAST::StructuralElementBase &elem)
std::unique_ptr< MAST::BendingOperator1D > build_bending_operator_1D(MAST::BendingOperatorType type, MAST::StructuralElementBase &elem, const std::vector< libMesh::Point > &pts)
builds a bending operator and returns it in a smart-pointer
virtual bool include_transverse_shear_energy() const =0
returns true if this bending operator supports a transverse shear component
virtual void calculate_transverse_shear_residual(bool request_jacobian, RealVectorX &local_f, RealMatrixX &local_jac)
calculate the transverse shear component for the element
MAST::StructuralElementBase & _structural_elem
structural element associated with this
virtual void calculate_transverse_shear_residual_sensitivity(const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &local_f, RealMatrixX &local_jac)
calculate the transverse shear component for the element
std::unique_ptr< MAST::BendingOperator2D > build_bending_operator_2D(MAST::BendingOperatorType type, MAST::StructuralElementBase &elem, const std::vector< libMesh::Point > &pts)
Matrix< Real, Dynamic, Dynamic > RealMatrixX
Bending strain operator for 1D element.
Bending strain operator for 1D element.
BendingOperator2D(MAST::StructuralElementBase &elem)
Matrix< Real, Dynamic, 1 > RealVectorX
BendingOperator(MAST::StructuralElementBase &elem)
This class acts as a wrapper around libMesh::Elem for the purpose of providing a uniform interface fo...
virtual ~BendingOperator()
const MAST::GeomElem & _elem
element for which bending operator is created
virtual void calculate_transverse_shear_residual_boundary_velocity(const MAST::FunctionBase &p, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f, bool request_jacobian, RealVectorX &local_f, RealMatrixX &local_jac)
calculate the transverse shear component for the element