在 Gempy 的核心 interpolator 下的 InterpolatorGravity 类中,set_theano_shared_tz_kernel 函数用于构建并编译一个计算重力梯度的 theano shared 函数。
self
:一个 InterpolatorGravity 类的对象。t
: theano tensor,代表 MeshTensor。p
: theano tensor,代表参数。无返回值。
在 Gempy 中进行图形学计算时,需要对 InterpolatorGravity 中的 Mesh 中的网格进行计算,计算出单元格的含量和重力梯度。在进行这些计算时,需要使用 Theano 库编写类似时间和空间的函数,以便可编译部分能在 GPU 上加速计算。
这个函数通过一系列的 Theano 函数来计算重力梯度,并把它们绑定为一个 theano shared 函数,以便之后可以加速计算。
import theano
# 创建一个 InterpolatorGravity 的对象
interpolator = InterpolatorGravity()
# 定义两个 theano tensor
t = theano.tensor.matrix()
p = theano.tensor.matrix()
# 调用 set_theano_shared_tz_kernel 函数
interpolator.set_theano_shared_tz_kernel(t, p)