1717from .materials import material_lib
1818from .plotting import PlotMixin
1919from .routines import RoutinesMixin
20+ from .logger import Logger
2021
2122try :
2223 from cupyx .scipy .sparse import csc_matrix as gpu_sparse_mat
@@ -93,7 +94,8 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
9394 '''
9495
9596 self .verbose = verbose
96- if verbose : t0 = time .time ()
97+ t0 = time .time ()
98+ self .logger = Logger ()
9799
98100 # Flags
99101 self .step_0 = True
@@ -110,10 +112,11 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
110112 self .one_step = self ._one_step
111113 if use_stl :
112114 self .use_conductors = False
115+ self .update_logger (['use_gpu' , 'use_mpi' ])
113116
114117 # Grid
115118 self .grid = grid
116-
119+ self . background = bg
117120 self .Nx = self .grid .Nx
118121 self .Ny = self .grid .Ny
119122 self .Nz = self .grid .Nz
@@ -131,6 +134,7 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
131134 self .iA = self .grid .iA
132135 self .tL = self .grid .tL
133136 self .itA = self .grid .itA
137+ self .update_logger (['grid' ,'background' ])
134138
135139 # Wake computation
136140 self .wake = wake
@@ -175,6 +179,7 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
175179 if verbose : print ('Applying boundary conditions...' )
176180 self .bc_low = bc_low
177181 self .bc_high = bc_high
182+ self .update_logger (['bc_low' , 'bc_high' ])
178183 self .apply_bc_to_C ()
179184
180185 # Materials
@@ -203,6 +208,7 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
203208 self .pml_hi = 1.e-1
204209 self .pml_func = np .geomspace
205210 self .fill_pml_sigmas ()
211+ self .update_logger (['n_pml' ])
206212
207213 # Timestep calculation
208214 if verbose : print ('Calculating maximal stable timestep...' )
@@ -212,6 +218,7 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
212218 else :
213219 self .dt = dt
214220 self .dt = dtype (self .dt )
221+ self .update_logger (['dt' ])
215222
216223 if self .use_conductivity : # relaxation time criterion tau
217224
@@ -252,6 +259,9 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
252259
253260 if verbose : print (f'Total initialization time: { time .time () - t0 } s' )
254261
262+ self .solverInitializationTime = time .time () - t0
263+ self .update_logger (['solverInitializationTime' ])
264+
255265 def update_tensors (self , tensor = 'all' ):
256266 '''Update tensor matrices after
257267 Field ieps, imu or sigma have been modified
@@ -1107,4 +1117,14 @@ def reset_fields(self):
11071117 for d in ['x' , 'y' , 'z' ]:
11081118 self .E [:, :, :, d ] = 0.0
11091119 self .H [:, :, :, d ] = 0.0
1110- self .J [:, :, :, d ] = 0.0
1120+ self .J [:, :, :, d ] = 0.0
1121+
1122+ def update_logger (self , attrs ):
1123+ """
1124+ Assigns the parameters handed via attrs to the logger
1125+ """
1126+ for atr in attrs :
1127+ if atr == 'grid' :
1128+ self .logger .grid = self .grid .logger .grid
1129+ else :
1130+ self .logger .solver [atr ] = getattr (self , atr )
0 commit comments