Peano 4
Loading...
Searching...
No Matches
benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4 Class Reference

#include <SelfSimilarInfallFD4.h>

Inheritance diagram for benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4:
Collaboration diagram for benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4:

Public Member Functions

 SelfSimilarInfallFD4 ()
 
void addDensity (const tarch::la::Vector< Dimensions, double > &volumeCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double density)
 Add density of one voxel to global bookkeeping.
 
void finishTimeStep () override
 
::exahype2::RefinementCommand refinementCriterion (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &volumeCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t) override
 Refinement criterion.
 
void initialCondition (double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &volumeCentre, const tarch::la::Vector< Dimensions, double > &volumeH, bool gridIsConstructed) 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
 
void sourceTerm (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &gridCellCentre, const tarch::la::Vector< Dimensions, double > &gridCellH, double t, double dt, double *__restrict__ S) override
 
virtual double maxEigenvalue (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &gridCellH, double t, double dt, int normal) override
 Determine max eigenvalue over Jacobian in a given point with solution values (states) Q.
 
virtual void flux (const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &gridCellH, double t, double dt, int normal, double *__restrict__ F) override
 

Static Public Attributes

static constexpr double BaseDensity = 0.1
 
static constexpr double Gamma = 5.0/3.0
 
static constexpr double pInitial = 1e-6
 
static constexpr double aInitial = 0.001
 
static constexpr double AdditionalMass = 0.15
 
static constexpr double InitialTopHatRadius = 0.05
 

Private Attributes

::applications::exahype2::euler::sphericalaccretion::MassAccumulator _accumulator
 Use class from application folders.
 

Static Private Attributes

static tarch::logging::Log _log
 
static double TotalMassInPreviousTimeStep = 0.0
 After each time step, we backup the total mass in this static variable.
 

Detailed Description

Definition at line 30 of file SelfSimilarInfallFD4.h.

Constructor & Destructor Documentation

◆ SelfSimilarInfallFD4()

benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::SelfSimilarInfallFD4 ( )

Definition at line 11 of file SelfSimilarInfallFD4.cpp.

Member Function Documentation

◆ addDensity()

void benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::addDensity ( const tarch::la::Vector< Dimensions, double > & volumeCentre,
const tarch::la::Vector< Dimensions, double > & volumeH,
double density )

Add density of one voxel to global bookkeeping.

Definition at line 15 of file SelfSimilarInfallFD4.cpp.

References logDebug, tarch::la::norm2(), and tarch::la::volume().

Here is the call graph for this function:

◆ boundaryConditions()

void benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::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 )
overridevirtual

Definition at line 98 of file SelfSimilarInfallFD4.cpp.

References logTraceInWith4Arguments, and logTraceOut.

◆ finishTimeStep()

void benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::finishTimeStep ( )
override

◆ flux()

virtual void benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::flux ( const double *__restrict__ Q,
const tarch::la::Vector< Dimensions, double > & faceCentre,
const tarch::la::Vector< Dimensions, double > & gridCellH,
double t,
double dt,
int normal,
double *__restrict__ F )
overridevirtual

◆ initialCondition()

void benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::initialCondition ( double *__restrict__ Q,
const tarch::la::Vector< Dimensions, double > & volumeCentre,
const tarch::la::Vector< Dimensions, double > & volumeH,
bool gridIsConstructed )
override

◆ maxEigenvalue()

virtual double benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::maxEigenvalue ( const double *__restrict__ Q,
const tarch::la::Vector< Dimensions, double > & faceCentre,
const tarch::la::Vector< Dimensions, double > & gridCellH,
double t,
double dt,
int normal )
overridevirtual

Determine max eigenvalue over Jacobian in a given point with solution values (states) Q.

All parameters are in.

Returns
Max eigenvalue. Result has to be positive, so we are actually speaking about the maximum absolute eigenvalue.

◆ refinementCriterion()

exahype2::RefinementCommand benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::refinementCriterion ( const double *__restrict__ Q,
const tarch::la::Vector< Dimensions, double > & volumeCentre,
const tarch::la::Vector< Dimensions, double > & volumeH,
double t )
override

Refinement criterion.

ExaHypE2 is guided by a maximum and minimum mesh (patch) size. All (dynamic) AMR is constrained by these values, i.e. if your mesh is coarser than the maximum mesh size, ExaHyPE 2 will automatically refine. If you try to refine further than the minimum mesh size, ExaHyPE 2 will ignore any refinement.

Consequently, you are fine if you work with a regular mesh: You set the maximum mesh size, and you leave everything else to Peano 4/ExaHyPE 2. If you want to have an adaptive mesh, use this routine to implement the refinement pattern.

Parameters
QThis is the (current) solution. The data is not set to a valid value throughout grid construction. That is: If t equals 0.0, you cannot assume that Q is properly initialised. Therefore, Q usually is only evaluated by dynamic AMR codes which make the solution follow

Definition at line 31 of file SelfSimilarInfallFD4.cpp.

References tarch::la::equals(), and tarch::la::norm2().

Here is the call graph for this function:

◆ sourceTerm()

void benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::sourceTerm ( const double *__restrict__ Q,
const tarch::la::Vector< Dimensions, double > & gridCellCentre,
const tarch::la::Vector< Dimensions, double > & gridCellH,
double t,
double dt,
double *__restrict__ S )
override

Field Documentation

◆ _accumulator

::applications::exahype2::euler::sphericalaccretion::MassAccumulator benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::_accumulator
private

Use class from application folders.

Definition at line 37 of file SelfSimilarInfallFD4.h.

◆ _log

tarch::logging::Log benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::_log
staticprivate

Definition at line 32 of file SelfSimilarInfallFD4.h.

◆ AdditionalMass

constexpr double benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::AdditionalMass = 0.15
staticconstexpr

Definition at line 50 of file SelfSimilarInfallFD4.h.

◆ aInitial

constexpr double benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::aInitial = 0.001
staticconstexpr

Definition at line 49 of file SelfSimilarInfallFD4.h.

◆ BaseDensity

constexpr double benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::BaseDensity = 0.1
staticconstexpr

Definition at line 46 of file SelfSimilarInfallFD4.h.

◆ Gamma

constexpr double benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::Gamma = 5.0/3.0
staticconstexpr

◆ InitialTopHatRadius

constexpr double benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::InitialTopHatRadius = 0.05
staticconstexpr

Definition at line 51 of file SelfSimilarInfallFD4.h.

◆ pInitial

constexpr double benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::pInitial = 1e-6
staticconstexpr

Definition at line 48 of file SelfSimilarInfallFD4.h.

◆ TotalMassInPreviousTimeStep

double benchmarks::exahype2::euler::sphericalaccretionupscaling::SelfSimilarInfallFD4::TotalMassInPreviousTimeStep = 0.0
staticprivate

After each time step, we backup the total mass in this static variable.

It has to be static, as we want to use it in stateless terms later on.

Definition at line 43 of file SelfSimilarInfallFD4.h.


The documentation for this class was generated from the following files: