AMDiS 2.10
The Adaptive Multi-Dimensional Simulation Toolbox
Constraints.hpp
1#pragma once
2
3#include <amdis/Output.hpp>
4
5namespace AMDiS
6{
7 // forward declaration
8 template <class RB, class CB, class T, class Traits>
9 class BiLinearForm;
10
11
12 template <class Matrix>
14 {
15 template <class Mat, class Sol, class Rhs, class BitVec, class Assoc>
16 static void periodicBC(Mat& /*matrix*/, Sol& /*solution*/, Rhs& /*rhs*/, BitVec const& /*left*/, Assoc const& /*association*/, bool /*setDiagonal*/ = true)
17 {
18 /* do nothing */
19 warning("periodicBC not implemented for this matrix type.");
20 }
21 };
22
23 template <class Mat, class Sol, class Rhs, class BitVec, class Assoc>
24 void periodicBC(Mat& matrix, Sol& solution, Rhs& rhs, BitVec const& left, Assoc const& association, bool setDiagonal = true)
25 {
26 Constraints<Mat>::periodicBC(matrix, solution, rhs, left, association, setDiagonal);
27 }
28
29
30 template <class RB, class CB, class T, class Traits>
32 {
34
35 template <class Sol, class Rhs, class BitVec, class Assoc>
36 static void periodicBC(Matrix& matrix, Sol& solution, Rhs& rhs, BitVec const& left, Assoc const& association, bool setDiagonal = true)
37 {
38 AMDiS::periodicBC(matrix.impl(), solution.impl(), rhs.impl(), left, association, setDiagonal);
39 }
40 };
41
42} // end namespace AMDiS
Definition: BiLinearForm.hpp:31
Impl const & impl() const
Return the underlying matrix backend.
Definition: MatrixFacade.hpp:38
Definition: Constraints.hpp:14