Refactor GeometryViews UserObject build process

这个提交包含在:
nmannall
2024-05-17 12:12:17 +01:00
父节点 1e862ad355
当前提交 fe87ec29a9
共有 3 个文件被更改,包括 12 次插入7 次删除

查看文件

@@ -1810,7 +1810,7 @@ class GeometryView(UserObjectMulti):
return GeometryViewUser return GeometryViewUser
def build(self, grid, uip): def build(self, model, uip):
try: try:
p1 = self.kwargs["p1"] p1 = self.kwargs["p1"]
p2 = self.kwargs["p2"] p2 = self.kwargs["p2"]
@@ -1833,6 +1833,7 @@ class GeometryView(UserObjectMulti):
xs, ys, zs = p1 xs, ys, zs = p1
xf, yf, zf = p2 xf, yf, zf = p2
grid = uip.grid
dx, dy, dz = uip.discretise_static_point(dl) dx, dy, dz = uip.discretise_static_point(dl)
if dx < 0 or dy < 0 or dz < 0: if dx < 0 or dy < 0 or dz < 0:
@@ -1874,7 +1875,7 @@ class GeometryView(UserObjectMulti):
f"base {g.filename} created." f"base {g.filename} created."
) )
grid.geometryviews.append(g) model.geometryviews.append(g)
class GeometryObjectsWrite(UserObjectMulti): class GeometryObjectsWrite(UserObjectMulti):

查看文件

@@ -78,7 +78,6 @@ class FDTDGrid:
# SubGridBaseGrid cause cyclic dependencies # SubGridBaseGrid cause cyclic dependencies
self.averagevolumeobjects = True self.averagevolumeobjects = True
self.fractalvolumes = [] self.fractalvolumes = []
self.geometryviews = []
self.geometryobjectswrite = [] self.geometryobjectswrite = []
self.waveforms: List[Waveform] = [] self.waveforms: List[Waveform] = []
self.voltagesources: List[VoltageSource] = [] self.voltagesources: List[VoltageSource] = []

查看文件

@@ -38,7 +38,7 @@ from tqdm import tqdm
import gprMax.config as config import gprMax.config as config
from .fields_outputs import write_hdf5_outputfile from .fields_outputs import write_hdf5_outputfile
from .geometry_outputs import save_geometry_views from .geometry_outputs import GeometryView, save_geometry_views
from .grid.fdtd_grid import FDTDGrid from .grid.fdtd_grid import FDTDGrid
from .snapshots import save_snapshots from .snapshots import save_snapshots
from .utilities.host_info import set_omp_threads from .utilities.host_info import set_omp_threads
@@ -68,6 +68,8 @@ class Model:
self.materials: List[Material] = [] self.materials: List[Material] = []
self.mixingmodels: List[Union[PeplinskiSoil, RangeMaterial, ListMaterial]] = [] self.mixingmodels: List[Union[PeplinskiSoil, RangeMaterial, ListMaterial]] = []
self.geometryviews: List[GeometryView] = []
# Monitor memory usage # Monitor memory usage
self.p = None self.p = None
@@ -177,11 +179,14 @@ class Model:
G.update_receiver_positions(step=model_num) G.update_receiver_positions(step=model_num)
# Write files for any geometry views and geometry object outputs # Write files for any geometry views and geometry object outputs
gvs = G.geometryviews + [gv for sg in self.subgrids for gv in sg.geometryviews] if (
if not gvs and not G.geometryobjectswrite and config.sim_config.args.geometry_only: not self.geometryviews
and not G.geometryobjectswrite
and config.sim_config.args.geometry_only
):
logger.exception("\nNo geometry views or geometry objects found.") logger.exception("\nNo geometry views or geometry objects found.")
raise ValueError raise ValueError
save_geometry_views(gvs) save_geometry_views(self.geometryviews)
if G.geometryobjectswrite: if G.geometryobjectswrite:
logger.info("") logger.info("")