23 const tarch::la::Vector<DIMENSIONS,double>& x,
26 constexpr int nVars = 59;
27 constexpr double pi = M_PI;
28 constexpr double peak_number = 2.0;
29 constexpr double ICA = 0.1;
30 double HH = 1.0 - ICA*sin( peak_number*pi*( x[0] - t));
31 double dxH = -peak_number*pi*ICA*cos( peak_number * pi*(x[0] - t));
32 double dxphi = - pow(HH,(-7.0/6.0))*dxH/6.0;
33 double phi = pow(( 1.0 / HH),(1.0/6.0));
34 double Kxx = - 0.5*peak_number*pi*ICA*cos( peak_number * pi*(x[0] - t))/sqrt( 1.0 - ICA*sin( peak_number*pi*( x[0] - t)) );
35 double traceK = Kxx/HH;
36 std::memset(Q, .0, nVars*
sizeof(
double));
40 Q[6] = phi*phi*(Kxx - 1.0/3.0*traceK*HH ) ;
41 Q[9] = phi*phi*(0.0 - 1.0/3.0*traceK*1.0) ;
42 Q[11] = phi*phi*(0.0 - 1.0/3.0*traceK*1.0) ;
44 Q[13] = 2.0/(3.0*pow(HH,(5.0/3.0)))*dxH ;
45 Q[23] = 1.0/(2.0)*dxH*pow(HH,(-1.0/2.0)) ;
46 Q[35] = pow(HH,(-1.0/3.0))*dxH/3.0 ;
56 const tarch::la::Vector<DIMENSIONS,double>& x,
59 constexpr int nVars = 59;
60 constexpr double pi = M_PI;
61 constexpr double peak_number = 2.0;
62 constexpr double ICA = 0.1;
63 double phase = peak_number*pi*( x[0] - x[1] - t);
64 double H=1+2.0*ICA*sin(phase);
65 std::memset(Q, .0, nVars*
sizeof(
double));
66 Q[0] = pow(H,(-1.0/3.0))*(1+ICA*sin(phase));
67 Q[1] = -pow(H,(-1.0/3.0))*(ICA*sin(phase));
68 Q[3] = pow(H,(-1.0/3.0))*(1+ICA*sin(phase));
69 Q[5] = pow(H,(-1.0/3.0));
70 Q[6] = pow(H,(-5.0/6.0))*(peak_number*pi*ICA/2.0)*cos(phase)*(1.0 - 2.0 * (1+ICA*sin(phase)) / (3.0*H) );
71 Q[7] = pow(H,(-5.0/6.0))*(peak_number*pi*ICA/2.0)*cos(phase)*(2.0 * ICA*sin(phase) / (3.0*H) - 1.0 );
72 Q[9] = pow(H,(-5.0/6.0))*(peak_number*pi*ICA/2.0)*cos(phase)*(1.0 - 2.0 * (1+ICA*sin(phase)) / (3.0*H) );
73 Q[11] = pow(H,(-11.0/6.0))*(peak_number*pi*ICA/3.0)*cos(phase);
74 Q[13] = pow(H,(-5.0/3.0))*(4.0*peak_number*pi*ICA/3.0)*cos(phase);
75 Q[14] = -pow(H,(-5.0/3.0))*(4.0*peak_number*pi*ICA/3.0)*cos(phase);
77 Q[23] = pow(H,-1.0)*(peak_number*pi*ICA)*cos(phase);
78 Q[24] = -pow(H,-1.0)*(peak_number*pi*ICA)*cos(phase);
79 Q[35] = pow(H,(-4.0/3.0))*(peak_number*pi*ICA/6.0)*cos(phase)*(1.0 + 4.0 * ICA*sin(phase) );
80 Q[36] = -pow(H,(-4.0/3.0))*(peak_number*pi*ICA/6.0)*cos(phase)*(3.0 + 4.0 * ICA*sin(phase) );
81 Q[38] = pow(H,(-4.0/3.0))*(peak_number*pi*ICA/6.0)*cos(phase)*(1.0 + 4.0 * ICA*sin(phase) );
82 Q[40] = -pow(H,(-4.0/3.0))*(peak_number*pi*ICA/3.0)*cos(phase);
83 Q[41] = -pow(H,(-4.0/3.0))*(peak_number*pi*ICA/6.0)*cos(phase)*(1.0 + 4.0 * ICA*sin(phase) );
84 Q[42] = pow(H,(-4.0/3.0))*(peak_number*pi*ICA/6.0)*cos(phase)*(3.0 + 4.0 * ICA*sin(phase) );
85 Q[41] = -pow(H,(-4.0/3.0))*(peak_number*pi*ICA/6.0)*cos(phase)*(1.0 + 4.0 * ICA*sin(phase) );
86 Q[46] = pow(H,(-4.0/3.0))*(peak_number*pi*ICA/3.0)*cos(phase);
87 Q[53] = pow(H,(-3.0/2.0))*(peak_number*pi*ICA)*cos(phase);
88 Q[54] = -(1.0/6.0)*log(H);
89 Q[55] = -pow(H,-1.0)*(peak_number*pi*ICA/3.0)*cos(phase);
90 Q[56] = pow(H,-1.0)*(peak_number*pi*ICA/3.0)*cos(phase);
95 const tarch::la::Vector<DIMENSIONS,double>& X,
98 constexpr int nVars = 59;
99 constexpr double pi = M_PI;
100 constexpr double peak_number = 2.0;
101 constexpr double ICA = 1e-4;
102 double HH = ICA*sin( peak_number*pi*( X[0] - t));
103 double dxHH = peak_number*pi*ICA*cos( peak_number * pi*(X[0] - t));
104 double dtHH = -peak_number*pi*ICA*cos( peak_number * pi*(X[0] - t));
105 std::memset(Q, .0, nVars*
sizeof(
double));
135 const tarch::la::Vector<DIMENSIONS,double>& X,
140 constexpr int nVars = 59;
141 const double coor[3]={X[0],X[1],X[2]};
142 double LgradQ[3*nVars];
143 std::memset(Q, .0, nVars*
sizeof(
double));