SuperAPI AI 工具集

discretize

通用与其它

查看项目

更新于 10-16 08:40

技能介绍

用途:discretize 用于在附加物理数据之前,先构建网格与位置感知的离散算子,适用于有限体积数值模拟。库本身不决定坐标的 CRS 或物理单位。

主要能力:提供 TensorMesh(可分离矩形网格)与 TreeMesh(局部细化可显著降低成本时选用)两种几何。TreeMesh 需先 finalize 才能使用其算子。可按正演问题需要填充模型边界、细化源、接收器与物性对比,并测试域与分辨率敏感性。

使用方式:需记录轴含义、原点、单位、单元宽度与活动单元掩码。二维垂直剖面中第二坐标可表示高程,但属项目约定。长度为 n_cells 的向量不是面或边向量。示例: import numpy as np from discretize import TensorMesh mesh = TensorMesh([[1.0, 2.0, 3.0], [2.0, 4.0]], origin=[0.0, 0.0]) face_velocity_m_s = np.r_[2 * mesh.faces_x[:, 0], -3 * mesh.faces_y[:, 1]] divergence_s_inv = mesh.face_divergence @ face_velocity_m_s integrated_divergence_m2_s = np.dot(mesh.cell_volumes, divergence_s_inv)

检查与限制:应检查 cell_centers、faces_x、faces_y 与算子形状;插值或绘图时区分单元、面、节点与边量。单元排序以第一坐标变化最快,必要时用 Fortran 顺序 reshape。应测试空间变化场而非均匀数组,验证常数/线性场、守恒与收敛性后再用于反演。保留非活动/空气掩码,勿将 NaN 转为零电导率。更多内容见所选网格的算子教程与 API。