Жылу конвекцияның кері есебінің шешімінің алгоритмін параллельдеу

Автор работы: Пользователь скрыл имя, 09 Апреля 2013 в 10:02, курсовая работа

Описание работы

Әртүрлі температурасы бар екі дене жанасқан кезде, құрылымдық бөлшектердің (молекулалар, атомдар, бос электрондар) қозғалыс энергияларымен алмасу пайда болады, сол үшін температурасы төмен дененің бөлшектерінің қозғалу қарқындылығы өседі, ал температурасы жоғары дененің бөлшектерінің қозғалу қарқындылығы азаяды. Нәтижесінде жанасқан денелердің біреуі қызады, ал екіншісі суиды. Көбірек қызған дененің бөлшектерімен суық дененің бөлшектеріне беретін энергия ағыны жылу ағыны деп аталады.

Содержание работы

1. НЕГІЗГІ ТЕҢДЕУЛЕР ЖҮЙЕСІ……....................................................................5
1.1 Математикалық физиканың негізгі есептері...............................................5
1.2 Параболалық типті айырымдылық схемалары.........................................ч
1.3 Сызықты жылу конвекция теңдеулер жүйесіне интегралдық,
қосымша анықталған, шартпен қойылған кері есеп.......................................ч
2. САНДЫҚ ӘДІС................................................................................................17
2.1 Жылу конвекция теңдеулер жүйесіне қойылған тура
есепті сандық шешу………………………………………............................17
2.2 Жылу конвекция теңдеулер жүйесіне қойылған кері
есепті сандық шешу………………………………………............................4
3. ПАРАЛЛЕЛЬДІ АЛГОРИТМ ҚҰРУ............................................................10
3.1 Параллель программалау дамуының хронологиясы………. …………....10
3.2 Процессорлардың көптүрлiлiгi. Топология..................................................10
3.3 Параллель программалаудың тиімділігін бағалау......................................10
4. ЕСЕПТЕУ ЭКСПЕРИМЕНТІ...........................................................................26
5. САНДЫҚ НӘТИЖЕ..........................................................................................31
ҚОРЫТЫНДЫ......................................................................................................34
ҚОЛДАНҒАН ӘДЕБИЕТТЕР.............................................................................34

Файлы: 4 файла

Титулка.docx

— 12.71 Кб (Просмотреть файл, Скачать файл)

Диплом.docx

— 1.12 Мб (Скачать файл)

 

 

                                                                     (1.4.40)

 

 

(1.4.39) жəне (1.4.40) теңсіздіктерден

 

 

 

бағалауын аламыз. мұндағы C тұрақтысы (k=1,2) шамаларға тəуелсіз.

Жоғарыда  цилиндрінде зерттеулерді цилиндрі үшін қайталап шықсақ

 

 

 

                                                                   (1.4.41)

 

 

 

 

бағалау орынды.

 

Жалпы жағдайда, жəне түрінде белгілесек, онда

келесі рекурренттік формуланы аламыз

 

                                                        (1.4.42)

мұндағы

 

 

 

(1.4.42) рекурренттік  формулада  ескерсек, біз мына теңсіздікке

келеміз

 

                      

                                                                                                                                    (1.4.43)

                       

 

Бұдан орнықтылық бағалауы шығады, яғни

 

                          

 

                              

 

1.4.2 теорема  толық дəлелденді.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

2 САНДЫҚ ӘДІС

2.1 Жылу конвекция теңдеулер  жүйесіне қойылған тура

есепті  сандық шешу.

 

Жылу  конвекцияның тура есебінің сандық шешімін  қарастырайық.

 тіктөртбұрышында сызықты теңдеуге қойылған тура есепті қарастырайық, төмендегі (2.1.1)–(2.1.4) қанағаттандыратын , , функцияларын анықтау керек:

                              (2.1.1) 

 

     (2.1.2)

бастапқы  шарттарын

       (2.1.3)

шеттік шарттарын

     (2.1.4)

мұндағы берілген функциялар.

 

