Peano
Loading...
Searching...
No Matches
Riemann.h
Go to the documentation of this file.
1// This file is part of the ExaHyPE2 project. For conditions of distribution and
2// use, please see the copyright notice at www.peano-framework.org
3#pragma once
4
5#include <vector>
6
7#include "DGUtils.h"
8#include "Functors.h"
9
10#include "tarch/la/Vector.h"
12
14#include "peano4/utils/Loop.h"
16
108namespace exahype2 {
109 namespace dg {
185 int order,
186 int unknowns,
187 const double* __restrict__ InterpolationMatrix1d,
188 const double* __restrict__ coarseGridFaceQ,
189 double* __restrict__ fineGridFaceQ
190 );
191
235 int order,
236 int numberOfProjectedQuantities,
237 int unknowns,
238 int auxiliaryVariables,
239 const double* __restrict__ RestrictionMatrix1d,
240 const double* __restrict__ fineGridFaceQ,
241 double* __restrict__ coarseGridFaceQ
242 );
243
292 const double* __restrict__ cellQ,
293 int order,
294 int unknowns,
295 int auxiliaryVariables,
296 const double* const __restrict__ BasisFunctionValuesLeft,
297 double* const __restrict__ faceQLeft,
298 double* const __restrict__ faceQRight,
299 double* const __restrict__ faceQBottom,
300 double* const __restrict__ faceQUp
301 );
302
311 int order,
312 int unknowns,
313 int auxiliaryVariables,
314 int numberOfProjectedQuantities,
315 double* __restrict__ faceQ
316 );
317
322 int order,
323 int unknowns,
324 double* __restrict__ faceQ
325 );
326
331 const double* __restrict__ cellQ,
332 int order,
333 int unknowns,
334 int auxiliaryVariables,
335 const double* const __restrict__ BasisFunctionValuesLeft,
336 double* const __restrict__ faceQLeft,
337 double* const __restrict__ faceQRight,
338 double* const __restrict__ faceQBottom,
339 double* const __restrict__ faceQUp,
340 double* const __restrict__ faceQFront,
341 double* const __restrict__ faceQBack
342 );
343
345 const double* __restrict__ cellQ,
346 int order,
347 int unknowns,
348 int auxiliaryVariables,
349 const double* const __restrict__ BasisFunctionValuesLeft,
350 double* const __restrict__ faceQLeft,
351 double* const __restrict__ faceQRight,
352 double* const __restrict__ faceQBottom,
353 double* const __restrict__ faceQUp
354 );
355
360 const double* __restrict__ cellQ,
361 int order,
362 int unknowns,
363 int auxiliaryVariables,
364 const double* const __restrict__ BasisFunctionValuesLeft,
365 double* const __restrict__ faceQLeft,
366 double* const __restrict__ faceQRight,
367 double* const __restrict__ faceQBottom,
368 double* const __restrict__ faceQUp,
369 double* const __restrict__ faceQFront,
370 double* const __restrict__ faceQBack
371 );
372
405 const double* const __restrict__ faceQLeft,
406 const double* const __restrict__ faceQRight,
407 const double* const __restrict__ faceQBottom,
408 const double* const __restrict__ faceQUp,
409 int order,
410 int unknowns,
411 const int auxiliaryVariables,
412 const tarch::la::Vector<2,double>& cellSize,
413 const double* const __restrict__ BasisFunctionValuesLeft,
414 const double* __restrict__ MassMatrixDiagonal1d,
415 double* __restrict__ cellQ
416 );
417
431 const double* const __restrict__ faceQLeft,
432 const double* const __restrict__ faceQRight,
433 const double* const __restrict__ faceQBottom,
434 const double* const __restrict__ faceQUp,
435 const double* const __restrict__ faceQFront,
436 const double* const __restrict__ faceQBack,
437 int order,
438 int unknowns,
439 const int auxiliaryVariables,
440 const tarch::la::Vector<3,double>& cellSize,
441 const double* const __restrict__ BasisFunctionValuesLeft,
442 const double* __restrict__ MassMatrixDiagonal1d,
443 double* __restrict__ cellQ
444 );
445 }
446}
Definition dg.py:1
void restrictAndAccumulateProjectedFacePolynomial(const peano4::datamanagement::FaceMarker &marker, int order, int numberOfProjectedQuantities, int unknowns, int auxiliaryVariables, const double *__restrict__ RestrictionMatrix1d, const double *__restrict__ fineGridFaceQ, double *__restrict__ coarseGridFaceQ)
Counterpart of interpolateRiemannSolution().
Definition Riemann.cpp:69
void clearRiemannResult(int order, int unknowns, double *__restrict__ faceQ)
Definition Riemann.cpp:153
void clearSolutionProjection(int order, int unknowns, int auxiliaryVariables, int numberOfProjectedQuantities, double *__restrict__ faceQ)
Set the whole solution projection on the face from left and right to zero.
Definition Riemann.cpp:137
void projectVolumetricDataAndGradientOntoFaces(const double *__restrict__ cellQ, int order, int unknowns, int auxiliaryVariables, const double *const __restrict__ BasisFunctionValuesLeft, double *const __restrict__ faceQLeft, double *const __restrict__ faceQRight, double *const __restrict__ faceQBottom, double *const __restrict__ faceQUp)
Definition Riemann.cpp:302
void projectVolumetricDataOntoFaces(const double *__restrict__ cellQ, int order, int unknowns, int auxiliaryVariables, const double *const __restrict__ BasisFunctionValuesLeft, double *const __restrict__ faceQLeft, double *const __restrict__ faceQRight, double *const __restrict__ faceQBottom, double *const __restrict__ faceQUp)
Take polynomial within cell and project it onto the faces.
Definition Riemann.cpp:167
void interpolateRiemannSolution(const peano4::datamanagement::FaceMarker &marker, int order, int unknowns, const double *__restrict__ InterpolationMatrix1d, const double *__restrict__ coarseGridFaceQ, double *__restrict__ fineGridFaceQ)
Definition Riemann.cpp:10
void integrateOverRiemannSolutionsAndAddToVolume_GaussLegendre(const double *const __restrict__ faceQLeft, const double *const __restrict__ faceQRight, const double *const __restrict__ faceQBottom, const double *const __restrict__ faceQUp, int order, int unknowns, const int auxiliaryVariables, const tarch::la::Vector< 2, double > &cellSize, const double *const __restrict__ BasisFunctionValuesLeft, const double *__restrict__ MassMatrixDiagonal1d, double *__restrict__ cellQ)
Given a numerical flux at the various faces, this computes and adds the Riemann integral of this flux...
Definition Riemann.cpp:332
For the generic kernels that I use here most of the time.
Definition CellAccess.h:13
Provide information about selected face.
Definition FaceMarker.h:35
Simple vector class.
Definition Vector.h:150