tIntroduce functions for transient dynamics - cngf-pf - continuum model for gra… | |
git clone git://src.adamsgaard.dk/cngf-pf | |
Log | |
Files | |
Refs | |
README | |
LICENSE | |
--- | |
commit d808b3f1328fbb79c15780d77112b676320c51d5 | |
parent 0bc432ae20a857af1cc3b8dfd9468e0f8b9154fc | |
Author: Anders Damsgaard <[email protected]> | |
Date: Thu, 2 Apr 2020 16:50:05 +0200 | |
Introduce functions for transient dynamics | |
Diffstat: | |
M 1d_fd_simple_shear.c | 9 +++++++++ | |
M simulation.c | 83 +++++++++++++++++++++++++++++… | |
2 files changed, 92 insertions(+), 0 deletions(-) | |
--- | |
diff --git a/1d_fd_simple_shear.c b/1d_fd_simple_shear.c | |
t@@ -268,6 +268,13 @@ main(int argc, char* argv[]) | |
exit(1); | |
compute_effective_stress(); | |
+ if (sim.transient) { | |
+ compute_inertia_number(); /* new… | |
+ compute_critical_state_porosity(); /* new… | |
+ compute_tan_dilatancy_angle(); /* new… | |
+ compute_critical_state_shear_stress(); /* new… | |
+ compute_shear_stress(); /* new… | |
+ } | |
compute_friction(); | |
compute_cooperativity_length(); | |
t@@ -277,6 +284,8 @@ main(int argc, char* argv[]) | |
compute_shear_strain_rate_plastic(); | |
compute_shear_velocity(); | |
+ if (sim.transient) | |
+ compute_porosity_change(); /* new… | |
if (!isnan(sim.v_x_limit) || !isnan(sim.v_x_fix)) { | |
if (!isnan(sim.v_x_limit)) { | |
diff --git a/simulation.c b/simulation.c | |
t@@ -252,6 +252,89 @@ lithostatic_pressure_distribution() | |
(sim.L_z - sim.z[i]); | |
} | |
+/* NEW FUNCTIONS START */ | |
+ | |
+void | |
+compute_inetria_number() | |
+{ | |
+ int i; | |
+ for (i=0; i<sim.nz; ++i) | |
+ sim.I[i] = sim.gamma_dot_p[i]*sim.d | |
+ /sqrt(sim.sigma_n_eff[i]/sim.rho_s); | |
+} | |
+void | |
+compute_critical_state_porosity() | |
+{ | |
+ int i; | |
+ for (i=0; i<sim.nz; ++i) | |
+ sim.phi_c[i] = sim.phi_min + (sim.phi_max - sim.phi_min)*sim.I… | |
+} | |
+ | |
+void | |
+compute_critical_state_friction() | |
+{ | |
+ int i; | |
+ if (sim.fluid) | |
+ for (i=0; i<sim.nz; ++i) | |
+ sim.mu_c[i] = sim.mu_wall/ | |
+ (sim.sigma_n_eff[i]/(sim.P_wall - sim.p_f… | |
+ else | |
+ for (i=0; i<sim.nz; ++i) | |
+ sim.mu_c[i] = sim.mu_wall/ | |
+ (1.0 + (1.0 - sim.phi[i])*sim.rho_s*sim.G* | |
+ (sim.L_z - sim.z[i])/sim.P_wall); | |
+} | |
+ | |
+void | |
+compute_friction() | |
+{ | |
+ int i; | |
+ for (i=0; i<sim.nz; ++i) | |
+ sim.mu[i] = sim.tau[i]/sim.sigma_n_eff[i]; | |
+} | |
+ | |
+void | |
+compute_critical_state_shear_stress() | |
+{ | |
+ int i; | |
+ for (i=0; i<sim.nz; ++i) | |
+ sim.tau_c[i] = sim.mu_c[i]*sim.sigma_n_eff[i]; | |
+} | |
+ | |
+void | |
+compute_shear_stress() | |
+{ | |
+ int i; | |
+ for (i=0; i<sim.nz; ++i) | |
+ sim.tau[i] = sim.tan_dilatancy_angle[i]*sim.sigma_n_eff[i] + s… | |
+} | |
+ | |
+void | |
+compute_tan_dilatancy_angle() | |
+{ | |
+ int i; | |
+ for (i=0; i<sim.nz; ++i) | |
+ sim.tan_dilatancy_angle[i] = sim.K*(sim.phi_c[i] - sim.phi[i]); | |
+} | |
+ | |
+void | |
+compute_porosity_change() | |
+{ | |
+ int i; | |
+ for (i=0; i<sim.nz; ++i) | |
+ sim.phi[i] += sim.tan_dilatancy_angle[i]*sim.gamma_dot_p[i]*si… | |
+} | |
+ | |
+void | |
+compute_permeability() | |
+{ | |
+ int i; | |
+ for (i=0; i<sim.nz; ++i) | |
+ sim.k[i] = pow(sim.d, 2.0)/180.0 * pow(sim.phi[i], 3.0)/pow(1.… | |
+} | |
+ | |
+/* NEW FUNCTIONS END */ | |
+ | |
void | |
compute_friction() | |
{ |