你已经派生过 gprMax
镜像自地址
https://gitee.com/sunhf/gprMax.git
已同步 2025-08-07 23:14:03 +08:00
Refactor GeometryViews UserObject build process
这个提交包含在:
@@ -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("")
|
||||
|
在新工单中引用
屏蔽一个用户