aboutsummaryrefslogtreecommitdiff
path: root/src/gr.cg/horizon_function.c
diff options
context:
space:
mode:
authorjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2002-10-12 18:46:40 +0000
committerjthorn <jthorn@f88db872-0e4f-0410-b76b-b9085cfa78c5>2002-10-12 18:46:40 +0000
commit9b989e242ffb427900c6c1e49ccb3f4d9844f4b2 (patch)
treeaa50326efaefc74b6b0e294ddf256e2c4bad7d43 /src/gr.cg/horizon_function.c
parent6b0b9d5e079eae24e330cc304742d4d1131e481c (diff)
* expand NaN checks in gridfns to "is finite" checks
(also catchs +/-infinity) * move final stage of calculation of LHS function H(h) out of Maple-generated code (in src/gr.cg/) into hand-written code in src/gr/horizon_function.c (comput_H()) so we can check that HD > 0 before taking its sqrt. [HD <= 0 probably means the inerpolated g_ij isn't positive definite] * also systematize CCTK_VWarn() printing for various error conditions in horizon_function.c git-svn-id: http://svn.einsteintoolkit.org/cactus/EinsteinAnalysis/AHFinderDirect/trunk@829 f88db872-0e4f-0410-b76b-b9085cfa78c5
Diffstat (limited to 'src/gr.cg/horizon_function.c')
-rw-r--r--src/gr.cg/horizon_function.c338
1 files changed, 168 insertions, 170 deletions
diff --git a/src/gr.cg/horizon_function.c b/src/gr.cg/horizon_function.c
index c31778c..7e6e717 100644
--- a/src/gr.cg/horizon_function.c
+++ b/src/gr.cg/horizon_function.c
@@ -1,23 +1,22 @@
/*
- * inputs = {r, partial_d_ln_sqrt_g, partial_d_g_uu, X_ud, X_udd, g_uu, K_uu, h, HA, HB, HC, HD, K}
- * outputs = {H, HA, HB, HC, HD}
- * cost = 136*assignments+7*divisions+7*functions+402*multiplications+176*additions
+ * inputs = {r, partial_d_ln_sqrt_g, partial_d_g_uu, X_ud, X_udd, g_uu, K_uu, h}
+ * outputs = {HA, HB, HC, HD}
+ * cost = 134*assignments+3*divisions+5*functions+401*multiplications+173*additions
*/
fp t1, t2, t4, t5, t7, t8, t10, t11, t12, t14;
-fp t16, t18, t19, t21, t23, t25, t28, t29, t30, t32;
-fp t33, t35, t37, t43, t44, t47, t50, t51, t53, t55;
-fp t56, t57, t58, t61, t62, t63, t64, t65, t67, t69;
-fp t72, t73, t76, t78, t85, t90, t92, t94, t95, t96;
-fp t99, t100, t101, t102, t105, t106, t107, t111, t114, t115;
-fp t117, t118, t133, t134, t137, t138, t141, t142, t145, t146;
-fp t149, t150, t158, t163, t165, t169, t170, t173, t174, t179;
-fp t194, t198, t199, t204, t220, t227, t234, t237, t239, t242;
-fp t247, t250, t254, t261, t262, t265, t267, t270, t273, t276;
-fp t279, t292, t295, t296, t299, t306, t307, t312, t315, t318;
-fp t320, t323, t333, t342, t343, t346, t349, t350, t361, t362;
-fp t368, t378, t394, t413, t431, t440, t444, t447, t450, t465;
-fp t490;
- t1 = g_uu_13;
+fp t16, t18, t19, t20, t23, t24, t25, t26, t29, t30;
+fp t31, t33, t35, t37, t38, t40, t41, t42, t43, t45;
+fp t46, t47, t48, t50, t51, t52, t53, t55, t58, t59;
+fp t61, t64, t67, t68, t70, t72, t73, t75, t77, t83;
+fp t84, t87, t90, t91, t93, t95, t112, t130, t134, t137;
+fp t139, t143, t147, t150, t152, t159, t164, t166, t168, t176;
+fp t181, t183, t199, t203, t206, t209, t213, t216, t217, t219;
+fp t228, t229, t232, t235, t236, t237, t240, t243, t247, t251;
+fp t254, t259, t260, t262, t263, t269, t272, t273, t276, t279;
+fp t282, t283, t290, t293, t296, t299, t302, t305, t312, t315;
+fp t318, t324, t325, t329, t330, t338, t358, t381, t392, t395;
+fp t396, t397, t408, t411, t431, t440, t444, t447, t450, t465;
+ t1 = g_uu_33;
t2 = 1/r;
t4 = X_ud_13;
t5 = PARTIAL_RHO(h);
@@ -25,160 +24,159 @@ fp t490;
t8 = PARTIAL_SIGMA(h);
t10 = zz*t2-t4*t5-t7*t8;
t11 = t1*t10;
- t12 = partial_d_g_uu_112;
- t14 = X_ud_12;
- t16 = X_ud_22;
- t18 = yy*t2-t14*t5-t16*t8;
- t19 = t12*t18;
- t21 = X_ud_11;
- t23 = X_ud_21;
- t25 = xx*t2-t21*t5-t23*t8;
- t28 = g_uu_23;
- t29 = t28*t28;
- t30 = t10*t10;
- t32 = xx*xx;
- t33 = zz*zz;
- t35 = r*r;
- t37 = 1/t35/r;
- t43 = t14*t14;
- t44 = PARTIAL_RHO_RHO(h);
- t47 = PARTIAL_RHO_SIGMA(h);
- t50 = t16*t16;
- t51 = PARTIAL_SIGMA_SIGMA(h);
- t53 = (t32+t33)*t37-X_udd_122*t5-X_udd_222*t8-t43*t44-2.0*t16*t14*t47-t50
-*t51;
- t55 = g_uu_33;
- t56 = t55*t10;
- t57 = partial_d_g_uu_312;
- t58 = t57*t18;
- t61 = g_uu_22;
- t62 = t18*t18;
- t63 = t61*t62;
- t64 = partial_d_g_uu_212;
- t65 = t64*t25;
- t67 = t30*t10;
- t69 = partial_d_g_uu_233;
- t72 = t28*t10;
- t73 = t64*t18;
- t76 = t55*t55;
- t78 = yy*yy;
- t85 = t4*t4;
- t90 = t7*t7;
- t92 = (t32+t78)*t37-X_udd_133*t5-X_udd_233*t8-t85*t44-2.0*t7*t4*t47-t90*
-t51;
- t94 = t61*t18;
- t95 = partial_d_g_uu_213;
- t96 = t95*t10;
- t99 = g_uu_12;
- t100 = t99*t18;
- t101 = partial_d_g_uu_113;
- t102 = t101*t10;
- t105 = t28*t18;
- t106 = partial_d_g_uu_313;
- t107 = t106*t10;
- t111 = partial_d_g_uu_133;
- t114 = t25*t25;
- t115 = t1*t114;
- t117 = -t11*t19*t25-t29*t30*t53-t56*t58*t25-t63*t65+RATIONAL(-1.0,2.0)*
-t28*t67*t69-t72*t73*t25-t76*t30*t92-t94*t96*t25-t100*t102*t25-t105*t107*t25+
-RATIONAL(-1.0,2.0)*t1*t67*t111-t115*t107;
- t118 = t55*t30;
- t133 = -yy*zz*t37-X_udd_123*t5-X_udd_223*t8-t14*t4*t44-t16*t4*t47-t14*t7*
-t47-t16*t7*t51;
- t134 = t28*t133;
- t137 = partial_d_g_uu_111;
- t138 = t137*t114;
- t141 = partial_d_g_uu_311;
- t142 = t141*t114;
- t145 = partial_d_g_uu_211;
- t146 = t145*t114;
- t149 = g_uu_11;
- t150 = t149*t149;
- t158 = t21*t21;
- t163 = t23*t23;
- t165 = (t78+t33)*t37-X_udd_111*t5-X_udd_211*t8-t158*t44-2.0*t23*t21*t47-
-t163*t51;
- t169 = t99*t25;
- t170 = t69*t30;
- t173 = t149*t25;
- t174 = t111*t30;
- t179 = t99*t114;
- t194 = -xx*yy*t37-X_udd_112*t5-X_udd_212*t8-t21*t14*t44-t23*t14*t47-t21*
-t16*t47-t23*t16*t51;
- t198 = partial_d_g_uu_333;
- t199 = t198*t30;
- t204 = -2.0*t118*t134+RATIONAL(-1.0,2.0)*t11*t138+RATIONAL(-1.0,2.0)*t105
-*t142+RATIONAL(-1.0,2.0)*t94*t146-t150*t114*t165+RATIONAL(-1.0,2.0)*t100*t138+
-RATIONAL(-1.0,2.0)*t169*t170+RATIONAL(-1.0,2.0)*t173*t174+RATIONAL(-1.0,2.0)*
-t100*t174-2.0*t179*t149*t194+RATIONAL(-1.0,2.0)*t105*t199+RATIONAL(-1.0,2.0)*
-t94*t170;
- t220 = -xx*zz*t37-X_udd_113*t5-X_udd_213*t8-t21*t4*t44-t23*t4*t47-t21*t7*
-t47-t23*t7*t51;
- t227 = t99*t194;
- t234 = t99*t99;
- t237 = t149*t114;
- t239 = t28*t30;
- t242 = t1*t1;
- t247 = t61*t61;
- t250 = t28*t62;
- t254 = -2.0*t115*t149*t220-2.0*t115*t99*t133-2.0*t63*t227+RATIONAL(-1.0,
-2.0)*t72*t146+RATIONAL(-1.0,2.0)*t56*t142-t234*t114*t53-t237*t19-t239*t95*t25-
-t242*t114*t92-t234*t62*t165-t247*t62*t53-2.0*t250*t99*t220;
- t261 = partial_d_g_uu_222;
- t262 = t261*t62;
- t265 = t106*t25;
- t267 = t1*t30;
- t270 = t169*t53;
- t273 = t173*t220;
- t276 = t173*t165;
- t279 = t114*t25;
- t292 = -2.0*t234*t18*t25*t194-t179*t96-t237*t102+RATIONAL(-1.0,2.0)*t169*
-t262-t118*t265-t267*t101*t25-2.0*t94*t270-2.0*t105*t273-2.0*t100*t276+RATIONAL(
--1.0,2.0)*t149*t279*t137+RATIONAL(-1.0,2.0)*t99*t279*t145+RATIONAL(-1.0,2.0)*
-t55*t67*t198+RATIONAL(-1.0,2.0)*t1*t279*t141;
- t295 = partial_d_g_uu_122;
- t296 = t295*t62;
- t299 = t173*t194;
- t306 = t1*t25;
- t307 = t306*t133;
- t312 = t169*t133;
- t315 = t306*t92;
- t318 = t62*t18;
- t320 = partial_d_g_uu_322;
- t323 = t320*t62;
- t333 = RATIONAL(-1.0,2.0)*t173*t296-2.0*t94*t299-2.0*t242*t10*t25*t220
--2.0*t72*t307-t250*t57*t25-2.0*t56*t312-2.0*t56*t315+RATIONAL(-1.0,2.0)*t28*
-t318*t320+RATIONAL(-1.0,2.0)*t306*t323+RATIONAL(-1.0,2.0)*t99*t318*t295-2.0*t72
-*t270+RATIONAL(-1.0,2.0)*t56*t323;
- t342 = partial_d_g_uu_223;
- t343 = t342*t10;
- t346 = t99*t62;
- t349 = partial_d_g_uu_323;
- t350 = t349*t10;
- t361 = partial_d_g_uu_123;
- t362 = t361*t10;
- t368 = -t179*t73+RATIONAL(-1.0,2.0)*t61*t318*t261-2.0*t56*t273-2.0*t72*
-t299-t169*t343*t18-t346*t12*t25-t306*t350*t18-2.0*t11*t276-2.0*t94*t307-2.0*
-t105*t315+RATIONAL(-1.0,2.0)*t11*t296-t346*t362-2.0*t29*t10*t18*t133;
- t378 = t349*t18;
- t394 = RATIONAL(-1.0,2.0)*t72*t262-t63*t343-t250*t350-t239*t342*t18-t267*
-t361*t18-t118*t378+RATIONAL(-1.0,2.0)*t306*t199-t173*t362*t18-2.0*t105*t312-2.0
-*t100*t306*t220-2.0*t250*t61*t133-t29*t62*t92;
- t413 = t1*t220;
- t431 = -2.0*t56*t94*t133-2.0*t56*t105*t92-t115*t58-2.0*t11*t169*t194-t242
-*t30*t165-2.0*t11*t100*t165-2.0*t239*t1*t194-2.0*t118*t413-2.0*t11*t105*t220
--2.0*t72*t94*t53-2.0*t11*t94*t194-2.0*t56*t100*t220-2.0*t72*t100*t194;
- HA = t117+t204+t254+t292+t333+t368+t394+t431;
- t440 = t137*t25+t65+t265+t19+t261*t18+t378+t102+t343+t198*t10+t149*t165+
-2.0*t227+2.0*t413;
+ t12 = partial_d_g_uu_311;
+ t14 = X_ud_11;
+ t16 = X_ud_21;
+ t18 = xx*t2-t14*t5-t16*t8;
+ t19 = t18*t18;
+ t20 = t12*t19;
+ t23 = g_uu_23;
+ t24 = t23*t10;
+ t25 = partial_d_g_uu_211;
+ t26 = t25*t19;
+ t29 = g_uu_13;
+ t30 = t29*t19;
+ t31 = partial_d_g_uu_312;
+ t33 = X_ud_12;
+ t35 = X_ud_22;
+ t37 = yy*t2-t33*t5-t35*t8;
+ t38 = t31*t37;
+ t40 = g_uu_12;
+ t41 = t40*t19;
+ t42 = partial_d_g_uu_212;
+ t43 = t42*t37;
+ t45 = g_uu_11;
+ t46 = t45*t19;
+ t47 = partial_d_g_uu_112;
+ t48 = t47*t37;
+ t50 = g_uu_22;
+ t51 = t37*t37;
+ t52 = t50*t51;
+ t53 = t42*t18;
+ t55 = t40*t51;
+ t58 = partial_d_g_uu_113;
+ t59 = t58*t10;
+ t61 = t23*t51;
+ t64 = t29*t10;
+ t67 = partial_d_g_uu_213;
+ t68 = t67*t10;
+ t70 = t45*t45;
+ t72 = yy*yy;
+ t73 = zz*zz;
+ t75 = r*r;
+ t77 = 1/t75/r;
+ t83 = t14*t14;
+ t84 = PARTIAL_RHO_RHO(h);
+ t87 = PARTIAL_RHO_SIGMA(h);
+ t90 = t16*t16;
+ t91 = PARTIAL_SIGMA_SIGMA(h);
+ t93 = (t72+t73)*t77-X_udd_111*t5-X_udd_211*t8-t83*t84-2.0*t16*t14*t87-t90
+*t91;
+ t95 = RATIONAL(-1.0,2.0)*t11*t20+RATIONAL(-1.0,2.0)*t24*t26-t30*t38-t41*
+t43-t46*t48-t52*t53-t55*t47*t18-t46*t59-t61*t31*t18-t64*t48*t18-t41*t68-t70*t19
+*t93;
+ t112 = -xx*yy*t77-X_udd_112*t5-X_udd_212*t8-t14*t33*t84-t16*t33*t87-t14*
+t35*t87-t16*t35*t91;
+ t130 = -xx*zz*t77-X_udd_113*t5-X_udd_213*t8-t14*t4*t84-t16*t4*t87-t14*t7*
+t87-t16*t7*t91;
+ t134 = t40*t37;
+ t137 = t51*t37;
+ t139 = partial_d_g_uu_322;
+ t143 = partial_d_g_uu_122;
+ t147 = partial_d_g_uu_222;
+ t150 = t40*t40;
+ t152 = xx*xx;
+ t159 = t33*t33;
+ t164 = t35*t35;
+ t166 = (t152+t73)*t77-X_udd_122*t5-X_udd_222*t8-t159*t84-2.0*t35*t33*t87-
+t164*t91;
+ t168 = t29*t29;
+ t176 = t4*t4;
+ t181 = t7*t7;
+ t183 = (t152+t72)*t77-X_udd_133*t5-X_udd_233*t8-t176*t84-2.0*t7*t4*t87-
+t181*t91;
+ t199 = -yy*zz*t77-X_udd_123*t5-X_udd_223*t8-t33*t4*t84-t35*t4*t87-t33*t7*
+t87-t35*t7*t91;
+ t203 = t40*t112;
+ t206 = t50*t37;
+ t209 = -t24*t43*t18-2.0*t41*t45*t112-2.0*t30*t45*t130-t134*t59*t18+
+RATIONAL(-1.0,2.0)*t23*t137*t139+RATIONAL(-1.0,2.0)*t40*t137*t143+RATIONAL(-1.0
+,2.0)*t50*t137*t147-t150*t19*t166-t168*t19*t183-2.0*t30*t40*t199-2.0*t52*t203-
+t206*t68*t18;
+ t213 = t50*t50;
+ t216 = t10*t10;
+ t217 = t216*t10;
+ t219 = partial_d_g_uu_333;
+ t228 = partial_d_g_uu_123;
+ t229 = t228*t10;
+ t232 = partial_d_g_uu_233;
+ t235 = t23*t37;
+ t236 = partial_d_g_uu_313;
+ t237 = t236*t10;
+ t240 = t23*t23;
+ t243 = t29*t18;
+ t247 = t243*t183;
+ t251 = partial_d_g_uu_133;
+ t254 = -t150*t51*t93-t213*t51*t166+RATIONAL(-1.0,2.0)*t1*t217*t219-2.0*
+t61*t40*t130-2.0*t61*t50*t199-t55*t229+RATIONAL(-1.0,2.0)*t23*t217*t232-t235*
+t237*t18-t240*t51*t183-2.0*t134*t243*t130-2.0*t235*t247+RATIONAL(-1.0,2.0)*t29*
+t217*t251;
+ t259 = partial_d_g_uu_323;
+ t260 = t259*t10;
+ t262 = partial_d_g_uu_223;
+ t263 = t262*t10;
+ t269 = t243*t199;
+ t272 = t40*t18;
+ t273 = t272*t166;
+ t276 = t272*t199;
+ t279 = t219*t216;
+ t282 = t45*t18;
+ t283 = t251*t216;
+ t290 = t232*t216;
+ t293 = t23*t216;
+ t296 = -2.0*t150*t37*t18*t112-t61*t260-t52*t263-2.0*t168*t10*t18*t130-2.0
+*t206*t269-2.0*t206*t273-2.0*t235*t276+RATIONAL(-1.0,2.0)*t243*t279+RATIONAL(
+-1.0,2.0)*t282*t283+RATIONAL(-1.0,2.0)*t235*t279+RATIONAL(-1.0,2.0)*t134*t283+
+RATIONAL(-1.0,2.0)*t206*t290-t293*t262*t37;
+ t299 = t29*t216;
+ t302 = t147*t51;
+ t305 = t139*t51;
+ t312 = t282*t93;
+ t315 = t282*t130;
+ t318 = t282*t112;
+ t324 = t1*t216;
+ t325 = t236*t18;
+ t329 = -t299*t228*t37+RATIONAL(-1.0,2.0)*t272*t302+RATIONAL(-1.0,2.0)*t11
+*t305+RATIONAL(-1.0,2.0)*t24*t302+RATIONAL(-1.0,2.0)*t272*t290-2.0*t134*t312
+-2.0*t235*t315-2.0*t206*t318-t30*t237-2.0*t24*t269-t324*t325-2.0*t11*t247;
+ t330 = t259*t37;
+ t338 = t143*t51;
+ t358 = -t324*t330-2.0*t11*t315-t272*t263*t37-2.0*t11*t276+RATIONAL(-1.0,
+2.0)*t282*t338-t243*t260*t37-2.0*t64*t312-t282*t229*t37-t299*t58*t18-2.0*t24*
+t273-2.0*t24*t318+RATIONAL(-1.0,2.0)*t64*t338-2.0*t64*t235*t130;
+ t381 = t29*t130;
+ t392 = t23*t199;
+ t395 = -2.0*t240*t10*t37*t199-2.0*t11*t235*t183-2.0*t11*t134*t130-2.0*t64
+*t134*t93-2.0*t24*t206*t166-t11*t38*t18-2.0*t293*t29*t112-2.0*t324*t381-2.0*t11
+*t206*t199-2.0*t64*t206*t112-t168*t216*t93-2.0*t324*t392;
+ t396 = partial_d_g_uu_111;
+ t397 = t396*t19;
+ t408 = t1*t1;
+ t411 = t19*t18;
+ t431 = RATIONAL(-1.0,2.0)*t134*t397+RATIONAL(-1.0,2.0)*t206*t26+RATIONAL(
+-1.0,2.0)*t235*t20+RATIONAL(-1.0,2.0)*t64*t397-t240*t216*t166-t408*t216*t183+
+RATIONAL(-1.0,2.0)*t45*t411*t396+RATIONAL(-1.0,2.0)*t40*t411*t25+RATIONAL(-1.0,
+2.0)*t29*t411*t12-2.0*t24*t134*t112+RATIONAL(-1.0,2.0)*t243*t305-t293*t67*t18
+-2.0*t64*t272*t112;
+ HA = t95+t209+t254+t296+t329+t358+t395+t431;
+ t440 = t396*t18+t53+t325+t48+t147*t37+t330+t59+t263+t219*t10+t45*t93+2.0*
+t203+2.0*t381;
t444 = partial_d_ln_sqrt_g_1;
t447 = partial_d_ln_sqrt_g_2;
t450 = partial_d_ln_sqrt_g_3;
- t465 = t61*t53+2.0*t134+t55*t92+t149*t444*t25+t99*t447*t25+t1*t450*t25+
-t99*t444*t18+t61*t447*t18+t28*t450*t18+t1*t444*t10+t28*t447*t10+t55*t450*t10;
+ t465 = t50*t166+2.0*t392+t1*t183+t45*t444*t18+t40*t447*t18+t29*t450*t18+
+t40*t444*t37+t50*t447*t37+t23*t450*t37+t29*t444*t10+t23*t447*t10+t1*t450*t10;
HB = t440+t465;
- HC = K_uu_11*t114+2.0*K_uu_12*t18*t25+2.0*K_uu_13*t10*t25+K_uu_22*t62+2.0
-*K_uu_23*t10*t18+K_uu_33*t30;
- HD = t237+2.0*t100*t25+2.0*t11*t25+t63+2.0*t72*t18+t118;
- t490 = pow(HD,1.0*RATIONAL(1.0,2.0));
- H = HA/t490/HD+HB/t490+HC/HD-K;
+ HC = K_uu_11*t19+2.0*K_uu_12*t37*t18+2.0*K_uu_13*t10*t18+K_uu_22*t51+2.0*
+K_uu_23*t10*t37+K_uu_33*t216;
+ HD = t46+2.0*t134*t18+2.0*t64*t18+t52+2.0*t24*t37+t324;