Solutions and terms in BART are indexed by an integer angle index and a pair of angle and group indices, respectively. The quadrature set implementation supports providing this index for a given quadrature point and vice versa. Ideally, the quadrature point itself (specifically the shared pointer) could be used to index solutions and terms. This causes a large conflicts that may be unsolvable:
- Quadrature point pointers require a template parameter because
QuadraturePointI<dim> requires one.
- This propagates to
TermI which propagates to system::Solution
This then propagates to most of the code, making any part of BART that interacts with the system solution to require a template parameter. This causes a ton of issues, especially with classes that already have template parameters (like stampers).
A better way to do this needs to be determined (perhaps finding a way to remove the template parameter from QuadraturePointI<dim>) so that, ideally, angle indices can be removed.
Solutions and terms in BART are indexed by an integer angle index and a pair of angle and group indices, respectively. The quadrature set implementation supports providing this index for a given quadrature point and vice versa. Ideally, the quadrature point itself (specifically the shared pointer) could be used to index solutions and terms. This causes a large conflicts that may be unsolvable:
QuadraturePointI<dim>requires one.TermIwhich propagates tosystem::SolutionThis then propagates to most of the code, making any part of BART that interacts with the system solution to require a template parameter. This causes a ton of issues, especially with classes that already have template parameters (like stampers).
A better way to do this needs to be determined (perhaps finding a way to remove the template parameter from
QuadraturePointI<dim>) so that, ideally, angle indices can be removed.