21 #ifndef _aspect_solution_evaluator_h 22 #define _aspect_solution_evaluator_h 29 #include <deal.II/base/array_view.h> 30 #include <deal.II/matrix_free/fe_point_evaluation.h> 31 #include <deal.II/non_matching/mapping_info.h> 32 #include <deal.II/dofs/dof_handler.h> 52 : first_component (first_component),
53 n_components (n_components)
67 virtual void evaluate(
const ArrayView<double> &solution_values,
68 const EvaluationFlags::EvaluationFlags flags) = 0;
75 get_gradient(
const unsigned int evaluation_point)
const = 0;
83 get_gradient(
const unsigned int evaluation_point,
84 const ArrayView<Tensor<1,dim>> &gradients)
const = 0;
91 get_value(
const unsigned int evaluation_point)
const = 0;
99 get_value(
const unsigned int evaluation_point,
100 const ArrayView<double> &solution)
const = 0;
109 return first_component;
150 const UpdateFlags update_flags);
157 reinit(
const typename DoFHandler<dim>::active_cell_iterator &cell,
158 const ArrayView<Point<dim>> &positions);
170 evaluate(
const ArrayView<double> &solution_values,
171 const std::vector<EvaluationFlags::EvaluationFlags> &evaluation_flags);
185 void get_solution(
const unsigned int evaluation_point,
186 const ArrayView<double> &solution,
187 const std::vector<EvaluationFlags::EvaluationFlags> &evaluation_flags)
const;
201 void get_gradients(
const unsigned int evaluation_point,
202 const ArrayView<Tensor<1, dim>> &gradients,
203 const std::vector<EvaluationFlags::EvaluationFlags> &evaluation_flags)
const;
209 FEPointEvaluation<dim, dim> &
210 get_velocity_or_fluid_velocity_evaluator(
const bool use_fluid_velocity);
215 NonMatching::MappingInfo<dim> &
222 n_components()
const;
236 std::unique_ptr<FEPointEvaluation<1, dim>>
pressure;
243 std::vector<std::unique_ptr<internal::DynamicFEPointEvaluation<dim>>>
compositions;
274 std::unique_ptr<SolutionEvaluator<dim>>
276 const UpdateFlags update_flags);
DynamicFEPointEvaluation(const unsigned int first_component, const unsigned int n_components)
virtual unsigned int get_n_components() const final
std::unique_ptr< FEPointEvaluation< 1, dim > > compaction_pressure
FEPointEvaluation< dim, dim > velocity
FEPointEvaluation< 1, dim > temperature
std::array< unsigned int, 3 > melt_component_indices
unsigned int n_components
unsigned int first_component
std::unique_ptr< FEPointEvaluation< dim, dim > > fluid_velocity
NonMatching::MappingInfo< dim > mapping_info
std::unique_ptr< FEPointEvaluation< 1, dim > > pressure
virtual unsigned int get_first_component() const final
boost::container::small_vector< T, N > small_vector
std::unique_ptr< FEPointEvaluation< 1, dim > > fluid_pressure
const SimulatorAccess< dim > & simulator_access
std::vector< std::unique_ptr< internal::DynamicFEPointEvaluation< dim > > > compositions
std::unique_ptr< SolutionEvaluator< dim > > construct_solution_evaluator(const SimulatorAccess< dim > &simulator_access, const UpdateFlags update_flags)