tadd contact pressure field to ice floe - Granular.jl - Julia package for granular dynamics simulation
(HTM) git clone git://src.adamsgaard.dk/Granular.jl
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 1cc1237e7dd6b0a467dde033c5d324e4a47f75dd
(DIR) parent 809cebdad423f7a7109fa9139f871c595df1ea16
(HTM) Author: Anders Damsgaard <andersd@riseup.net>
Date: Mon, 24 Apr 2017 13:12:37 -0400
add contact pressure field to ice floe
Diffstat:
M src/datatypes.jl | 4 ++++
M src/icefloe.jl | 12 ++++++++++--
M src/io.jl | 3 +++
M src/simulation.jl | 1 +
4 files changed, 18 insertions(+), 2 deletions(-)
---
(DIR) diff --git a/src/datatypes.jl b/src/datatypes.jl
t@@ -40,6 +40,8 @@ type IceFloeCylindrical
contact_viscosity_tangential::float
contact_static_friction::float
contact_dynamic_friction::float
+
+ pressure::float
end
# Type for gathering data from ice floe objects into single arrays
t@@ -80,6 +82,8 @@ type IceFloeArrays
contact_viscosity_tangential
contact_static_friction
contact_dynamic_friction
+
+ pressure
end
#=
(DIR) diff --git a/src/icefloe.jl b/src/icefloe.jl
t@@ -24,6 +24,7 @@ function addIceFloeCylindrical(simulation::Simulation,
contact_viscosity_tangential::float = 0.,
contact_static_friction::float = 0.4,
contact_dynamic_friction::float = 0.4,
+ pressure::float = 0.,
fixed::Bool = false,
rotating::Bool = true,
verbose::Bool = true)
t@@ -91,7 +92,9 @@ function addIceFloeCylindrical(simulation::Simulation,
contact_viscosity_normal,
contact_viscosity_tangential,
contact_static_friction,
- contact_dynamic_friction
+ contact_dynamic_friction,
+
+ pressure
)
# Overwrite previous placeholder values
t@@ -151,7 +154,10 @@ function convertIceFloeDataToArrays(simulation::Simulation)
Array(Float64, length(simulation.ice_floes)),
Array(Float64, length(simulation.ice_floes)),
Array(Float64, length(simulation.ice_floes)),
- Array(Float64, length(simulation.ice_floes)))
+ Array(Float64, length(simulation.ice_floes)),
+
+ Array(Float64, length(simulation.ice_floes))
+ )
# fill arrays
for i=1:length(simulation.ice_floes)
t@@ -190,6 +196,8 @@ function convertIceFloeDataToArrays(simulation::Simulation)
simulation.ice_floes[i].contact_static_friction
ifarr.contact_dynamic_friction[i] =
simulation.ice_floes[i].contact_dynamic_friction
+
+ ifarr.pressure[i] = simulation.ice_floes[i].pressure
end
return ifarr
(DIR) diff --git a/src/io.jl b/src/io.jl
t@@ -61,6 +61,9 @@ function writeVTK(simulation::Simulation;
WriteVTK.vtk_point_data(vtkfile, ifarr.contact_dynamic_friction,
"Contact friction (dynamic) [-]")
+ WriteVTK.vtk_point_data(vtkfile, ifarr.pressure,
+ "Pressure [Pa]")
+
outfiles = WriteVTK.vtk_save(vtkfile)
if verbose
println("Output file: " * outfiles[1])
(DIR) diff --git a/src/simulation.jl b/src/simulation.jl
t@@ -155,6 +155,7 @@ function zeroForcesAndTorques!(simulation::Simulation)
for icefloe in simulation.ice_floes
icefloe.force = zeros(2)
icefloe.torque = 0.
+ icefloe.pressure = 0.
end
end