10 template <
class Shortcuts>
11 inline void getStiffnessTensor(
const double*Q,
double& c11,
double& c22,
double& c33,
double& c44,
double& c55,
double& c66,
double& c12,
double& c13,
double& c23){
12 c11 = Q[Shortcuts::c + 0];
13 c22 = Q[Shortcuts::c + 1];
14 c33 = Q[Shortcuts::c + 2];
15 c44 = Q[Shortcuts::c + 3];
16 c55 = Q[Shortcuts::c + 4];
17 c66 = Q[Shortcuts::c + 5];
19 c12 = Q[Shortcuts::c + 6];
20 c13 = Q[Shortcuts::c + 7];
21 c23 = Q[Shortcuts::c + 8];
24 template <
class Shortcuts>
25 inline void computeParameters(
const double* Q,
double& rho,
double& cp,
double cs[],
int direction) {
26 rho = Q[Shortcuts::rho];
28 cp = std::sqrt(Q[Shortcuts::c + direction] / rho);
32 cs[0] = std::sqrt(Q[Shortcuts::c + 3] / rho);
33 cs[1] = std::sqrt(Q[Shortcuts::c + 4] / rho);
36 cs[0] = std::sqrt(Q[Shortcuts::c + 5] / rho);
37 cs[1] = std::sqrt(Q[Shortcuts::c + 3] / rho);
40 cs[0] = std::sqrt(Q[Shortcuts::c + 4] / rho);
41 cs[1] = std::sqrt(Q[Shortcuts::c + 5] / rho);
44 std::cout <<
"Direction : " << direction <<
" not defined" << std::endl;
82 template <
class Shortcuts,
int order,
int numberOfVariables,
int numberOfParameters>
86 const double*
const QL,
87 const double*
const QR,
113 double rho_m,
cp_m,
cs_m[2],
c11_m,
c22_m,
c33_m,
c44_m,
c55_m,
c66_m,
c12_m,
c13_m,
c23_m;
114 double rho_p,
cp_p,
cs_p[2],
c11_p,
c22_p,
c33_p,
c44_p,
c55_p,
c66_p,
c12_p,
c13_p,
c23_p;
void computeFluctuationsLeft(T z, T myT, T T_hat, T v, T v_hat, T &F)
void riemannSolverBoundary(int faceIndex, double r, double vn, double vm, double vl, double Tn, double Tm, double Tl, double zp, double zs[2], double &vn_hat, double &vm_hat, double &vl_hat, double &Tn_hat, double &Tm_hat, double &Tl_hat)
void rotateIntoOrthogonalBasis(T *n, T *m, T *l, T Tx, T Ty, T Tz, T &Tn, T &Tm, T &Tl)
void riemannSolverNodal(T v_p, T v_m, T sigma_p, T sigma_m, T z_p, T z_m, T &v_hat_p, T &v_hat_m, T &sigma_hat_p, T &sigma_hat_m)
void riemannSolverBCn(T v, T sigma, T z, T r, T &v_hat, T &sigma_hat)
void createLocalBasis(T *n, T *m, T *l)
void computeParameters(const double *Q, double &rho, double &cp, double cs[], int direction)
void getStiffnessTensor(const double *Q, double &c11, double &c22, double &c33, double &c44, double &c55, double &c66, double &c12, double &c13, double &c23)
void computeFluctuationsRight(T z, T myT, T T_hat, T v, T v_hat, T &F)
void rotateIntoPhysicalBasis(T *n, T *m, T *l, T Fn, T Fm, T Fl, T &Fx, T &Fy, T &Fz)
void riemannSolverBC0(T v, T sigma, T z, T r, T &v_hat, T &sigma_hat)