-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathnahs_planar.hpp
89 lines (55 loc) · 1.31 KB
/
nahs_planar.hpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
#ifndef NAHS_PLANAR_H
#define NAHS_PLANAR_H
#include <iostream>
#include <fftw3.h>
class nahs_planar {
public:
nahs_planar (int N, double dr, double* R, double Delta);
public:
void set_mu(double* mu);
double* get_mu();
void set_rho(double* rhob);
double* calc_n();
double* calc_c1();
double get_c1(int s, int i) {return c1[s*N + i];}
double calc_F();
double get_F();
void hardwall();
void load_rho();
double *get_rho(int s) {return &rho[s*N];}
const double get_rho(int s, int i) {return rho[s*N + i];}
double n(int s, int g, int i) {return n_[(s*4 + g)*N +i];}
int get_left(int s) {return left[s];}
int get_right(int s) {return right[s];}
double &set_rho(int s,int i) {return rho[s*N + i];}
private:
double &p(int s, int g, int i) {
//return p_[(s*4 + g)*N +i]
return p_[i*8 + s*4 + g]
;}
double &omega(int i) {return omega_[i];}
double &K(int a, int b, int i) {
return K_[(a + b*(b+1)/2)*NK + i];
}
double &K(int j, int i) {
return K_[j*NK + i];
}
int left[2], right[2];
private:
int N, NK;
double dr, Delta, R12, F, Omega;
double R[2], mu[2];
double* r;
double* rho;
double* c1;
fftw_complex* rhok;
double* wr, *wk;
double* n_;
double* p_;
double* K_;
double* omega_;
double *FFTW_dble;
fftw_complex *FFTW_cmplx;
fftw_plan FFTWplanF, FFTWplanB;
};
#endif