-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcomponent.py
More file actions
38 lines (32 loc) · 1.15 KB
/
component.py
File metadata and controls
38 lines (32 loc) · 1.15 KB
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
class Component(object):
'''Container for forces in an aircraft component'''
def __init__(self, name):
'''Constructor'''
self.box = None
self.zonelist = []
self.name = name
self.clear()
def clear(self):
'''Clear forces contained in the component'''
self.force_friction = [0, 0, 0]
self.force_pressure = [0, 0, 0]
self.area = 0
self.moment = 0.
def total_force(self, vec):
'''Compute total force in component along vector
arguments:
vec (list of float): vector (lift or drag)
'''
return self.friction_force(vec) + self.pressure_force(vec)
def friction_force(self, vec):
'''Compute friction force along vector'''
return (self.force_friction[0]*vec[0] +
self.force_friction[1]*vec[1] +
self.force_friction[2]*vec[2]
)
def pressure_force(self, vec):
'''Compute pressure force along vector'''
return (self.force_pressure[0]*vec[0] +
self.force_pressure[1]*vec[1] +
self.force_pressure[2]*vec[2]
)