diff options
Diffstat (limited to 'init.c')
-rw-r--r-- | init.c | 11 |
1 files changed, 9 insertions, 2 deletions
@@ -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); |