52 n = (
unsigned int)sol.size();
55 zero = RealVectorX::Zero(n);
83 n = (
unsigned int)sol.size();
86 zero = RealVectorX::Zero(n);
104 RealMatrixX mat = RealMatrixX::Zero(mat_A.rows(), mat_A.cols());
133 RealMatrixX mat = RealMatrixX::Zero(mat_A.rows(), mat_A.cols());
169 RealMatrixX mat = RealMatrixX::Zero(mat_A.rows(), mat_A.cols());
175 if (elem.if_elem_has_level_set_boundary() &&
176 elem.if_subelem_has_side_on_level_set_boundary()) {
182 elem.get_subelem_side_on_level_set_boundary(),
188 elem.get_subelem_side_on_level_set_boundary(),
196 elem.get_subelem_side_on_level_set_boundary(),
207 libmesh_assert(
false);
217 const libMesh::Elem& ref_elem,
virtual void internal_residual_boundary_velocity(const MAST::FunctionBase &p, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f, bool request_jacobian, RealVectorX &f, RealMatrixX &jac)=0
calculates the term on side s: .
virtual void elem_sensitivity_calculations(const MAST::FunctionBase &f, bool base_sol, RealMatrixX &mat_A, RealMatrixX &mat_B)
performs the element sensitivity calculations over elem, and returns the element matrices for the eig...
const MAST::VolumeBCMapType & volume_loads() const
bool volume_external_residual(bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase * > &bc)
volume external force contribution to system residual.
virtual bool inertial_residual_sensitivity(const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xddot, RealMatrixX &jac_xdot, RealMatrixX &jac)
sensitivity of the inertial force contribution to system residual
std::unique_ptr< MAST::StructuralElementBase > build_structural_element(MAST::SystemInitialization &sys, MAST::AssemblyBase &assembly, const MAST::GeomElem &elem, const MAST::ElementPropertyCardBase &p)
builds the structural element for the specified element type
virtual void set_velocity(const RealVectorX &vec, bool if_sens=false)
stores vec as velocity for element level calculations, or its sensitivity if if_sens is true...
RealVectorX & y_vector()
returns value of the property val.
MAST::StructuralAssembly * _incompatible_sol_assembly
const MAST::GeomElem & elem() const
void set_local_y_vector(const RealVectorX &y_vec)
for 1D elements the transformed coordinate system attached to the element defines the local x-axis al...
virtual bool inertial_residual(bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xddot, RealMatrixX &jac_xdot, RealMatrixX &jac)
inertial force contribution to system residual
bool side_external_residual(bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase * > &bc)
side external force contribution to system residual.
virtual bool internal_residual_sensitivity(const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac)=0
sensitivity of the internal force contribution to system residual
MAST::PhysicsDisciplineBase * _discipline
void set_elem_incompatible_sol(MAST::StructuralElementBase &elem)
MAST::ElementBase * _physics_elem
virtual bool if_incompatible_modes() const =0
bool side_external_residual_sensitivity(const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, std::multimap< libMesh::boundary_id_type, MAST::BoundaryConditionBase * > &bc)
sensitivity of the side external force contribution to system residual
virtual void elem_calculations(RealMatrixX &mat_A, RealMatrixX &mat_B)
performs the element calculations over elem, and returns the element matrices for the eigenproblem ...
Matrix< Real, Dynamic, Dynamic > RealMatrixX
virtual void set_elem_data(unsigned int dim, const libMesh::Elem &ref_elem, MAST::GeomElem &elem) const
sets the structural element y-vector if 1D element is used.
void volume_external_residual_boundary_velocity(const MAST::FunctionBase &p, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f, std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase * > &bc, bool request_jacobian, RealVectorX &f, RealMatrixX &jac)
boundary velocity contribution of volume external force.
This class inherits from MAST::GeomElem and provides an interface to initialize FE objects on sub-ele...
Matrix< Real, Dynamic, 1 > RealVectorX
const MAST::ElementPropertyCardBase & get_property_card(const libMesh::Elem &elem) const
get property card for the specified element
StructuralModalEigenproblemAssemblyElemOperations()
constructor associates the eigen system with this assembly object
This class acts as a wrapper around libMesh::Elem for the purpose of providing a uniform interface fo...
MAST::AssemblyBase * _assembly
virtual void set_elem_solution_sensitivity(const RealVectorX &sol)
sets the element solution sensitivity before calculations
virtual void set_solution(const RealVectorX &vec, bool if_sens=false)
stores vec as solution for element level calculations, or its sensitivity if if_sens is true...
virtual void elem_topology_sensitivity_calculations(const MAST::FunctionBase &f, bool base_sol, const MAST::FieldFunction< RealVectorX > &vel, RealMatrixX &mat_A, RealMatrixX &mat_B)
performs the element topology sensitivity calculations over elem.
virtual void init(const MAST::GeomElem &elem)
initializes the object for the geometric element elem.
virtual bool internal_residual_jac_dot_state_sensitivity(RealMatrixX &jac)=0
calculates d[J]/d{x} .
bool volume_external_residual_sensitivity(const MAST::FunctionBase &p, bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xdot, RealMatrixX &jac, std::multimap< libMesh::subdomain_id_type, MAST::BoundaryConditionBase * > &bc)
sensitivity of the volume external force contribution to system residual
virtual ~StructuralModalEigenproblemAssemblyElemOperations()
destructor resets the association with the eigen system from this assembly object ...
const MAST::SideBCMapType & side_loads() const
virtual bool internal_residual(bool request_jacobian, RealVectorX &f, RealMatrixX &jac)=0
internal force contribution to system residual
virtual void inertial_residual_boundary_velocity(const MAST::FunctionBase &p, const unsigned int s, const MAST::FieldFunction< RealVectorX > &vel_f, bool request_jacobian, RealVectorX &f, RealMatrixX &jac_xddot, RealMatrixX &jac_xdot, RealMatrixX &jac)
sensitivity of the inertial force contribution to system residual
virtual bool is_topology_parameter() const
virtual void set_elem_solution(const RealVectorX &sol)
sets the element solution(s) before calculations
virtual void set_acceleration(const RealVectorX &vec, bool if_sens=false)
stores vec as acceleration for element level calculations, or its sensitivity if if_sens is true...
MAST::SystemInitialization * _system