tfind interaction normal force in VTK writing function - 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 386bc4ddefe8ed8700984bc6802f5490935edbe5
 (DIR) parent d47ca02a8b5af731e8ed4c76d647e26a75af518c
 (HTM) Author: Anders Damsgaard <andersd@riseup.net>
       Date:   Fri, 26 May 2017 16:23:29 -0400
       
       find interaction normal force in VTK writing function
       
       Diffstat:
         M src/interaction.jl                  |       4 ++--
         M src/io.jl                           |      24 +++++++++++++++++++++++-
       
       2 files changed, 25 insertions(+), 3 deletions(-)
       ---
 (DIR) diff --git a/src/interaction.jl b/src/interaction.jl
       t@@ -76,8 +76,8 @@ function interactIceFloes!(simulation::Simulation, i::Int, j::Int, ic::Int)
            δ_t = dot(t, δ_t0 - (n*dot(n, δ_t0))) + vel_t*simulation.time_step
        
            # Effective radius
       -    R_ij = harmonicMean(simulation.ice_floes[i].contact_radius,
       -                        simulation.ice_floes[j].contact_radius) - abs(δ_n)/2.
       +    R_ij = harmonicMean(r_i, r_j) - abs(δ_n)/2.
       +
            # Contact area
            A_ij = R_ij*min(simulation.ice_floes[i].thickness, 
                            simulation.ice_floes[j].thickness)
 (DIR) diff --git a/src/io.jl b/src/io.jl
       t@@ -145,11 +145,33 @@ function writeIceFloeBondVTK(simulation::Simulation,
                for ic=1:Nc_max
                    if simulation.ice_floes[i].contacts[ic] > 0
                        j = simulation.ice_floes[i].contacts[ic]
       +
       +                p = simulation.ice_floes[i].lin_pos -
       +                    simulation.ice_floes[j].lin_pos
       +                dist = norm(p)
       +
       +                r_i = simulation.ice_floes[i].contact_radius
       +                r_j = simulation.ice_floes[j].contact_radius
       +                δ_n = dist - (r_i + r_j)
       +
       +                if simulation.ice_floes[i].youngs_modulus > 0. &&
       +                    simulation.ice_floes[j].youngs_modulus > 0.
       +                    R_ij = harmonicMean(r_i, r_j)
       +                    A_ij = R_ij*min(simulation.ice_floes[i].thickness, 
       +                                    simulation.ice_floes[j].thickness)
       +                    k_n = E*A_ij/R_ij
       +                else
       +                    k_n = harmonicMean(simulation.ice_floes[i].
       +                                       contact_stiffness_normal,
       +                                       simulation.ice_floes[j].
       +                                       contact_stiffness_normal)
       +                end
       +
                        
                        append!(i1, i)
                        append!(i2, j)
        
       -                append!(force, f_n)
       +                append!(force, k_n*δ_n)
        
                        append!(shear_displacement_1, simulation.ice_floes[i].
                                contact_parallel_displacement[ic][1])