20 #ifndef __mast__output_function_base__ 21 #define __mast__output_function_base__ 32 #include "libmesh/elem.h" 42 class LevelSetIntersection;
43 template <
typename ValType>
class FieldFunction;
201 const std::set<const libMesh::Elem*>&
209 const std::set<libMesh::subdomain_id_type>&
217 const std::set<libMesh::boundary_id_type>&
233 const unsigned int s)
const;
259 std::set<libMesh::boundary_id_type>
_bids;
264 #endif // __mast__output_function_base__
const std::set< libMesh::subdomain_id_type > & get_participating_subdomains()
void set_participating_subdomains(const std::set< libMesh::subdomain_id_type > &sids)
The output function can be a boundary integrated quantity, volume integrated quantity or a combinatio...
std::set< libMesh::subdomain_id_type > _sub_domain_ids
set of subdomain ids for which data will be processed.
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 Real output_total()=0
void set_participating_elements(const std::set< const libMesh::Elem * > &elems)
sets the elements for which this object will evaluate and store the output data.
std::set< libMesh::boundary_id_type > _bids
set of bids for which data will be processed
virtual void evaluate_shape_sensitivity(const MAST::FunctionBase &f)=0
this evaluates all relevant shape sensitivity components on the element.
This provides the base class for definitin of element level contribution of output quantity in an ana...
virtual void zero_for_sensitivity()=0
zeroes the output quantity values stored inside this object so that assembly process can begin...
const std::set< libMesh::boundary_id_type > & get_participating_boundaries()
virtual void evaluate()=0
this is the abstract interface to be implemented by derived classes.
virtual ~OutputAssemblyElemOperations()
virtual destructor
OutputAssemblyElemOperations()
virtual bool if_evaluate_for_boundary(const MAST::GeomElem &elem, const unsigned int s) const
checks to see if the specified side of the element needs evaluation of the output contribution...
Matrix< Real, Dynamic, 1 > RealVectorX
virtual Real output_sensitivity_total(const MAST::FunctionBase &p)=0
virtual void output_derivative_for_elem(RealVectorX &dq_dX)=0
returns the output quantity derivative with respect to state vector in dq_dX.
This class acts as a wrapper around libMesh::Elem for the purpose of providing a uniform interface fo...
virtual Real output_sensitivity_for_elem(const MAST::FunctionBase &p)=0
virtual void zero_for_analysis()=0
zeroes the output quantity values stored inside this object so that assembly process can begin...
virtual void evaluate_topology_sensitivity(const MAST::FunctionBase &f, const MAST::FieldFunction< RealVectorX > &vel)=0
this evaluates all relevant topological sensitivity components on the element.
bool _if_evaluate_on_all_elems
if true, evaluates on all elements.
const std::set< const libMesh::Elem * > & get_participating_elements() const
void set_participating_elements_to_all()
This will allow volume contribution from all elements.
void set_participating_boundaries(const std::set< libMesh::boundary_id_type > &bids)
The assembly will integration over boudnaries with ids specified in bids.
virtual Real output_for_elem()=0
std::set< const libMesh::Elem * > _elem_subset
set of elements for which the data will be stored.
virtual void evaluate_sensitivity(const MAST::FunctionBase &f)=0
this evaluates all relevant sensitivity components on the element.