/
main.py
43 lines (33 loc) · 1.34 KB
/
main.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
# Main file for argon
# Import classes and functions
import config
import timeit
from particles import Particles
from initSimulation import initSimulation
from argonMove import argonMove
from calculateQuantities import calculateQuantities
from particlesanimation import animationPlot
from postProcess import postProcess
# Start Timer
start = timeit.default_timer()
# Initialize position + velocity
particles = Particles(config.nParticles);
(temp, eK, eP, compr, cV, displacement, zeroPositions) = initSimulation(particles);
if(config.animation):
anim = animationPlot();
# Main loop
for i in range(config.iterations):
# Update position
virial = argonMove(particles, eP, temp, i);
# Calculate physical quantities
zeroPositions = calculateQuantities(particles, temp, eK, compr, virial, cV, displacement, zeroPositions, i);
# Update animation
if(config.animation and i % config.animationIter == 0):
anim.updateParticlePlot(particles);
# Inform user of progress
print("Iteration", i+1, "completed; Time is: ", round(i*config.dt, 3) );
postProcess(particles, temp, eK, eP, compr, cV, displacement)
# Stop timer
stop = timeit.default_timer()
print("Program ended in =", int(stop - start), "seconds");
print(round( ((stop - start)/config.iterations)*1000 , 3 ), "ms per iteration for", config.nParticles, "particles")