Introduction
Introduction Statistics Contact Development Disclaimer Help
tonly write interaction information if interactions occur - Granular.jl - Julia…
git clone git://src.adamsgaard.dk/Granular.jl
Log
Files
Refs
README
LICENSE
---
commit 27b1f0f8266144d202c7c3e4f9f6952be5826b13
parent 1a172b917e27a63dd6938ef42cdb58383c5d8da0
Author: Anders Damsgaard <[email protected]>
Date: Wed, 22 Nov 2017 14:30:16 -0500
only write interaction information if interactions occur
Diffstat:
M src/io.jl | 76 ++++++++++++++++-------------…
1 file changed, 39 insertions(+), 37 deletions(-)
---
diff --git a/src/io.jl b/src/io.jl
t@@ -1210,38 +1210,38 @@ function plotGrains(sim::Simulation;
tensile_stress = Float64[]
shear_displacement = Vector{Float64}[]
contact_age = Float64[]
- for i=1:length(simulation.grains)
- for ic=1:simulation.Nc_max
- if simulation.grains[i].contacts[ic] > 0
- j = simulation.grains[i].contacts[ic]
+ for i=1:length(sim.grains)
+ for ic=1:sim.Nc_max
+ if sim.grains[i].contacts[ic] > 0
+ j = sim.grains[i].contacts[ic]
- if !simulation.grains[i].enabled ||
- !simulation.grains[j].enabled
+ if !sim.grains[i].enabled ||
+ !sim.grains[j].enabled
continue
end
- p = simulation.grains[i].lin_pos -
- simulation.grains[j].lin_pos
+ p = sim.grains[i].lin_pos -
+ sim.grains[j].lin_pos
dist = norm(p)
- r_i = simulation.grains[i].contact_radius
- r_j = simulation.grains[j].contact_radius
+ r_i = sim.grains[i].contact_radius
+ r_j = sim.grains[j].contact_radius
δ_n = dist - (r_i + r_j)
R_ij = harmonicMean(r_i, r_j)
- if simulation.grains[i].youngs_modulus > 0. &&
- simulation.grains[j].youngs_modulus > 0.
- E_ij = harmonicMean(simulation.grains[i].
+ if sim.grains[i].youngs_modulus > 0. &&
+ sim.grains[j].youngs_modulus > 0.
+ E_ij = harmonicMean(sim.grains[i].
youngs_modulus,
- simulation.grains[j].
+ sim.grains[j].
youngs_modulus)
- A_ij = R_ij*min(simulation.grains[i].thickness,
- simulation.grains[j].thickness)
+ A_ij = R_ij*min(sim.grains[i].thickness,
+ sim.grains[j].thickness)
k_n = E_ij*A_ij/R_ij
else
- k_n = harmonicMean(simulation.grains[i].
+ k_n = harmonicMean(sim.grains[i].
contact_stiffness_normal,
- simulation.grains[j].
+ sim.grains[j].
contact_stiffness_normal)
end
t@@ -1256,10 +1256,10 @@ function plotGrains(sim::Simulation;
push!(contact_stiffness, k_n)
push!(tensile_stress, k_n*δ_n/A_ij)
- push!(shear_displacement, simulation.grains[i].
+ push!(shear_displacement, sim.grains[i].
contact_parallel_displacement[ic])
- push!(contact_age, simulation.grains[i].contact_age[ic])
+ push!(contact_age, sim.grains[i].contact_age[ic])
end
end
end
t@@ -1318,24 +1318,26 @@ function plotGrains(sim::Simulation;
set size ratio -1
set key off\n""")
- max_tensile_stress = maximum(abs.(tensile_stress))
- max_line_with = 5.
- if plot_interactions
- write(f, "set cbrange [-$max_tensile_stress:$max_tensile_stress]\n…
- for i=1:length(i1)
- write(f, "set arrow $i from " *
- "$(sim.grains[i1[i]].lin_pos[1])," *
- "$(sim.grains[i1[i]].lin_pos[2]) to " *
- "$(sim.grains[i2[i]].lin_pos[1])," *
- "$(sim.grains[i2[i]].lin_pos[2]) ")
- if tensile_stress[i] > 0
- write(f, "nohead ")
- else
- write(f, "doublehead ")
+ if length(i1) > 0
+ max_tensile_stress = maximum(abs.(tensile_stress))
+ max_line_with = 5.
+ if plot_interactions
+ write(f, "set cbrange [-$max_tensile_stress:$max_tensile_stres…
+ for i=1:length(i1)
+ write(f, "set arrow $i from " *
+ "$(sim.grains[i1[i]].lin_pos[1])," *
+ "$(sim.grains[i1[i]].lin_pos[2]) to " *
+ "$(sim.grains[i2[i]].lin_pos[1])," *
+ "$(sim.grains[i2[i]].lin_pos[2]) ")
+ if tensile_stress[i] > 0
+ write(f, "nohead ")
+ else
+ write(f, "doublehead ")
+ end
+ write(f, "lw $(abs(tensile_stress[i])/
+ max_tensile_stress*max_line_width) ")
+ write(f, "lc palette cb $(tensile_stress[i])\n")
end
- write(f, "lw $(abs(tensile_stress[i])/
- max_tensile_stress*max_line_width) ")
- write(f, "lc palette cb $(tensile_stress[i])\n")
end
end
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.