PRISMS-PF Manual v3.0-pre
All Classes Functions Variables Enumerations Pages
compute_integral.h
1// SPDX-FileCopyrightText: © 2025 PRISMS Center at the University of Michigan
2// SPDX-License-Identifier: GNU Lesser General Public Version 2.1
3
4#ifndef compute_integral_h
5#define compute_integral_h
6
7#include <deal.II/matrix_free/matrix_free.h>
8
9#include <prismspf/config.h>
10#include <prismspf/core/element_volume.h>
11
12PRISMS_PF_BEGIN_NAMESPACE
13
17template <int dim, int degree, typename number>
19{
20public:
24 explicit computeIntegral(const elementVolume<dim, degree, number> &_element_volume);
25
29 void
31 std::shared_ptr<dealii::MatrixFree<dim, number, dealii::VectorizedArray<number>>>
32 _data);
33
37 void
39
40private:
44 const elementVolume<dim, degree, double> &element_volume;
45
49 std::shared_ptr<dealii::MatrixFree<dim, number, dealii::VectorizedArray<number>>> data;
50};
51
52template <int dim, int degree, typename number>
54 const elementVolume<dim, degree, number> &_element_volume)
55 : element_volume(_element_volume)
56{}
57
58template <int dim, int degree, typename number>
59void
61 std::shared_ptr<dealii::MatrixFree<dim, number, dealii::VectorizedArray<number>>> _data)
62{
63 data = _data;
64}
65
66template <int dim, int degree, typename number>
67void
70
71PRISMS_PF_END_NAMESPACE
72
73#endif
Compute the integral of a given field.
Definition compute_integral.h:19
computeIntegral(const elementVolume< dim, degree, number > &_element_volume)
Constructor.
Definition compute_integral.h:53
void initialize(std::shared_ptr< dealii::MatrixFree< dim, number, dealii::VectorizedArray< number > > > _data)
Initialize.
Definition compute_integral.h:60
void compute_integral()
Compute the integral.
Definition compute_integral.h:68
Compute the element volume.
Definition element_volume.h:24