ktongue/docker_container / fluidsim /analyze_results.py
download
raw
2.7 kB
import numpy as np
import matplotlib.pyplot as plt
import xarray as xr
from fluidsim import load_sim_for_plot
# Charger la simulation pour l'analyse
sim = load_sim_for_plot("/root/Sim_data/NS2D_48x48_S8x8_2026-01-08_19-25-12")
print("=== RÉSULTATS DE LA SIMULATION ===")
print(f"Dimensions: {sim.params.oper.nx} x {sim.params.oper.ny}")
print(f"Domaine: {sim.params.oper.Lx} x {sim.params.oper.Ly}")
print(".3f")
print(f"Pas de temps initial: {sim.params.time_stepping.deltat0}")
# Charger les données NetCDF directement
state_init = xr.open_dataset("/root/Sim_data/NS2D_48x48_S8x8_2026-01-08_19-25-12/state_phys_t0000.000.nc")
state_final = xr.open_dataset("/root/Sim_data/NS2D_48x48_S8x8_2026-01-08_19-25-12/state_phys_t0010.200.nc")
print("\n=== ÉNERGIE ===")
try:
energy_init = sim.output.spatial_means.load_mean('E')
print(f"Énergie initiale: {energy_init[0]:.6f}")
print(f"Énergie finale: {energy_init[-1]:.6f}")
except:
print("Données d'énergie non disponibles")
print("\n=== CHAMPS INITIAUX ===")
rot_init = state_init['rot']
ux_init = state_init['ux']
uy_init = state_init['uy']
print(".6f")
print(".6f")
print(".6f")
print("\n=== CHAMPS FINAUX ===")
rot_final = state_final['rot']
ux_final = state_final['ux']
uy_final = state_final['uy']
print(".6f")
print(".6f")
print(".6f")
# Visualisation
fig, axes = plt.subplots(2, 3, figsize=(15, 10))
# État initial
im1 = axes[0,0].imshow(rot_init.T, origin='lower', extent=[0, sim.params.oper.Lx, 0, sim.params.oper.Ly])
axes[0,0].set_title('Vorticité initiale')
plt.colorbar(im1, ax=axes[0,0])
im2 = axes[0,1].imshow(ux_init.T, origin='lower', extent=[0, sim.params.oper.Lx, 0, sim.params.oper.Ly])
axes[0,1].set_title('Vitesse Ux initiale')
plt.colorbar(im2, ax=axes[0,1])
im3 = axes[0,2].imshow(uy_init.T, origin='lower', extent=[0, sim.params.oper.Lx, 0, sim.params.oper.Ly])
axes[0,2].set_title('Vitesse Uy initiale')
plt.colorbar(im3, ax=axes[0,2])
# État final
im4 = axes[1,0].imshow(rot_final.T, origin='lower', extent=[0, sim.params.oper.Lx, 0, sim.params.oper.Ly])
axes[1,0].set_title('Vorticité finale')
plt.colorbar(im4, ax=axes[1,0])
im5 = axes[1,1].imshow(ux_final.T, origin='lower', extent=[0, sim.params.oper.Lx, 0, sim.params.oper.Ly])
axes[1,1].set_title('Vitesse Ux finale')
plt.colorbar(im5, ax=axes[1,1])
im6 = axes[1,2].imshow(uy_final.T, origin='lower', extent=[0, sim.params.oper.Lx, 0, sim.params.oper.Ly])
axes[1,2].set_title('Vitesse Uy finale')
plt.colorbar(im6, ax=axes[1,2])
plt.tight_layout()
plt.savefig('taylor_green_results.png', dpi=150, bbox_inches='tight')
print("\n=== VISUALISATION SAUVÉE ===")
print("Image sauvegardée: taylor_green_results.png")
plt.show()

Xet Storage Details

Size:
2.7 kB
·
Xet hash:
0149dfcc8351e5b5387edd7891ba6d219cc6630bbed846cdeb9e628d0f3fa0c8

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.