VERB_code_2.3
DiffusionCoefficient.h
Go to the documentation of this file.
1 
9 #ifndef DiffusionCoefficient_H
10 #define DiffusionCoefficient_H
11 
12 #include <string>
13 #include <vector>
14 #include "../Matrix/Matrix.h"
15 #include "../Grid/Grid.h"
16 
17 using namespace std;
18 
24 public:
26 
29 
32 
33  // Variables
34 
36  string type;
37 
39  bool is_active;
40 
42  bool useScale;
43 
45  double Scale(double Kp);
46 
48  void Create_Dxx(DxxParameters_structure DxxParameters, Grid &grid);
49 
57  bool LoadDiffusionCoefficient(GridElement &L, GridElement &pc, GridElement &alpha, string D_filename, string filetype = "IFT_GRID");
58 
60  bool LoadDiffusionCoefficientFromFileWithGrid(GridElement &L, GridElement &pc, GridElement &alpha, string D_filename, string gridOrder = "IFT_GRID_LPA");
61 
63  bool LoadDiffusionCoefficientFromPlaneFile(GridElement &L, GridElement &pc, GridElement &alpha, string D_filename);
64 
66  void Calculate(GridElement &L, GridElement &epc, GridElement &alpha, DxxParameters_structure DxxParameters);
67 
69  void MakeDLL(double Kp);
71  void MakeDLL(GridElement &L, GridElement &pc, GridElement &alpha, double Kp, string DLLType = "DLLT_B");
73  void MakeDLL_B(GridElement &L, GridElement &pc, GridElement &alpha, double Kp);
75  void MakeDLL_FAKE(GridElement &L, GridElement &pc, GridElement &alpha, double Kp);
77  void MakeDLL_BE_res(GridElement &L, GridElement &pc, GridElement &alpha, double Kp);
79  void MakeDLL_BE(GridElement &L, GridElement &pc, GridElement &alpha, double Kp);
81  void MakeDLL100(GridElement &L, GridElement &pc, GridElement &alpha, double Kp);
83  void MakeDLL_Ozeke(GridElement &L, GridElement &pc, GridElement &alpha, double Kp);
85  void MakeDLL_Ozeke_ME(GridElement &L, GridElement &pc, GridElement &alpha, double Kp);
86 
87 };
88 
96 private:
98  //bool DxxGroup_initialized;
99 public:
101  // variables
102 
104  vector <DiffusionCoefficient> DxxList;
105 
110  bool ActivateAndScale(double time, double Kp);
111 
112  // constructors
114  //DxxGroup_initialized = false;
115  //*this = 0;
116  }
117 
118 };
119 
120 // Calculations...
121  double Dxx_ba(double L, double epc, double alpha, double int_Dxx_loc(double lambda, DxxParameters_structure DxxParameters), DxxParameters_structure DxxParameters); //
122  double Dxx_local(double lambda, double Dxx_root(double Omega_e, double x, double mu, double su, double y, double beta, double a, double b, double alpha_star, double s, double epsilon, double d_x, double x_m, double R, DxxParameters_structure DxxParameters), DxxParameters_structure DxxParameters);
123 
124  double Daa_root(double Omega_e, double x, double mu, double su, double y, double beta, double a, double b, double alpha_star, double s, double epsilon, double d_x, double x_m, double R, DxxParameters_structure DxxParameters);
125  double Dpa_root(double Omega_e, double x, double mu, double su, double y, double beta, double a, double b, double alpha_star, double s, double epsilon, double d_x, double x_m, double R, DxxParameters_structure DxxParameters);
126  double Dpp_root(double Omega_e, double x, double mu, double su, double y, double beta, double a, double b, double alpha_star, double s, double epsilon, double d_x, double x_m, double R, DxxParameters_structure DxxParameters);
127 
128  double int_Daa_loc(double lambda, DxxParameters_structure DxxParameters);
129  double int_Dpp_loc(double lambda, DxxParameters_structure DxxParameters);
130  double int_Dpa_loc(double lambda, DxxParameters_structure DxxParameters);
131 
132  // various functions
133 // double B(double lambda, double L);
134  double f1(double lambda);
135 
136  double Alpha_ne(double pangle, double lambda, double L);
137  double func_tmp (double x, double Alpha);
138 
139  double F_cap(double x, double y, double b, double s, double epsilon, DxxParameters_structure DxxParameters);
140  // F_cap2 replaced F_cap. F_cap is no longer used.
141  double F_cap2(double x, double y, double a, double beta, double mu, double s, double epsilon, double Alpha_star, DxxParameters_structure DxxParameters);
142  //std::vector<double> rrouts(double Omega_e_eq, double Omega_e, double yida1, double yida2, double yida3, double epsilon, double beta, double mu, double alpha_star, double a, DiffusionCoefficientParameters_structure DxxParameters_structure);
143 
145  std::vector<double> rrouts(double x_1, double x_2, double yida1, double yida2, double yida3, double epsilon, double beta, double mu, double alpha_star, double a, DxxParameters_structure DxxParameters);
146 
147  double Df (double L, double Kp) ;
148 
149  double Df_Ozeke (double L, double Kp) ;
150 
151  double Df_Ozeke_E (double L, double Kp) ;
152 
156  Parameters_structure &parameters, Grid &radialDiffusionGrid, Grid &localDiffusionsGrid);
157 
170  void Output1DHeaders(ofstream &output1D,
173 
189  void Output1DValues(ofstream &output1D,
192  double &time, Parameters_structure &parameters, int iteration);
193 
194 
195 #endif
196 
197 
bool Dxx_initialized
flag, indicated that the initialization was passed
Holds list of instances of DiffusionCoefficient class of same type (like Daa, Dpp, etc), but produced by different waves (Daa_chorus, Daa_EMIC, etc).
Array of values of coordinate axes.
Definition: Grid.h:28
double Alpha_ne(double pangle, double lambda, double L)
DxxParameters_structure DxxParameters
Derivative parameters.
double int_Daa_loc(double lambda, DxxParameters_structure DxxParameters)
Holds diffusion coefficient matrix and routines to load and calculate it.
double Dpa_root(double Omega_e, double x, double mu, double su, double y, double beta, double a, double b, double alpha_star, double s, double epsilon, double d_x, double x_m, double R, DxxParameters_structure DxxParameters)
DiffusionCoefficient CurrentDxx
flag, indicated that the initialization was passed
Struct that holds various parameters to be used for Dxx.
Definition: Parameters.h:27
bool useScale
flag, if scale is applyable
void Output1DHeaders(ofstream &output1D, DiffusionCoefficientsGroup &Daa, DiffusionCoefficientsGroup &Dpcpc, DiffusionCoefficientsGroup &Dpca, DiffusionCoefficientsGroup &DaaLpp, DiffusionCoefficientsGroup &DpcpcLpp, DiffusionCoefficientsGroup &DpcaLpp)
Function used in main() to print header in output file. Header needs to understand the output file...
double int_Dpp_loc(double lambda, DxxParameters_structure DxxParameters)
double int_Dpa_loc(double lambda, DxxParameters_structure DxxParameters)
double Dxx_local(double lambda, double Dxx_root(double Omega_e, double x, double mu, double su, double y, double beta, double a, double b, double Alpha_star, double s, double epsilon, double d_x, double x_m, double R, DxxParameters_structure DxxParameters), DxxParameters_structure DxxParameters)
double Dpp_root(double Omega_e, double x, double mu, double su, double y, double beta, double a, double b, double alpha_star, double s, double epsilon, double d_x, double x_m, double R, DxxParameters_structure DxxParameters)
double f1(double lambda)
double F_cap(double x, double y, double b, double s, double epsilon, DxxParameters_structure DxxParameters)
double Df_Ozeke(double L, double Kp)
Main parameters structure that holds smaller structures for individual parameters.
Definition: Parameters.h:94
bool is_active
flag, if is enabled right now
double Df_Ozeke_E(double L, double Kp)
Matrix3D< double > arr
array of diffusion coefficients
double Df(double L, double Kp)
double func_tmp(double x, double Alpha)
double F_cap2(double x, double y, double a, double beta, double mu, double s, double epsilon, double Alpha_star, DxxParameters_structure DxxParameters)
void Output1DValues(ofstream &output1D, DiffusionCoefficientsGroup &Daa, DiffusionCoefficientsGroup &Dpcpc, DiffusionCoefficientsGroup &Dpca, DiffusionCoefficientsGroup &DaaLpp, DiffusionCoefficientsGroup &DpcpcLpp, DiffusionCoefficientsGroup &DpcaLpp, double &time, Parameters_structure &parameters, int iteration)
Function used in main() to print values of diffusion coefficients in output file. ...
Parameters_structure parameters
Parameters structure, with all parameters from the parameters.ini file. The default parameters define...
Definition: Main.cpp:187
string type
Type of the diffusion coefficient: Daa, Dpp, Dpa etc... Described in types.h file as an enumeration...
void CreateAllDiffusionCoefficients(DiffusionCoefficient &DLL, DiffusionCoefficientsGroup &Daa, DiffusionCoefficientsGroup &Dpcpc, DiffusionCoefficientsGroup &Dpca, DiffusionCoefficientsGroup &DaaLpp, DiffusionCoefficientsGroup &DpcpcLpp, DiffusionCoefficientsGroup &DpcaLpp, Parameters_structure &parameters, Grid &radialDiffusionGrid, Grid &localDiffusionsGrid)
double Daa_root(double Omega_e, double x, double mu, double su, double y, double beta, double a, double b, double alpha_star, double s, double epsilon, double d_x, double x_m, double R, DxxParameters_structure DxxParameters)
std::vector< double > rrouts(double x_1, double x_2, double yida1, double yida2, double yida3, double epsilon, double beta, double mu, double alpha_star, double a, DxxParameters_structure DxxParameters)
routs finding routine
Computational grid composed of 3 different GridElement.
Definition: Grid.h:53
vector< DiffusionCoefficient > DxxList
List of diffusion coefficients in that group. Actually, it's a list of waves used in the diffusion co...
double Dxx_ba(double L, double epc, double alpha, double int_Dxx_loc(double lambda, DxxParameters_structure DxxParameters), DxxParameters_structure DxxParameters)