aboutsummaryrefslogtreecommitdiff
path: root/init.c
diff options
context:
space:
mode:
Diffstat (limited to 'init.c')
-rw-r--r--init.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/init.c b/init.c
index e5ad3d8..6b05048 100644
--- a/init.c
+++ b/init.c
@@ -830,9 +830,16 @@ int td_eval_krt(const TDContext *td,
static const unsigned int nb_dummy_coords[2] = { 1, 1 };
TDConstraintEvalContext *ce;
+ double (*eval)(TDConstraintEvalContext*, double, double);
int ret;
- if (diff_order[0] || diff_order[1])
+ if (diff_order[0] == 0 && diff_order[1] == 0)
+ eval = tdi_constraint_eval_k_rtheta;
+ else if (diff_order[0] == 1 && diff_order[1] == 0)
+ eval = tdi_constraint_eval_dk_rtheta_r;
+ else if (diff_order[0] == 0 && diff_order[1] == 1)
+ eval = tdi_constraint_eval_dk_rtheta_t;
+ else
return -ENOSYS;
ret = constraint_eval_alloc(td, nb_dummy_coords, dummy_coords,
@@ -844,7 +851,7 @@ int td_eval_krt(const TDContext *td,
double theta_val = theta[i];
double r_val = r[i];
- out[i] = tdi_constraint_eval_k_rtheta(ce, r_val, theta_val);
+ out[i] = eval(ce, r_val, theta_val);
}
tdi_constraint_eval_free(&ce);