From cc74493091be7fd22ebf7c21bcaf8ef10a9bc949 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Fri, 11 May 2018 09:04:15 +0200 Subject: Implement evaluating derivatives of k_rtheta. --- init.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) (limited to 'init.c') 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); -- cgit v1.2.3