Granular.jl

Julia package for granular dynamics simulation
git clone git://src.adamsgaard.dk/Granular.jl
Log | Files | Refs | README | LICENSE

commit 1cc1237e7dd6b0a467dde033c5d324e4a47f75dd
parent 809cebdad423f7a7109fa9139f871c595df1ea16
Author: Anders Damsgaard <andersd@riseup.net>
Date:   Mon, 24 Apr 2017 13:12:37 -0400

add contact pressure field to ice floe

Diffstat:
Msrc/datatypes.jl | 4++++
Msrc/icefloe.jl | 12++++++++++--
Msrc/io.jl | 3+++
Msrc/simulation.jl | 1+
4 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/src/datatypes.jl b/src/datatypes.jl @@ -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 @@ -80,6 +82,8 @@ type IceFloeArrays contact_viscosity_tangential contact_static_friction contact_dynamic_friction + + pressure end #= diff --git a/src/icefloe.jl b/src/icefloe.jl @@ -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) @@ -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 @@ -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) @@ -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 diff --git a/src/io.jl b/src/io.jl @@ -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]) diff --git a/src/simulation.jl b/src/simulation.jl @@ -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