---
title: KmlAmgSolverCreate
description: "创建迭代法求解器句柄。"
url: https://www.hikunpeng.com/document/detail/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0990.html
sourcePath: /source/zh/kunpenghpcs/hpckit/devg/kunpengaccel_kml_0990.html
indexId: 00a4ba748274c2373cfbf90aa5fd80f7a9decb7d2568781d8055b1bfcd32251861
---
# KmlAmgSolverCreate

创建迭代法求解器句柄。

#### 接口定义

C Interface：KmlAmgStatus KmlAmgSolverCreate(KmlAmgSolverH* solver, const KmlAmgSolverOptions* options);


#### 参数

| 参数名 | 类型 | 描述 | 输入/输出 |
| --- | --- | --- | --- |
| solver | KmlAmgSolverH\* | 求解器句柄，solver不可为空指针 | 输入/输出 |
| options | const KmlAmgSolverOptions\* | 求解器配置信息 | 输入 |


#### 返回值

| 返回值 | 类型 | 描述 |
| --- | --- | --- |
| 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 | 未知错误 |


#### 结构体说明

KmlAmgSolverOptions结构体描述：

| 字段名 | 类型 | 描述 |
| --- | --- | --- |
| fieldMask | uint64\_t | 配置生效的字段掩码。非0的位代表配置对应字段指定的值，0的位代表使用默认值，可配置的掩码位请参见具体字段的说明。 |
| valueType | KmlAmgValueType | Solver使用的矩阵数值类型，有如下值： KMLAMG\_VALUE\_FP32表示float KMLAMG\_VALUE\_FP64表示double 掩码位：KMLAMG\_SOLVER\_OPTIONS\_VALUE\_TYPE |
| indexType | KmlAmgIndexType | Solver使用的矩阵索引类型，有如下值： KMLAMG\_INDEX\_INT32表示int32\_t KMLAMG\_INDEX\_INT64表示int64\_t（暂不支持） 掩码位：KMLAMG\_SOLVER\_OPTIONS\_INDEX\_TYPE |
| solverType | KmlAmgSolverType | Solver使用算法类型，有如下值： KMLAMG\_SOLVER\_NONE表示不使用任何迭代法 KMLAMG\_SOLVER\_CG表示使用CG算法（默认值） KMLAMG\_SOLVER\_BICGSTAB表示使用bicgstab算法 KMLAMG\_SOLVER\_GMRES表示使用gmres算法 掩码位：KMLAMG\_SOLVER\_OPTIONS\_TYPE |
| numThreads | int32\_t | 线程数，默认值为1 掩码位：KMLAMG\_SOLVER\_OPTIONS\_NUM\_THREADS |


#### 依赖

#include "amg4c.h"
