1515from .materials import material_lib
1616from .plotting import PlotMixin
1717from .routines import RoutinesMixin
18+ from .logger import Logger
1819
1920try :
2021 from cupyx .scipy .sparse import csc_matrix as gpu_sparse_mat
@@ -92,8 +93,8 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
9293 '''
9394
9495 self .verbose = verbose
95- if verbose :
96- t0 = time . time ()
96+ t0 = time . time ()
97+ self . logger = Logger ()
9798
9899 # Flags
99100 self .step_0 = True
@@ -110,10 +111,11 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
110111 self .one_step = self ._one_step
111112 if use_stl :
112113 self .use_conductors = False
114+ self .update_logger (['use_gpu' , 'use_mpi' ])
113115
114116 # Grid
115117 self .grid = grid
116-
118+ self . background = bg
117119 self .Nx = self .grid .Nx
118120 self .Ny = self .grid .Ny
119121 self .Nz = self .grid .Nz
@@ -131,6 +133,7 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
131133 self .iA = self .grid .iA
132134 self .tL = self .grid .tL
133135 self .itA = self .grid .itA
136+ self .update_logger (['grid' ,'background' ])
134137
135138 # Wake computation
136139 self .wake = wake
@@ -177,7 +180,8 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
177180 print ('Applying boundary conditions...' )
178181 self .bc_low = bc_low
179182 self .bc_high = bc_high
180- self .apply_bc_to_C ()
183+ self .update_logger (['bc_low' , 'bc_high' ])
184+ self .apply_bc_to_C ()
181185
182186 # Materials
183187 if verbose :
@@ -207,6 +211,7 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
207211 self .pml_hi = 1.e-1
208212 self .pml_func = np .geomspace
209213 self .fill_pml_sigmas ()
214+ self .update_logger (['n_pml' ])
210215
211216 # Timestep calculation
212217 if verbose :
@@ -217,6 +222,7 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
217222 else :
218223 self .dt = dt
219224 self .dt = dtype (self .dt )
225+ self .update_logger (['dt' ])
220226
221227 if self .use_conductivity : # relaxation time criterion tau
222228
@@ -261,6 +267,9 @@ def __init__(self, grid, wake=None, cfln=0.5, dt=None,
261267 if verbose :
262268 print (f'Total solver initialization time: { time .time () - t0 } s' )
263269
270+ self .solverInitializationTime = time .time () - t0
271+ self .update_logger (['solverInitializationTime' ])
272+
264273 def update_tensors (self , tensor = 'all' ):
265274 '''Update tensor matrices after
266275 Field ieps, imu or sigma have been modified
@@ -1118,4 +1127,14 @@ def reset_fields(self):
11181127 for d in ['x' , 'y' , 'z' ]:
11191128 self .E [:, :, :, d ] = 0.0
11201129 self .H [:, :, :, d ] = 0.0
1121- self .J [:, :, :, d ] = 0.0
1130+ self .J [:, :, :, d ] = 0.0
1131+
1132+ def update_logger (self , attrs ):
1133+ """
1134+ Assigns the parameters handed via attrs to the logger
1135+ """
1136+ for atr in attrs :
1137+ if atr == 'grid' :
1138+ self .logger .grid = self .grid .logger .grid
1139+ else :
1140+ self .logger .solver [atr ] = getattr (self , atr )
0 commit comments