File indexing completed on 2025-08-05 08:19:20
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017 #ifndef SURFACEFINDER_H_
0018 #define SURFACEFINDER_H_
0019
0020 #include <vector>
0021
0022 #include "RealType.h"
0023 #include "SurfaceCellInfo.h"
0024 #include "FluidEvolutionHistory.h"
0025
0026 namespace Jetscape {
0027
0028 class SurfaceFinder {
0029 private:
0030 Jetscape::real T_cut;
0031 const EvolutionHistory &bulk_info;
0032 bool boost_invariant;
0033
0034 std::vector<SurfaceCellInfo> surface_cell_list;
0035
0036 public:
0037 SurfaceFinder(const Jetscape::real T_in, const EvolutionHistory &bulk_data);
0038 ~SurfaceFinder();
0039
0040 void Find_full_hypersurface();
0041
0042 int get_number_of_surface_cells() const { return (surface_cell_list.size()); }
0043 SurfaceCellInfo get_surface_cell_with_idx(int idx) const {
0044 return (surface_cell_list[idx]);
0045 }
0046 std::vector<SurfaceCellInfo> get_surface_cells_vector() const {
0047 return (surface_cell_list);
0048 }
0049
0050 bool check_intersect_3D(Jetscape::real tau, Jetscape::real x,
0051 Jetscape::real y, Jetscape::real dt,
0052 Jetscape::real dx, Jetscape::real dy, double ***cube);
0053 void Find_full_hypersurface_3D();
0054
0055 bool check_intersect_4D(Jetscape::real tau, Jetscape::real x,
0056 Jetscape::real y, Jetscape::real eta,
0057 Jetscape::real dt, Jetscape::real dx,
0058 Jetscape::real dy, Jetscape::real deta,
0059 double ****cube);
0060 void Find_full_hypersurface_4D();
0061
0062 SurfaceCellInfo PrepareASurfaceCell(Jetscape::real tau, Jetscape::real x,
0063 Jetscape::real y, Jetscape::real eta,
0064 Jetscape::real da0, Jetscape::real da1,
0065 Jetscape::real da2, Jetscape::real da3,
0066 const FluidCellInfo fluid_cell);
0067 };
0068
0069 }
0070
0071 #endif