Beispiel #1
0
 def test_lines(self):
     values = np.linspace(-3, 3, 10) 
     return [
         [Vector2(i, 0) for i in values],
         [Vector2(i, i) for i in values],
         [Vector2(0, i) for i in values]
     ]
alpha = np.deg2rad(10)

# panelmethode
coordiantes = list(
    zip(
        airfoil.coordinates(num=num_pan).real,
        airfoil.coordinates(num=num_pan).imag))
vertices = [PanelVector2(*v) for v in coordiantes[:-1]]
vertices[0].wake_vertex = True
panels = [
    Panel2([vertices[i], vertices[i + 1]]) for i in range(len(vertices[:-1]))
]
panels.append(Panel2([vertices[-1], vertices[0]]))

case = Case(panels)
case.v_inf = Vector2(np.cos(alpha), np.sin(alpha))
case.run()

nx = 500
ny = 500

space_x = np.linspace(-3, 7, nx)
space_y = np.linspace(-2, 2, ny)
vec = lambda x: paraBEM.Vector2(x[0], x[1])
vec3 = lambda x: [x[0], x[1], 0]
grid = [[x, y, 0] for y in space_y for x in space_x]
_grid = list(map(vec, grid))

velocity = list(map(vec3, list(map(case.off_body_velocity, _grid))))
vel1 = [(i[0]**2 + i[1]**2)**(0.5) for i in velocity]
pot = list(map(case.off_body_potential, _grid))
Beispiel #3
0
 def test_element_v(self, target=Vector2(0, 0)):
     return doublet_2_1_v(target, self.panel, True)
Beispiel #4
0
 def test_element_phi(self, target=Vector2(0, 0)):
     return doublet_2_0(target, self.panel)
Beispiel #5
0
 def test_element_v(self, target=Vector2(0, 0)):
     return source_2_0_v(target, self.panel)
Beispiel #6
0
 def test_element_v(self, target=Vector2(0, 0)):
     return 0, 0