modified: anasen_fem/garfield_sim.py mad

modified:   anasen_fem/run.py
	modified:   anasen_fem/wires_gmsh2d_bc.py
    made changes to both to resolve inconsistency between the mesh generated by GMSH (3nodes) and expected by garfield (10nodes)
This commit is contained in:
Vignesh Sitaraman 2026-04-27 17:55:05 -04:00
parent dccea0c862
commit 40ec71a216
3 changed files with 5 additions and 4 deletions

View File

@ -42,7 +42,7 @@ else:
gas.LoadGasFile(gas_file)
# --- 3. FIELD MAP SETUP ---
fm = ROOT.Garfield.ComponentElmer()
fm = ROOT.Garfield.ComponentElmer2d()
fm.Initialise("wires2d/mesh.header",
@ -58,6 +58,7 @@ fm.SetMedium(0, gas)
# --- 4. SENSOR AND DRIFT SETUP ---
sensor = ROOT.Garfield.Sensor()
sensor.AddComponent(fm)
sensor.SetArea(-50.0, -50.0, -5.0, 50.0, 50.0, 5.0) #hardcoding the sesnsor area to define a psuedo 3d geometry
# Heavy Ion Drift (RKF) - Best for the general track
drift = ROOT.Garfield.DriftLineRKF()
@ -69,7 +70,7 @@ aval.SetSensor(sensor)
# --- 5. EXECUTION ---
# Starting position (e.g., near the IC wires at r=23mm or closer to Anodes)
x0, y0, z0, t0 = 35.0, 0.0, 0.0, 0.0
x0, y0, z0, t0 = 3.50, 0.0, 0.0, 0.0
print(f"Simulating heavy ion drift from r={x0}...")
drift.DriftIon(x0, y0, z0, t0)

View File

@ -10,7 +10,7 @@ while val<178.3+0.1:
os.system("ElmerGrid 14 2 wires2d.msh -2d")
os.system("ElmerSolver wires2d.sif")
os.system("./paraview_plotter.py")
# os.system("python3 garfield_sim.py")
os.system("python3 garfield_sim.py")
os.system("cp wires2d.msh wires2d/mesh_files/wires2d%02d_%1.4f.msh"%(count,val))
os.system("cp wires2d.sif wires2d/sif_files/wires2d_%02d_%1.4f.sif"%(count,val))
os.system("cp wires2d/elfield_anasen_t0001.vtu wires2d/vtu_files/elfield_anasen_%02d_%1.4f.vtu"%(count,val))

View File

@ -224,7 +224,7 @@ gmsh.option.setNumber("Mesh.Algorithm", 6)
gmsh.model.mesh.generate(dim=2)
# gmsh.model.mesh.refine()
# gmsh.model.mesh.refine()
gmsh.model.mesh.setOrder(3)
gmsh.write("wires2d.msh")
gmsh.model.mesh.setOrder(1)
#gmsh.fltk.run()
gmsh.finalize()