分析输入矩阵,包括Reordering、符号分解等。
C Interface:
int KmlScadssAnalyze(KmlScadssSolver *solver, KmlScasolverMatrix *matrix, const KmlDssAnalyzeOption *basicOptions, const KmlScadssAnalyzeOption *scaOptions);
参数名 |
类型 |
描述 |
输入/输出 |
---|---|---|---|
solver |
KmlScadssSolver * |
由KmlScadssInit创建的求解器句柄。 |
输入 |
matrix |
KmlScasolverMatrix * |
矩阵句柄,由KmlScasolverMatrixCreate函数创建,不可为空指针。 |
输入 |
basicOptions |
KmlDssAnalyzeOption * |
分析阶段基础配置选项,不可为空指针,具体内容如4.3.3.10.2.2-表1所示。 |
输入 |
scaOptions |
KmlScadssAnalyzeOption * |
分析阶段分布式配置选项,不可为空指针,具体内容如表1所示。 |
字段名 |
类型 |
描述 |
---|---|---|
fieldMask |
uint64_t |
配置生效的字段掩码。非0的位代表配置对应字段指定的值,0的位代表使用默认值,可配置的掩码位见具体字段的说明。 |
fr |
KmlScadssFRAlgo |
Fill-in reduction算法类型,若不指定此掩码,则使用分析阶段基础配置项basicOptions的相关配置项。有如下值。
掩码位:KMLSCADSS_ANALYSE_OPTIONS_FR |
userFR |
KmlScadssUserFRFunc |
用户自定义的分布式Fill-in reduction算法,使用KmlScadssUserFRFunc结构体描述,见表2。
掩码位:KMLSCADSS_ANALYSE_OPTIONS_USER_FR |
字段名 |
类型 |
描述 |
---|---|---|
func |
int (*)(void *arg, const KmlScadssMatrixPartition *partition, const KmlSolverMatrixStore *store, void *iPerm, MPI_Comm comm); |
用户自定义的分布式Fill-in reduction函数,该函数的原型为int (*func)(void *arg, const KmlScadssMatrixPartition *partition, const KmlSolverMatrixStore *store, void *iPerm, MPI_Comm comm); |
arg |
void * |
用户相关的参数,和可以用作用户上下文。在调用func函数时将此作为第一个参数。 |
返回值 |
类型 |
描述 |
---|---|---|
KMLSS_NO_ERROR |
int |
正常执行。 |
KMLSS_INTERNAL_ERROR |
int |
内部错误。 |
KMLSS_NULL_ARGUMENT |
int |
solver,matrix,basicOptions,scaOptions存在空参数。 |
#include "kml_scadss.h"