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:
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