cngf-pf

continuum model for granular flows with pore-pressure dynamics (renamed from 1d_fd_simple_shear)
git clone git://src.adamsgaard.dk/cngf-pf # fast
git clone https://src.adamsgaard.dk/cngf-pf.git # slow
Log | Files | Refs | README | LICENSE Back to index

commit 7f7febf3788d9fc8794e456555332e50123ed6bc
parent 2be72b1f936e1bef3a3e6f5464978d6ead9f3590
Author: Anders Damsgaard <anders@adamsgaard.dk>
Date:   Thu,  2 Sep 2021 14:12:58 +0200

minor formatting changes

Diffstat:
Msimulation.c | 56++++++++++++++++----------------------------------------
1 file changed, 16 insertions(+), 40 deletions(-)

diff --git a/simulation.c b/simulation.c @@ -30,32 +30,21 @@ init_sim(struct simulation *sim) err(1, "%s: could not write simulation name", __func__); sim->G = 9.81; - sim->P_wall = 120e3; sim->mu_wall = 0.45; sim->v_x_bot = 0.0; sim->v_x_fix = NAN; sim->v_x_limit = NAN; - - sim->nz = -1; /* cell size equals grain size if negative */ - - /* lower values of A mean that the velocity curve can have sharper - * curves, e.g. at the transition from μ ≈ μ_s */ - sim->A = 0.40; /* Loose fit to Damsgaard et al 2013 */ - - /* lower values of b mean larger shear velocity for a given stress - * ratio above yield */ - sim->b = 0.9377; /* Henann and Kamrin 2016 */ - - /* Henann and Kamrin 2016 */ - /* sim->mu_s = 0.3819; */ - /* sim->C = 0.0; */ - /* Damsgaard et al 2013 */ - sim->mu_s = tan(DEG2RAD(22.0)); - sim->C = 0.0; + sim->nz = -1; /* cell size equals grain size if negative */ + + sim->A = 0.40; /* Loose fit to Damsgaard et al 2013 */ + sim->b = 0.9377; /* Henann and Kamrin 2016 */ + /* sim->mu_s = 0.3819; */ /* Henann and Kamrin 2016 */ + /* sim->C = 0.0; */ /* Henann and Kamrin 2016 */ + sim->mu_s = tan(DEG2RAD(22.0)); /* Damsgaard et al 2013 */ + sim->C = 0.0; /* Damsgaard et al 2013 */ sim->phi = initval(0.25, 1); - sim->d = 0.04; /* Damsgaard et al 2013 */ - + sim->d = 0.04; /* Damsgaard et al 2013 */ sim->transient = 0; sim->phi_min = 0.20; sim->phi_max = 0.55; @@ -79,39 +68,29 @@ init_sim(struct simulation *sim) /* sim->phi = initval(0.35, 1); */ /* sim->d = ??; */ - /* grain material density [kg/m^3] */ - sim->rho_s = 2.6e3; /* Damsgaard et al 2013 */ - - /* spatial settings */ + sim->rho_s = 2.6e3; /* Damsgaard et al 2013 */ sim->origo_z = 0.0; sim->L_z = 1.0; - - /* temporal settings */ sim->t = 0.0; sim->dt = 1.0; sim->t_end = 1.0; sim->file_dt = 1.0; sim->n_file = 0; - - /* fluid settings */ sim->fluid = 0; - sim->rho_f = 1e3; - /* Water at 20 deg C, Goren et al 2011 */ - /* sim->beta_f = 4.5e-10; */ - /* sim->mu_f = 1.0-3; */ + /* Water at 20 deg C */ + /* sim->beta_f = 4.5e-10; */ /* Goren et al 2011 */ + /* sim->mu_f = 1.0-3; */ /* Goren et al 2011 */ /* Water at 0 deg C */ sim->beta_f = 3.9e-10; /* doi:10.1063/1.1679903 */ sim->mu_f = 1.787e-3; /* Cuffey and Paterson 2010 */ sim->alpha = 1e-8; - sim->D = -1.0; /* disabled when negative */ - /* Damsgaard et al 2015 */ - sim->k = initval(1.9e-15, 1); + sim->k = initval(1.9e-15, 1); /* Damsgaard et al 2015 */ /* Iverson et al 1994: Storglaciaren */ /* sim->k = initval(1.3e-14, 1); */ @@ -395,8 +374,8 @@ check_simulation_parameters(struct simulation *sim) warn_parameter_value("constant diffusivity does not work in " "transient simulations", sim->D, &return_status); - } + if (return_status != 0) { fprintf(stderr, "error: aborting due to invalid parameter choices\n"); exit(return_status); @@ -785,7 +764,7 @@ temporal_increment(struct simulation *sim) for (i = 0; i < sim->nz; ++i) sim->phi[i] += sim->phi_dot[i] * sim->dt; - if (sim->fluid) { + if (sim->fluid) for (i = 0; i < sim->nz; ++i) { if (isnan(sim->p_f_dot[i])) { errx(1, "encountered NaN at sim->p_f_dot[%d] (t = %g s)", @@ -794,11 +773,9 @@ temporal_increment(struct simulation *sim) sim->p_f_ghost[i + 1] += sim->p_f_dot[i] * sim->dt; } } - } for (i = 0; i < sim->nz; ++i) sim->d_x[i] += sim->v_x[i] * sim->dt; - sim->t += sim->dt; } @@ -881,7 +858,6 @@ coupled_shear_solver(struct simulation *sim, r_norm_max = max(sim->g_r_norm, sim->nz); if (r_norm_max <= rel_tol && coupled_iter > 0) break; - if (coupled_iter++ >= max_iter) { fprintf(stderr, "coupled_shear_solver: "); fprintf(stderr, "Transient solution did not converge "