Doxygen API reference documentation for ideal.II
Loading...
Searching...
No Matches
quadrature_lib.hh
1// ---------------------------------------------------------------------
2//
3// Copyright (C) 2022 - 2023 by the ideal.II authors
4//
5// This file is part of the ideal.II library.
6//
7// The ideal.II library is free software; you can use it, redistribute
8// it, and/or modify it under the terms of the GNU Lesser General
9// Public License as published by the Free Software Foundation; either
10// version 3.0 of the License, or (at your option) any later version.
11// The full text of the license can be found in the file LICENSE.md at
12// the top level directory of ideal.II.
13//
14// ---------------------------------------------------------------------
15
16#ifndef INCLUDE_IDEAL_II_BASE_QUADRATURE_LIB_HH_
17#define INCLUDE_IDEAL_II_BASE_QUADRATURE_LIB_HH_
18#include <ideal.II/base/spacetime_quadrature.hh>
19
20#include <deal.II/base/quadrature_lib.h>
21
22namespace idealii
23{
24
25
26
56 template <int dim>
57 class QGaussRadau : public dealii::Quadrature<dim>
58 {
59 public:
60 /*
61 * EndPoint is used to specify which of the two endpoints of the
62 * unit interval is used as quadrature point
63 */
65 {
73 right
74 };
75
77 QGaussRadau(const unsigned int n, EndPoint end_point = QGaussRadau::left);
83 QGaussRadau(QGaussRadau<dim> &&) noexcept = default;
84
85 private:
86 const EndPoint end_point;
87 };
88
99 class QRightBox : public QGaussRadau<1>
100 {
101 public:
109 };
110
120 class QLeftBox : public QGaussRadau<1>
121 {
122 public:
130 };
131
132
133 namespace spacetime
134 {
135
141 template <int dim>
142 class QGauss : public Quadrature<dim>
143 {
144 public:
153 QGauss(unsigned int n_spatial, unsigned int n_temporal);
154 };
155
162 template <int dim>
163 class QGaussRightBox : public Quadrature<dim>
164 {
165 public:
174 QGaussRightBox(unsigned int n_spatial);
175 };
182 template <int dim>
183 class QGaussLeftBox : public Quadrature<dim>
184 {
185 public:
194 QGaussLeftBox(unsigned int n_spatial);
195 };
196 } // namespace spacetime
197} // namespace idealii
198
199#endif /* INCLUDE_IDEAL_II_BASE_QUADRATURE_LIB_HH_ */
Definition quadrature_lib.hh:58
QGaussRadau(QGaussRadau< dim > &&) noexcept=default
QGaussRadau(const unsigned int n, EndPoint end_point=QGaussRadau::left)
Generate a formula wit n quadrature points.
EndPoint
Definition quadrature_lib.hh:65
@ right
Definition quadrature_lib.hh:73
@ left
Definition quadrature_lib.hh:69
1D left box rule.
Definition quadrature_lib.hh:121
QLeftBox()
Default constructor.
1D right box rule.
Definition quadrature_lib.hh:100
QRightBox()
Default constructor.
A Gauss-Legende quadrature formula in space and left box rule in time.
Definition quadrature_lib.hh:184
QGaussLeftBox(unsigned int n_spatial)
Generate a Gauss-Legende quadrature in space and a left box rule quadrature in time.
A Gauss-Legende quadrature formula in space and right box rule in time.
Definition quadrature_lib.hh:164
QGaussRightBox(unsigned int n_spatial)
Generate a Gauss-Legende quadrature in space and a right box rule quadrature in time.
A Gauss-Legende quadrature formula in space and time.
Definition quadrature_lib.hh:143
QGauss(unsigned int n_spatial, unsigned int n_temporal)
Generate a Gauss-Legendre quadrature in space and time.
The base class for quadrature formulae in space and time.
Definition spacetime_quadrature.hh:35
The main namespace of the project.
Definition idealii.hh:21