pyamg Smoothed Aggregation算法流程

设置如下算例。

分两步,第一步是setup,第二步是solve。第一步的目的就是得到P等。
在这里插入图片描述

setup

entry point:
aggregation.py L212 in smoothed_aggregation_solver
在这里插入图片描述

将用户参数装填到每个层级里
在这里插入图片描述
例如strength就是一个list
在这里插入图片描述
最外层放入B和A和BH
在这里插入图片描述

开始循环(_extend_hierarchy)
在这里插入图片描述

_extend_hierarchy

aggregation L297
在这里插入图片描述

计算SOC(strength of connection)矩阵。跳转后与ruge_stuben的完全一样,故此处我们略去。
在这里插入图片描述

进行standard_aggregation(核心!)
在这里插入图片描述

standard_aggregation

aggregate.py(注意非aggregation.py) L12
在这里插入图片描述

做一些准备。例如index_type=int
num_rows=矩阵大小
Cpts[i] = root node of aggregate i
Tj

在这里插入图片描述
amg_core.standard_aggregation是核心

实际计算
在这里插入图片描述
返回Tj, Cpts, num_aggregates

后续的一些处理。基本上就是all nodes aggregated 那个情况。
在这里插入图片描述

返回到_extend_hierachy

这里注意AggOp只取了第一个返回值。即那个只有01的矩阵。
在这里插入图片描述

AggOp有N行(N为未知数个数),aggregate列(也就是团聚个数)。
每行仅有一个1。
总共加起来有N个1。它的值只有0和1。

如下图,涂绿色的是1,其余是0。
在这里插入图片描述

在这里插入图片描述

然后通过AggOp建立T。T就是试验性的P。和P唯一差别就是还没有smooth。

fit_candidate

in aggregation/tentative.py L9
此步目的为建立试验性的延拓算子T
在这里插入图片描述
在这里插入图片描述

最后 smooth P
在这里插入图片描述
smooth之后不再是每行只有一个1,而是原本的1被拆分为几个小数,且含有负数。
在这里插入图片描述

_extend_hierarchy结束

全流程结束。
在这里插入图片描述

  • 4
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值