Fri 16 May 23:06:54 CEST 2025
This commit is contained in:
parent
9feb0110d5
commit
eab3d82653
|
@ -12,15 +12,21 @@ import math
|
|||
class SnapShots:
|
||||
def __init__(self, Enable=False, Extension='.png', Step=200, Filename=None, File_path = None, dB=60, Color=0,
|
||||
Field = 0,
|
||||
Material = 0,
|
||||
enableFields=False,
|
||||
enableSignals=False,
|
||||
enableImages=False,
|
||||
enableMaterial=False,
|
||||
enableNumPy=False,
|
||||
enableVolume=False,
|
||||
enableView=False,
|
||||
sensorShape = [],
|
||||
sensorPlacement = [],
|
||||
sensorSize = 0):
|
||||
if Material is 0:
|
||||
Material = "Im"
|
||||
if type(Field) == str or type(Field) == unicode:
|
||||
Field = ["Vx","Vy","[Vx,Vy]","Txx","Txy","Tyy","[Txx:Txy:Tyy]","Dx","Dy","[Dx,Dy]","SV"].index(Field)
|
||||
|
||||
self.IsEnable = Enable
|
||||
self.Extension = Extension
|
||||
|
@ -30,9 +36,11 @@ class SnapShots:
|
|||
self.DB = dB
|
||||
self.Color = Color
|
||||
self.Field = Field
|
||||
self.Material = Material
|
||||
self.enableFields = enableFields
|
||||
self.enableSignals = enableSignals
|
||||
self.enableImages = enableImages
|
||||
self.enableMaterial = enableMaterial
|
||||
self.enableNumPy = enableNumPy
|
||||
self.enableVolume = enableVolume
|
||||
self.enableView = enableView
|
||||
|
@ -43,7 +51,7 @@ class SnapShots:
|
|||
self.volS = []
|
||||
self.volP = []
|
||||
|
||||
print("SnapShots Field="+str(Field)+" enableNumPy="+str(enableNumPy)+" enableVolume="+str(enableVolume)+ " enableSignals="+str(enableSignals))
|
||||
print("SnapShots Field="+str(Field)+" enableNumPy="+str(enableNumPy)+" enableVolume="+str(enableVolume)+ " enableSignals="+str(enableSignals)+ " enableMaterial="+str(enableMaterial))
|
||||
# if self.File_path does not exist, create it
|
||||
if not os.path.exists(self.File_path):
|
||||
os.makedirs(self.File_path)
|
||||
|
@ -69,6 +77,54 @@ class SnapShots:
|
|||
savemat(FILE, dict)
|
||||
|
||||
# @blab+
|
||||
# save material distribution matrix
|
||||
def save_material(self,SimPack,Material):
|
||||
if Material == 'I':
|
||||
FILE = self.Filename + "-materials-I"
|
||||
FILE_PATH = os.path.join(self.File_path, FILE)
|
||||
print('Saving scenario material label distribution matrix I ('+FILE+') ['+str(SimPack.Scenario.I.shape[0])+','+str(SimPack.Scenario.I.shape[1])+']')
|
||||
np.save(FILE_PATH,SimPack.Scenario.I)
|
||||
if Material == 'Iabs':
|
||||
FILE = self.Filename + "-materials-Iabs"
|
||||
FILE_PATH = os.path.join(self.File_path, FILE)
|
||||
print('Saving scenario material label distribution matrix Iabs ('+FILE+') ['+str(SimPack.Scenario.Iabs.shape[0])+','+str(SimPack.Scenario.Iabs.shape[1])+']')
|
||||
np.save(FILE_PATH,SimPack.Scenario.Iabs)
|
||||
if Material == 'Im':
|
||||
FILE = self.Filename + "-materials-Im"
|
||||
FILE_PATH = os.path.join(self.File_path, FILE)
|
||||
print('Saving simulation material label distribution matrix Im ('+FILE+') ['+str(SimPack.Simulation.Im.shape[0])+','+str(SimPack.Simulation.Im.shape[1])+']')
|
||||
np.save(FILE_PATH,SimPack.Simulation.Im)
|
||||
if Material == 'RV':
|
||||
# Must be recreated from Im, efit2d replaces rho<2 with very large rho value > 1e24
|
||||
MRI, NRI = np.shape(SimPack.Simulation.Im)
|
||||
Rho = np.zeros((MRI, NRI), dtype=np.float32)
|
||||
VL = np.zeros((MRI, NRI), dtype=np.float32)
|
||||
VT = np.zeros((MRI, NRI), dtype=np.float32)
|
||||
for n in range(len(SimPack.Materials)):
|
||||
ind = np.nonzero(SimPack.Simulation.Im == SimPack.Materials[n].Label)
|
||||
Rho[ind] = SimPack.Materials[n].Rho
|
||||
VL[ind] = SimPack.Materials[n].VL
|
||||
VT[ind] = SimPack.Materials[n].VT
|
||||
# 'air', (1.24, 344, 1e-30), but handled in efit2d as vaccum, i.e. 0
|
||||
#
|
||||
ind = np.nonzero(SimPack.Simulation.Im == 255)
|
||||
Rho[ind] = 1.24
|
||||
VL[ind] = 344
|
||||
VT[ind] = 1e-30
|
||||
FILE = self.Filename + "-materials-Rho"
|
||||
FILE_PATH = os.path.join(self.File_path, FILE)
|
||||
print('Saving simulation material distribution matrix ('+FILE+') ['+str(Rho.min())+','+str(Rho.max())+']')
|
||||
np.save(FILE_PATH,Rho)
|
||||
FILE = self.Filename + "-materials-VL"
|
||||
FILE_PATH = os.path.join(self.File_path, FILE)
|
||||
print('Saving simulation material distribution matrix ('+FILE+') ['+str(VL.min())+','+str(VL.max())+']')
|
||||
np.save(FILE_PATH,VL)
|
||||
FILE = self.Filename + "-materials-VT"
|
||||
FILE_PATH = os.path.join(self.File_path, FILE)
|
||||
print('Saving simulation material distribution matrix ('+FILE+') ['+str(VT.min())+','+str(VT.max())+']')
|
||||
np.save(FILE_PATH,VT)
|
||||
|
||||
|
||||
def save_signal(self, D , n, Label):
|
||||
|
||||
self.Label = Label
|
||||
|
|
Loading…
Reference in New Issue
Block a user