Peano
Loading...
Searching...
No Matches
Poisson.h
Go to the documentation of this file.
1#pragma once
2
3#include "AbstractPoisson.h"
4#include "tarch/logging/Log.h"
5
7 class Poisson;
8} // namespace applications::exahype2::euler::selfgravitation
9
10
12private:
14
16
19
20public:
22
23 // overwritten from AbstractSolver once again
25 double globalMinTimeStamp, double globalMaxTimeStamp, double globalMinTimeStepSize, double globalMaxTimeStepSize
26 ) override;
27
28 void reportGradientDelta(double delta);
29
33 double getAdmissibleTimeStepSize() const override;
34
35
37 double* __restrict__ Q,
38 const tarch::la::Vector<Dimensions, double>& volumeCentre,
40 bool gridIsConstructed
41 ) override;
42
43
44 virtual void boundaryConditions(
45 const double* __restrict__ Qinside, // Qinside[4+1]
46 double* __restrict__ Qoutside, // Qoutside[4+1]
49 double t,
50 int normal
51 ) override;
52
53
54public:
56 const double* __restrict__ Q,
57 const tarch::la::Vector<Dimensions, double>& volumeCentre,
59 double t,
60 double dt,
61 double* __restrict__ S
62 ) override;
63
64
72 virtual double maxEigenvalue(
73 const double* __restrict__ Q, // Q[4+1],
76 double t,
77 double dt,
78 int normal
79 ) override;
80
81
82 virtual void flux(
83 const double* __restrict__ Q, // Q[4+1],
86 double t,
87 double dt,
88 int normal,
89 double* __restrict__ F // F[4]
90 ) override;
91};
virtual void flux(const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t, double dt, int normal, double *__restrict__ F) override
virtual double maxEigenvalue(const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t, double dt, int normal) override
Determine max eigenvalue over Jacobian in a given point with solution values (states) Q.
void startTimeStep(double globalMinTimeStamp, double globalMaxTimeStamp, double globalMinTimeStepSize, double globalMaxTimeStepSize) override
void sourceTerm(const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &volumeCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t, double dt, double *__restrict__ S) override
virtual void boundaryConditions(const double *__restrict__ Qinside, double *__restrict__ Qoutside, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t, int normal) override
double getAdmissibleTimeStepSize() const override
overwritten
static tarch::multicore::BooleanSemaphore _maxGradientDeltaSemaphore
Definition Poisson.h:15
void initialCondition(double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &volumeCentre, const tarch::la::Vector< Dimensions, double > &volumeH, bool gridIsConstructed) override
Log Device.
Definition Log.h:517
Simple vector class.
Definition Vector.h:159