35 #include "libmesh/parallel.h" 40 _dcompliance_dp (0.) {
83 vec = RealVectorX::Zero(e.
sol().size());
86 dummy = RealMatrixX::Zero(vec.size(), vec.size());
118 vec = RealVectorX::Zero(e.
sol().size());
121 dummy = RealMatrixX::Zero(vec.size(), vec.size());
166 std::pair<const MAST::FieldFunction<RealVectorX>*,
unsigned int>
175 vec = RealVectorX::Zero(e.
sol().size());
178 dummy = RealMatrixX::Zero(vec.size(), vec.size());
212 elem.if_elem_has_level_set_boundary() &&
213 elem.if_subelem_has_side_on_level_set_boundary()) {
219 vec = RealVectorX::Zero(e.
sol().size());
222 dummy = RealMatrixX::Zero(vec.size(), vec.size());
225 elem.get_subelem_side_on_level_set_boundary(),
281 dummy = RealMatrixX::Zero(dq_dX.size(), dq_dX.size());
303 const libMesh::Elem& ref_elem,
virtual void zero_for_sensitivity()
zeroes the output quantity values stored inside this object so that assembly process can begin...
MAST::NonlinearSystem & system()
const MAST::ElementPropertyCardBase & get_property_card(const libMesh::Elem &elem) const
get property card for the specified element
virtual void init(const MAST::GeomElem &elem)
initialize for the element.
virtual bool if_evaluate_for_element(const MAST::GeomElem &elem) const
checks to see if the object has been told about the subset of elements and if the specified element i...
virtual void zero_for_analysis()
zeroes the output quantity values stored inside this object so that assembly process can begin...
const RealVectorX & sol(bool if_sens=false) const
RealVectorX & y_vector()
returns value of the property val.
virtual Real output_total()
This provides the base class for definitin of element level contribution of output quantity in an ana...
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...
MAST::PhysicsDisciplineBase * _discipline
virtual ~ComplianceOutput()
virtual Real output_sensitivity_total(const MAST::FunctionBase &p)
MAST::ElementBase * _physics_elem
virtual std::pair< const MAST::FieldFunction< RealVectorX > *, unsigned int > get_elem_boundary_velocity_data()
searches through the side load data and populates the data with the boundary id and velocity function...
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.
virtual bool is_topology_parameter() const
const MAST::SideBCMapType & side_loads() const
bool _skip_comm_sum
If an output has contrinutions only from local processor then the user can request that the global co...
virtual void evaluate_sensitivity(const MAST::FunctionBase &f)
this evaluates all relevant stress sensitivity components on the element to evaluate the p-averaged q...
Matrix< Real, Dynamic, Dynamic > RealMatrixX
ComplianceOutput()
default constructor
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.
This class inherits from MAST::GeomElem and provides an interface to initialize FE objects on sub-ele...
Matrix< Real, Dynamic, 1 > RealVectorX
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.
std::unique_ptr< MAST::StructuralElementBase > build_structural_element(MAST::SystemInitialization &sys, const MAST::GeomElem &elem, const MAST::ElementPropertyCardBase &p)
builds the structural element for the specified element type
This class acts as a wrapper around libMesh::Elem for the purpose of providing a uniform interface fo...
const MAST::VolumeBCMapType & volume_loads() const
MAST::AssemblyBase * _assembly
virtual void evaluate()
this evaluates all relevant stress components on the element to evaluate the p-averaged quantity...
const MAST::GeomElem & elem() const
virtual void output_derivative_for_elem(RealVectorX &dq_dX)
calculates the derivative of p-norm von Mises stress for the norm identified using set_p_val()...
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
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 void evaluate_topology_sensitivity(const MAST::FunctionBase &f)
this evaluates all relevant topological sensitivity components on the element.
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.
MAST::SystemInitialization * _system