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:
|
class SnapShots:
|
||||||
def __init__(self, Enable=False, Extension='.png', Step=200, Filename=None, File_path = None, dB=60, Color=0,
|
def __init__(self, Enable=False, Extension='.png', Step=200, Filename=None, File_path = None, dB=60, Color=0,
|
||||||
Field = 0,
|
Field = 0,
|
||||||
|
Material = 0,
|
||||||
enableFields=False,
|
enableFields=False,
|
||||||
enableSignals=False,
|
enableSignals=False,
|
||||||
enableImages=False,
|
enableImages=False,
|
||||||
|
enableMaterial=False,
|
||||||
enableNumPy=False,
|
enableNumPy=False,
|
||||||
enableVolume=False,
|
enableVolume=False,
|
||||||
enableView=False,
|
enableView=False,
|
||||||
sensorShape = [],
|
sensorShape = [],
|
||||||
sensorPlacement = [],
|
sensorPlacement = [],
|
||||||
sensorSize = 0):
|
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.IsEnable = Enable
|
||||||
self.Extension = Extension
|
self.Extension = Extension
|
||||||
|
@ -30,9 +36,11 @@ class SnapShots:
|
||||||
self.DB = dB
|
self.DB = dB
|
||||||
self.Color = Color
|
self.Color = Color
|
||||||
self.Field = Field
|
self.Field = Field
|
||||||
|
self.Material = Material
|
||||||
self.enableFields = enableFields
|
self.enableFields = enableFields
|
||||||
self.enableSignals = enableSignals
|
self.enableSignals = enableSignals
|
||||||
self.enableImages = enableImages
|
self.enableImages = enableImages
|
||||||
|
self.enableMaterial = enableMaterial
|
||||||
self.enableNumPy = enableNumPy
|
self.enableNumPy = enableNumPy
|
||||||
self.enableVolume = enableVolume
|
self.enableVolume = enableVolume
|
||||||
self.enableView = enableView
|
self.enableView = enableView
|
||||||
|
@ -43,7 +51,7 @@ class SnapShots:
|
||||||
self.volS = []
|
self.volS = []
|
||||||
self.volP = []
|
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 self.File_path does not exist, create it
|
||||||
if not os.path.exists(self.File_path):
|
if not os.path.exists(self.File_path):
|
||||||
os.makedirs(self.File_path)
|
os.makedirs(self.File_path)
|
||||||
|
@ -69,6 +77,54 @@ class SnapShots:
|
||||||
savemat(FILE, dict)
|
savemat(FILE, dict)
|
||||||
|
|
||||||
# @blab+
|
# @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):
|
def save_signal(self, D , n, Label):
|
||||||
|
|
||||||
self.Label = Label
|
self.Label = Label
|
||||||
|
|
Loading…
Reference in New Issue
Block a user