LCOV - code coverage report
Current view: top level - include/crpropa/magneticField/turbulentField - HelicalGridTurbulence.h (source / functions) Hit Total Coverage
Test: coverage.info.cleaned Lines: 0 5 0.0 %
Date: 2024-04-29 14:43:01 Functions: 0 1 0.0 %

          Line data    Source code
       1             : #ifndef CRPROPA_HELICALGRIDTURBULENCE_H
       2             : #define CRPROPA_HELICALGRIDTURBULENCE_H
       3             : 
       4             : #ifdef CRPROPA_HAVE_FFTW3F
       5             : 
       6             : #include "crpropa/Grid.h"
       7             : #include "crpropa/magneticField/turbulentField/SimpleGridTurbulence.h"
       8             : 
       9             : #include "kiss/logger.h"
      10             : #include "kiss/string.h"
      11             : 
      12             : namespace crpropa {
      13             : /**
      14             :  * \addtogroup MagneticFields
      15             :  * @{
      16             :  */
      17             : 
      18             : /**
      19             :  @class HelicalGridTurbulence
      20             :  @brief Turbulent grid-based magnetic field with a simple power-law spectrum
      21             :  */
      22             : class HelicalGridTurbulence : public SimpleGridTurbulence {
      23             :   private:
      24             :         double H;
      25             : 
      26             :   public:
      27             :         /**
      28             :          Create a random initialization of a turbulent field.
      29             :          @param spectrum    TurbulenceSpectrum instance to define the spectrum of
      30             :          turbulence
      31             :          @param gridProp        GridProperties instance to define the underlying grid
      32             :          @param H       Helicity
      33             :          @param seed     Random seed
      34             :          */
      35             :         HelicalGridTurbulence(const SimpleTurbulenceSpectrum &spectrum,
      36             :                               const GridProperties &gridProp, double H,
      37             :                               unsigned int seed = 0);
      38             : 
      39             :         static void initTurbulence(ref_ptr<Grid3f> grid, double Brms, double lMin,
      40             :                                    double lMax, double alpha, int seed, double H);
      41             : };
      42             : 
      43             : // Compatibility with old functions from GridTurbulence:
      44             : 
      45             : /**
      46             :  Create a random initialization of a turbulent field including helicity
      47             :  @param grid    grid on which the turbulence is calculated
      48             :  @param Brms    RMS field strength
      49             :  @param lMin    Minimum wavelength of the turbulence
      50             :  @param lMax    Maximum wavelength of the turbulence
      51             :  @param alpha   Power law index of <B^2(k)> ~ k^alpha (alpha = -11/3 corresponds
      52             :  to a Kolmogorov spectrum)
      53             :  @param seed    Random seed
      54             :  @param H               Helicity
      55             : */
      56           0 : void initHelicalTurbulence(ref_ptr<Grid3f> grid, double Brms, double lMin,
      57             :                            double lMax, double alpha = -11 / 3., int seed = 0,
      58             :                            double H = 0) {
      59           0 :         KISS_LOG_WARNING
      60             :             << "initTurbulence is deprecated and will be removed in the future. "
      61           0 :                "Replace it with a more appropriate turbulent field model instance.";
      62           0 :         HelicalGridTurbulence::initTurbulence(grid, Brms, lMin, lMax, alpha, seed,
      63             :                                               H);
      64           0 : }
      65             : 
      66             : /** @}*/
      67             : } // namespace crpropa
      68             : 
      69             : #endif // CRPROPA_HAVE_FFTW3F
      70             : 
      71             : #endif // CRPROPA_HELICALGRIDTURBULENCE_H

Generated by: LCOV version 1.14