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 */
};