0% found this document useful (0 votes)
14 views2 pages

Code 3

Uploaded by

sidali.menouchi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
14 views2 pages

Code 3

Uploaded by

sidali.menouchi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

import numpy as np

import matplotlib.pyplot as plt

def naca0012(x):
"""
Calculates the y-coordinate of a NACA 0012 airfoil at a given x-coordinate.

Args:
x: x-coordinate (0 <= x <= 1)

Returns:
y: y-coordinate
"""

yt = 0.12 * (0.2969 * np.sqrt(x) - 0.1260 * x - 0.3516 * x**2 + 0.2843 * x**3 -


0.1015 * x**4)
return yt

def generate_c_grid(num_points_x, num_points_y, x_farfield, y_farfield):


# ... (Implementation of C-grid generation)

# Generate grid points on the airfoil surface


# Generate grid points on the far-field boundary
# Connect grid points using algebraic or numerical techniques

return x_c, y_c

def transform_to_o_grid(c_grid_x, c_grid_y):


# ... (Implementation of algebraic transformation)

# Use algebraic or numerical techniques to map C-grid to O-grid

return x_o, y_o

def solve_poisson(x, y, omega):


"""
Solves the Poisson equations using the Successive Over-Relaxation (SOR) method.

Args:
x: x-coordinates of the grid points.
y: y-coordinates of the grid points.
omega: Relaxation factor.
"""

# ... (Implementation of the SOR method, applying boundary conditions and


updating grid points)

def visualize_grid(x, y):


plt.figure(figsize=(10, 6))
plt.plot(x, y, 'b.')
plt.xlabel('x')
plt.ylabel('y')
plt.title('O-type Grid Around NACA 0012 Airfoil')
plt.grid(True)
plt.axis('equal')
plt.show()

# Main script
num_points_x = 121
num_points_y = 33
x_farfield = 5.0
y_farfield = 2.5
omega = 1.8
tolerance = 1e-6

c_grid_x, c_grid_y = generate_c_grid(num_points_x, num_points_y, x_farfield,


y_farfield)
x, y = transform_to_o_grid(c_grid_x, c_grid_y)

while not converged:


solve_poisson(x, y, omega)

visualize_grid(x, y)

You might also like