25 lines
695 B
Python
25 lines
695 B
Python
# Bar.py
|
|
|
|
from numpy import pi
|
|
|
|
class Bar():
|
|
def __init__(self, radius:float=0.1, k:float=0.5, h:float=0.0025):
|
|
self.radius:float = radius
|
|
self.k:float = k
|
|
self.h:float = h
|
|
|
|
self.update_properties()
|
|
|
|
def update_properties(self):
|
|
self.area:float = pi*self.radius**2
|
|
self.p: float = 2*pi*self.radius
|
|
self.alpha = ((self.h*self.p)/(self.k*self.area))**0.5
|
|
|
|
def set_k(self, k:float):
|
|
self.k = k
|
|
self.update_properties()
|
|
|
|
def set_k_ratio(ratio: float, bar1:'Bar', bar2:'Bar'):
|
|
'''Sets the value of bar2.k = ratio*bar1.k and updates internal properties'''
|
|
bar2.set_k(bar1.k*ratio)
|