Move iterations and timewindow to FDTDGrid

Grids need to know the number of iterations and the timewindow to
calculate waveform values. While waveforms are global in an MPI sense,
subgrids will calculate their own waveforms based on the dt value of the
subgrid.
这个提交包含在:
nmannall
2024-12-10 11:06:30 +00:00
父节点 d20fc36d29
当前提交 e818441730
共有 2 个文件被更改,包括 19 次插入2 次删除

查看文件

@@ -61,6 +61,9 @@ class FDTDGrid:
self.dl = np.ones(3, dtype=np.float64) self.dl = np.ones(3, dtype=np.float64)
self.dt = 0.0 self.dt = 0.0
self.iterations = 0 # Total number of iterations
self.timewindow = 0.0
# Field Arrays # Field Arrays
self.Ex: npt.NDArray[np.float32] self.Ex: npt.NDArray[np.float32]
self.Ey: npt.NDArray[np.float32] self.Ey: npt.NDArray[np.float32]

查看文件

@@ -56,8 +56,6 @@ class Model:
self.dt_mod = 1.0 # Time step stability factor self.dt_mod = 1.0 # Time step stability factor
self.iteration = 0 # Current iteration number self.iteration = 0 # Current iteration number
self.iterations = 0 # Total number of iterations
self.timewindow = 0.0
self.srcsteps = np.zeros(3, dtype=np.int32) self.srcsteps = np.zeros(3, dtype=np.int32)
self.rxsteps = np.zeros(3, dtype=np.int32) self.rxsteps = np.zeros(3, dtype=np.int32)
@@ -141,6 +139,22 @@ class Model:
def dt(self, value: float): def dt(self, value: float):
self.G.dt = value self.G.dt = value
@property
def iterations(self) -> int:
return self.G.iterations
@iterations.setter
def iterations(self, value: int):
self.G.iterations = value
@property
def timewindow(self) -> float:
return self.G.timewindow
@timewindow.setter
def timewindow(self, value: float):
self.G.timewindow = value
def _create_grid(self) -> FDTDGrid: def _create_grid(self) -> FDTDGrid:
"""Create grid object according to solver. """Create grid object according to solver.