Exemple #1
0
#
axis_par = [{
    'title': 'Numérica',
    'xlabel': 'x [m]',
    'ylabel': 'T [$^o$C]'
}, {
    'title': 'Exacta',
    'xlabel': 'x [m]',
    'ylabel': 'T [$^o$C]'
}, {
    'title': 'Malla 1D'
}]
#
# Definición de un canvas para graficar los resultados
#
v = flx.Plotter(3, 1,
                axis_par)  # Son 3 renglones y una columna de ejes (Axes).
#
# En los primeros ejes graficamos la solución numérica.
#
v.plot(1, x, T, {'marker': 'o', 'ls': '-', 'label': 'Numérica'})
#
# En los segundos ejes graficamos la solución exacta para comparación.
#
v.plot(2, x, Ta, {
    'marker': 's',
    'ls': '-',
    'color': 'orange',
    'label': 'Exacta'
})
#
# En los terceros ejes graficamos la malla del dominio.
par_contour = {'cmap':'cool', 'levels':20}

archivo = 'input_example10.h5'
h5_info = HDF5_info(archivo, verb=True)
f = h5_info.file()


malla = uMesh(nodes_x = f['mesh'].attrs['NX'], 
             length_x = f['mesh'].attrs['WX'], 
             nodes_y = f['mesh'].attrs['NY'],
             length_y = f['mesh'].attrs['WY'])

x, y, _ = malla.constructMeshFVM()    
axis_par = [{'aspect':'equal','title':'Malla', 'xlabel':'x', 'ylabel':'y'},
            {'aspect':'equal','title':h5_info.datasets_names[0], 'xlabel':'x', 'ylabel':'y'}]   
v = vis.Plotter(1,1,axis_par)
ax = v.getAxis(1)

#v.plot_mesh(1, malla, vol='', nod='')
Tmax = f['inputs'].attrs['Tmax']
print(Tmax)

T = np.zeros((malla.vx, malla.vy,Tmax))
for i in range(Tmax):
    T[:,:,i] = h5_info.datasets[i]
    
#con = v.contourf(1,x,y, T[:,:,0],par_contour)
#v.contour(1,x,y,T,{'levels':10})
#    v.colorbar(2, con)    
    
from matplotlib.animation import FuncAnimation
Exemple #3
0
    'ylabel': '',
    'xticks': [],
    'yticks': []
}, {
    'aspect': 'equal',
    'title': 'Velocidad',
    'xlabel': 'x',
    'ylabel': 'y'
}, {
    'aspect': 'equal',
    'title': 'Temperatura',
    'xlabel': 'x',
    'ylabel': '',
    'yticks': []
}]
v = flx.Plotter(2, 2, axis_par)
v.contourf(1, xd, yv, uvel, {'levels': 20, 'cmap': 'Purples'})
v.contourf(2, xv, yd, vvel, {'levels': 20, 'cmap': 'Greens'})
vel_norm = np.sqrt(uvel_v**2 + vvel_v**2)
con_i = v.contourf(3, xd, yd, vel_norm, {'levels': 50, 'cmap': 'Blues'})
v.quiver(3, xd, yd, uvel_v, vvel_v, {'scale': 20})
#
# Definimos la fuente
#
Su = np.zeros((ivy, ivx))
#print('Su = ', Su)
#
# Definimos el esquema de disccretización
#
advdif_scheme = tAdvDiff2D(malla, Su, dt=dt, Gamma=k)
advdif_scheme.setVelocity(uvel, vvel)