20 #ifndef __mast__homogenized_density_function_base_h__ 21 #define __mast__homogenized_density_function_base_h__ 27 #include "libmesh/mesh_base.h" 34 class SystemInitialization;
47 libMesh::MeshBase& analysis_mesh,
56 const libMesh::Point& p,
const Real t,
Real& v)
const;
58 const std::map<const libMesh::Elem*, Real>&
61 const std::map<const libMesh::Elem*, Real>*
69 const libMesh::Elem& e)
const;
94 std::map<const MAST::FunctionBase*, std::map<const libMesh::Elem*, Real>>
101 #endif // __mast__homogenized_density_function_base_h__
MAST::FilterBase * _filter
const std::map< const libMesh::Elem *, Real > * get_elem_volume_fraction_sensitivity_map(const MAST::FunctionBase &f) const
virtual void initialize_element_volume_fractions()=0
virtual void clear_element_volume_fractions()
virtual bool depends_on(const MAST::FunctionBase &f) const
returns true if the function depends on the provided value
const std::map< const libMesh::Elem *, Real > & get_elem_volume_fraction_map() const
virtual void clear_element_volume_fraction_sensitivity()
This creates the base class for functions that have a saptial and temporal dependence, and provide sensitivity operations with respect to the functions and parameters.
Real get_elem_volume_fraction(const libMesh::Elem &e) const
Creates a geometric filter for the level-set design variables.
virtual void init(MAST::SystemInitialization &level_set_sys, libMesh::MeshBase &analysis_mesh, MAST::FieldFunction< Real > &level_set, MAST::FilterBase &filter)
MAST::SystemInitialization * _level_set_sys
std::map< const MAST::FunctionBase *, std::map< const libMesh::Elem *, Real > > _elem_volume_fraction_sensitivity
virtual void derivative(const MAST::FunctionBase &f, const libMesh::Point &p, const Real t, Real &v) const
calculates the value of the derivative of function with respect to the function f at the specified po...
std::map< const libMesh::Elem *, Real > _elem_volume_fraction
std::unique_ptr< libMesh::PointLocatorBase > _sub_point_locator
Real get_elem_volume_fraction_sensitivity(const MAST::FunctionBase &f, const libMesh::Elem &e) const
virtual void initialize_element_volume_fraction_sensitivity(const MAST::FunctionBase &f)=0
HomogenizedDensityFunctionBase(const std::string &nm)
virtual void operator()(const libMesh::Point &p, const Real t, Real &v) const
calculates the value of the function at the specified point, p, and time, t, and returns it in v...
libMesh::MeshBase * _analysis_mesh
MAST::FieldFunction< Real > * _level_set
virtual ~HomogenizedDensityFunctionBase()