VTK  9.7.20260918
WdgG3Gradient.h
Go to the documentation of this file.
1#define size_tri ((order + 1) * (order + 2) / 2)
2#define size_lin (order + 1)
3
7
10
11RealT rr2 = rr * rr;
12RealT ss2 = ss * ss;
13RealT rr3 = rr2 * rr;
14RealT ss3 = ss2 * ss;
15
16// clang-format off
17term_tri[0] = 33.817161825809371578088757814839 * ss * rr - 10.19363460448397873392423207406 * rr -
18 10.193634604483976957567392673809 * ss - 25.633740477435161153607623418793 * ss * rr2 -
19 25.633740477435157600893944618292 * ss2 * rr + 16.13677614923220460241282125935 * ss2 -
20 7.9533548008579746380064534605481 * ss3 + 16.136776149232218813267536461353 * rr2 -
21 7.9533548008579746380064534605481 * rr3 + 1.940276706091724978620050023892;
22term_tri[1] = 1.7801467085934570278027422318701 * rr - 0.23006654751630406519069538262556 * ss +
23 2.0037426223777003997383872047067 * ss * rr - 1.7736760748613988880606484599411 * ss * rr2 -
24 1.773676074861400220328278010129 * ss2 * rr + 0.23006654751630384314609045759425 * ss2 +
25 0.00000000000000033306690738754696212708950042725 * ss3 -
26 7.7232882533416873371834299177863 * rr2 + 7.9533548008579959542885262635536 * rr3 -
27 0.069936550018018794894203438161639;
28term_tri[2] = 1.7801467085934574718919520819327 * ss - 0.2300665475163037321237879950786 * rr +
29 2.0037426223777003997383872047067 * ss * rr - 1.7736760748614024407743272604421 * ss * rr2 -
30 1.7736760748613882299196120584384 * ss2 * rr - 7.7232882533416971071460466191638 * ss2 +
31 7.9533548008579995070022050640546 * ss3 + 0.23006654751629773691945501923328 * rr2 +
32 0.0000000000000014247862149356213730380358756069 * rr3 -
33 0.069936550018018933672081516306207;
34term_tri[3] = 1.2248553616305120073093348764814 * ss + 16.309694812025949062217478058301 * rr -
35 39.321099550905792341382039012387 * ss * rr + 45.669248814257656476911506615579 * ss * rr2 +
36 22.42847806615075612057808029931 * ss2 * rr + 0.78915803966001418778830611699959 * ss2 -
37 1.3094400190991548615926376442076 * ss3 - 36.648123495925119641469791531563 * rr2 +
38 21.388294922142161880174171528779 * rr3 - 0.75730882684618450184643734246492;
39term_tri[4] = 0.39467203838029318863078742651851 * ss - 7.1783325866021119310289577697404 * rr +
40 3.0161244633926909131105276173912 * ss * rr - 18.495635952168392179828515509143 * ss * rr2 +
41 4.7451347959384992947207138058729 * ss2 * rr - 1.2830007012976112346080981296836 * ss2 +
42 0.54303580686570562807702344798599 * ss3 + 27.516761270501277181210753042251 * rr2 -
43 21.388294922142186749169923132285 * rr3 + 0.2925574113968025802279271374573;
44term_tri[5] = 0.54222194361780795546223998826463 * ss + 1.1251486163469213153121017967351 * rr -
45 11.814180616670624246467014017981 * ss * rr + 26.35679812344822181557901785709 * ss * rr2 +
46 3.116027375341335226011096892762 * ss2 * rr + 0.34610671929951075664888548999443 * ss2 -
47 0.5430358068657070713669554606895 * ss3 - 3.1391620176374637196659023175016 * rr2 +
48 1.3094400190991617449753903201781 * rr3 - 0.052735444654811142184414052280772;
49term_tri[6] = 1.1251486163469239798473608971108 * ss + 0.54222194361780640115000551304547 * rr -
50 11.814180616670633128251211019233 * ss * rr + 3.1160273753413534336687007453293 * ss * rr2 +
51 26.356798123448236026433733059093 * ss2 * rr - 3.1391620176374526174356560659362 * ss2 +
52 1.3094400190991586363509213697398 * ss3 + 0.34610671929949748948374121937377 * rr2 -
53 0.54303580686570640523314068559557 * rr3 - 0.052735444654811544640260478900018;
54term_tri[7] = 0.39467203838029379925345097035461 * rr - 7.1783325866021172600994759704918 * ss +
55 3.0161244633927086766789216198958 * ss * rr + 4.745134795938495742007035005372 * ss * rr2 -
56 18.495635952168438365106339915656 * ss2 * rr + 27.516761270501302050206504645757 * ss2 -
57 21.388294922142197407310959533788 * ss3 - 1.2830007012975892521922105515841 * rr2 +
58 0.54303580686570218638564711000072 * rr3 + 0.29255741139680324636174191255122;
59term_tri[8] = 16.309694812025956167644835659303 * ss + 1.2248553616305084545956560759805 * rr -
60 39.321099550905806552236754214391 * ss * rr + 22.428478066150766778719116700813 * ss * rr2 +
61 45.669248814257706214903009822592 * ss2 * rr - 36.648123495925126746897149132565 * ss2 +
62 21.388294922142168985601529129781 * ss3 + 0.7891580396599718882910678985354 * rr2 -
63 1.3094400190991444254962061677361 * rr3 - 0.75730882684618516798025211755885;
64term_tri[9] = 58.413664337802686077338876202703 * ss * rr - 3.774705741992544272278564676526 * rr -
65 3.7747057419925518217951321275905 * ss - 54.638958595810152019112138077617 * ss * rr2 -
66 54.638958595810137808257422875613 * ss2 * rr + 3.7747057419925522658843419776531 * ss2 +
67 0.00000000000000022204460492503130808472633361816 * ss3 +
68 3.7747057419925988952513762342278 * rr2 -
69 0.0000000000000091038288019262836314737796783447 * rr3 +
70 0.23457011415269918286341521707072;
71
72dterm_dr_tri[0] = -23.8600644025739*rr2 - 51.2674809548703*rr*ss + 32.2735522984644*rr - 25.6337404774352*ss2 + 33.8171618258094*ss - 10.193634604484;
73dterm_dr_tri[1] = 23.860064402574*rr2 - 3.5473521497228*rr*ss - 15.4465765066834*rr - 1.7736760748614*ss2 + 2.0037426223777*ss + 1.78014670859346;
74dterm_dr_tri[2] = 4.27435864480686e-15*rr2 - 3.5473521497228*rr*ss + 0.460133095032595*rr - 1.77367607486139*ss2 + 2.0037426223777*ss - 0.230066547516304;
75dterm_dr_tri[3] = 64.1648847664265*rr2 + 91.3384976285153*rr*ss - 73.2962469918502*rr + 22.4284780661508*ss2 - 39.3210995509058*ss + 16.3096948120259;
76dterm_dr_tri[4] = -64.1648847664266*rr2 - 36.9912719043368*rr*ss + 55.0335225410026*rr + 4.7451347959385*ss2 + 3.01612446339269*ss - 7.17833258660211;
77dterm_dr_tri[5] = 3.92832005729749*rr2 + 52.7135962468964*rr*ss - 6.27832403527493*rr + 3.11602737534134*ss2 - 11.8141806166706*ss + 1.12514861634692;
78dterm_dr_tri[6] = -1.62910742059712*rr2 + 6.23205475068271*rr*ss + 0.692213438598995*rr + 26.3567981234482*ss2 - 11.8141806166706*ss + 0.542221943617806;
79dterm_dr_tri[7] = 1.62910742059711*rr2 + 9.49026959187699*rr*ss - 2.56600140259518*rr - 18.4956359521684*ss2 + 3.01612446339271*ss + 0.394672038380294;
80dterm_dr_tri[8] = -3.92832005729743*rr2 + 44.8569561323015*rr*ss + 1.57831607931994*rr + 45.6692488142577*ss2 - 39.3210995509058*ss + 1.22485536163051;
81dterm_dr_tri[9] = -2.73114864057789e-14*rr2 - 109.27791719162*rr*ss + 7.5494114839852*rr - 54.6389585958101*ss2 + 58.4136643378027*ss - 3.77470574199254;
82
83dterm_ds_tri[0] = -25.6337404774352*rr2 - 51.2674809548703*rr*ss + 33.8171618258094*rr - 23.8600644025739*ss2 + 32.2735522984644*ss - 10.193634604484;
84dterm_ds_tri[1] = -1.7736760748614*rr2 - 3.5473521497228*rr*ss + 2.0037426223777*rr + 9.99200722162641e-16*ss2 + 0.460133095032608*ss - 0.230066547516304;
85dterm_ds_tri[2] = -1.7736760748614*rr2 - 3.54735214972278*rr*ss + 2.0037426223777*rr + 23.860064402574*ss2 - 15.4465765066834*ss + 1.78014670859346;
86dterm_ds_tri[3] = 45.6692488142577*rr2 + 44.8569561323015*rr*ss - 39.3210995509058*rr - 3.92832005729746*ss2 + 1.57831607932003*ss + 1.22485536163051;
87dterm_ds_tri[4] = -18.4956359521684*rr2 + 9.490269591877*rr*ss + 3.01612446339269*rr + 1.62910742059712*ss2 - 2.56600140259522*ss + 0.394672038380293;
88dterm_ds_tri[5] = 26.3567981234482*rr2 + 6.23205475068267*rr*ss - 11.8141806166706*rr - 1.62910742059712*ss2 + 0.692213438599022*ss + 0.542221943617808;
89dterm_ds_tri[6] = 3.11602737534135*rr2 + 52.7135962468965*rr*ss - 11.8141806166706*rr + 3.92832005729748*ss2 - 6.27832403527491*ss + 1.12514861634692;
90dterm_ds_tri[7] = 4.7451347959385*rr2 - 36.9912719043369*rr*ss + 3.01612446339271*rr - 64.1648847664266*ss2 + 55.0335225410026*ss - 7.17833258660212;
91dterm_ds_tri[8] = 22.4284780661508*rr2 + 91.3384976285154*rr*ss - 39.3210995509058*rr + 64.1648847664265*ss2 - 73.2962469918503*ss + 16.309694812026;
92dterm_ds_tri[9] = -54.6389585958102*rr2 - 109.27791719162*rr*ss + 58.4136643378027*rr + 6.66133814775094e-16*ss2 + 7.5494114839851*ss - 3.77470574199255;
93
94term_lin[0] = 0.83333333333333333333333333333333 * tt * (tt - 0.77459666924148337703585307995648);
95term_lin[1] = 1.0 - 1.6666666666666666666666666666667 * tt * tt;
96term_lin[2] = 0.83333333333333333333333333333333 * tt * (tt + 0.77459666924148337703585307995648);
97
98dterm_dt_lin[0] = 1.6666666666666667 * tt - 0.64549722436790291;
99dterm_dt_lin[1] = -3.3333333333333333 * tt;
100dterm_dt_lin[2] = 1.6666666666666667 * tt + 0.64549722436790291;
101
102for (int ii = 0; ii < size_lin; ++ii)
103{
104 for (int jj = 0; jj < size_tri; ++jj)
105 {
106 int i_sp = ii * size_tri + jj;
107 // ∂/∂r, ∂/∂s, ∂/∂t:
108 basisGradient[3 * i_sp ] = dterm_dr_tri[jj] * term_lin[ii] /* zero */;
109 basisGradient[3 * i_sp + 1] = dterm_ds_tri[jj] * term_lin[ii] /* zero */;
110 basisGradient[3 * i_sp + 2] = /* zero */ term_tri[jj] * dterm_dt_lin[ii];
111 }
112}
113// clang-format on
basisGradient[0]
term_tri[0]
Definition WdgG1Basis.h:7
#define size_lin
Definition WdgG1Basis.h:2
term_lin[0]
Definition WdgG1Basis.h:10
#define size_tri
Definition WdgG1Basis.h:1
dterm_ds_tri[0]
dterm_dt_lin[0]
dterm_dr_tri[0]
RealT ss2
RealT rr3
RealT ss3
WORKSPACE(RealT, term_tri, size_tri)
RealT rr2