在GitHub上找到我
 全部 课程 文件夹 功能 变量  
公共类型|公共方法|公众成员|所有成员的列表
cusp::monitor类模板参考

详细描述

模板<typename ValueType>
类尖点::监视器<ValueType>

实现迭代解算器的标准收敛标准和报告。

模板参数
值类型解算器中使用的标量类型(例如。浮动尖点::复合<double>).
概述
这个班长当剩余范数满足条件||b-A x ||<=absolute_tolerance+relative_tolerance*||b||或达到迭代极限时,终止迭代。用于监视迭代求解器进度、检查收敛性等的类。遵循ITL中迭代的实现:
另请参见
http://www.osl.iu.edu/research/itl/doc/Iteration.html
例子
以下代码片段演示了如何配置班长并与迭代解算器一起使用。
整数主要(空隙)
{
//创建空的稀疏矩阵结构(CSR格式)
//初始化矩阵
//为解决方案(x)和右侧(b)分配存储空间
//设置停止条件:
//iteration_limit=100
//相对耐受性=1e-6
尖点::监视器<float> 班长(b,100,1e-6);
//求解线性系统A x=b
尖点::krylov::cg(A、x、b、监视器);
//报告求解器结果
如果(monitor.confressed())
{
标准::cout<<“求解器收敛到”<<监视器相对公差()<<“相对公差”;
标准::cout<<“之后”<<监视器.iteration_count()<<“迭代”<<标准::endl;
}
其他的
{
标准::cout<<“求解器达到迭代限制”<<监视器.iteration_limit()<<“汇聚前”;
标准::cout<<“至”<<监视器相对公差()<<“相对公差”<<标准::endl;
}
返回0;
}
示例:
中文.cu,比克斯塔布.cu,计算机控制单元,cg _ m.cu(cg _ mcu),cg_绘图.cu,cr.cu,自定义_管理.cu,对角线.cu,gmres.cu,显示器.cu,平滑聚合.cu,模板.cu,以及详细监视器.cu.

第行的定义101文件的监视器。小时.

#包括<监视器。小时>

尖点::监视器的继承图<ValueType>:
cusp::convergence_monitor< ValueType > cusp::default_monitor< ValueType > cusp::verbose_monitor< ValueType >

公共类型

typedef尖点::norm_type
<ValueType>::type
真实的
 

公共方法

模板<typename VectorType>
 班长(const VectorType&b,const size_t迭代_限制=500,常量实数相对公差=1e-5,const Real absolute_tolerance=0,const bool verbose=false)
 构造a班长对于给定的右侧b条.更多。。。
 
空隙操作员++(无效)
 增加迭代次数。
 
布尔收敛的(无效)常数
 指示最后测试的残差是否满足收敛公差。更多。。。
 
真实剩余_形式(无效)常数
 最后残差的欧氏范数。更多。。。
 
尺寸_t迭代计数(无效)常数
 返回监视器已执行的迭代次数。更多。。。
 
尺寸_t迭代_限制(无效)常数
 返回最大迭代次数。更多。。。
 
真实相对公差(无效)常数
 返回相对公差。更多。。。
 
真实绝对公差(无效)常量
 返回绝对公差。更多。。。
 
真实容忍(无效)常量
 返回等于的公差绝对公差()+相对公差()*|b||。更多。。。
 
模板<类型名称矢量>
布尔已完成(常量向量(&r)
 应用收敛条件来确定迭代是否已完成。更多。。。
 
空隙设置详细信息(bool verbose_=true)
 设置监视器的详细程度。更多。。。
 
布尔详细(_V)(无效)
 获取监视器的详细级别。更多。。。
 
模板<类型名称矢量>
空隙重置(常量向量&b)
 使用相同的收敛条件重置监视器。更多。。。
 
空隙打印(无效)
 打印迭代次数和收敛历史信息。
 
真实立即_日期(无效)
 返回即时收敛速度。更多。。。
 
真实几何_比率(无效)
 返回几何收敛速度。更多。。。
 
真实平均_比率(无效)
 返回平均收敛速度。更多。。。
 

公众成员

尖点::array1d<真实,
尖点::host_memory>
残余沉积物