---
title: KmlAmgPrecondSetSetupOptions
description: "设置构建预条件子所需要的参数。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0985.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0985.html
indexId: fc82cb16152eeaf0a26c7ab3acf263d4b0e1babc06cb57127e5823f689018e5761
---
# KmlAmgPrecondSetSetupOptions

设置构建预条件子所需要的参数。

#### 接口定义

C Interface：KmlAmgStatus KmlAmgPrecondSetSetupOptions(KmlAmgPrecondH precond, const KmlAmgPrecondSetupOptions* options);


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| precond | KmlAmgPrecondH | 预条件子句柄 | 输入/输出 |
| options | KmlAmgPrecondSetupOptions | 预条件子设置的选项 | 输入 |


#### 返回值

| 返回值 | 类型 | 描述 |
| --- | --- | --- |
| KMLAMG\_SUCCESS | int | 运行成功 |
| KMLAMG\_ERR\_INVALID\_PARAM | int | 参数无效 |
| KMLAMG\_ERR\_UNSUPPORTED | int | 功能暂不支持 |
| KMLAMG\_ERR\_NULL\_POINTER | int | 空指针 |
| KMLAMG\_ERR\_NO\_REQUIRED\_FIELD | int | 没有设置必需字段 |
| KMLAMG\_ERR\_NO\_MEMORY | int | 内存分配失败 |
| KMLAMG\_ERR\_UNKNOWN\_TYPE | int | 未知的类型 |
| KMLAMG\_ERR\_UNEXPECTED\_CALL\_ORDER | int | 预期之外的调用顺序 |
| KMLAMG\_ERR\_NO\_RESOURCE | int | 资源未就绪 |
| KMLAMG\_ERR\_INCONSISTENT | int | 不同阶段传递的信息不一致 |
| KMLAMG\_ERR\_UNKNOWN\_ERROR | int | 未知错误 |


#### 结构体说明

KmlAmgPrecondSetupOptions结构体描述：

| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| fieldMask | uint64\_t | 配置生效的字段掩码。非0的位代表配置对应字段指定的值，0的位代表使用默认值，可配置的掩码位请参见具体字段的说明。 |
| partitionAlgo | KmlAmgPartitionAlgo | 对矩阵进行重排，有如下值： KMLAMG\_PARTITION\_NONE表示不进行重排（默认值） KMLAMG\_PARTITION\_KRDR表示使用krdr算法重排 掩码位：KMLAMG\_PRECOND\_SETUP\_OPTIONS\_PARTITION |
| reusePartition | int8\_t | 重复使用上次setup的重排（暂不支持） 掩码位：KMLAMG\_PRECOND\_SETUP\_OPTIONS\_REUSE\_PARTITION |
| strongThreshold | double | AMG做网格粗化时使用的强阈值，默认值为0.25 掩码位：KMLAMG\_PRECOND\_SETUP\_OPTIONS\_STRONG\_THRESHOLD |
| maxLevels | int32\_t | AMG的最大网格层数，默认值为8 掩码位：KMLAMG\_PRECOND\_SETUP\_OPTIONS\_MAX\_LEVELS |
| coarsenType | KmlAmgPrecondAmgCoarsenType | AMG的粗化类型，有如下值： KMLAMG\_PRECOND\_AMG\_COARSEN\_PMIS（默认值） KMLAMG\_PRECOND\_AMG\_COARSEN\_HMIS KMLAMG\_PRECOND\_AMG\_COARSEN\_PAIR\_FACE\_AREA（暂不支持） 掩码位：KMLAMG\_PRECOND\_SETUP\_OPTIONS\_COARSEN\_TYPE |
| interpType | KmlAmgPrecondAmgInterpType | AMG的插值类型，有如下值： KMLAMG\_PRECOND\_AMG\_INTERP\_DIRECT（默认值） KMLAMG\_PRECOND\_AMG\_INTERP\_FF KMLAMG\_PRECOND\_AMG\_INTERP\_PAIR（暂不支持） 掩码位：KMLAMG\_PRECOND\_SETUP\_OPTIONS\_INTERP\_TYPE |
| downSmoothType | KmlAmgPrecondAmgSmoothType | 前平滑算子类型，有如下值： KMLAMG\_PRECOND\_AMG\_SMOOTH\_SOR\_FORWARD KMLAMG\_PRECOND\_AMG\_SMOOTH\_SOR\_BACKWARD KMLAMG\_PRECOND\_AMG\_SMOOTH\_SOR\_SYMMETRIC KMLAMG\_PRECOND\_AMG\_SMOOTH\_L1\_SOR\_FORWARD（默认值） KMLAMG\_PRECOND\_AMG\_SMOOTH\_L1\_SOR\_BACKWARD KMLAMG\_PRECOND\_AMG\_SMOOTH\_L1\_SOR\_SYMMETRIC 掩码位：KMLAMG\_PRECOND\_SETUP\_OPTIONS\_DOWN\_SMOOTH\_TYPE |
| upSmoothType | KmlAmgPrecondAmgSmoothType | 后平滑算子类型，有如下值： KMLAMG\_PRECOND\_AMG\_SMOOTH\_SOR\_FORWARD KMLAMG\_PRECOND\_AMG\_SMOOTH\_SOR\_BACKWARD KMLAMG\_PRECOND\_AMG\_SMOOTH\_SOR\_SYMMETRIC KMLAMG\_PRECOND\_AMG\_SMOOTH\_L1\_SOR\_FORWARD KMLAMG\_PRECOND\_AMG\_SMOOTH\_L1\_SOR\_BACKWARD（默认值） KMLAMG\_PRECOND\_AMG\_SMOOTH\_L1\_SOR\_SYMMETRIC 掩码位：KMLAMG\_PRECOND\_SETUP\_OPTIONS\_UP\_SMOOTH\_TYPE |
| coarsestSmoothType | KmlAmgPrecondAmgSmoothType | 最粗层平滑算子类型，有如下值： KMLAMG\_PRECOND\_AMG\_SMOOTH\_SOR\_FORWARD KMLAMG\_PRECOND\_AMG\_SMOOTH\_SOR\_BACKWARD KMLAMG\_PRECOND\_AMG\_SMOOTH\_SOR\_SYMMETRIC KMLAMG\_PRECOND\_AMG\_SMOOTH\_L1\_SOR\_FORWARD KMLAMG\_PRECOND\_AMG\_SMOOTH\_L1\_SOR\_BACKWARD KMLAMG\_PRECOND\_AMG\_SMOOTH\_L1\_SOR\_SYMMETRIC（默认值） 掩码位：KMLAMG\_PRECOND\_SETUP\_OPTIONS\_COARSEST\_SMOOTH\_TYPE |


#### 依赖

#include "amg4c.h"