Мұндағы ui,j есептің жуық шешімі, ал u1i,j дәл шешімі. Дәл шешімді алдағы уақытта жуық шешімнің дұрыстығын тексеру үшін қолданамыз.

 

#include<iostream>

#include <math.h>

#include <stdio.h>

#define n 10

#define m 6

#define pi 3.1415926535

int main()

{

int i,j;

double v[n+2][m+2],v1[n+2][m+2],o[n+2][m+2],o1[n+2][m+2],phi[n+2][m+2],

f[n+2][m+2], x[n+2],t[m+2];

double tau,h;

FILE *fp,*fp1,*fp2;

tau=0.001;h=pow((double)n,-1);

for(i=0;i<=n+1;i++)

{

x[i]=i*h;

}

for(j=0;j<=m+1;j++)

{

t[j]=j*tau;

}

for(i=0;i<=n+1;i++)

{

v[i][0]=sin(pi*x[i]);

o[i][0]=sin(2*pi*x[i]);

}

for(j=0;j<=m+1;j++)

{

v[0][j]=0;

v[n+1][j]=0;

o[0][j]=0;

o[n+1][j]=0;

}

for(i=0;i<=n+1;i++)

{

for(j=0;j<=m+1;j++)

{

v1[i][j]=exp(-pow(pi,2)*t[j])*sin(pi*x[i]);

f[i][j]=exp(-pow(pi,2)*t[j])*(pi*cos(pi*x[i])-

exp(-3*pow(pi,2)*t[j])*sin(2*pi*x[i]));

o1[i][j]=exp(-4*pow(pi,2)*t[j])*sin(2*pi*x[i]);

phi[i][j]=exp(-pow(pi,2)*t[j])*(4*pi*exp

(-3*pow(pi,2)*t[j])*cos(2*pi*x[i])+sin(pi*x[i]));;

}

}

for(j=0;j<=m;j++)

{

for(i=1;i<=n;i++)

{

v[i][j+1]=tau/(h*h)*(v[i-1][j]-2*v[i][j]+v[i+1][j])+v[i][j]+tau*(o[i][j]+f[i][j])-tau/h*(v[i+1][j]-v[i][j]);

o[i][j+1]=tau/(h*h)*(o[i-1][j]-2*o[i][j]+o[i+1][j])+o[i][j]+2*tau/h*(o[i+1][j]-o[i][j])+tau*(phi[i][j]-v[i][j]);

}

}

for(i=0;i<=n+1;i++)

{

// cout <<" x["<< i <<"] = "<< x[i]<< endl;

}

for(j=0;j<=m+1;j++)

{

// cout <<" t["<< j <<"] = "<< t[j]<< endl;

}

fp2=fopen("c:\\Test\\esep2.txt","w");

for(j=0;i<=m+1;j++)

{

for(i=0;i<=n+1;i++)

{

fprintf(fp2,"%f",f[i][j]); fprintf(fp2,"\n");

}

}

fp=fopen("c:\\Test\\esep.txt","w");

for(j=0;j<=m+1;j++)

{

for(i=0;i<=n+1;i++)

{

//cout <<" v["<< i <<"]["<< j <<"] = "<< v[i][j]<< endl;

fprintf(fp,"%f",v[i][j]); fprintf(fp,"\n");

}

}

for(j=0;j<=m+1;j++)

{

for(i=0;i<=n+1;i++)

{

//cout <<" v1["<< i <<"]["<< j <<"] = "<< v1[i][j]<< endl;

//printf("v1[%d][%d] = %.2f\n",i,j,v1[i][j]);

}

}

fp1=fopen("c:\\Test\\esep1.txt","w");

for(j=0;j<=m+1;j++)

{

for(i=0;i<=n+1;i++)

{

//cout <<" o["<< i <<"]["<< j <<"] = "<< o[i][j]<< endl;

fprintf(fp1,"%f",o[i][j]); fprintf(fp1,"\n");

}

}

for(j=0;j<=m+1;j++)

{

for(i=0;i<=n+1;i++)

{//cout <<" o1["<< i <<"]["<< j <<"] = "<< o1[i][j]<< endl;}

}

     fclose(fp2);

 fclose(fp1);

 fclose(fp);

return 0;

}

 

 

2.2 Жылу конвекция теңдеулер жүйесіне қойылған кері

есепті  сандық шешу.

 

 тіктөртбұрышында сызықты теңдеуге қойылған кері есебін қарастырайық, төмендегі (2.2.1)–(2.2.6) қанағаттандыратын , , және функцияларын анықтау керек:

                              (2.2.1)        

     (2.2.2)

бастапқы  шарттарын

       (2.2.3)

шеттік шарттарын

     (2.2.4)

және келесі интегралдық қосымша шарттарын

     (2.2.5)

     (2.2.6)

мұндағы берілген функциялар.

 торларын енгізейік. Енді  облысында қадамдары болатын тор енгізейік

.

(2.1.1)–(2.1.5) кері  есебінің шекті-айырымдық (айқындалмаған)  схемасын құрайық:

 

 

 

 

 

 

 

 

Мұндағы коэффициенттері Симпсон формуласындағы үшін     коэффициенттер.

Program SetkaTeplovrodnost111;

const n=2000; m=200; pi=3.1415926535;

var

  i,j,k:integer;

 tau, h:Real;

 x:array[0..n+1] of real;

 t,phi,f,phi1,f1: array[0..m+1] of real;

s1,s2,s3,s4,s5,s6,s7,s8,s9,s10:array[0..m+1] of real;

s21,s22,s23,s24,s25,s26,s27,s28,s29,s210:array[0..m+1] of real;

D1,D2,D3,D4,D5,D6,D7,D8,D9,D10:array[0..m+1] of real;

tr1,tr2,tr3,tr4,tr5,tr6,tr7,tr8,tr9,tr10:array[0..m+1] of real;

tt1,tt2,tt3,tt4,tt5,tt6,tt7,tt8,tt9,tt10:array[0..m+1] of real;

u,v, v1,O,O1,lam,kxt,myu:array[0..n+1,0..m+1] of real;

Begin

 tau:=0.000000001; h:=1/(n+1);

    for i:=0 to n+1 do

       x[i]:=i*h;

    for j:=0 to m+1 do  Begin

        t[j]:=tau*j;

    end;

    for i:=0 to n+1 do begin

       v[i,0]:=sin(pi*x[i]);

       O[i,0]:= sin(2*pi*x[i]);

    end;

    for j:=0 to m+1 do

    Begin

        v[0,j]:=0;

        v[n+1,j]:=0;

        O[0,j]:=0;

        O[n+1,j]:=0;

        f1[j]:=exp(-2*sqr(pi)*t[j]);

        phi1[j]:=exp(-2*sqr(pi)*t[j]);

    end;

    for i:=0 to n+1 do Begin

    for j:=0 to m+1 do begin

     v1[i,j]:=exp(-sqr(pi)*t[j])*sin(pi*x[i]);

     lam[i,j]:=pi*cos(pi*x[i])-exp(-3*sqr(pi)*t[j])*sin(2*pi*x[i]);

     O1[i,j]:=exp(-4*sqr(pi)*t[j])*sin(2*pi*x[i]);

     myu[i,j]:=4*pi*exp(-3*sqr(pi)*t[j])*cos(2*pi*x[i])+sin(pi*x[i]);

     kxt[i,j]:=sin(pi*x[i]);

     u[i,j]:=(sqr(t[j])+1)*sin(2*pi*x[i]);

    end;

    end;

    f[0]:=1; phi[0]:=1; k:=1000; s1[0]:=0; s2[0]:=0; s3[0]:=0; s4[0]:=0; s5[0]:=0; s6[0]:=0; s7[0]:=0;

       s8[0]:=0;s9[0]:=0; s10[0]:=0;

       s21[0]:=0; s22[0]:=0; s23[0]:=0; s24[0]:=0; s25[0]:=0; s26[0]:=0; s27[0]:=0;

       s28[0]:=0;s29[0]:=0; s210[0]:=0; tr1[0]:=0; tr2[0]:=0; tr3[0]:=0; tr4[0]:=0;

       tr5[0]:=0; tr6[0]:=0; tr7[0]:=0; tr8[0]:=0; tr9[0]:=0; tr10[0]:=0;

    for j:=0 to m do Begin

    for i:=1 to n do Begin

    v[i,j+1]:=tau/(h*h)*(v[i-1,j]-2*v[i,j]+v[i+1,j])+v[i,j]+tau*(O[i,j]+f[j]*lam[i,j])-tau/h*(v[i+1,j]-v[i,j]);

    O[i,j+1]:=tau/(h*h)*(O[i-1,j]-2*O[i,j]+O[i+1,j])+O[i,j]+2*tau/h*(O[i+1,j]-O[i,j])+tau*(phi[j]*myu[i,j]-v[i,j]);

    end;

     for i:=1 to k do

    Begin

          s1[j]:=s1[j]+u[2*i-1,j]*lam[2*i-1,j];

          s2[j]:=s2[j]+(v[2*i-1,j]-v[2*i-2,j])/h*(u[2*i-1,j]-u[2*i-2,j])/h;

          s3[j]:=s3[j]+v[2*i-1,j]*(u[2*i-1,j+1]-u[2*i-1,j])/tau;

          s4[j]:=s4[j]+u[2*i-1,j]*(v[2*i-1,j]-v[2*i-2,j])/h;

          s5[j]:=s5[j]+O[2*i-1,j]*u[2*i-1,j];

          s6[j]:= s6[j]+kxt[2*i-1,j]*myu[2*i-1,j];

          s7[j]:=s7[j]+(O[2*i-1,j]-O[2*i-2,j])/(2*h)*(kxt[2*i-1,j]-kxt[2*i-2,j])/(2*h);

          s8[j]:=s8[j]+O[2*i-1,j]*(kxt[2*i-1,j+1]-kxt[2*i-1,j])/tau;

          s9[j]:=s9[j]+v[2*i-1,j]*kxt[2*i-1,j];

          s10[j]:=s10[j]+kxt[2*i-1,j]*(O[2*i-1,j]-O[2*i-2,j])/h;

          end;

    for i:=1 to k-1 do

         Begin

          s21[j]:=s21[j]+u[2*i,j]*lam[2*i,j];

          s22[j]:=s22[j]+(v[2*i,j]-v[2*i-2,j])/(2*h)*(u[2*i,j]-u[2*i-2,j])/(2*h);

          s23[j]:=s23[j]+v[2*i,j]*(u[2*i,j+1]-u[2*i,j])/tau;

          s24[j]:=s24[j]+u[2*i,j]*(v[2*i,j]-v[2*i-2,j])/(2*h);

          s25[j]:=s25[j]+O[2*i,j]*u[2*i,j];

          s26[j]:= s26[j]+kxt[2*i,j]*myu[2*i,j];

          s27[j]:=s27[j]+(O[2*i,j]-O[2*i-2,j])/(2*h)*(kxt[2*i,j]-kxt[2*i-2,j])/(2*h);

          s28[j]:=s28[j]+O[2*i,j]*(kxt[2*i,j+1]-kxt[2*i,j])/tau;

          s29[j]:=s29[j]+v[2*i,j]*kxt[2*i,j];

          s210[j]:=s210[j]+kxt[2*i,j]*(O[2*i,j]-O[2*i-2,j])/(2*h);

          end;

        D1[j]:=(u[0,j]*lam[0,j]+u[n,j]*lam[n,j]+4*s1[j]+2*s21[j])*h/3;

        D2[j]:=((v[n,j]-v[n-2,j])/(2*h)*(u[n,j]-u[n-2,j])/(2*h)+4*s2[j]+2*s22[j])*h/3;

        D3[j]:=(v[0,j]*(u[0,j+1]-u[0,j])/tau+v[n,j]*(u[n,j+1]-u[n,j])/tau+4*s3[j]+2*s23[j])*h/3;

        D4[j]:=(u[n,j]*(v[n,j]-v[n-2,j])/(2*h)+4*s4[j]+2*s24[j])*h/3;

        D5[j]:=(O[0,j]*u[0,j]+O[n,j]*u[n,j]+4*s5[j]+2*s25[j])*h/3;

        D6[j]:=(kxt[0,j]*myu[0,j]+kxt[n,j]*myu[n,j]+4*s6[j]+2*s26[j])*h/3;

        D7[j]:=((O[n,j]-O[n-2,j])/(2*h)*(kxt[n,j]-kxt[n-2,j])/(2*h)+4*s7[j]+2*s27[j])*h/3;

        D8[j]:=(O[0,j]*(kxt[0,j+1]-kxt[0,j])/tau+O[n,j]*(kxt[n,j+1]-kxt[n,j])/tau+4*s8[j]+2*s28[j])*h/3;

        D9[j]:=(kxt[0,j]*v[0,j]+kxt[n,j]*v[n,j]+4*s9[j]+2*s29[j])*h/3;

        D10[j]:=(kxt[n,j]*(O[n,j]-O[n-2,j])/(2*h)+4*s10[j]+2*s210[j])*h/3;

    for i:=1 to n-1 do

          begin

          tr1[j]:=tr1[j]+u[i,j]*lam[i,j];

          tr2[j]:=tr2[j]+(v[i,j]-v[i-1,j])/h*(u[i,j]-u[i-1,j])/h;

          tr3[j]:=tr3[j]+v[i,j]*(u[i,j+1]-u[i,j])/tau;

          tr4[j]:=tr4[j]+(v[i,j]-v[i-1,j])/h*u[i,j];

          tr5[j]:=tr5[j]+O[i,j]*u[i,j];

          tr6[j]:=tr6[j]+kxt[i,j]*myu[i,j];

          tr7[j]:=tr7[j]+(O[i,j]-O[i-1,j])/h*(kxt[i,j]-kxt[i-1,j])/h;

          tr8[j]:=tr8[j]+O[i,j]*(kxt[i,j+1]-kxt[i,j])/tau;

          tr9[j]:=tr9[j]+v[i,j]*kxt[i,j];

          tr10[j]:=tr10[j]+kxt[i,j]*(O[i,j]-O[i-1,j])/h;

          end;

          tt1[j]:=h*(u[0,j]*lam[0,j]/2+tr1[j]+u[n,j]*lam[n,j]/2);

          tt2[j]:=h*(tr2[j]+(v[n,j]-v[n-1,j])/h*(u[n,j]-u[n-1,j])/(2*h));

          tt3[j]:=h*(v[0,j]*(u[0,j+1]-u[0,j])/(2*tau)+tr3[j]+v[n,j]*(u[n,j+1]-u[n,j])/(2*tau));

          tt4[j]:=h*(tr4[j]+(v[n,j]-v[n-1,j])/h*u[n,j]);

          tt5[j]:=h*(O[0,j]*u[0,j]/2+tr5[j]+O[n,j]*u[n,j]/2);

          tt6[j]:=h*(kxt[0,j]*myu[0,j]/2+tr6[j]+kxt[n,j]*myu[n,j]/2);

          tt7[j]:=h*(tr7[j]+(O[n,j]-O[n-1,j])/h*(kxt[n,j]-kxt[n-1,j])/(2*h));

          tt8[j]:=h*(O[0,j]*(kxt[0,j+1]-kxt[0,j])/(2*tau)+tr8[j]+O[n,j]*(kxt[n,j+1]-kxt[n,j])/(2*tau));

          tt9[j]:=h*(v[0,j]*kxt[0,j]/2+tr9[j]+v[n,j]*kxt[n,j]/2);

          tt10[j]:=h*(tr10[j]+(O[n,j]-O[n-1,j])/h*kxt[n,j]);

Магжан дипломка1.doc

— 1.52 Мб (Просмотреть файл, Скачать файл)

Реферат.docx

— 11.38 Кб (Просмотреть файл, Скачать файл)

Информация о работе Жылу конвекцияның кері есебінің шешімінің алгоритмін параллельдеу