Peano
Loading...
Searching...
No Matches
SolverInformationADERDG.h
Go to the documentation of this file.
1#ifndef EXASEIS_SOLVERADERDG_INFORMATION_HEADER
2#define EXASEIS_SOLVERADERDG_INFORMATION_HEADER
3
4#include <algorithm>
5#include "SolverInformation.h"
6
7
8template <int order>
10public:
11 SolverInformationADERDG(exahype2::Solver* a_solver, double* _nodes, double* _dudx):
12 SolverInformation(a_solver) {
13
14 const int ndof = order+1;
15
16 std::copy_n(_nodes, order+1 , nodes);
17 for(int i=0; i<ndof; i++){
18 for(int j=0; j<ndof; j++){
19 dudx[i][j] = _dudx[j*ndof+i];
20 }
21 }
22
23#ifdef Asserts
24 for (int i = 0; i < order + 1; i++) {
25 assertion2(std::isfinite(nodes[i]), nodes[i], i);
26 }
27
28 for (int i = 0; i < order + 1; i++) {
29 for (int j = 0; j < order + 1; j++) {
30 assertion3(std::isfinite(dudx[i][j]), dudx[i][j], i, j);
31 }
32 }
33#endif
34 };
35
36 double getNodes(int i) { return nodes[i]; }
37
38 double getDuDx(int i, int j) { return dudx[i][j]; }
39
40 bool isDG() override { return true; }
41
42 double nodes[order + 1];
43 double dudx[order + 1][order + 1];
44};
45#endif
#define assertion2(expr, param0, param1)
#define assertion3(expr, param0, param1, param2)
double dudx[order+1][order+1]
SolverInformationADERDG(exahype2::Solver *a_solver, double *_nodes, double *_dudx)