Introduction
Introduction Statistics Contact Development Disclaimer Help
tcompact_basin.jl - granular-basin - tectonic deformation experiments with Gran…
git clone git://src.adamsgaard.dk/granular-basin
Log
Files
Refs
README
---
tcompact_basin.jl (3279B)
---
1 import Granular
2 import JLD2
3 import PyPlot
4 import Dates
5
6 t_start = Dates.now() # Save the start time, print the end time later.
7
8
9 id = "simulation40000" # id of simulation to load
10 N = 20e3 # amount of stress to be applied
11 t_comp = 5.0 # compaction max duration [s]
12
13 sim = Granular.readSimulation("$(id)/init.jld2")
14 SimSettings = JLD2.load("$(id)/SimSettings.jld2")
15 #sim = Granular.readSimulation("$(id)/comp.jld2") #use this if continuin…
16
17 cd("$id")
18 sim.id = "compaction-N$(N)Pa"
19 SimSettings["N"] = N
20
21
22 Granular.zeroKinematics!(sim)
23
24 y_top = -Inf
25 for grain in sim.grains
26 grain.contact_viscosity_normal = 0
27 if y_top < grain.lin_pos[2] + grain.contact_radius
28 global y_top = grain.lin_pos[2] + grain.contact_radius
29 end
30 end
31
32 #sim.walls = Granular.WallLinearFrictionless[] # remove existing walls
33
34 Granular.addWallLinearFrictionless!(sim, [0., 1.],y_top,
35 bc="normal stress",
36 normal_stress=-N,
37 contact_viscosity_normal=1e3)
38
39 Granular.fitGridToGrains!(sim,sim.ocean)
40
41 y_bot = Inf
42 for grain in sim.grains
43 if y_bot > grain.lin_pos[2] - grain.contact_radius
44 global y_bot = grain.lin_pos[2] - grain.contact_radius
45 end
46 end
47
48 #fixed_thickness = 2. * SimSettings["r_max"]
49 #for grain in sim.grains
50 # if grain.lin_pos[2] <= fixed_thickness
51 # grain.fixed = true # set x and y acceleration to zero
52 # end
53 #end
54
55 Granular.resetTime!(sim)
56 #sim.time_iteration = 0
57 #sim.time = 0.0
58 #sim.file_time_since_output_file = 0.
59 Granular.setTotalTime!(sim,t_comp)
60
61 time = Float64[]
62 compaction = Float64[]
63 effective_normal_stress = Float64[]
64
65 saved5sec = false
66 saved10sec = false
67
68 while sim.time < sim.time_total
69
70 for i = 1:100 # run for a while before measuring the state of the to…
71 Granular.run!(sim, single_step=true)
72 end
73
74 if sim.time > 5.0 && saved5sec == false
75 Granular.writeSimulation(sim,filename = "comp5sec.jld2")
76 global saved5sec = true
77 end
78
79 if sim.time > 10.0 && saved10sec == false
80 Granular.writeSimulation(sim,filename = "comp10sec.jld2")
81 global saved10sec = true
82 end
83
84 append!(time, sim.time)
85 append!(compaction, sim.walls[1].pos)
86 append!(effective_normal_stress, Granular.getWallNormalStress(sim))
87
88 end
89
90 defined_normal_stress = ones(size(effective_normal_stress,1)) *
91 Granular.getWallNormalStress(sim, stress_type="effective")
92
93 PyPlot.subplot(211)
94 PyPlot.subplots_adjust(hspace=0.0)
95 ax1 = PyPlot.gca()
96 PyPlot.setp(ax1[:get_xticklabels](),visible=false) # Disable x tick labe…
97 PyPlot.plot(time, compaction)
98 PyPlot.ylabel("Top wall height [m]")
99 PyPlot.subplot(212, sharex=ax1)
100 PyPlot.plot(time, defined_normal_stress)
101 PyPlot.plot(time, effective_normal_stress)
102 PyPlot.xlabel("Time [s]")
103 PyPlot.ylabel("Normal stress [Pa]")
104 PyPlot.savefig(sim.id * "-time_vs_compaction-stress.pdf")
105 PyPlot.clf()
106
107 cd("..")
108
109 JLD2.save("simulation$(ngrains)/SimSettings.jld2", SimSettings)
110
111 Granular.writeSimulation(sim,filename = "$(id)/comp.jld2")
112
113 #Granular.writeSimulation(sim,filename = "$(id)/comp10sec.jld2")
114
115 # print time elapsed
116 t_now = Dates.now()
117 dur = Dates.canonicalize(t_now-t_start)
118 print("Time elapsed: ",dur)
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.