16#include <unordered_map>
29 const std::vector<dof_id_type> & elem_ids,
30 std::size_t component)
const = 0;
33template <
typename T,
bool is_ad>
52 const std::vector<dof_id_type> & elem_ids,
53 std::size_t component)
const override;
58 virtual void execute()
override;
78 typedef std::pair<RealEigenMatrix, std::vector<RealEigenVector>>
ElementData;
93 const unsigned int _q;
99 std::unordered_map<dof_id_type, ElementData>
_abs;
typename GenericMaterialPropertyStruct< T, is_ad >::type GenericMaterialProperty
ProjectedStatefulMaterialNodalPatchRecoveryTempl< RankTwoTensor, true > ADProjectedStatefulMaterialNodalPatchRecoveryRankTwoTensor
ProjectedStatefulMaterialNodalPatchRecoveryTempl< RankFourTensor, true > ADProjectedStatefulMaterialNodalPatchRecoveryRankFourTensor
ProjectedStatefulMaterialNodalPatchRecoveryTempl< Real, false > ProjectedStatefulMaterialNodalPatchRecoveryReal
ProjectedStatefulMaterialNodalPatchRecoveryTempl< RealVectorValue, false > ProjectedStatefulMaterialNodalPatchRecoveryRealVectorValue
ProjectedStatefulMaterialNodalPatchRecoveryTempl< RankFourTensor, false > ProjectedStatefulMaterialNodalPatchRecoveryRankFourTensor
ProjectedStatefulMaterialNodalPatchRecoveryTempl< RealVectorValue, true > ADProjectedStatefulMaterialNodalPatchRecoveryRealVectorValue
ProjectedStatefulMaterialNodalPatchRecoveryTempl< RankTwoTensor, false > ProjectedStatefulMaterialNodalPatchRecoveryRankTwoTensor
ProjectedStatefulMaterialNodalPatchRecoveryTempl< Real, true > ADProjectedStatefulMaterialNodalPatchRecoveryReal
const InputParameters & parameters() const
Get the parameters of the object.
static InputParameters validParams()
virtual Real nodalPatchRecovery(const Point &p, const std::vector< dof_id_type > &elem_ids, std::size_t component) const =0
ProjectedStatefulMaterialNodalPatchRecoveryBase(const InputParameters ¶meters)
virtual Real nodalPatchRecovery(const Point &p, const std::vector< dof_id_type > &elem_ids, std::size_t component) const override
Solve the least-squares problem.
const unsigned int _patch_polynomial_order
The polynomial order, default is variable order.
std::unordered_map< dof_id_type, ElementData > _abs
The element-level A matrix and the element-level b vectors for each component.
virtual void initialSetup() override
Gets called at the beginning of the simulation before this object is asked to do its job.
const SubdomainID & _current_subdomain_id
Current subdomain.
virtual void finalize() override
Finalize.
std::size_t _n_components
number of scalar components in the recovered type
const std::vector< std::vector< unsigned int > > _multi_index
The multi-index table.
unsigned int _qp
current quadrature point
std::unordered_map< SubdomainID, std::vector< MaterialBase * > > _required_materials
list of required materials that need to be explicitly initialized at step zero
virtual void threadJoin(const UserObject &) override
Must override.
virtual void execute() override
Execute method.
const GenericMaterialProperty< T, is_ad > & _prop
stored property
const unsigned int _q
Number of basis functions.
virtual void initialize() override
Called before execute() is ever called so that data can be cleared.
static InputParameters validParams()
RealEigenVector evaluateBasisFunctions(const Point &q_point) const
Compute the P vector at a given point i.e.
std::pair< RealEigenMatrix, std::vector< RealEigenVector > > ElementData
data type stored for each element
Base class for user-specific data.