Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2026-05-15 07:41:58

0001 #pragma once
0002 
0003 #include "QUDARAP_API_EXPORT.hh"
0004 #include "plog/Severity.h"
0005 #include <string>
0006 
0007 struct NP;
0008 template <typename T> struct QTex;
0009 struct qwls;
0010 
0011 /**
0012 QWls : Host-side WLS ICDF Texture Upload
0013 ============================================
0014 
0015 Uploads the WLS inverse CDF array into a GPU texture and creates
0016 the device-side qwls struct with material mapping and time constants.
0017 
0018 Follows the same pattern as QScint for scintillation ICDF textures.
0019 
0020 **/
0021 
0022 struct QUDARAP_API QWls
0023 {
0024     static const plog::Severity LEVEL;
0025     static const QWls *INSTANCE;
0026     static const QWls *Get();
0027 
0028     static QTex<float> *MakeWlsTex(const NP *src, unsigned hd_factor);
0029     static qwls *MakeInstance(const QTex<float> *tex, const NP *mat_map, const NP *time_constants, unsigned hd_factor,
0030                               unsigned num_wls);
0031 
0032     const NP *dsrc;   // original double-precision ICDF
0033     const NP *src;    // narrowed float ICDF
0034     QTex<float> *tex; // GPU texture
0035     qwls *wls;        // host-side instance (with device pointers)
0036     qwls *d_wls;      // device copy of qwls struct
0037 
0038     QWls(const NP *wls_icdf, const NP *mat_map, const NP *time_constants, unsigned hd_factor);
0039 
0040     std::string desc() const;
0041 };