Peano
Loading...
Searching...
No Matches
BoundaryConditions.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 "tarch/la/Vector.h"
7
8#include <functional>
9
10namespace exahype2 {
11 namespace fd {
29 std::function< void(
30 const double* __restrict__ Qinside,
31 double * __restrict__ Qoutside,
34 double t,
35 double dt,
36 int normal
37 ) > boundaryCondition,
40 double t,
41 double dt,
42 int numberOfGridCellsPerPatchPerAxis,
43 int overlap,
44 int unknownsPlusAuxiliaryVariables,
45 int faceNumber,
46 double* __restrict__ Q
47 );
48
106 std::function< double(
107 const double* __restrict__ Q,
108 const tarch::la::Vector<Dimensions,double>& faceCentre,
110 double t,
111 double dt,
112 int normal
113 ) > maxEigenvalue,
114 std::function< void(
115 double* __restrict__ Q,
116 const tarch::la::Vector<Dimensions,double>& faceCentre,
118 ) > farFieldSolution,
119 const tarch::la::Vector<Dimensions,double>& faceCentre,
121 double t,
122 double dt,
123 int numberOfGridCellsPerPatchPerAxis,
124 int overlap,
125 int numberOfUnknowns,
126 int numberOfAuxiliaryVariables,
127 int faceNumber,
128 const tarch::la::Vector<Dimensions,double>& systemOrigin,
129 double* __restrict__ Qold,
130 double* __restrict__ Qnew,
131 double CheckpointTimeStamp
132 );
133
141 std::function< double(
142 const double* __restrict__ Q,
143 const tarch::la::Vector<Dimensions,double>& faceCentre,
145 double t,
146 double dt,
147 int normal
148 ) > maxEigenvalue,
149 const tarch::la::Vector<Dimensions,double>& faceCentre,
151 double t,
152 double dt,
153 int numberOfGridCellsPerPatchPerAxis,
154 int overlap,
155 int numberOfUnknowns,
156 int numberOfAuxiliaryVariables,
157 int faceNumber,
158 const tarch::la::Vector<Dimensions,double>& systemOrigin,
159 double* __restrict__ Qold,
160 double* __restrict__ Qnew,
161 double CheckpointTimeStamp
162 );
163 }
164}
void applyBoundaryConditions(std::function< void(const double *__restrict__ Qinside, double *__restrict__ Qoutside, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t, double dt, int normal) > boundaryCondition, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &patchSize, double t, double dt, int numberOfGridCellsPerPatchPerAxis, int overlap, int unknownsPlusAuxiliaryVariables, int faceNumber, double *__restrict__ Q)
Apply (generic) boundary conditions.
void applySommerfeldConditions(std::function< double(const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &gridCellH, double t, double dt, int normal) > maxEigenvalue, std::function< void(double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &gridCellH) > farFieldSolution, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &patchSize, double t, double dt, int numberOfGridCellsPerPatchPerAxis, int overlap, int numberOfUnknowns, int numberOfAuxiliaryVariables, int faceNumber, const tarch::la::Vector< Dimensions, double > &systemOrigin, double *__restrict__ Qold, double *__restrict__ Qnew, double CheckpointTimeStamp)
This file is part of the multigrid project within Peano 4.
Definition __init__.py:1
Simple vector class.
Definition Vector.h:159