欢迎来到天天文库
浏览记录
ID:59150180
大小:41.54 KB
页数:2页
时间:2020-09-11
《泊松方程的多重网格法(两层).docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、求解Poisson方程,,,,,,,离散误差和原函数满足相同的PDE本题使用简单的二层网格粗网格修正格式V循环来求解,具体可分为4个步骤:(1)在细网格上迭代求解迭代步后,计算所得近似值的残差(n表示在细网格上)(2)在粗网格上精确求解误差方程(2n表示在粗网格上)(3)进行粗网格修正(4)然后回到(1),以新的为初值,开始下一个V循环,直到达到一定的收敛标准为止。上述循环叫做二层网格V循环。是把细网格上的残差限制到粗网格上的算子,称之为“限制算子”。是把粗网格上的结果差值到细网格上的算子,称之为“差值
2、算子”。下面是C++代码//多重网格法求解泊松方程voidCFDtest::solveByMG(Matrix&psi,Matrixf)//多重网格法{doublestep3=step2*ui.comboBox_stepRatio->currentText().toInt();intn1=(int)(1.0/step2+0.5);intn2=(int)(1.0/step3+0.5);Matrixgama1(n1,n1);//细网格残差Matrixw(n2+1,n2+1);//粗网格节点误差Matrixps
3、i_old(psi);boolisOK=false;boolisOK2=false;while(!isOK){//细网格上G-S迭代3步for(intk=0;k<3;k++){isOK=true;intNum++;for(inti=1;i4、[j]);if(abs(psi[i][j]-old_data)>intError){isOK=false;}}if(isOK)//如果达到允许误差范围,跳出for循环{break;}}}
4、[j]);if(abs(psi[i][j]-old_data)>intError){isOK=false;}}if(isOK)//如果达到允许误差范围,跳出for循环{break;}}}
此文档下载收益归作者所有