From 2926c4ea6f9e34b8962a08dff372252537473bda Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sun, 28 Aug 2016 10:07:20 +0200 Subject: basis: disentangle the API from the global solver API --- solve.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'solve.c') diff --git a/solve.c b/solve.c index 5803d87..fe47832 100644 --- a/solve.c +++ b/solve.c @@ -38,7 +38,6 @@ static int brill_construct_matrix(const BDContext *bd, double *mat, double *rhs) { BDPriv *s = bd->priv; - const double *sf = bd->basis_scale_factor; double *basis_val, *basis_dval, *basis_d2val; int idx_coeff_rho, idx_coeff_z, idx_grid_rho, idx_grid_z; @@ -56,11 +55,11 @@ static int brill_construct_matrix(const BDContext *bd, double *mat, } } for (int j = 0; j < s->nb_colloc_points[i]; j++) { - double coord = s->basis[i]->colloc_point(s->nb_coeffs[i], j, sf[i]); + double coord = bdi_basis_colloc_point(s->basis[i], j, s->nb_coeffs[i]); for (int k = 0; k < s->nb_coeffs[i]; k++) { - basis[i][0][j * s->nb_coeffs[i] + k] = s->basis[i]->eval (coord, k, sf[i]); - basis[i][1][j * s->nb_coeffs[i] + k] = s->basis[i]->eval_diff1(coord, k, sf[i]); - basis[i][2][j * s->nb_coeffs[i] + k] = s->basis[i]->eval_diff2(coord, k, sf[i]); + basis[i][0][j * s->nb_coeffs[i] + k] = bdi_basis_eval(s->basis[i], BS_EVAL_TYPE_VALUE, coord, k); + basis[i][1][j * s->nb_coeffs[i] + k] = bdi_basis_eval(s->basis[i], BS_EVAL_TYPE_DIFF1, coord, k); + basis[i][2][j * s->nb_coeffs[i] + k] = bdi_basis_eval(s->basis[i], BS_EVAL_TYPE_DIFF2, coord, k); } } } @@ -73,10 +72,10 @@ static int brill_construct_matrix(const BDContext *bd, double *mat, #define D2BASIS_Z (basis[1][2][idx_grid_z * s->nb_coeffs[1] + idx_coeff_z]) for (idx_grid_z = 0; idx_grid_z < s->nb_colloc_points[1]; idx_grid_z++) { - double z_val = s->basis[1]->colloc_point(s->nb_coeffs[1], idx_grid_z, sf[1]); + double z_val = bdi_basis_colloc_point(s->basis[1], idx_grid_z, s->nb_coeffs[1]); for (idx_grid_rho = 0; idx_grid_rho < s->nb_colloc_points[0]; idx_grid_rho++) { - double x_val = s->basis[0]->colloc_point(s->nb_coeffs[0], idx_grid_rho, sf[0]); + double x_val = bdi_basis_colloc_point(s->basis[0], idx_grid_rho, s->nb_coeffs[0]); double d2q = bdi_qfunc_eval(s->qfunc, x_val, z_val, 2) + bdi_qfunc_eval(s->qfunc, x_val, z_val, 6); int idx_grid = idx_grid_z * s->nb_colloc_points[0] + idx_grid_rho; -- cgit v1.2.3