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);
28 HSFile->getline(buff,100);
36 aArr = new double* [Np];
37 vArr = new double* [Np];
38 dArr = new double* [Np];
39 DpdArr = new double* [Np];
40 DzdArr = new double* [Np];
42 aArr[i] = new double [Nz];
43 vArr[i] = new double [Nz];
44 dArr[i] = new double [Nz];
45 DpdArr[i] = new double [Nz];
46 DzdArr[i] = new double [Nz];
49 Np = 0; ip = 0.0; fp = 0.0; dp = 1.0;
50 Nz = 0; iz = 0.0; fz = 0.0; dz = 1.0;
60 // Read FOHSa.txt file and fill array
62 HSFile = new ifstream;
64 if(HSFile->is_open()) {
65 HSFile->seekg (0, ios::beg);
68 HSFile->getline(buff,100);
69 aArr[i][j]=atof(buff);
76 // Read FOHSv.txt file and fill array
78 HSFile = new ifstream;
80 if(HSFile->is_open()) {
81 HSFile->seekg (0, ios::beg);
84 HSFile->getline(buff,100);
85 vArr[i][j]=atof(buff);
92 // Read FOHSd.txt file and fill array
94 HSFile = new ifstream;
96 if(HSFile->is_open()) {
97 HSFile->seekg (0, ios::beg);
100 HSFile->getline(buff,100);
101 dArr[i][j]=atof(buff);
108 // Read FOHSDpd.txt file and fill array
109 FName = "FOHSDpd.txt";
110 HSFile = new ifstream;
112 if(HSFile->is_open()) {
113 HSFile->seekg (0, ios::beg);
116 HSFile->getline(buff,100);
117 DpdArr[i][j]=atof(buff);
124 // Read FOHSDzd.txt file and fill array
125 FName = "FOHSDzd.txt";
126 HSFile = new ifstream;
128 if(HSFile->is_open()) {
129 HSFile->seekg (0, ios::beg);
132 HSFile->getline(buff,100);
133 DzdArr[i][j]=atof(buff);
141 Hypersurface::~Hypersurface(void) {
156 double Hypersurface::fahs(double p, double z) {
161 return (aArr[i][j] * (i+1-p/dp) + aArr[i+1][j] * (p/dp-i)) * (j+1-z/dz) +
162 (aArr[i][j+1] * (i+1-p/dp) + aArr[i+1][j+1] * (p/dp-i)) * (z/dz-j);
165 double Hypersurface::fvhs(double p, double z) {
170 return (vArr[i][j] * (i+1-p/dp) + vArr[i+1][j] * (p/dp-i)) * (j+1-z/dz) +
171 (vArr[i][j+1] * (i+1-p/dp) + vArr[i+1][j+1] * (p/dp-i)) * (z/dz-j);
174 double Hypersurface::fdhs(double p, double z) {
179 return (dArr[i][j] * (i+1-p/dp) + dArr[i+1][j] * (p/dp-i)) * (j+1-z/dz) +
180 (dArr[i][j+1] * (i+1-p/dp) + dArr[i+1][j+1] * (p/dp-i)) * (z/dz-j);
183 double Hypersurface::fDpdhs(double p, double z) {
188 return (DpdArr[i][j] * (i+1-p/dp) + DpdArr[i+1][j] * (p/dp-i)) * (j+1-z/dz) +
189 (DpdArr[i][j+1] * (i+1-p/dp) + DpdArr[i+1][j+1] * (p/dp-i)) * (z/dz-j);
192 double Hypersurface::fDzdhs(double p, double z) {
197 return (DzdArr[i][j] * (i+1-p/dp) + DzdArr[i+1][j] * (p/dp-i)) * (j+1-z/dz) +
198 (DzdArr[i][j+1] * (i+1-p/dp) + DzdArr[i+1][j+1] * (p/dp-i)) * (z/dz-j);