kh2d-solver: Una Libreria Python per l'Instabilità Ideale di Kelvin-Helmholtz Bidimensionale Incomprimibile
kh2d-solver: A Python Library for Idealized Two-Dimensional Incompressible Kelvin-Helmholtz Instability
September 19, 2025
Autori: Sandy H. S. Herho, Nurjanna J. Trilaksono, Faiz R. Fajary, Gandhi Napitupulu, Iwan P. Anwar, Faruq Khadami, Dasapta E. Irawan
cs.AI
Abstract
Presentiamo una libreria Python open-source per la simulazione di instabilità bidimensionali incomprimibili di Kelvin-Helmholtz in flussi di taglio stratificati. Il risolutore utilizza un metodo di proiezione a passi frazionari con soluzione spettrale di Poisson tramite Trasformata Seno Rapida, raggiungendo un'accuratezza spaziale del secondo ordine. L'implementazione sfrutta NumPy, SciPy e la compilazione JIT di Numba per un calcolo efficiente. Quattro casi di test canonici esplorano numeri di Reynolds compresi tra 1000 e 5000 e numeri di Richardson tra 0,1 e 0,3: strato di taglio classico, configurazione a doppio strato di taglio, flusso rotante e turbolenza forzata. L'analisi statistica utilizzando l'entropia di Shannon e indici di complessità rivela che gli strati di taglio doppi raggiungono tassi di miscelazione 2,8 volte superiori rispetto alla turbolenza forzata nonostante numeri di Reynolds più bassi. Il risolutore opera efficientemente su hardware desktop standard, con simulazioni su griglie 384x192 che si completano in circa 31 minuti. I risultati dimostrano che l'efficienza di miscelazione dipende dai percorsi di generazione delle instabilità piuttosto che dalle sole misure di intensità, mettendo in discussione le parametrizzazioni basate sul numero di Richardson e suggerendo miglioramenti per la rappresentazione su scala sub-griglia nei modelli climatici.
English
We present an open-source Python library for simulating two-dimensional
incompressible Kelvin-Helmholtz instabilities in stratified shear flows. The
solver employs a fractional-step projection method with spectral Poisson
solution via Fast Sine Transform, achieving second-order spatial accuracy.
Implementation leverages NumPy, SciPy, and Numba JIT compilation for efficient
computation. Four canonical test cases explore Reynolds numbers 1000--5000 and
Richardson numbers 0.1--0.3: classical shear layer, double shear configuration,
rotating flow, and forced turbulence. Statistical analysis using Shannon
entropy and complexity indices reveals that double shear layers achieve
2.8times higher mixing rates than forced turbulence despite lower Reynolds
numbers. The solver runs efficiently on standard desktop hardware, with
384times192 grid simulations completing in approximately 31 minutes. Results
demonstrate that mixing efficiency depends on instability generation pathways
rather than intensity measures alone, challenging Richardson number-based
parameterizations and suggesting refinements for subgrid-scale representation
in climate models.