1 #include "Hypersurface.h"
3 Hypersurface::Hypersurface(void) {
4 // Read FOHSI.txt file and init parameters
8 if(HSFile->is_open()) {
9 HSFile->seekg (0, ios::beg);
11 HSFile->getline(buff,100);
13 HSFile->getline(buff,100);
15 HSFile->getline(buff,100);
18 HSFile->getline(buff,100);
20 HSFile->getline(buff,100);
22 HSFile->getline(buff,100);
24 // freeze-out temperature
25 HSFile->getline(buff,100);
33 aArr = new double* [Np];
34 vArr = new double* [Np];
35 dArr = new double* [Np];
36 DpdArr = new double* [Np];
37 DzdArr = new double* [Np];
39 aArr[i] = new double [Nz];
40 vArr[i] = new double [Nz];
41 dArr[i] = new double [Nz];
42 DpdArr[i] = new double [Nz];
43 DzdArr[i] = new double [Nz];
46 Np = 0; ip = 0.0; fp = 0.0; dp = 1.0;
47 Nz = 0; iz = 0.0; fz = 0.0; dz = 1.0;
57 // Read FOHSa.txt file and fill array
59 HSFile = new ifstream;
61 if(HSFile->is_open()) {
62 HSFile->seekg (0, ios::beg);
65 HSFile->getline(buff,100);
66 aArr[i][j]=atof(buff);
73 // Read FOHSv.txt file and fill array
75 HSFile = new ifstream;
77 if(HSFile->is_open()) {
78 HSFile->seekg (0, ios::beg);
81 HSFile->getline(buff,100);
82 vArr[i][j]=atof(buff);
89 // Read FOHSd.txt file and fill array
91 HSFile = new ifstream;
93 if(HSFile->is_open()) {
94 HSFile->seekg (0, ios::beg);
97 HSFile->getline(buff,100);
98 dArr[i][j]=atof(buff);
105 // Read FOHSDpd.txt file and fill array
106 FName = "FOHSDpd.txt";
107 HSFile = new ifstream;
109 if(HSFile->is_open()) {
110 HSFile->seekg (0, ios::beg);
113 HSFile->getline(buff,100);
114 DpdArr[i][j]=atof(buff);
121 // Read FOHSDzd.txt file and fill array
122 FName = "FOHSDzd.txt";
123 HSFile = new ifstream;
125 if(HSFile->is_open()) {
126 HSFile->seekg (0, ios::beg);
129 HSFile->getline(buff,100);
130 DzdArr[i][j]=atof(buff);
138 Hypersurface::~Hypersurface(void) {
153 double Hypersurface::fahs(double p, double z) {
158 return (aArr[i][j] * (i+1-p/dp) + aArr[i+1][j] * (p/dp-i)) * (j+1-z/dz) +
159 (aArr[i][j+1] * (i+1-p/dp) + aArr[i+1][j+1] * (p/dp-i)) * (z/dz-j);
162 double Hypersurface::fvhs(double p, double z) {
167 return (vArr[i][j] * (i+1-p/dp) + vArr[i+1][j] * (p/dp-i)) * (j+1-z/dz) +
168 (vArr[i][j+1] * (i+1-p/dp) + vArr[i+1][j+1] * (p/dp-i)) * (z/dz-j);
171 double Hypersurface::fdhs(double p, double z) {
176 return (dArr[i][j] * (i+1-p/dp) + dArr[i+1][j] * (p/dp-i)) * (j+1-z/dz) +
177 (dArr[i][j+1] * (i+1-p/dp) + dArr[i+1][j+1] * (p/dp-i)) * (z/dz-j);
180 double Hypersurface::fDpdhs(double p, double z) {
185 return (DpdArr[i][j] * (i+1-p/dp) + DpdArr[i+1][j] * (p/dp-i)) * (j+1-z/dz) +
186 (DpdArr[i][j+1] * (i+1-p/dp) + DpdArr[i+1][j+1] * (p/dp-i)) * (z/dz-j);
189 double Hypersurface::fDzdhs(double p, double z) {
194 return (DzdArr[i][j] * (i+1-p/dp) + DzdArr[i+1][j] * (p/dp-i)) * (j+1-z/dz) +
195 (DzdArr[i][j+1] * (i+1-p/dp) + DzdArr[i+1][j+1] * (p/dp-i)) * (z/dz-j);