Pass iteration to update functions that need it

这个提交包含在:
nmannall
2024-05-20 16:16:53 +01:00
父节点 ce1e811fb1
当前提交 543b6ea009
共有 4 个文件被更改,包括 12 次插入11 次删除

查看文件

@@ -21,12 +21,14 @@ from pathlib import Path
import h5py
from gprMax.grid.fdtd_grid import FDTDGrid
from ._version import __version__
logger = logging.getLogger(__name__)
def store_outputs(G):
def store_outputs(G: FDTDGrid, iteration: int):
"""Stores field component values for every receiver and transmission line.
Args:
@@ -34,7 +36,6 @@ def store_outputs(G):
"""
# Assign iteration and fields to local variables
iteration = G.iteration
Ex, Ey, Ez, Hx, Hy, Hz = G.Ex, G.Ey, G.Ez, G.Hx, G.Hy, G.Hz
for rx in G.rxs:

查看文件

@@ -53,7 +53,7 @@ class Solver:
self.updates.time_start()
for iteration in iterator:
self.updates.store_outputs()
self.updates.store_outputs(iteration)
self.updates.store_snapshots(iteration)
self.updates.update_magnetic()
self.updates.update_magnetic_pml()
@@ -62,7 +62,8 @@ class Solver:
self.updates.hsg_2()
self.updates.update_electric_a()
self.updates.update_electric_pml()
self.updates.update_electric_sources()
self.updates.update_electric_sources(iteration)
# TODO: Increment iteration here if add Model to Solver
if isinstance(self.updates, SubgridUpdates):
self.updates.hsg_1()
self.updates.update_electric_b()

查看文件

@@ -38,9 +38,9 @@ class CPUUpdates(Updates):
self.grid = G
def store_outputs(self):
def store_outputs(self, iteration):
"""Stores field component values for every receiver and transmission line."""
store_outputs_cpu(self.grid)
store_outputs_cpu(self.grid, iteration)
def store_snapshots(self, iteration):
"""Stores any snapshots.
@@ -134,7 +134,7 @@ class CPUUpdates(Updates):
for pml in self.grid.pmls["slabs"]:
pml.update_electric()
def update_electric_sources(self):
def update_electric_sources(self, iteration):
"""Updates electric field components from sources -
update any Hertzian dipole sources last.
"""
@@ -142,7 +142,7 @@ class CPUUpdates(Updates):
self.grid.voltagesources + self.grid.transmissionlines + self.grid.hertziandipoles
):
source.update_electric(
self.grid.iteration,
iteration,
self.grid.updatecoeffsE,
self.grid.ID,
self.grid.Ex,
@@ -150,7 +150,6 @@ class CPUUpdates(Updates):
self.grid.Ez,
self.grid,
)
self.grid.iteration += 1
def update_electric_b(self):
"""If there are any dispersive materials do 2nd part of dispersive

查看文件

@@ -24,7 +24,7 @@ class Updates(ABC):
"""Defines update functions for a solver."""
@abstractmethod
def store_outputs(self) -> None:
def store_outputs(self, iteration: int) -> None:
"""Stores field component values for every receiver and transmission line."""
pass
@@ -63,7 +63,7 @@ class Updates(ABC):
pass
@abstractmethod
def update_electric_sources(self) -> None:
def update_electric_sources(self, iteration: int) -> None:
"""Updates electric field components from sources -
update any Hertzian dipole sources last.
"""