pdeInfo

首发版本:3.00.6.1

语法

pdeInfo(obj)

详情

查看 pdeDomain1DpdeDomain2DpdeCoeff1DpdeCoeff2D 返回对象的诊断信息。

Domain 和 Coefficient 构造函数只返回求解所需字段;如需了解网格统计、系数输入类型、非零项或交叉项等信息,可调用该函数进行查询。

参数

obj 字典对象,由 pdeDomain1DpdeDomain2DpdeCoeff1DpdeCoeff2D 返回。obj 不支持普通的数值向量(如网格节点向量)、用户自定义的普通字典、或 pdeSolver 的求解结果字典。

返回值

返回一个字典。其输出字段的构成由输入对象 obj 的类型决定。

objpdeDomain1D 返回对象时,返回字典包含以下字段:

  • type:STRING 标量,固定为 "structured1D"。

  • dim:INT 标量,固定为 1。

  • nx:INT 标量,节点数。

  • xMin:DOUBLE 标量,左端点。

  • xMax:DOUBLE 标量,右端点。

  • gridType:STRING 标量,取值为 "uniform" 或 "nonuniform"。

  • minDx:DOUBLE 标量,最小相邻间距。

  • maxDx:DOUBLE 标量,最大相邻间距。

  • avgDx:DOUBLE 标量,平均相邻间距。

  • gridRatio:DOUBLE 标量,maxDx / minDx。

  • maxLocalRatio:DOUBLE 标量,相邻间距的最大双向比值。

  • isUniform:BOOL 标量,表示是否为均匀网格。

  • regions:STRING 向量,固定为 left, right。

objpdeDomain2D 返回对象时,返回字典包含以下字段:

  • type:STRING 标量,固定为 "structured2D"。

  • dim:INT 标量,固定为 2。

  • nx:INT 标量,x 方向节点数。

  • ny:INT 标量,y 方向节点数。

  • xMin:DOUBLE 标量,x 方向左端点。

  • xMax:DOUBLE 标量,x 方向右端点。

  • yMin:DOUBLE 标量,y 方向左端点。

  • yMax:DOUBLE 标量,y 方向右端点。

  • gridTypeX:STRING 标量,x 方向网格类型。

  • gridTypeY:STRING 标量,y 方向网格类型。

  • minDx / maxDx:DOUBLE 标量,x 方向相邻间距范围。

  • minDy / maxDy:DOUBLE 标量,y 方向相邻间距范围。

  • gridRatioX / gridRatioY:DOUBLE 标量,两个方向的全局网格比。

  • maxLocalRatioX / maxLocalRatioY:DOUBLE 标量,两个方向的最大局部跳变比。

  • isUniformX / isUniformY:BOOL 标量,表示两个方向是否为均匀网格。

  • totalNodes:LONG 标量,等于 nx * ny。

  • regions:STRING 向量,固定为 xMin, xMax, yMin, yMax。

objpdeCoeff1DpdeCoeff2D 返回对象时,返回字典包含以下字段:

  • type:STRING 标量,取值为 "operator1D" 或 "operator2D"。

  • dim:INT 标量,空间维度。

  • form:STRING 标量,固定为 "operator"。

  • activeTerms:STRING 向量,非零标量系数和函数系数的名称。

  • inputTypes:STRING 到 STRING 的字典,表示每个系数是 "scalar" 还是 "function"。

  • containsFunction:BOOL 标量,表示是否至少包含一个函数系数。

  • recommendedScheme:STRING 标量,1D 系数为 "theta",2D 系数默认为 "MCS"。

objpdeCoeff2D 返回对象时,返回字典还包含以下字段:

  • hasCrossTerm:BOOL 标量,当 xy 为非零标量或函数时为 true。

注意:pdeInfo 不执行系数函数。因此,函数系数即使在某些采样点返回 0,也会被列入 activeTerms,并使 containsFunction 为 true。

例子

例 1. 查看一维 Domain 网格信息

xGrid = (0..10) / 10.0
domain = pdeDomain1D(xGrid)
info = pdeInfo(domain)

info[`nx]
info[`gridType]
info[`gridRatio]

例 2. 查看二维 Domain 网格信息

xGrid = (0..40) / 40.0
yGrid = (0..30) / 30.0
domain = pdeDomain2D(xGrid, yGrid)
info = pdeInfo(domain)

info[`nx]
info[`ny]
info[`totalNodes]

例 3. 查看一维 Coefficient 信息

coeff = pdeCoeff1D(
    diff = def(x, t) { return 0.1 + x * x },
    react = -0.05
)
info = pdeInfo(coeff)

info[`inputTypes]
info[`activeTerms]
info[`containsFunction]

例 4. 查看二维交叉项信息

coeff = pdeCoeff2D(0.1, 0.2, 0.03)
info = pdeInfo(coeff)

info[`hasCrossTerm]
info[`recommendedScheme]

相关函数: pdeCoeff1DpdeCoeff2DpdeDomain1DpdeDomain2D