tuse separate temporary storage arrays for fluid and transient solver - cngf-pf - continuum model for granular flows with pore-pressure dynamics (renamed from 1d_fd_simple_shear) (HTM) git clone git://src.adamsgaard.dk/cngf-pf (DIR) Log (DIR) Files (DIR) Refs (DIR) README (DIR) LICENSE --- (DIR) commit 1b7a4d4eb534ef7b24357bb256d4bb7348047ce4 (DIR) parent 97aeefc97cce4d47e465c51adfec76f34131257a (HTM) Author: Anders Damsgaard <anders@adamsgaard.dk> Date: Tue, 8 Dec 2020 09:35:36 +0100 use separate temporary storage arrays for fluid and transient solver Reported by Ian Madden. Thanks! Diffstat: M fluid.c | 4 ++-- M simulation.c | 2 ++ M simulation.h | 1 + 3 files changed, 5 insertions(+), 2 deletions(-) --- (DIR) diff --git a/fluid.c b/fluid.c t@@ -232,7 +232,7 @@ darcy_solver_1d(struct simulation *sim, copy_values(sim->p_f_ghost, sim->tmp_ghost, sim->nz + 2); for (iter = 0; iter < max_iter; ++iter) { - copy_values(sim->p_f_dot_impl, sim->old_val, sim->nz); + copy_values(sim->p_f_dot_impl, sim->fluid_old_val, sim->nz); #ifdef DEBUG puts(".. p_f_ghost bfore BC:"); t@@ -267,7 +267,7 @@ darcy_solver_1d(struct simulation *sim, for (i = 0; i < sim->nz - 1; ++i) sim->p_f_dot_impl_r_norm[i] = fabs(residual(sim->p_f_dot_impl[i], - sim->old_val[i])); + sim->fluid_old_val[i])); r_norm_max = max(sim->p_f_dot_impl_r_norm, sim->nz - 1); #ifdef DEBUG (DIR) diff --git a/simulation.c b/simulation.c t@@ -168,6 +168,7 @@ prepare_arrays(struct simulation *sim) sim->I = zeros(sim->nz); sim->tan_psi = zeros(sim->nz); sim->old_val = empty(sim->nz); + sim->fluid_old_val = empty(sim->nz); sim->tmp_ghost = empty(sim->nz + 2); } t@@ -197,6 +198,7 @@ free_arrays(struct simulation *sim) free(sim->I); free(sim->tan_psi); free(sim->old_val); + free(sim->fluid_old_val); free(sim->tmp_ghost); } (DIR) diff --git a/simulation.h b/simulation.h t@@ -123,6 +123,7 @@ struct simulation { double *I; /* inertia number [-] */ double *tan_psi; /* tan(dilatancy_angle) [-] */ double *old_val; /* temporary storage for iterative solvers */ + double *fluid_old_val;/* temporary storage for fluid iterative solver */ double *tmp_ghost; /* temporary storage for iterative solvers */ };