1#ifndef EXASEIS_SCENARIO_APATITE_HEADER
2#define EXASEIS_SCENARIO_APATITE_HEADER
5#include "../Context/DomainInformation.h"
9template <
class VariableShortcuts,
int basisSize>
31 assertion1(
false,
"Apatite not implemented in the Isotropic case" );
32#elif defined ANISOTROPIC
42 Q[s.c + 5] = (167-13.1)/2.0;
49#error Whole space problem only defined for Isotropic and Anisotropic Scenario
60 const double*
const x,
const double t,
const double dt,
61 double* forceVector,
int n)
override{
63 assertion2(n == 0,
"Only a single pointSource for WholeSpaceProblem_Anisotropic",n);
65 constexpr double f0 = 250.0*1000.0;
66 constexpr double t0 = 3.0/(2*f0)+5*10-6;
68 double f = std::cos(2.0*M_PI*(t-t0)*f0)*std::exp(-2.0*(t-t0)*(t-t0)*f0*f0);
71 forceVector[s.v + 1] = f;
#define assertion2(expr, param0, param1)
#define assertion1(expr, param)
{{NAMESPACE|join("::")}}::VariableShortcuts VariableShortcuts
void setPointSourceVector(const double *const Q, const double *const x, const double t, const double dt, double *forceVector, int n) override
void initUnknownsPointwise(const double *const x, const tarch::la::Vector< Dimensions, double > ¢er, const double t, const double dt, double *Q) override
double m_pointSourceLocation[3]
Apatite(DomainInformation *info)
void initPointSourceLocation(double pointSourceLocation[][3]) override