Introduction
Introduction Statistics Contact Development Disclaimer Help
tsimulation_benchmark.jl - seaice-experiments - sea ice experiments using Granu…
git clone git://src.adamsgaard.dk/seaice-experiments
Log
Files
Refs
README
LICENSE
---
tsimulation_benchmark.jl (1471B)
---
1 #/usr/bin/env julia
2 ENV["MPLBACKEND"] = "Agg"
3 import Granular
4
5
6 const N = 30e3
7 const n_runs = 1000
8
9 ## Coulomb-frictional model
10 function prepare_simulation(sim::Granular.Simulation)
11 sim = Granular.readSimulation(sim)
12 sim.id = "$(sim.id)-benchmark"
13 Granular.resetTime!(sim)
14 Granular.setTotalTime!(sim, 1.)
15 Granular.setOutputFileInterval!(sim, 0.)
16 return sim
17 end
18
19 function benchmark_interaction(sim::Granular.Simulation, n_runs::Int)
20 time = zeros(n_runs)
21 for i=1:n_runs
22 Granular.interact!(sim)
23 Granular.interact!(sim)
24 t = @elapsed(Granular.interact!(sim))
25 time[i] = t
26 end
27 return time
28 end
29
30
31 sim = Granular.createSimulation("mohr_coulomb_mu0.3_sigma_c0kPa.pdf-seed…
32 sim = prepare_simulation(sim)
33 time_frictional = benchmark_interaction(sim, n_runs)
34
35 sim = Granular.createSimulation("mohr_coulomb_mu0.3_sigma_c0kPa.pdf-seed…
36 sim = prepare_simulation(sim)
37 for grain in sim.grains
38 grain.rotating = false
39 end
40 time_cohesive = benchmark_interaction(sim, n_runs)
41
42 time_frictional_mean = mean(time_frictional)
43 time_frictional_std = std(time_frictional)
44 time_cohesive_mean = mean(time_cohesive)
45 time_cohesive_std = std(time_cohesive)
46
47 println("Frictional: mean = $time_frictional_mean, std = $time_frictiona…
48 println("Cohesive: mean = $time_cohesive_mean, std = $time_cohesive_st…
49 println("Speedup of cohesive model: $(time_frictional_mean/time_cohesive…
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.