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