Ejemplo n.º 1
0
def from_txt_mesh(filename='./garbage/mesh_own.txt_mesh'):
    '''
    importa malla de archivo txt_mesh. formato propio
    '''

    if filename[-8:] != 'txt_mesh':
        print('WARNING!')
        print('La extensión del archivo a importar no coincide con la \
              extensión utilizada por este programa')
        print('FINALIZANDO EJECUCIÓN')

        exit()

        return

    with open(filename, 'r') as f:
        mesh = f.readlines()

    tipo = str(mesh[0].split()[-1])
    d_eta = float(mesh[1].split()[-1])
    d_xi = float(mesh[2].split()[-1])
    R = float(mesh[3].split()[-1])
    M = int(mesh[4].split()[-1])
    N = int(mesh[5].split()[-1])
    airfoil_alone = str(mesh[6].split()[-1])
    airfoil_join = int(mesh[7].split()[-1])

    if airfoil_alone == 'True':
        airfoil_alone = True
    elif airfoil_alone == 'False':
        airfoil_alone = False

    airfoil_boundary = np.fromstring(mesh[9], sep=',')
    X = np.zeros((M, N))
    Y = np.zeros((M, N))

    i = 0
    line = 11
    for line_ in range(line, M + line):
        X[i, :] = np.fromstring(mesh[line_], sep=',')
        i += 1

    line += M + 1
    i = 0
    for line_ in range(line, M + line):
        Y[i, :] = np.fromstring(mesh[line_], sep=',')
        i += 1

    perfil = airfoil.airfoil(c=1)
    perfil.x = X[:, 0]
    perfil.y = Y[:, 0]
    if tipo == 'O':
        # mesh = mesh_o.mesh_O(R, M, N, perfil)
        mesh = mesh_o.mesh_O(R, N, perfil)
    elif tipo == 'C':
        # mesh = mesh_c.mesh_C(R, M, N, perfil, from_file=True)
        mesh = mesh_c.mesh_C(R, N, perfil, from_file=True)

    # se asignan atributos a malla
    mesh.d_eta = d_eta
    mesh.d_xi = d_xi
    mesh.R = R
    mesh.M = M
    mesh.N = N
    mesh.airfoil_alone = airfoil_alone
    mesh.airfoil_join = airfoil_join
    mesh.airfoil_boundary = airfoil_boundary
    mesh.X = X
    mesh.Y = Y

    return mesh
Ejemplo n.º 2
0
##########
# MALLA
##########
# tipo de malla (C, O)
malla_tipo = 'O'

# dimensiones de la malla. N (\eta), airfoil_points = M (\xi)
N = 275

# dimension de frontera externa
R = 400 * c

if malla_tipo == 'O':
    mallaNACA = mesh_o.mesh_O(R, N, perfil)
elif malla_tipo == 'C':
    mallaNACA = mesh_c.mesh_C(R, N, perfil)

# metodos de generacion de malla
metodo_iterativo = 'SOR'  # 'GS', 'J'
mallaNACA.gen_Laplace_n(metodo='SOR')
# mallaNACA.gen_Laplace_v(metodo='SOR')
# mallaNACA.gen_Laplace(metodo='SOR')
mallaNACA.gen_Poisson_n(metodo='SOR', omega=0.15, aa=1500, cc=12, linea_eta=0)
# mallaNACA.gen_Poisson_v(metodo='SOR', omega=0.15, aa=1500, cc=12,
#   linea_eta=0)
# mallaNACA.gen_Poisson(metodo='SOR', omega=0.15, aa=1500, cc=12,
#   linea_eta=0)

# importar malla
malla_importada = 'nombre_archivo_malla.txt_mesh'
mallaNACA = util.from_txt_mesh(malla_importada)
Ejemplo n.º 3
0
perfil = airfoil.NACA4(m, p, t, c)
perfil.create_sin(points)
flap = airfoil.NACA4(m, p, t, 0.2 * c, number=2)
flap.create_sin(points)
flap.rotate(15)
perfil.join(flap, dx=0.055, dy=0.51, union=union)
perfil.rotate(10)

M = np.shape(perfil.x)[0]

archivo_perfil = 'perfil_final.csv'
if malla == 'O':
    mallaNACA = mesh_o.mesh_O(R, N, perfil)
elif malla == 'C':
    mallaNACA = mesh_c.mesh_C(R, N, perfil, weight=1.13)

# mallaNACA.gen_Laplace(metodo='SOR', omega=1.4)
# mallaNACA.gen_Poisson(metodo='SOR', omega=0.5, aa=49.95, cc=17.7, linea_eta=0)
# normal
# mallaNACA.gen_Poisson_v(metodo='SOR', omega=0.5, aa=69.95, cc=7.7, linea_eta=0)
# mallaNACA.gen_Poisson_v(metodo='SOR', omega=0.5, aa=50500, cc=3, linea_eta=0)

# sectioned in 4
# mallaNACA.gen_Poisson_v_4(metodo='SOR', omega=0.3, aa=139.95, cc=7.7, linea_eta=0)
# mallaNACA.gen_Poisson_v_4(metodo='SOR', omega=0.3, aa=0.95, cc=7.7, linea_eta=0)
# mallaNACA.gen_Poisson_v_(metodo='SOR', omega=0.3, aa=159.95, cc=0.2, linea_eta=0)
# mallaNACA.gen_Poisson_v_(metodo='SOR', omega=0.5, aa=60500,
#                                  cc=7, linea_eta=0)
# mallaNACA.gen_Laplace_v_(metodo='SOR', omega=0.5)
mallaNACA.gen_Laplace_n(metodo='SOR', omega=1.2)
Ejemplo n.º 4
0
# radio frontera externa
R = 410 * c

perfil = airfoil.NACA4(m, p, t, c)
perfil.create_sin(points)
flap = airfoil.NACA4(m, p, t, 0.2 * c, number=2)
flap.create_sin(points)
flap.rotate(15)
perfil.join(flap, dx=0.055, dy=0.05, union=union)

M = np.shape(perfil.x)[0]
print(f"shape perfil: {M}")


mallaNACA_1 = mesh_c.mesh_C(R, N_1, perfil, weight=weight)
mallaNACA_1.gen_TFI()

mallaNACA = mesh_c.mesh_C(R, N, perfil, weight=weight)
mallaNACA.X[:, -1] = mallaNACA_1.X[:, -19]
mallaNACA.Y[:, -1] = mallaNACA_1.Y[:, -19]

mallaNACA1 = mesh_c.mesh_C(R, N1, perfil, weight=weight)

print(f"shape mesh: {np.shape(mallaNACA.X)[0]}")
# print('M = ' + str(mallaNACA.M))
# print('N = ' + str(mallaNACA.N))

# mallaNACA = util.from_txt_mesh(
#         filename='/home/desarrollo/tesis_su2_BADLY/mesh_c_flap.txt_mesh')
# mallaNACA.gen_Poisson_n(metodo='SOR', omega=0.15, a=a, c=c, linea_xi=linea_xi,