鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

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"