My Project
plot_by_continuous_velocity.py
Go to the documentation of this file.
1 import sys
2 import os
3 sys.path.insert(0, os.path.dirname(os.path.realpath(__file__)))
4 from matplotlib import pyplot as plt
5 import numpy as np
6 
7 import matplotlib as mpl
8 
9 mpl.rcParams['svg.fonttype'] = "none"
10 mpl.rcParams['font.size'] = 16
11 
12 
13 mpl.rc('font', **{'family': 'serif', 'serif': ['Computer Modern']})
14 mpl.rc('text', usetex=True)
15 
16 from helpFunctions import LoadFile
17 
18 loader = LoadFile()
19 
20 store_data = []
21 
23  parameters,
24  n_data_points
25 ):
26  if(loader.get_debug_parameter(parameters, "debug_continuous_slider_speed")):
27  if(loader.get_parameter(parameters, "interval") is 0):
28  speeds = loader.get_start_end_speed(parameters)
29  max_time = loader.get_parameter(parameters, 'max_time')
30  step_size = loader.get_parameter(parameters, 'dt')
31  save_interval_dt = loader.get_parameter(parameters, 'save_interval_dt')
32  speed_difference = speeds['end_speed'] - speeds['start_speed']
33  n_steps = max_time/step_size
34  step_speed_increment = speed_difference/n_steps
35  end_speed = speeds['end_speed'] - step_speed_increment * (save_interval_dt-1)
36  print(step_size, save_interval_dt, n_data_points,end_speed)
37  return(np.linspace(speeds['start_speed'], end_speed, num = n_data_points))
38 
39 def direction_label(
40  parameters
41 ):
42  speeds = loader.get_start_end_speed(parameters)
43  if(speeds['start_speed'] > speeds['end_speed']):
44  speed_direction = 'decreasing'
45  else:
46  speed_direction = 'increasing'
47 
48  return speed_direction
49 
51  paramters
52 ):
53  save_interval = str(loader.get_parameter(paramters, "save_interval_dt"))
54  return save_interval
55 
56 def plot_run(
57  run_name
58 ):
59  parameters = loader.load_yaml_parameters(run_name)
60  data = loader.load_simulation_output(parameters, run_name, "pad_position")
61  store_data.append(data)
62  x_values = velocity_x_values(parameters, len(data))
63  #print(data[-1], x_values[-1])
64  label = direction_label(parameters)
65  label = save_interval_label(parameters)
66  plt.plot(x_values, data, label = label)
67  plt.xlabel("surface velocity")
68  plt.ylabel("pad position")
69 
70 def plot_runs(
71  run_list
72 ):
73  for run_name in run_list:
74  plot_run(run_name)
75  plt.legend(title = "Save every:")
76  plt.show()
77 
79  diff_data = []
80  counter = 0
81  for point in store_data[0]:
82  diff_data.append(point - store_data[1][2*counter])
83  counter += 1
84  plt.plot(diff_data)
85  plt.show()
86  print(sum(diff_data))
87 
88 
89 def run():
90  if(len(sys.argv) > 2):
91  run_name = sys.argv[1:]
92  plot_runs(run_name)
93  #check_data_temp()
94  elif(len(sys.argv) == 2):
95  plot_runs([sys.argv[1]])
96  else:
97  print("No input given, please provide one or more paths within the \"results\" folder")
98 
99 if __name__== "__main__":
100  run()
def velocity_x_values(parameters, n_data_points)