Introduction
Introduction Statistics Contact Development Disclaimer Help
tminor changes - granular-basin - tectonic deformation experiments with Granula…
git clone git://src.adamsgaard.dk/granular-basin
Log
Files
Refs
README
---
commit 6c6af449923d4493800be1e01ef010e12df75372
parent 5e50d09f3c24e4b80cc61b4f64c53774901d1106
Author: esbenpalmstrom <[email protected]>
Date: Thu, 2 Dec 2021 10:20:45 +0100
minor changes
Diffstat:
M compact_basin.jl | 17 +++++++++++++++--
M deform_basin.jl | 71 +++++++++++++++++++++++++----…
M init_basin.jl | 9 +++++----
M layer_basin.jl | 2 +-
4 files changed, 80 insertions(+), 19 deletions(-)
---
diff --git a/compact_basin.jl b/compact_basin.jl
t@@ -8,9 +8,9 @@ t_start = Dates.now() # Save the start time, print the end tim…
# lav en lille test? se om dit appendede carpet stadig er forbundet til hoved-
# simulationsobjektet
-id = "simulation500" # id of simulation to load
+id = "simulation35000" # id of simulation to load
N = 20e3 # amount of stress to be applied
-t_comp = 3.0 # compaction max duration [s]
+t_comp = 15.0 # compaction max duration [s]
sim = Granular.readSimulation("$(id)/init.jld2")
SimSettings = SimSettings = JLD2.load("$(id)/SimSettings.jld2")
t@@ -63,12 +63,25 @@ time = Float64[]
compaction = Float64[]
effective_normal_stress = Float64[]
+saved5sec = false
+saved10sec = false
+
while sim.time < sim.time_total
for i = 1:100 # run for a while before measuring the state of the top wall
Granular.run!(sim, single_step=true)
end
+ if sim.time > 5.0 && saved5sec == false
+ Granular.writeSimulation(sim,filename = "comp5sec.jld2")
+ global saved5sec = true
+ end
+
+ if sim.time > 10.0 && saved10sec == false
+ Granular.writeSimulation(sim,filename = "comp10sec.jld2")
+ global saved10sec = true
+ end
+
append!(time, sim.time)
append!(compaction, sim.walls[1].pos)
append!(effective_normal_stress, Granular.getWallNormalStress(sim))
diff --git a/deform_basin.jl b/deform_basin.jl
t@@ -6,16 +6,26 @@ t_start = Dates.now()
# User defined settings
-id = "simulation500" # folder name of simulation
+id = "simulation250" # folder name of simulation
hw_ratio = 0.2 # height/width ratio of indenter
grain_radius = 0.05 # grain radius of grains in indenter
-def_time = 2.0 # time spent deforming
+def_time = 4.0 # time spent deforming
deformation_type = "shortening" # "diapir" or "shortening"
# diapir will only introduce an indenter while
# inversion will also add moving east/west wal…
- # that follow the contraction of the carpet
+
+shortening_type = "iterative" # type of shortening should be "iterative"…
+
+shortening_ratio = 0.10 # ratio of shortening of of basin, if shorteni…
+ # is "fixed". 0.10 would mean basin is shorten…
+
+
+save_type = "iterative" # "iterative" or "overwrite"
+
+
+
t_start = Dates.now()
t@@ -48,7 +58,7 @@ grain_radius = 0.05
vertex_x = init_vertex_pos[1]
vertex_y = width*hw_ratio*sin((pi/width)*vertex_x)
-boomerang_vel = 0.5 # upward velocity of the indeter
+boomerang_vel = 0.2 # upward velocity of the indeter
for i = 0:grain_radius*2:width#manipulate the ocean grid
t@@ -88,7 +98,19 @@ Granular.setOutputFileInterval!(sim, .01)
Granular.resetTime!(sim)
cd("$id")
-sim.id = "deformed"
+if save_type == "overwrite"
+ sim.id = "deformed"
+end
+
+if save_type == "iterative"
+ global save_index = 1
+ while isfile("deformed$(save_index).jld2") == true
+ global save_index += 1
+ end
+ sim.id = "deformed$(save_index)"
+end
+
+
sim.walls = Granular.WallLinearFrictionless[] # remove existing walls
#find the edge grains of the carpet
t@@ -142,14 +164,39 @@ global checked_done = false
while sim.time < sim.time_total
- if sim.grains[right_edge_index].lin_vel[1] > boomerang_vel/3 && checked_do…
- sim.walls[1].vel = -boomerang_vel
- sim.walls[2].vel = boomerang_vel
- global checked_done = true
+ if shortening_type == "iterative"
+ if sim.grains[right_edge_index].lin_vel[1] > boomerang_vel/2 && checke…
+ sim.walls[1].vel = -boomerang_vel
+ sim.walls[2].vel = boomerang_vel
+ global checked_done = true
+ end
+
+ #modulate the speed of the compression walls by the speed of the outer…
+ if abs(sim.walls[2].vel) > boomerang_vel/2 || abs(sim.walls[2].vel) > …
+ #if boomerang_vel < abs(sim.grains[right_edge_index].lin_vel[1]) |…
+ sim.walls[2].vel *= 0.98
+ end
+ #if abs(sim.walls[2].vel) < abs(sim.grains[right_edge_index].lin_vel[1…
+ if abs(sim.walls[2].vel) < abs(sim.grains[right_edge_index].lin_vel[1]…
+ sim.walls[2].vel *=1.02
+ end
+
+ #if boomerang_vel < abs(sim.grains[left_edge_index].lin_vel[1]) || abs…
+ if abs(sim.walls[1].vel) > boomerang_vel/2 || abs(sim.walls[1].vel) > …
+ sim.walls[1].vel *= 0.98
+ end
+ #if abs(sim.walls[1].vel) < abs(sim.grains[left_edge_index].lin_vel[1]…
+ if abs(sim.walls[1].vel) < abs(sim.grains[left_edge_index].lin_vel[1])…
+ sim.walls[1].vel *=1.02
+ end
end
- #sim.walls[1].vel = sim.grains[left_edge_index].lin_vel[1]
- #sim.walls[2].vel = sim.grains[right_edge_index].lin_vel[1]
+ if shortening_type == "fixed" && checked_done == false
+ wall_vel = (length*shortening_ratio)/sim.time_total
+ sim.walls[1].vel = -wall_vel/2
+ sim.walls[2].vel = wall_vel/2
+ global checked_done = true
+ end
Granular.run!(sim,single_step = true)
t@@ -162,7 +209,7 @@ end
cd("..")
Granular.writeSimulation(sim,
- filename = "$(id)/deformed.jld2")
+ filename = "$(id)/deformed$(save_index).jld2")
#print time elapsed
t_now = Dates.now()
diff --git a/init_basin.jl b/init_basin.jl
t@@ -7,12 +7,12 @@ t_start = Dates.now() # Save the start time, print…
############# Initialization Settings #############
-t_init = 0.5 # duration of initialization [s]
-t_stack = 0.5 # duration for each stack to settle [s]
+t_init = 1.5 # duration of initialization [s]
+t_stack = 1.0 # duration for each stack to settle [s]
g = [0.,-9.8] # vector for direction and magnitude of gravit…
-ngrains = 500 # total number of grains
+ngrains = 250 # total number of grains
aspect_ratio = 4 # should be x times as wide as it is tall
mkpath("simulation$(ngrains)")
t@@ -65,7 +65,8 @@ Granular.regularPacking!(sim, #simulation …
origo = [0.0,0.0],
size_distribution=gsd_type,
size_distribution_parameter=gsd_powerlaw_exponent,
- seed=gsd_seed)
+ seed=gsd_seed,
+ color = 1)
# set the indicated mechanical parameters for all grains
diff --git a/layer_basin.jl b/layer_basin.jl
t@@ -3,7 +3,7 @@ import JLD2
import PyPlot
import Dates
-id = "simulation500" # id of simulation to load, just write the folder
+id = "simulation250" # id of simulation to load, just write the folder
# name here
# Layer interface positions
You are viewing proxied material from mx1.adamsgaard.dk. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.