Peano
Loading...
Searching...
No Matches
ElasticSolver.h
Go to the documentation of this file.
1//
2// ExaHyPE2 solver file
3// Generated by Peano's Python API
4// www.peano-framework.org
5//
6// This is generated. If you change fundamental properties, you will have to
7// generate this file. Backup your manual changes before you do so.
8//
9#pragma once
10
11#include "AbstractElasticSolver.h"
12#include "VariableShortcuts.h"
13#include "tarch/logging/Log.h"
14
15#define _CUSTOM_COORDINATES
16#define ASAGI_NOMPI
17#define ISOTROPIC
18#define _TOP 1
19
20#include "../ExaSeis_core/Context/ContextCurvilinear.h"
21#include "../ExaSeis_core/Numerics/routines_curvilinear.h"
22#include "../ExaSeis_core/Numerics/isotropic.h"
23#include "../ExaSeis_core/Refinement/refinement.h"
24
25namespace exahype2 {
26 namespace elastic {
27
28 class ElasticSolver;
30
31 } // namespace elastic
32} // namespace exahype2
33
34
35class exahype2::elastic::VariableShortcutsExpanded: public ::exahype2::elastic::VariableShortcuts {
36public:
37 static constexpr int NumberOfUnknowns = AbstractElasticSolver::NumberOfUnknowns;
38 static constexpr int NumberOfAuxiliaryVariables = AbstractElasticSolver::NumberOfAuxiliaryVariables;
40};
41
42
43class exahype2::elastic::ElasticSolver: public AbstractElasticSolver {
44private:
47 std::vector<Refinement::RefinementCriterion<VariableShortcutsExpanded>*> refinementCriteria;
48
49public:
51 double* QuadraturePoints1d = kernels::ElasticSolver::Quadrature<double>::nodes;
52
74 const double* __restrict__ Q, // Q[9+16]
77 double t
78 ) override;
79
81 double* __restrict__ Q, // Q[9+16]
84 bool gridIsConstructed
85 ) override;
86
88 const double* __restrict__ Qinside, // Qinside[9+16]
89 double* __restrict__ Qoutside, // Qoutside[9+16]
92 double t,
93 int normal
94 ) final override;
95
97 double* const FL, // FL[9
98 double* const FR, // FR[9
99 const double* const QL, // QL[9+16]
100 const double* const QR, // QR[9+16]
101 const double t,
102 const double dt,
105 const int direction,
106 bool isBoundaryFace,
107 int faceIndex
108 ) final override;
109
111 const double* __restrict__ Q,
114 double t,
115 double dt,
116 int normal
117 ) override;
118
119 void flux(
120 const double* __restrict__ Q, // Q[9+16]
123 double t,
124 double dt,
125 int normal,
126 double* __restrict__ F // F[9]
127 ) override;
128
130 const double* __restrict__ Q,
131 const double* __restrict__ deltaQ,
134 double t,
135 double dt,
136 int normal,
137 double* __restrict__ BgradQ
138 ) override;
139
141 const double* const Q,
144 double t,
145 double dt,
146 int normal,
147 double* const rhs
148 ) override;
149
151 const double* const Q, const double* const x, const double t, const double dt, double* const forceVector, int n
152 ) override;
153
154 void initPointSourceLocations(double sourceLocation[NumberOfPointSources][Dimensions]) override;
155};
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
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
Log Device.
Definition Log.h:517
This file is part of the ExaHyPE 2 project within Peano 4.
Definition __init__.py:1
Simple vector class.
Definition Vector.h:159