Source code for fluidsim.solvers.ns2d.output.spectra

"""Spectra output (:mod:`fluidsim.solvers.ns2d.output.spectra`)
===============================================================

.. autoclass:: SpectraNS2D
   :members:
   :private-members:

"""

from fluidsim.base.output.spectra import Spectra


[docs] class SpectraNS2D(Spectra): """Save and plot spectra."""
[docs] def compute(self): """compute the values at one time.""" energy_fft = self.output.compute_energy_fft() # compute the spectra 1D spectrum1Dkx_E, spectrum1Dky_E = self.spectra1D_from_fft(energy_fft) dict_spectra1D = { "spectrum1Dkx_E": spectrum1Dkx_E, "spectrum1Dky_E": spectrum1Dky_E, } # compute the spectra 2D spectrum2D_E = self.spectrum2D_from_fft(energy_fft) dict_spectra2D = {"spectrum2D_E": spectrum2D_E} return dict_spectra1D, dict_spectra2D
def _online_plot_saving(self, dict_spectra1D, dict_spectra2D): if ( self.nx == self.params.oper.ny and self.params.oper.Lx == self.params.oper.Ly ): spectrum2D = dict_spectra2D["spectrum2D_E"] khE = self.oper.khE coef_norm = khE ** (3.0) self.ax.loglog(khE, spectrum2D * coef_norm, "k") lin_inf, lin_sup = self.ax.get_ylim() if lin_inf < 10e-6: lin_inf = 10e-6 self.ax.set_ylim([lin_inf, lin_sup]) else: print( "you need to implement the ploting " "of the spectra for this case" ) def plot1d( self, tmin=0, tmax=1000, delta_t=None, with_average=True, coef_compensate=3, coef_plot_k3=None, coef_plot_k53=None, coef_plot_k2=None, xlim=None, ylim=None, directions=None, ): self._plot_ndim( tmin=tmin, tmax=tmax, delta_t=delta_t, with_average=with_average, coef_compensate=coef_compensate, coef_plot_k3=coef_plot_k3, coef_plot_k53=coef_plot_k53, coef_plot_k2=coef_plot_k2, xlim=xlim, ylim=ylim, ndim=1, directions=directions, ) def plot2d( self, tmin=0, tmax=1000, delta_t=None, with_average=True, coef_compensate=3, coef_plot_k3=None, coef_plot_k53=None, coef_plot_k2=None, xlim=None, ylim=None, directions=None, ): self._plot_ndim( tmin=tmin, tmax=tmax, delta_t=delta_t, with_average=with_average, coef_compensate=coef_compensate, coef_plot_k3=coef_plot_k3, coef_plot_k53=coef_plot_k53, coef_plot_k2=coef_plot_k2, xlim=xlim, ylim=ylim, ndim=2, directions=directions, )