diff --git a/Armory/ClassDet.h b/Armory/ClassDet.h index 7472b45..0478eba 100644 --- a/Armory/ClassDet.h +++ b/Armory/ClassDet.h @@ -5,11 +5,20 @@ #define MAXMULTI 1000 +class Det +{ class Det { public: Det() : multi(0) { Clear(); } + Det() : multi(0) { Clear(); } + unsigned short multi; // max 65535 + unsigned short id[MAXMULTI]; + unsigned short ch[MAXMULTI]; + unsigned short e[MAXMULTI]; + unsigned long long t[MAXMULTI]; + unsigned long long tf[MAXMULTI]; unsigned short multi; // max 65535 unsigned short id[MAXMULTI]; unsigned short ch[MAXMULTI]; @@ -17,16 +26,24 @@ public: unsigned long long t[MAXMULTI]; unsigned long long tf[MAXMULTI]; + unsigned short sn[MAXMULTI]; + unsigned short digiCh[MAXMULTI]; unsigned short sn[MAXMULTI]; unsigned short digiCh[MAXMULTI]; + unsigned short index[MAXMULTI]; // id * nCh + ch; + bool used[MAXMULTI]; unsigned short index[MAXMULTI]; // id * nCh + ch; bool used[MAXMULTI]; + void Clear() + { void Clear() { multi = 0; for (int i = 0; i < MAXMULTI; i++) + { + for (int i = 0; i < MAXMULTI; i++) { id[i] = 0; ch[i] = 0; @@ -37,9 +54,18 @@ public: sn[i] = 0; digiCh[i] = 0; used[i] = false; + e[i] = 0; + t[i] = 0; + tf[i] = 0; + index[i] = 0; + sn[i] = 0; + digiCh[i] = 0; + used[i] = false; } } + void Print() + { void Print() { printf("=============================== multi : %u\n", multi); @@ -49,12 +75,19 @@ public: } } + void SetDetDimension(unsigned short maxID, unsigned maxCh) + { void SetDetDimension(unsigned short maxID, unsigned maxCh) { nID = maxID; nCh = maxCh; } + void CalIndex() + { + for (int i = 0; i < multi; i++) + { + index[i] = id[i] * nCh + ch[i]; void CalIndex() { for (int i = 0; i < multi; i++) @@ -69,3 +102,4 @@ private: }; #endif +#endif diff --git a/Armory/Mapper.cpp b/Armory/Mapper.cpp index 5261d45..b2f3702 100644 --- a/Armory/Mapper.cpp +++ b/Armory/Mapper.cpp @@ -124,10 +124,13 @@ int main(int argc, char **argv) pc.multi = 0; misc.multi = 0; + sx3.Clear(); sx3.Clear(); qqq.Clear(); pc.Clear(); misc.Clear(); + pc.Clear(); + misc.Clear(); for (unsigned int i = 0; i < multi; i++) { diff --git a/anasen_fem/dielectrics.dat b/anasen_fem/dielectrics.dat new file mode 100644 index 0000000..f93f221 --- /dev/null +++ b/anasen_fem/dielectrics.dat @@ -0,0 +1,2 @@ +1 +13 1.0 diff --git a/anasen_fem/garfield_sim.py b/anasen_fem/garfield_sim.py index 31e5adc..92e84e7 100644 --- a/anasen_fem/garfield_sim.py +++ b/anasen_fem/garfield_sim.py @@ -4,7 +4,8 @@ import sys # 1. FIX: Manually load the Garfield library if it's not in the ROOT namespace # Update this path to your actual installation location -garfield_lib_path = "/home/vs19g/garfieldpp/install/lib/libGarfield.so" +# garfield_lib_path = "/home/vs19g/garfieldpp/install/lib/libGarfield.so" #panguin path +garfield_lib_path = "/home/vsitaraman/garfieldpp/install/lib/libGarfield.so" #laptop path if os.path.exists(garfield_lib_path): ROOT.gSystem.Load(garfield_lib_path) @@ -48,7 +49,7 @@ fm = ROOT.Garfield.ComponentElmer() fm.Initialise("wires2d/mesh.header", "wires2d/mesh.elements", "wires2d/mesh.nodes", - "wires2d/dielectrics.dat", + "dielectrics.dat", # Dielectrics (leave as empty string) "wires2d/elstatics.result", "mm")