用途:Devito 是符号化 PDE 求解器,能自动生成有限差分计算的优化代码,适合地震波传播模拟、全波形反演(FWI)与逆时偏移(RTM)等研究与生产场景。
主要能力:提供 Grid、Function、TimeFunction、SparseTimeFunction、Operator 等核心类,分别用于定义计算域、空间场、时间相关场、点源/检波器与编译后的计算核。支持 p.dt、p.dt2、p.dx、p.dy、p.dz、p.laplace、p.forward、p.backward 等符号导数与时间步进,可从 Python 层数学表达式自动生成优化的 C/OpenMP/GPU 代码,并支持 MPI 与伴随计算。
基本用法:先用 Grid(shape=(...), extent=(...)) 建立网格,创建 Function 速度模型并填充数值,创建 TimeFunction 波场(如 time_order=2、space_order=4),写出波动方程 stencil(Eq(p.forward, solve(p.dt2 - v**2 * p.laplace, p.forward))),配合 RickerSource 与 Receiver 设置坐标,加入源注入与检波器插值项,最后用 Operator 编译并执行 op(time_M=..., dt=...),从 rec.data 取炮记录。
适用场景:地震波(声学/弹性)传播、FWI 或 RTM、需要高性能有限差分波传播且希望以符号化方式描述方程的研究原型与规模化地震成像。若需有限元方法可考虑 FEniCS,简单教学示例可用 NumPy。
限制:使用高阶空间差分(4-8)精度更高但更慢;需满足 CFL 条件,二维 dt < dx/(v_max1.414),三维 dt < dx/(v_max1.732),否则可能不稳定。关于收费、价格、具体平台支持等细节,资料未提供。