16#include "AbstractElasticSolver.h"
17#include "VariableShortcuts.h"
20#define _CUSTOM_COORDINATES
25#include "../ExaSeis_core/Context/ContextCurvilinearPML.h"
26#include "../ExaSeis_core/Numerics/routines_curvilinear.h"
27#include "../ExaSeis_core/Numerics/pml.h"
28#include "../ExaSeis_core/Refinement/refinement.h"
34 class VariableShortcutsExpanded;
41 static constexpr int NumberOfUnknowns = AbstractElasticSolver::NumberOfUnknowns;
53 std::vector<Refinement::RefinementCriterion<VariableShortcutsExpanded>*>
refinementCriteria;
55 double pml_alpha_const;
56 double pml_alpha_scalar;
84 const double* __restrict__ Q,
91 double* __restrict__ Q,
94 bool gridIsConstructed
98 const double* __restrict__ Qinside,
99 double* __restrict__ Qoutside,
109 const double*
const QL,
110 const double*
const QR,
121 const double* __restrict__ Q,
130 const double* __restrict__ Q,
136 double* __restrict__ F
140 const double* __restrict__ Q,
141 const double* __restrict__ deltaQ,
147 double* __restrict__ BgradQ
150 void algebraicSource(
151 const double*
const Q,
160 const double*
const Q,
170 const double*
const Q,
const double*
const x,
const double t,
const double dt,
double*
const forceVector,
int n
{{NAMESPACE|join("::")}}::VariableShortcuts VariableShortcuts
ContextCurvilinear< VariableShortcutsExpanded, Order+1 > * context
::exahype2::RefinementCommand refinementCriterion(const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, double t) override
Refinement criterion.
void flux(const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &volumeX, const tarch::la::Vector< Dimensions, double > &volumeH, double t, double dt, int normal, double *__restrict__ F) override
double * QuadraturePoints1d
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) final override
void initialCondition(double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, bool gridIsConstructed) override
std::vector< Refinement::RefinementCriterion< VariableShortcutsExpanded > * > refinementCriteria
void multiplyMaterialParameterMatrix(const double *const Q, const tarch::la::Vector< Dimensions, double > &volumeX, const tarch::la::Vector< Dimensions, double > &volumeH, double t, double dt, int normal, double *const rhs) override
void riemannSolver(double *const FL, double *const FR, const double *const QL, const double *const QR, const double t, const double dt, const tarch::la::Vector< Dimensions, double > &x, const tarch::la::Vector< Dimensions, double > &h, const int direction, bool isBoundaryFace, int faceIndex) final override
static tarch::logging::Log _log
void pointSource(const double *const Q, const double *const x, const double t, const double dt, double *const forceVector, int n) override
void initPointSourceLocations(double sourceLocation[NumberOfPointSources][Dimensions]) override
void nonconservativeProduct(const double *__restrict__ Q, const double *__restrict__ deltaQ, const tarch::la::Vector< Dimensions, double > &faceCentre, const tarch::la::Vector< Dimensions, double > &volumeH, double t, double dt, int normal, double *__restrict__ BgradQ) override
double maxEigenvalue(const double *__restrict__ Q, const tarch::la::Vector< Dimensions, double > &volumeX, const tarch::la::Vector< Dimensions, double > &volumeH, double t, double dt, int normal) override
static constexpr int NumberOfUnknowns
static constexpr int Size
static constexpr int NumberOfAuxiliaryVariables
This file is part of the ExaHyPE 2 project within Peano 4.