你已经派生过 gprMax
镜像自地址
https://gitee.com/sunhf/gprMax.git
已同步 2025-08-08 07:24:19 +08:00
Pass iteration to update functions that need it
这个提交包含在:
@@ -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.
|
||||
"""
|
||||
|
在新工单中引用
屏蔽一个用户