Rate This Document
Findability
Accuracy
Completeness
Readability

KmlScadssAnalyze

Analyzes the input matrix, including reordering and symbolic decomposition.

Interface Definition

C interface:

int KmlScadssAnalyze(KmlScadssSolver *solver, KmlScasolverMatrix *matrix, const KmlDssAnalyzeOption *basicOptions, const KmlScadssAnalyzeOption *scaOptions);

Parameters

Parameter

Type

Description

Input/Output

solver

KmlScadssSolver *

Solver handle created by KmlScadssInit

Input

matrix

KmlScasolverMatrix *

Matrix handle, which is created by KmlScasolverMatrixCreate and cannot be a null pointer.

Input

basicOptions

KmlDssAnalyzeOption *

Basic configuration options in the analysis phase, which cannot be a null pointer. For details, see Table 1.

Input

scaOptions

KmlScadssAnalyzeOption *

Distributed configuration options in the analysis phase, which cannot be a null pointer. For details, see Table 1.

Input

Table 1 KmlScadssAnalyzeOption structure

Field

Type

Description

fieldMask

uint64_t

Mask that determines to which fields the configuration is applied. If a bit is set to 1, its corresponding field uses a specified value. If a bit is set to 0, its corresponding field uses the default value. See the individual field description for configurable mask bits.

fr

KmlScadssFRAlgo

Fill-in reduction algorithm type. If this mask is not specified, the related configuration items of basicOptions in the analysis phase are used. The options are as follows:

  • KMLSCADSS_FR_USER indicates that a user-defined fill-in reduction function is used.

Mask bit: KMLSCADSS_ANALYSE_OPTIONS_FR

userFR

KmlScadssUserFRFunc

User-defined distributed fill-in reduction algorithm. For details, see Table 2.

  • If KMLSCADSS_FR_USER of the fr field is not specified, ignore this parameter.
  • If the mask of the fr field is KMLSCADSS_FR_USER but userFR.func is NULL, an error occurs.

Mask bit: KMLSCADSS_ANALYSE_OPTIONS_USER_FR

Table 2 KmlScadssAnalyzeOption structure

Field

Type

Description

func

int (*)(void *arg, const KmlScadssMatrixPartition *partition, const KmlSolverMatrixStore *store, void *iPerm, MPI_Comm comm);

User-defined distributed fill-in reduction function. The prototype of the function is "int (*func)(void *arg, const KmlScadssMatrixPartition *partition, const KmlSolverMatrixStore *store, void *iPerm, MPI_Comm comm)".

arg

void *

User-related parameter, which can be used as the user context. This parameter is used as the first parameter when func is called.

Return Value

Return Value

Type

Description

KMLSS_NO_ERROR

int

Normal execution.

KMLSS_INTERNAL_ERROR

int

Internal error.

KMLSS_NULL_ARGUMENT

int

A null argument exists in {solver, matrix, basicOptions, scaOptions}.

Dependencies

#include "kml_scadss.h"