东南大学传热学二维稳态差分接点计算论文
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
二维稳态计算实验报告
王## 能源与环境学院03012###一、题目要求
二、各节点离散化代数方程
取研究节点为t(i,j),其上部节点温度用T表示,下部节点温度用B表示,左侧节点温度用L表示,右侧节点温度用R表示。该题目各节点离散化代数方程可分为四个区域:
区域一:
t(i,j)=
区域二:
t(i,j)=t i-1,j+t i,j-1+t i+1,j+t i,j+1
4
区域三:
t(i,j)=
区域四:
t(i,j)=
三、源程序
Jacobi迭代计算代码(C#):
for (int n = 0; n < 6; n++)
{
mg0[m, n] = new Button();
mg0[m, n].Text = mg[m, n].Text.ToString ();
}
for (int m = 1; m < 4; m++)
{
int n = 1;
double t = Convert.ToDouble(mg0[m - 1, n].Text.ToString()); double b = Convert.ToDouble(mg0[m + 1, n].Text.ToString()); double l = Convert.ToDouble(mg0[m, n - 1].Text.ToString()); double r = Convert.ToDouble(mg0[m, n + 1].Text.ToString()); double center = (200 + t + 2*r + b) / 24;
mg[m, n].Text =center.ToString();
mg[m, n].BackColor = Color.LightBlue;
}
for (int m = 1; m < 4; m++)
{
for (int n = 2; n < 5; n++)
{
double t = Convert.ToDouble(mg0[m - 1,n].Text.ToString()); double b = Convert.ToDouble(mg0[m + 1, n].Text.ToString()); double l = Convert.ToDouble(mg0[m, n - 1].Text.ToString()); double r = Convert.ToDouble(mg0[m, n + 1].Text.ToString()); double center = (l + t + r + b) / 4;
mg[m, n].Text =center.ToString();
mg[m, n].BackColor = Color.LightBlue;
}
}
for (int m = 4; m < 5; m++)
{
int n = 1;
double t = Convert.ToDouble(mg0[m - 1, n].Text.ToString());
double l = Convert.ToDouble(mg0[m, n - 1].Text.ToString()); double r = Convert.ToDouble(mg0[m, n + 1].Text.ToString()); double center = (100 + t + r) / 12;
mg[m, n].Text =center.ToString();
mg[m, n].BackColor = Color.LightBlue;
}
for (int n = 2; n < 5; n++)
{
int m = 4;
double t = Convert.ToDouble(mg0[m - 1, n].Text.ToString());
double r = Convert.ToDouble(mg0[m, n + 1].Text.ToString());
double center = (2*t + r + l) / 4;
mg[m, n].Text =center.ToString();
mg[m, n].BackColor = Color.LightBlue;
}
j = Convert.ToDouble(mg[1, 1].Text.ToString()); for (int m = 0; m < 6; m++)
{
for (int n = 0; n < 6; n++)
{
mg0[m, n] = new Button();
mg0[m, n].Text = mg[m, n].Text.ToString();
}
}
高斯(Gauss)-赛德尔(Seidel)迭代计算代码(C#):
for (int m = 1; m < 4; m++)
{
int n = 1;
double t = Convert.ToDouble(mg[m - 1, n].Text.ToString());
double b = Convert.ToDouble(mg[m + 1, n].Text.ToString());
double l = Convert.ToDouble(mg[m, n - 1].Text.ToString());
double r = Convert.ToDouble(mg[m, n + 1].Text.ToString());
double center = (200 + t + 2*r + b) / 24;
mg[m, n].Text =center.ToString();
mg[m, n].BackColor = Color.LightBlue;
}
for (int m = 1; m < 4; m++)
{
for (int n = 2; n < 5; n++)
{
double t = Convert.ToDouble(mg[m - 1, n].Text.ToString());
double b = Convert.ToDouble(mg[m + 1, n].Text.ToString());
double l = Convert.ToDouble(mg[m, n - 1].Text.ToString());
double r = Convert.ToDouble(mg[m, n + 1].Text.ToString());
double center = (l + t + r + b) / 4;
mg[m, n].Text =center.ToString();
mg[m, n].BackColor = Color.LightBlue;
}
}
for (int m = 4; m < 5; m++)
{
int n = 1;