Alsvinn  0.5.3
The fast FVM simulator with UQ support
equation_list.hpp
Go to the documentation of this file.
1 /* Copyright (c) 2018 ETH Zurich, Kjetil Olsen Lye
2  * This program is free software: you can redistribute it and/or modify
3  * it under the terms of the GNU General Public License as published by
4  * the Free Software Foundation, either version 3 of the License, or
5  * (at your option) any later version.
6  *
7  * This program is distributed in the hope that it will be useful,
8  * but WITHOUT ANY WARRANTY; without even the implied warranty of
9  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
10  * GNU General Public License for more details.
11  *
12  * You should have received a copy of the GNU General Public License
13  * along with this program. If not, see <http://www.gnu.org/licenses/>.
14  */
15 
16 #pragma once
17 
25 
30 
31 namespace alsfvm {
32 namespace equation {
33 
34 
35 
39 typedef boost::fusion::vector<EquationInformation<euler::Euler<1>>,
40  EquationInformation<euler::Euler<2>>,
41  EquationInformation<euler::Euler<3>>,
42  EquationInformation<burgers::Burgers>,
43  EquationInformation<buckleyleverett::BuckleyLeverett>,
44  EquationInformation<cubic::Cubic>,
46 
61 template<class Function>
62 void for_each_equation(const Function& f) {
63  EquationList equationList;
64  boost::fusion::for_each(equationList, f);
65 }
66 
67 
68 
69 }
70 }
71 
75 #define ALSFVM_EQUATION_INSTANTIATE(X) \
76  template class X< ::alsfvm::equation::euler::Euler<1> >; \
77  template class X< ::alsfvm::equation::euler::Euler<2> >; \
78  template class X< ::alsfvm::equation::euler::Euler<3> >; \
79  template class X< ::alsfvm::equation::burgers::Burgers>; \
80  template class X< ::alsfvm::equation::buckleyleverett::BuckleyLeverett>; \
81  template class X< ::alsfvm::equation::cubic::Cubic>; \
82  template class X< ::alsfvm::equation::linear::Linear>;
void for_each_equation(const Function &f)
Definition: equation_list.hpp:62
boost::fusion::vector< EquationInformation< euler::Euler< 1 > >, EquationInformation< euler::Euler< 2 > >, EquationInformation< euler::Euler< 3 > >, EquationInformation< burgers::Burgers >, EquationInformation< buckleyleverett::BuckleyLeverett >, EquationInformation< cubic::Cubic >, EquationInformation< linear::Linear > > EquationList
EquationList is a type list of all equations available.
Definition: equation_list.hpp:45
Various utility functions to implement the tecno flux.
Definition: types.hpp:30
Definition: EquationInformation.hpp:26