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

查看文件

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

查看文件

@@ -38,7 +38,7 @@ from tqdm import tqdm
import gprMax.config as config
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 .snapshots import save_snapshots
from .utilities.host_info import set_omp_threads
@@ -68,6 +68,8 @@ class Model:
self.materials: List[Material] = []
self.mixingmodels: List[Union[PeplinskiSoil, RangeMaterial, ListMaterial]] = []
self.geometryviews: List[GeometryView] = []
# Monitor memory usage
self.p = None
@@ -177,11 +179,14 @@ class Model:
G.update_receiver_positions(step=model_num)
# 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 not gvs and not G.geometryobjectswrite and config.sim_config.args.geometry_only:
if (
not self.geometryviews
and not G.geometryobjectswrite
and config.sim_config.args.geometry_only
):
logger.exception("\nNo geometry views or geometry objects found.")
raise ValueError
save_geometry_views(gvs)
save_geometry_views(self.geometryviews)
if G.geometryobjectswrite:
logger.info("")