27 #include "libmesh/elem.h" 32 _intersection (nullptr) {
52 libMesh::MeshBase::const_element_iterator
56 for ( ; e_it != e_end; e_it++) {
76 libMesh::MeshBase::const_element_iterator
80 for ( ; e_it != e_end; e_it++) {
82 const libMesh::Elem* elem = *e_it;
90 const std::vector<const libMesh::Elem *> &
93 std::vector<const libMesh::Elem*>::const_iterator
94 hi_sub_elem_it = elems_hi.begin(),
95 hi_sub_elem_end = elems_hi.end();
const std::vector< const libMesh::Elem * > & get_sub_elems_positive_phi() const
IntersectedElemHomogenizedDensityFunction(const std::string &nm)
MAST::LevelSetIntersection * _intersection
void init(const MAST::FieldFunction< Real > &phi, const libMesh::Elem &e, const Real t, unsigned int max_elem_id, unsigned int max_node_id)
virtual void initialize_element_volume_fraction_sensitivity(const MAST::FunctionBase &f)
Real get_positive_phi_volume_fraction() const
virtual ~IntersectedElemHomogenizedDensityFunction()
std::map< const MAST::FunctionBase *, std::map< const libMesh::Elem *, Real > > _elem_volume_fraction_sensitivity
std::map< const libMesh::Elem *, Real > _elem_volume_fraction
virtual void initialize_element_volume_fractions()
computes and stores the volume fraction of each local element
libMesh::MeshBase * _analysis_mesh
MAST::FieldFunction< Real > * _level_set
void clear()
clears the data structures