5 template <
class Shortcuts,
typename T>
7 T sigma_xx = Q[Shortcuts::sigma + 0];
8 T sigma_yy = Q[Shortcuts::sigma + 1];
9 T sigma_zz = Q[Shortcuts::sigma + 2];
10 T sigma_xy = Q[Shortcuts::sigma + 3];
11 T
sigma_xz = Q[Shortcuts::sigma + 4];
12 T
sigma_yz = Q[Shortcuts::sigma + 5];
19 template <
class Shortcuts,
typename T>
21 vx = Q[Shortcuts::v + 0];
22 vy = Q[Shortcuts::v + 1];
23 vz = Q[Shortcuts::v + 2];
30 T
a_yz = y[0] *
z[0] + y[1] *
z[1] + y[2] *
z[2];
32 for (
int i = 0;
i < 3;
i++) {
36 T
norm_z = std::sqrt(
z[0] *
z[0] +
z[1] *
z[1] +
z[2] *
z[2]);
38 for (
int i = 0;
i < 3;
i++) {
51 m[0] =
n[1] *
l[2] -
n[2] *
l[1];
52 m[1] = -(
n[0] *
l[2] -
n[2] *
l[0]);
53 m[2] =
n[0] *
l[1] -
n[1] *
l[0];
73 l[0] =
n[1] *
m[2] -
n[2] *
m[1];
74 l[1] = -(
n[0] *
m[2] -
n[2] *
m[0]);
75 l[2] =
n[0] *
m[1] -
n[1] *
m[0];
107 }
else if (
z_p > 0) {
113 }
else if (
z_m > 0) {
void computeFluctuationsLeft(T z, T myT, T T_hat, T v, T v_hat, T &F)
void GramSchmidt(T *y, T *z)
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 getVelocities(const T *Q, T &vx, T &vy, T &vz)
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 computeTractions(const T *Q, const T *n, T &Tx, T &Ty, T &Tz)
void riemannSolverBC0(T v, T sigma, T z, T r, T &v_hat, T &sigma_hat)