commit 3e8210c86b044cdc74ad726b0372612c7601f428
parent 96bd0ac1de86f9607c0d7a31e41dad321cd06761
Author: esbenpalmstrom <esbenpalmstroem@gmail.com>
Date: Fri, 26 Nov 2021 15:39:07 +0100
tried to fix the carpet
Diffstat:
4 files changed, 57 insertions(+), 50 deletions(-)
diff --git a/compact_basin.jl b/compact_basin.jl
@@ -8,7 +8,7 @@ t_start = Dates.now() # Save the start time, print the end time later.
# lav en lille test? se om dit appendede carpet stadig er forbundet til hoved-
# simulationsobjektet
-id = "simulation500" # id of simulation to load
+id = "simulation250" # id of simulation to load
N = 20e3 # amount of stress to be applied
t_comp = 3.0 # compaction max duration [s]
@@ -49,12 +49,12 @@ for grain in sim.grains
end
end
-fixed_thickness = 2. * SimSettings["r_max"]
-for grain in sim.grains
- if grain.lin_pos[2] <= fixed_thickness
- grain.fixed = true # set x and y acceleration to zero
- end
-end
+#fixed_thickness = 2. * SimSettings["r_max"]
+#for grain in sim.grains
+# if grain.lin_pos[2] <= fixed_thickness
+# grain.fixed = true # set x and y acceleration to zero
+# end
+#end
Granular.resetTime!(sim)
Granular.setTotalTime!(sim,t_comp)
diff --git a/deform_basin.jl b/deform_basin.jl
@@ -6,7 +6,7 @@ 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
@@ -116,6 +116,8 @@ Granular.addWallLinearFrictionless!(sim, [0.,1.],
y_bot_pre,
bc = "fixed")
+
+
while sim.time < sim.time_total
# for grain in sim.grains
#
diff --git a/init_basin.jl b/init_basin.jl
@@ -7,12 +7,12 @@ t_start = Dates.now() # Save the start time, print the end time later.
############# Initialization Settings #############
-t_init = 0.8 # duration of initialization [s]
-t_stack = 0.8 # duration for each stack to settle [s]
+t_init = 0.5 # duration of initialization [s]
+t_stack = 0.5 # duration for each stack to settle [s]
g = [0.,-9.8] # vector for direction and magnitude of gravitational acceleration of grains
-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)")
@@ -51,7 +51,7 @@ SimSettings["ngrains"] = ngrains
SimSettings["r_min"] = r_min
SimSettings["r_max"] = r_max
-
+# this section has been moved further up
############# Initialize simulation and grains #############
@@ -121,7 +121,6 @@ for i = 1:stacks
end
end
-
# add duplicate grains above the initialized grains
for grain in temp.grains
@@ -173,6 +172,7 @@ end
+
############# Lay a carpet #############
carpet = Granular.createSimulation(id="init_carpet") # new simulation object for the carpet
@@ -198,18 +198,29 @@ for i = left_edge+(bot_r/2):bot_r*1.99:left_edge+length
verbose = false,
tensile_strength = Inf,
shear_strength = Inf,
- contact_stiffness_normal = Inf,
- contact_stiffness_tangential = Inf,
- fixed = true,
+ #contact_stiffness_normal = Inf,
+ #contact_stiffness_tangential = Inf,
+ fixed = false,
color = 1)
end
+#Granular.fitGridToGrains!(carpet,carpet.ocean,verbose=false)
+
+
+
Granular.findContactsAllToAll!(carpet) # find the grain contacts
+
+
append!(sim.grains,carpet.grains) # add the carpet grains to the main simulation object
# since the assignment will point to the carpet object, changes made to the carpet
# object will appear in the main simulation object
+
+
+#reset the grain contacts and make them very old
+
+
for grain in sim.grains
grain.contacts[:] .= 0
grain.n_contacts = 0
@@ -223,10 +234,16 @@ for grain in sim.grains
grain.strength_heal_rate = 1 # new bond stengthening
end
-#Granular.findContactsAllToAll!(carpet) # find the grain contacts
Granular.fitGridToGrains!(sim,sim.ocean,verbose=false) # fit the ocean to the added grains
+Granular.setGridBoundaryConditions!(sim.ocean, "impermeable", "north south",
+ verbose=false)
+Granular.setGridBoundaryConditions!(sim.ocean, "impermeable", "east west",
+ verbose=false)
+
+#Granular.findContacts!(sim,method="ocean grid")
+
# run the simulation shortly, to let the stacked grains settle on the carpet
sim.time_iteration = 0
sim.time = 0.0
diff --git a/layer_basin.jl b/layer_basin.jl
@@ -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
@@ -22,12 +22,14 @@ contact_dynamic_friction = [0.4,0.05,0.4] # friction between grains
rotating = [true,true,true] # can grains rotate or not
color = [0,0,0]
-carpet_youngs_modulus = 2e7
-carpet_poissons_ratio = 0.185
-carpet_tensile_strength = 1e16
-carpet_contact_dynamic_friction = 0.4
-carpet_rotating = true
-carpet_shear_strength = 1e16
+#carpet_youngs_modulus = 2e7
+#carpet_poissons_ratio = 0.185
+#carpet_tensile_strength = 1e16
+#carpet_contact_dynamic_friction = 0.4
+#carpet_rotating = true
+#carpet_shear_strength = 1e16
+
+carpet
sim = Granular.readSimulation("$(id)/comp.jld2")
SimSettings = SimSettings = JLD2.load("$(id)/SimSettings.jld2")
@@ -78,18 +80,18 @@ for grain in sim.grains
grain.contact_dynamic_friction = contact_dynamic_friction[i-1]
grain.rotating = rotating[i-1]
grain.color = color[i-1]
- elseif grain.color == 1
- grain.youngs_modulus = carpet_youngs_modulus
- grain.poissons_ratio = carpet_poissons_ratio
- grain.tensile_strength = carpet_tensile_strength
- grain.shear_strength = carpet_shear_strength
- grain.contact_dynamic_friction = carpet_contact_dynamic_friction
- grain.rotating = carpet_rotating
+# elseif grain.color == 1
+# grain.youngs_modulus = carpet_youngs_modulus
+# grain.poissons_ratio = carpet_poissons_ratio
+# grain.tensile_strength = carpet_tensile_strength
+# grain.shear_strength = carpet_shear_strength
+# grain.contact_dynamic_friction = carpet_contact_dynamic_friction
+# grain.rotating = carpet_rotating
end
end
end
-# Create the contacs between grains by expanding all grains by a small amount
+# Create the bonds between grains by expanding all grains by a small amount
# then search and establish contacts and then reduce the size of the grains again
size_increasing_factor = 1.10 # factor by which contact radius should be increased
@@ -107,6 +109,7 @@ for grain in sim.grains
end
end
+Granular.findContacts!(sim,method="ocean grid")
#Granular.findContactsAllToAll!(sim) # find the grain contacts
#Granular.run!(sim,single_step=true)
@@ -115,28 +118,13 @@ for i = 1:size(sim.grains,1)
sim.grains[i].contact_radius -= increase_array[i]
end
-"""
-for grain in sim.grains
- grain.contacts[:] .= 0
- grain.n_contacts = 0
-end
-
-#vil det ikke være nødvendigt at køre et enkelt timestep her?
-
-for grain in sim.grains
- for ic=1:size(grain.contact_age,1)
- grain.contact_age[ic] = 1e16
- end
- grain.strength_heal_rate = 1 # new bond stengthening
-end
-"""
cd("$id")
sim.id = "layered"
-Granular.resetTime!(sim)
-Granular.setTotalTime!(sim,1.0)
-Granular.run!(sim)
+#Granular.resetTime!(sim)
+#Granular.setTotalTime!(sim,0.5)
+#Granular.run!(sim)
cd("..")