20 TestCase (
"exahype2::dg::tests::CellIntegralTest"),
21 _Order4_QuadraturePoints1d { 0.04691007703066802,0.23076534494715845,0.5,0.7692346550528415,0.9530899229693319},
22 _Order4_MassMatrixDiagonal1d { 0.11846344252809464,0.23931433524968335,0.2844444444444444,0.2393143352496833,0.11846344252809476},
23 _Order4_StiffnessOperator1d {
24 -1.2005181447816875017764459698810242116451263427734375,-0.459606063929972219472830374797922559082508087158203125,0.1713312197562774918946360003246809355914592742919921875,-0.11698479961911900648630080468137748539447784423828125,0.130728401276001104935886587554705329239368438720703125,
25 1.824799516391880427335081549244932830333709716796875,-0.362969592101977378550969888237887062132358551025390625,-0.81657642230598626031934372804244048893451690673828125,0.4444344937740536405357261173776350915431976318359375,-0.464471255981286024194787387386895716190338134765625,
26 -0.95802422631547734521717529787565581500530242919921875,1.15002535018688423207322557573206722736358642578125,-0.0000000000000003789561257387200741506709440429594952952620993784360603484628882,-1.150025350186884676162435425794683396816253662109375,0.95802422631547756726178022290696389973163604736328125,
27 0.464471255981286079705938618644722737371921539306640625,-0.44443449377405397360263350492459721863269805908203125,0.81657642230598648236394865307374857366085052490234375,0.362969592101977489573272350753541104495525360107421875,-1.824799516391880427335081549244932830333709716796875,
28 -0.13072840127600116044703781881253235042095184326171875,0.11698479961911904811966422812474775128066539764404296875,-0.1713312197562775196502116159535944461822509765625,0.459606063929972219472830374797922559082508087158203125,1.2005181447816877238210508949123322963714599609375
30 _Order4_DerivativeOperator1d {
31 -10.1340811913090842466544927447102963924407958984375,15.4039041703444912201348415692336857318878173828125,-8.0870875087753280041624748264439404010772705078125,3.920798231666558830710300753707997500896453857421875,-1.1035337019266335811806811761925928294658660888671875,
32 -1.9205120472639156670169313656515441834926605224609375,-1.516706434335750142139431773102842271327972412109375,4.80550130432859834428427348029799759387969970703125,-1.8571160532876695992143822877551428973674774169921875,0.488833230558736009374598552312818355858325958251953125,
33 0.602336319455663016242397134192287921905517578125,-2.870776484669482986333832741365768015384674072265625,-0.000000000000001332267629550187848508358001708984375,2.870776484669483874512252441491000354290008544921875,-0.60233631945566312726469959670794196426868438720703125,
34 -0.48883323055873584284114485853933729231357574462890625,1.8571160532876682669467527375672943890094757080078125,-4.80550130432860012064111288054846227169036865234375,1.5167064343357505862286416231654584407806396484375,1.9205120472639156670169313656515441834926605224609375,
35 1.1035337019266331370914713261299766600131988525390625,-3.920798231666557942531881053582765161991119384765625,8.087087508775329780519314226694405078887939453125,-15.4039041703444912201348415692336857318878173828125,10.13408119130908602301133214496076107025146484375
37 _Order4_BasisFunctionValuesLeft1d { 1.5514080490943134,-0.8931583920000723,0.5333333333333335,-0.2679416522233877,0.07635866179581295},
38 _Order2_QuadraturePoints1d{0.1127016653792583,0.5,0.8872983346207417},
39 _Order2_MassMatrixDiagonal1d{0.2777777777777777,0.44444444444444436,0.27777777777777773},
40 _Order2_StiffnessOperator1d{-1.0758287072798378,-0.5737753105492469,0.35860956909327923,1.4344382763731172,6.459277139373494e-17,-1.4344382763731172,-0.35860956909327923,0.5737753105492469,1.0758287072798378},
41 _Order2_DerivativeOperator1d{-3.872983346207417,5.163977794943222,-1.2909944487358056,-1.2909944487358056,0.0,1.2909944487358056,1.2909944487358056,-5.163977794943222,3.872983346207417} {}
50 constexpr int unknowns = 5;
51 constexpr int auxiliaryVariables = 0;
52 constexpr int order = 2;
57 constexpr int numberOfDoFs = (order+1)*(order+1);
61 constexpr int numberOfDoFs = (order+1)*(order+1)*(order+1);
65 const double dt = 0.01;
67 double QIn[numberOfDoFs * (unknowns+auxiliaryVariables)];
68 double QOut[numberOfDoFs * (unknowns+auxiliaryVariables)];
70 for (
int dof=0; dof<numberOfDoFs; dof++) {
71 QIn[dof*(unknowns+auxiliaryVariables)+0] = 0.1;
72 QIn[dof*(unknowns+auxiliaryVariables)+1] = 0.0;
73 QIn[dof*(unknowns+auxiliaryVariables)+2] = 0.0;
74 QIn[dof*(unknowns+auxiliaryVariables)+3] = 0.0;
75 QIn[dof*(unknowns+auxiliaryVariables)+4] = 0.0;
93 const double * __restrict__ Q,
98 double * __restrict__ F
105 _Order2_QuadraturePoints1d,
106 _Order2_MassMatrixDiagonal1d,
107 _Order2_StiffnessOperator1d,
108 _Order2_DerivativeOperator1d,
115 for (
int dof=0; dof<numberOfDoFs; dof++) {
123 for (
int dof=0; dof<numberOfDoFs; dof++) {
124 QIn[dof*(unknowns+auxiliaryVariables)+0] = 0.1;
125 QIn[dof*(unknowns+auxiliaryVariables)+1] = 0.0;
126 QIn[dof*(unknowns+auxiliaryVariables)+2] = 0.0;
127 QIn[dof*(unknowns+auxiliaryVariables)+3] = 0.0;
128 QIn[dof*(unknowns+auxiliaryVariables)+4] = 4.0;
137 const double * __restrict__ Q,
142 double * __restrict__ F
149 _Order2_QuadraturePoints1d,
150 _Order2_MassMatrixDiagonal1d,
151 _Order2_StiffnessOperator1d,
152 _Order2_DerivativeOperator1d,
162 if (dof(0)<(order+1)/2) {
163 validateWithParams2( QOut[dofLinearised*(unknowns+auxiliaryVariables)+1]<0.0, dof,
plotCell( QOut, order, unknowns, auxiliaryVariables ) );
165 else if (dof(0)>(order+1)/2) {
166 validateWithParams2( QOut[dofLinearised*(unknowns+auxiliaryVariables)+1]>0.0, dof,
plotCell( QOut, order, unknowns, auxiliaryVariables ) );
168 if (dof(1)<(order+1)/2) {
169 validateWithParams2( QOut[dofLinearised*(unknowns+auxiliaryVariables)+2]<0.0, dof,
plotCell( QOut, order, unknowns, auxiliaryVariables ) );
171 else if (dof(1)>(order+1)/2) {
172 validateWithParams2( QOut[dofLinearised*(unknowns+auxiliaryVariables)+2]>0.0, dof,
plotCell( QOut, order, unknowns, auxiliaryVariables ) );
181 constexpr int unknowns = 5;
182 constexpr int auxiliaryVariables = 0;
183 constexpr int order = 4;
188 constexpr int numberOfDoFs = (order+1)*(order+1);
192 constexpr int numberOfDoFs = (order+1)*(order+1)*(order+1);
195 const double t = 0.0;
196 const double dt = 0.01;
198 double QIn[numberOfDoFs * (unknowns+auxiliaryVariables)];
199 double QOut[numberOfDoFs * (unknowns+auxiliaryVariables)];
201 for (
int dof=0; dof<numberOfDoFs; dof++) {
202 QIn[dof*(unknowns+auxiliaryVariables)+0] = 0.1;
203 QIn[dof*(unknowns+auxiliaryVariables)+1] = 0.0;
204 QIn[dof*(unknowns+auxiliaryVariables)+2] = 0.0;
205 QIn[dof*(unknowns+auxiliaryVariables)+3] = 0.0;
206 QIn[dof*(unknowns+auxiliaryVariables)+4] = 0.0;
224 const double * __restrict__ Q,
229 double * __restrict__ F
236 _Order4_QuadraturePoints1d,
237 _Order4_MassMatrixDiagonal1d,
238 _Order4_StiffnessOperator1d,
239 _Order4_DerivativeOperator1d,
246 for (
int dof=0; dof<numberOfDoFs; dof++) {
void cellIntegral_patchwise_in_situ_GaussLegendre_functors(::exahype2::CellData< double, double > &cellData, const int order, const int unknowns, const int auxiliaryVariables, Flux flux, NonConservativeProduct nonconservativeProduct, Source source, PointSources pointSources, const double *__restrict__ QuadratureNodes1d, const double *__restrict__ MassMatrixDiagonal1d, const double *__restrict__ StiffnessMatrix1d, const double *__restrict__ DerivativeOperator1d, bool evaluateFlux, bool evaluateNonconservativeProduct, bool evaluateSource, bool evaluatePointSources)