VTK  9.7.20260921
PyrGnGradient.h
Go to the documentation of this file.
1int count = 0;
2RealT tt_tmp = 1. - tt + eps;
3for (int ii = 0; ii <= order; ++ii)
4{
5 for (int jj = 0; jj <= order - ii; ++jj)
6 {
7 for (int kk = 0; kk <= order - ii; ++kk)
8 {
9 int maxjjkk = (kk > jj) ? kk : jj;
10 RealT term1 = jacobi(kk, 0., 0., rr / tt_tmp);
11 RealT term2 = jacobi(jj, 0., 0., ss / tt_tmp);
12 RealT term3 = power(tt_tmp, maxjjkk);
13 RealT term4 = jacobi(ii, (2. * maxjjkk + 2.), 0., tt);
14
15 RealT dterm_dr = jacobi_dx(kk, 0., 0., rr / tt_tmp) * (1. / tt_tmp);
16 RealT dterm_ds = jacobi_dx(jj, 0., 0., ss / tt_tmp) * (1. / tt_tmp);
17 RealT dterm1_dt = jacobi_dx(kk, 0., 0., rr / tt_tmp) * 2. * rr / power(1. - tt, 2);
18 RealT dterm2_dt = jacobi_dx(jj, 0., 0., ss / tt_tmp) * 2. * ss / power(1. - tt, 2);
19 RealT dterm3_dt = maxjjkk * power(tt_tmp, maxjjkk - 1) * (-.5);
20 RealT dterm4_dt = jacobi_dx(ii, (2. * maxjjkk + 2.), 0., tt);
21 // ∂/∂r
22 basisGradient[count++] = dterm_dr * term2 * term3 * term4;
23 // ∂/∂s
24 basisGradient[count++] = term1 * dterm_ds * term3 * term4;
25 // ∂/∂t
26 basisGradient[count++] = dterm1_dt * term2 * term3 * term4 +
27 term1 * dterm2_dt * term3 * term4 + term1 * term2 * dterm3_dt * term4 +
28 term1 * term2 * term3 * dterm4_dt;
29 }
30 }
31}
basisGradient[0]
RealT tt_tmp
Definition PyrGnBasis.h:2
int count
Definition PyrGnBasis.h:1