21 #ifndef __mast__filter_base_h__ 22 #define __mast__filter_base_h__ 29 #include "libmesh/system.h" 30 #include "libmesh/node.h" 31 #include "libmesh/elem.h" 45 const std::set<unsigned int>& dv_dof_ids);
54 libMesh::NumericVector<Real>& output)
const;
58 std::vector<Real>& output)
const;
68 const libMesh::Node& level_set_node)
const;
75 virtual void print(std::ostream& o)
const;
111 std::map<unsigned int, std::vector<std::pair<unsigned int, Real>>>
_filter_map;
118 #endif // __mast__filter_base_h__ virtual void print(std::ostream &o) const
prints the filter data.
libMesh::System & _level_set_system
system on which the level set discrete function is defined
std::map< unsigned int, std::vector< std::pair< unsigned int, Real > > > _filter_map
Algebraic relation between filtered level set values and the design variables .
bool if_elem_in_domain_of_influence(const libMesh::Elem &elem, const libMesh::Node &level_set_node) const
function identifies if the given element is within the domain of influence of this specified level se...
Real _level_set_fe_size
largest element size in the level set mesh
const std::set< unsigned int > & _dv_dof_ids
dof ids that are design variables.
Real _radius
radius of the filter.
void compute_filtered_values(const libMesh::NumericVector< Real > &input, libMesh::NumericVector< Real > &output) const
computes the filtered output from the provided input.
void _init()
initializes the algebraic data structures
FilterBase(libMesh::System &sys, const Real radius, const std::set< unsigned int > &dv_dof_ids)
Creates a geometric filter for the level-set design variables.