联合包装 (代码差异包)是在计算机程序中进行梯度评估的工具。 它支持以下功能: 算法微分(AD)的前向模式 算法微分(AD)的反向模式 不同的磁带实现 AdjointMPI接口 外部功能 高阶导数 CoDiPack的设计原理是易于使用。 但是,它也使经验丰富的AD开发人员可以完全访问所有数据结构。 TU Kaiserslautern的开发了CoDiPack,并将在将来增强和扩展CoDiPack。 可以通过获得新闻通讯,如果您想与我们联系,请写邮件至 。 用法 CoDiPack是仅标头的库。 用户唯一需要包含的文件是codi.hpp 。 唯一的其他要求是兼容c ++ 11的编译器,其中通常需要在编译器参数中指定“ --std = c ++ 11”。 CoDiPack已通过gcc和intel编译器进行了测试。 文件codi.hpp定义了数据类型RealForward , RealRev
2022-08-04 21:46:49 480KB C++
1
Vector.h 是向量类,包含生成向量及各种操作符重载 Template.h 是各种表达式模板的集合,包含必要的向量加减乘法操作符重载。 Matrix.h 是AX=b中,关键A数组生成的类,这里我用了数组压缩技术,即把带状数组A压缩,使程序执行更有效率。 cgexpr.cpp是Main函数,包括使用三种时间差分即 Explicit,Implicit 和 CrankNicolson。 运行程序时需要在Command line里按如下格式输入10个指令: cgexpr hx hy tend tao a iterations eps residual.txt result.txt 其中cgexpr是主函数文件名,hx,hy,是有限差分对应的x,y大小,tend是时间长度,tao是时间差分对应的ht大小,a是使用哪种时间差分格式:0是Explicit,0.5是CrankNicolson,1是implicit.iterations 是一个时间段里循环的最大次数,eps是你设定的误差。residual.txt 和 result.txt 分别是误差和最后结果输出。 这个程序实现的偏微分方程是: @u/@t= (delta)u 你可以根据你需要计算的偏微分方程,修改Matrix.h中对应的m,n,t的表达式即可。具体表达式需根据你的方程推出。
2022-06-03 05:46:40 28KB 偏微分方程 有限差分 c++ 表达式模板
1
共轭梯度法求解偏微分方程MPI并行的c++实现
1