15#include "libmesh/elem_range.h"
30 std::vector<std::vector<std::unique_ptr<Assembly>>> & assembly);
38 virtual void onElement(
const Elem * elem)
override;
42 const Elem * lower_d_elem =
nullptr)
override;
43 virtual void onInternalSide(
const Elem * elem,
unsigned int side)
override;
53 std::vector<std::vector<std::unique_ptr<Assembly>>> &
_assembly;
boundary_id_type BoundaryID
Keeps track of stuff related to assembling.
Specialization of SubProblem for solving nonlinear equations plus auxiliary equations.
Proxy for accessing MaterialPropertyStorage.
Stores the stateful material properties computed by materials.
MaterialBase objects are special in that they have additional objects created automatically (see FEPr...
Nonlinear system to be solved.
bool _need_internal_side_material
std::vector< std::vector< std::unique_ptr< Assembly > > > & _assembly
bool _refine
Whether or not you are projecting refinements. Set to false for coarsening.
MaterialPropertyStorage & _bnd_material_props
const MaterialWarehouse & _materials
Materials warehouse.
virtual void onBoundary(const Elem *elem, unsigned int side, BoundaryID bnd_id, const Elem *lower_d_elem=nullptr) override
Called when doing boundary assembling.
MaterialPropertyStorage & _material_props
bool shouldComputeInternalSide(const Elem &, const Elem &) const override
Whether to compute the internal side for the provided element-neighbor pair.
FEProblemBase & _fe_problem
void join(const ProjectMaterialProperties &)
virtual ~ProjectMaterialProperties()
virtual void onElement(const Elem *elem) override
Assembly of the element (not including surface assembly)
const MaterialWarehouse & _discrete_materials
Discrete materials warehouse.
virtual void subdomainChanged() override
Called every time the current subdomain changes (i.e.
virtual void onInternalSide(const Elem *elem, unsigned int side) override
Called when doing internal edge assembling.
Base class for assembly-like calculations.