pdeInfo
首发版本:3.00.6.1
语法
pdeInfo(obj)
详情
查看 pdeDomain1D、pdeDomain2D、pdeCoeff1D 和 pdeCoeff2D 返回对象的诊断信息。
Domain 和 Coefficient 构造函数只返回求解所需字段;如需了解网格统计、系数输入类型、非零项或交叉项等信息,可调用该函数进行查询。
参数
obj 字典对象,由 pdeDomain1D、pdeDomain2D、pdeCoeff1D 或 pdeCoeff2D 返回。obj 不支持普通的数值向量(如网格节点向量)、用户自定义的普通字典、或 pdeSolver 的求解结果字典。
返回值
返回一个字典。其输出字段的构成由输入对象 obj 的类型决定。
当 obj 为 pdeDomain1D 返回对象时,返回字典包含以下字段:
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。
当 obj 为 pdeDomain2D 返回对象时,返回字典包含以下字段:
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。
当 obj 为 pdeCoeff1D 或 pdeCoeff2D 返回对象时,返回字典包含以下字段:
type:STRING 标量,取值为 "operator1D" 或 "operator2D"。
dim:INT 标量,空间维度。
form:STRING 标量,固定为 "operator"。
activeTerms:STRING 向量,非零标量系数和函数系数的名称。
inputTypes:STRING 到 STRING 的字典,表示每个系数是 "scalar" 还是 "function"。
containsFunction:BOOL 标量,表示是否至少包含一个函数系数。
recommendedScheme:STRING 标量,1D 系数为 "theta",2D 系数默认为 "MCS"。
当 obj 为 pdeCoeff2D 返回对象时,返回字典还包含以下字段:
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]
