1d_fd_simple_shear

continuum model for granular flows with pore-pressure dynamics
git clone git://src.adamsgaard.dk/1d_fd_simple_shear
Log | Files | Refs | README | LICENSE Back to index

commit ee86ce5341929a56fed789f70797823d172f113a
parent 400068f8de728591976cfe3ae79d324009a1787e
Author: Anders Damsgaard <anders@adamsgaard.dk>
Date:   Thu, 16 Apr 2020 13:28:26 +0200

Move parameter_defaults.h into simulation.[ch]

Diffstat:
M1d_fd_simple_shear.c | 2--
MMakefile | 1-
Mmax_depth_simple_shear.c | 1-
Dparameter_defaults.h | 116-------------------------------------------------------------------------------
Msimulation.c | 108++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
Msimulation.h | 2++
6 files changed, 109 insertions(+), 121 deletions(-)

diff --git a/1d_fd_simple_shear.c b/1d_fd_simple_shear.c @@ -8,8 +8,6 @@ #include "arg.h" #include "fluid.h" -#include "parameter_defaults.h" - /* relative tolerance criteria for granular fluidity solver */ #define RTOL 1e-5 #define MAX_ITER_1D_FD_SIMPLE_SHEAR 10000 diff --git a/Makefile b/Makefile @@ -9,7 +9,6 @@ HDR = \ arg.h\ arrays.h\ fluid.h\ - parameter_defaults.h\ simulation.h BIN = \ 1d_fd_simple_shear\ diff --git a/max_depth_simple_shear.c b/max_depth_simple_shear.c @@ -6,7 +6,6 @@ #include <time.h> #include "simulation.h" -#include "parameter_defaults.h" #include "arg.h" #define EPS 1e-12 diff --git a/parameter_defaults.h b/parameter_defaults.h @@ -1,116 +0,0 @@ -#ifndef PARAMETER_DEFAULTS_H_ -#define PARAMETER_DEFAULTS_H_ - -#include <math.h> -#include <stdio.h> -#include "arrays.h" -#include "simulation.h" - -#define DEFAULT_SIMULATION_NAME "unnamed_simulation" - -/* Simulation settings */ -void -init_sim(struct simulation *sim) -{ - snprintf(sim->name, sizeof(sim->name), DEFAULT_SIMULATION_NAME); - - 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->phi = initval(0.25, 1); - sim->d = 0.04; /* Damsgaard et al 2013 */ - - sim->transient = 0; - sim->phi_min = 0.25; - sim->phi_max = 0.55; - sim->dilatancy_angle = 1.0; - - /* Iverson et al 1997, 1998: Storglaciaren till */ - /* sim->mu_s = tan(DEG2RAD(26.3)); */ - /* sim->C = 5.0e3; */ - /* sim->phi = initval(0.22, 1); */ - /* sim->d = ??; */ - - /* Iverson et al 1997, 1998: Two Rivers till */ - /* sim->mu_s = tan(DEG2RAD(17.8)); */ - /* sim->C = 14.0e3; */ - /* sim->phi = initval(0.37, 1); */ - /* sim->d = ??; */ - - /* Tulaczyk et al 2000a: Upstream B till */ - /* sim->mu_s = tan(DEG2RAD(23.9)); */ - /* sim->C = 3.0e3; */ - /* 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->origo_z = 0.0; - sim->L_z = 1.0; - - /* temporal settings */ - sim->t = 0.0; - sim->dt = 2.0; - sim->t_end = 1.0; - sim->file_dt = 0.1; - 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 0 deg C */ - sim->beta_f = 3.9e-10; /* doi:10.1063/1.1679903 */ - sim->mu_f = 1.787e-3; /* Cuffey and Paterson 2010 */ - - /* Damsgaard et al 2015 */ - sim->k = initval(1.9e-15, 1); - - /* Iverson et al 1994: Storglaciaren */ - /* sim->k = initval(1.3e-14, 1); */ - - /* Engelhardt et al 1990: Upstream B */ - /* sim->k = initval(2.0e-16, 1); */ - - /* Leeman et al 2016: Upstream B till */ - /* sim->k = initval(4.9e-17, 1); */ - - /* no fluid-pressure variations */ - sim->p_f_top = 0.0; - sim->p_f_mod_ampl = 0.0; - sim->p_f_mod_freq = 1.0; - sim->p_f_mod_phase = 0.0; - sim->p_f_mod_pulse_time = NAN; - sim->p_f_mod_pulse_shape = 0; -} - -#endif diff --git a/simulation.c b/simulation.c @@ -5,6 +5,7 @@ #include "simulation.h" #include "fluid.h" + /* #define SHOW_PARAMETERS */ /* relative tolerance criteria for granular fluidity solver */ @@ -19,6 +20,112 @@ #define RTOL_STRESS 1e-3 #define MAX_ITER_STRESS 20000 + +/* Simulation settings */ +void +init_sim(struct simulation *sim) +{ + snprintf(sim->name, sizeof(sim->name), DEFAULT_SIMULATION_NAME); + + 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->phi = initval(0.25, 1); + sim->d = 0.04; /* Damsgaard et al 2013 */ + + sim->transient = 0; + sim->phi_min = 0.25; + sim->phi_max = 0.55; + sim->dilatancy_angle = 1.0; + + /* Iverson et al 1997, 1998: Storglaciaren till */ + /* sim->mu_s = tan(DEG2RAD(26.3)); */ + /* sim->C = 5.0e3; */ + /* sim->phi = initval(0.22, 1); */ + /* sim->d = ??; */ + + /* Iverson et al 1997, 1998: Two Rivers till */ + /* sim->mu_s = tan(DEG2RAD(17.8)); */ + /* sim->C = 14.0e3; */ + /* sim->phi = initval(0.37, 1); */ + /* sim->d = ??; */ + + /* Tulaczyk et al 2000a: Upstream B till */ + /* sim->mu_s = tan(DEG2RAD(23.9)); */ + /* sim->C = 3.0e3; */ + /* 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->origo_z = 0.0; + sim->L_z = 1.0; + + /* temporal settings */ + sim->t = 0.0; + sim->dt = 2.0; + sim->t_end = 1.0; + sim->file_dt = 0.1; + 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 0 deg C */ + sim->beta_f = 3.9e-10; /* doi:10.1063/1.1679903 */ + sim->mu_f = 1.787e-3; /* Cuffey and Paterson 2010 */ + + /* Damsgaard et al 2015 */ + sim->k = initval(1.9e-15, 1); + + /* Iverson et al 1994: Storglaciaren */ + /* sim->k = initval(1.3e-14, 1); */ + + /* Engelhardt et al 1990: Upstream B */ + /* sim->k = initval(2.0e-16, 1); */ + + /* Leeman et al 2016: Upstream B till */ + /* sim->k = initval(4.9e-17, 1); */ + + /* no fluid-pressure variations */ + sim->p_f_top = 0.0; + sim->p_f_mod_ampl = 0.0; + sim->p_f_mod_freq = 1.0; + sim->p_f_mod_phase = 0.0; + sim->p_f_mod_pulse_time = NAN; + sim->p_f_mod_pulse_shape = 0; +} + void prepare_arrays(struct simulation *sim) { @@ -738,4 +845,3 @@ coupled_shear_solver(struct simulation *sim, return 0; } - diff --git a/simulation.h b/simulation.h @@ -3,6 +3,7 @@ #include "arrays.h" +#define DEFAULT_SIMULATION_NAME "unnamed_simulation" #define PI 3.14159265358979323846 #define DEG2RAD(x) (x*PI/180.0) @@ -115,6 +116,7 @@ struct simulation { double* tan_psi; /* tan(dilatancy_angle) [-] */ }; +void init_sim(struct simulation *sim); void prepare_arrays(struct simulation *sim); void free_arrays(struct simulation *sim);