Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:19:30

0001 /*******************************************************************************
0002  * Copyright (c) The JETSCAPE Collaboration, 2018
0003  *
0004  * Modular, task-based framework for simulating all aspects of heavy-ion collisions
0005  * 
0006  * For the list of contributors see AUTHORS.
0007  *
0008  * Report issues at https://github.com/JETSCAPE/JETSCAPE/issues
0009  *
0010  * or via email to bugs.jetscape@gmail.com
0011  *
0012  * Distributed under the GNU General Public License 3.0 (GPLv3 or later).
0013  * See COPYING for details.
0014  ******************************************************************************/
0015 
0016 #include <stdio.h>
0017 #include <sys/stat.h>
0018 
0019 #include <string>
0020 #include <fstream>
0021 
0022 #include "JetScapeLogger.h"
0023 #include "JetScapeConstants.h"
0024 #include "Glasma.h"
0025 
0026 using Jetscape::hbarC;
0027 
0028 // Register the module with the base class
0029 RegisterJetScapeModule<Glasma> Glasma::reg("Glasma");
0030 
0031 Glasma::Glasma() {
0032     preequilibrium_status_ = NOT_STARTED;
0033     SetId("Glasma");
0034 }
0035 
0036 void Glasma::EvolvePreequilibrium() {
0037     VERBOSE(2) << "Initialize density profiles in Glasma ...";
0038     std::string IPGlasmaFileName = "epsilon-u-Hydro-t0.4-0.dat";
0039     VERBOSE(2) << "Read in IPGlasma Tmunu ...";
0040     const double norm = 0.235;
0041     std::ifstream IPGFile(IPGlasmaFileName.c_str());
0042     if (!IPGFile.good()) {
0043         Jetscape::JSWARN << "Can not open " << IPGlasmaFileName;
0044         exit(1);
0045     }
0046     std::string tempString;
0047     std::getline(IPGFile, tempString);
0048     double dummy;
0049     IPGFile >> dummy;
0050     while (!IPGFile.eof()) {
0051         double e_local;
0052         double u[4];
0053         double pi[10];
0054         IPGFile >> dummy >> dummy;
0055         IPGFile >> e_local >> u[0] >> u[1] >> u[2] >> u[3];
0056         e_.push_back(norm*e_local*hbarC);
0057         P_.push_back(norm*e_local*hbarC/3.);
0058         utau_.push_back(u[0]);
0059         ux_.push_back(u[1]);
0060         uy_.push_back(u[2]);
0061         ueta_.push_back(u[3]);
0062         for (int i = 0; i < 10; i++) {
0063             IPGFile >> pi[i];
0064             pi[i] *= norm*hbarC;
0065         }
0066         pi00_.push_back(pi[0]);
0067         pi01_.push_back(pi[1]);
0068         pi02_.push_back(pi[2]);
0069         pi03_.push_back(pi[3]);
0070         pi11_.push_back(pi[4]);
0071         pi12_.push_back(pi[5]);
0072         pi13_.push_back(pi[6]);
0073         pi22_.push_back(pi[7]);
0074         pi23_.push_back(pi[8]);
0075         pi33_.push_back(pi[9]);
0076         bulk_Pi_.push_back(0.);
0077         IPGFile >> dummy;
0078     }
0079     preequilibrium_status_ = DONE;
0080     IPGFile.close();
0081 }