diff options
Diffstat (limited to 'src/maximal_slicing_axi.c')
-rw-r--r-- | src/maximal_slicing_axi.c | 27 |
1 files changed, 15 insertions, 12 deletions
diff --git a/src/maximal_slicing_axi.c b/src/maximal_slicing_axi.c index 5e7f07d..4ed0acc 100644 --- a/src/maximal_slicing_axi.c +++ b/src/maximal_slicing_axi.c @@ -198,22 +198,20 @@ static CoordPatch *get_coord_patch(MaximalSlicingContext *ms, int level) return cp; } -static int context_init(cGH *cctkGH, MaximalSlicingContext **ctx) +int msa_context_init(cGH *gh, MaximalSlicingContext **ctx, + int basis_order0, int basis_order1, double outer_bound, double filter_power) { MaximalSlicingContext *ms; int ret; - DECLARE_CCTK_ARGUMENTS; - DECLARE_CCTK_PARAMETERS; - ms = calloc(1, sizeof(*ms)); if (!ms) return -ENOMEM; - ms->gh = cctkGH; + ms->gh = gh; - ret = ms_solver_init(&ms->solver, cctkGH, basis_order_r, basis_order_z, - scale_factor, filter_power, 0.0); + ret = ms_solver_init(&ms->solver, gh, basis_order0, basis_order1, + outer_bound, filter_power, 0.0); if (ret < 0) return ret; @@ -222,7 +220,7 @@ static int context_init(cGH *cctkGH, MaximalSlicingContext **ctx) return 0; } -static void context_free(MaximalSlicingContext **pms) +void msa_context_free(MaximalSlicingContext **pms) { MaximalSlicingContext *ms = *pms; @@ -294,6 +292,11 @@ void msa_lapse_eval(MaximalSlicingContext *ms, double *dst) // 1.0, alp, cctk_lsh[0] * cctk_lsh[1]); } +void msa_lapse_solve(MaximalSlicingContext *ms) +{ + ms_solver_solve(ms->solver); +} + void maximal_slicing_axi_initlapse(CCTK_ARGUMENTS) { MaximalSlicingContext *ms; @@ -303,7 +306,7 @@ void maximal_slicing_axi_initlapse(CCTK_ARGUMENTS) int i, ret; - context_init(cctkGH, &ms); + msa_context_init(cctkGH, &ms, basis_order_r, basis_order_z, 64.0, filter_power); ms_solver_solve(ms->solver); @@ -311,7 +314,7 @@ void maximal_slicing_axi_initlapse(CCTK_ARGUMENTS) memcpy(alp, alpha, sizeof(*alp) * cctk_lsh[0] * cctk_lsh[2]); - context_free(&ms); + msa_context_free(&ms); } void maximal_slicing_axi(CCTK_ARGUMENTS) @@ -329,10 +332,10 @@ void maximal_slicing_axi(CCTK_ARGUMENTS) /* on the first run, init the solver */ if (!ms) - context_init(cctkGH, &ms); + msa_context_init(cctkGH, &ms, basis_order_r, basis_order_z, 64.0, filter_power); CCTK_TimerStart("MaximalSlicingAxi_Solve"); - ms_solver_solve(ms->solver); + msa_lapse_solve(ms); CCTK_TimerStop("MaximalSlicingAxi_Solve"); if (export_coeffs) |