²é¿´: 620  |  »Ø¸´: 1

_yixiao

Ìú³æ (СÓÐÃûÆø)

[½»Á÷] ¡¾ÇóÖú¡¿´«ÈȼÆËãµÄOpenMP²¢ÐмÆËã ÒÑÓÐ1È˲ÎÓë

Çë´ó¼Ò°ï°ïæ
ÔÚζȳ¡µÄ¼ÆËã¹ý³ÌÖУ¬Ê±¼ä²½³¤Éϵĵü´ú¹ý³ÌÊÇÏ໥¹ØÁª£¬Ï໥ӰÏìµÄ¡£Ò»´Îµü´úÐèҪʹÓÃÉÏÒ»´Îµü´úµÄÔËËã½á¹û£¬¹Êµü´úÖ®¼ä²»ÒËʵÏÖ²¢Ðл¯¡£¶øÔÚÒ»´Îµü´úÄÚ²¿£¬Î¶ȳ¡µÄ¼ÆËã½öÐèҪǰһ´Îʱ¿ÌµÄ¼ÆËã½á¹û£¬¸÷¸ö¼ÆËã¹ý³ÌÖ®¼äûÓÐÓ°Ï죬¿ÉÒÔ½øÐв¢ÐмÆËã¡£µ«ÎÒ½øÐÐÒÔϵIJ¢ÐмÆËãºó½á¹ûͬ´®ÐÐÏà²îºÜ´ó£¬ÇÒ¼ÆËãʱ¼ä·´¶øÔö¼Ó£¬²»ÖªµÀÎÊÌâ³öÔÚÄÄÀï¡£
ÒÔϼ´ÊÇÎҵIJ¢ÐгÌÐò£¬Óõ½µÄOpenMPÖ¸ÁîÊÇsectionÖ¸Á
£¨ÆäÖУ¬³ÌÐòÖеÄh_w_f£¬Water_Tem_in£¬Mould_dt£¬Mould_dyµÈΪȫ¾Ö±äÁ¿£¬AA¡¢BB¡¢C_mould£¬float Density_mouldµÈΪ¾Ö²¿±äÁ¿£¬q1£¬Q2,q3£¬Q4Ϊµ÷Óú¯Êý¡££©
for(k=0;k<100;k++)
{


                for(i=0;i<=xx;i++)
                {
                        for(j=0;j<=yy;j++)
                        {                                
                                thermal_1[j]=thermal_0[j];
                        }
                }  


#pragma omp parallel sections
                {
#pragma omp section                  
                        {



                                for(i=0;i<=xx;i++)
                                {
                                        for(j=0;j<=yA;j++)
                                        {
                                if (i==xK && j==0)//K
                                {
                                        thermal_0[j] = float(2*AA*thermal_1[i+1][j]+2*BB*thermal_1[j+1]+thermal_1[j]*(1-2*AA-2*BB)
                                                +2*h_w_f*(Water_Tem_in - thermal_1[j])*Mould_dt/(Mould_dy*C_mould*Density_mould));
                                }
                                else if (i==xJ && j==0)//J
                                {
                                        thermal_0[j] = float(2*AA*thermal_1[i-1][j]+2*BB*thermal_1[j+1]+thermal_1[j]*(1-2*AA-2*BB)
                                                +2*h_w_f*(Water_Tem_in - thermal_1[j])*Mould_dt/(Mould_dy*C_mould*Density_mould));
                                }


                                //////////[side]
                                else if ((i>=xK && i<=xJ) && j==0)//KJ
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+2*BB*(thermal_1[j+1])
                                                +thermal_1[j]*(1-2*AA-2*BB)
                                                +2*h_w_f*(Water_Tem_in - thermal_1[j])*Mould_dt/(Mould_dy*C_mould*Density_mould));
                                }
                                else if (i==xJ && (j>=0 && j<=yA))//JP
                                {
                                        thermal_0[j] = float(2*AA*(thermal_1[i-1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])
                                                +thermal_1[j]*(1-2*AA-2*BB));
                                }
                                else if ((i>=xK && i<=xJ) && j==yA)//PL
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+2*BB*(thermal_1[j-1])
                                                +thermal_1[j]*(1-2*AA-2*BB)+2*Q4(i-xK)*Mould_dt/(Mould_dy*C_mould*Density_mould));   
                                }
                                else if (i==xK && (j>=0 && j<=yA))//LK
                                {
                                        thermal_0[j] = float(2*AA*(thermal_1[i+1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])+thermal_1[j]*(1-2*AA-2*BB));
                                }
                                else if ((i>=xK && i<=xJ) && (j<=yA) )// fix
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])+thermal_1[j]*(1.0-2*AA-2*BB));
                                }

                                       }
                                       
                        }
                }



pragma omp section                     
                        {
                                for(i=0;i<=xx;i++)
                                {
                                        for(j=yB;j<=yy;j++)
                                        {
                                if (i==xJ && j==yy)//E
                                {
                                        thermal_0[j] = float(2*AA*thermal_1[i-1][j]+2*BB*thermal_1[j-1]+thermal_1[j]*(1-2*AA-2*BB)
                                                +2*h_w_l*(Water_Tem_in - thermal_1[j])*Mould_dt/(Mould_dy*C_mould*Density_mould));
                                }
                                else if (i==xK && j==yy)//D
                                {
                                        thermal_0[j] = float(2*AA*thermal_1[i+1][j]+2*BB*thermal_1[j-1]+thermal_1[j]*(1-2*AA-2*BB)
                                                +2*h_w_l*(Water_Tem_in - thermal_1[j])*Mould_dt/(Mould_dy*C_mould*Density_mould));
                                }

                                ////side
                                else if ((i>=xK && i<=xJ) && j==yB)//MN
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+2*BB*(thermal_1[j+1])
                                                +thermal_1[j]*(1-2*AA-2*BB)+2*Q2(i-xK)*Mould_dt/(Mould_dy*C_mould*Density_mould));
                                }
                                else if (i==xJ && (j>=yB && j<=yy))//NE
                                {
                                        thermal_0[j] = float(2*AA*(thermal_1[i-1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])+thermal_1[j]*(1-2*AA-2*BB));
                                }
                                else if ((i>=xK && i<=xJ) && j==yy)//ED
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+2*BB*(thermal_1[j-1])+thermal_1[j]*(1-2*AA-2*BB)
                                                +2*h_w_l*(Water_Tem_in - thermal_1[j])*Mould_dt/(Mould_dy*C_mould*Density_mould));
                                }
                                else if (i==xK && (j>=yB && j<=yy))//DM
                                {
                                        thermal_0[j] = float(2*AA*(thermal_1[i+1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])+thermal_1[j]*(1-2*AA-2*BB));
                                }

                                else if((i>=xK && i<=xJ) && (j>=yB))// loose
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])+thermal_1[j]*(1.0-2*AA-2*BB));
                                }

                                        }
                                }
                        }




#pragma omp section
                        {
                                for(i=0;i<=xK;i++)
                                {
                                        for(j=yA;j<=yB;j++)
                                        {
                                if (i==0 && j==yA)//A
                                {
                                        thermal_0[j] = float(2*AA*thermal_1[i+1][j]+2*BB*thermal_1[j+1]+thermal_1[j]*(1-2*AA-2*BB)
                                                +2*h_n_l*(Water_Tem_in - thermal_1[j])*Mould_dt/(Mould_dx*C_mould*Density_mould));
                                }
                                else if (i==0 && j==yB)//B
                                {
                                        thermal_0[j] = float(2*AA*thermal_1[i+1][j]+2*BB*thermal_1[j-1]+thermal_1[j]*(1-2*AA-2*BB)
                                                +2*h_n_l*(Water_Tem_in - thermal_1[j])*Mould_dt/(Mould_dx*C_mould*Density_mould));
                                }
                                else if (i==xK && j==yA)//L
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])+thermal_1[j]*(1-2*AA-2*BB)
                                                +Q4(i-xK)*Mould_dt/(Mould_dy*C_mould*Density_mould)+q1(j)*Mould_dt/(Mould_dx*C_mould*Density_mould));
                                }
                                else if (i==xK && j==yB)//M
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])+thermal_1[j]*(1-2*AA-2*BB)
                                                +Q2(i-xK)*Mould_dt/(Mould_dy*C_mould*Density_mould)+q1(j)*Mould_dt/(Mould_dx*C_mould*Density_mould));
                                }
///side
                                else if ((i>=0 && i<=xK) && j==yA)//AL
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+2*BB*(thermal_1[j+1])+thermal_1[j]*(1-2*AA-2*BB));
                                }
                                else if (i==xK && (j>=yA && j<=yB))//LM
                                {
                                        thermal_0[j] = float(2*AA*(thermal_1[i-1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])
                                                +thermal_1[j]*(1-2*AA-2*BB)+2*q1(j)*Mould_dt/(Mould_dx*C_mould*Density_mould));
                                }
                                else if ((i>=0 && i<=xK) && j==yB)//MB
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+2*BB*(thermal_1[j-1])+thermal_1[j]*(1-2*AA-2*BB));   
                                }
                                else if (i==0 && (j>=yA && j<=yB))//BA
                                {
                                        thermal_0[j] = float(2*AA*(thermal_1[i+1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])+thermal_1[j]*(1-2*AA-2*BB)
                                                +2*h_n_l*(Water_Tem_in - thermal_1[j])*Mould_dt/(Mould_dx*C_mould*Density_mould));
                                }
   
                                else if (i<=xK  && (j>=yA && j<=yB))// left
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])+thermal_1[j]*(1.0-2*AA-2*BB));
                                }


                                        }
                                }
                        }





#pragma omp section
                        {
                                for(i=xJ;i<=xx;i++)
                                {
                                        for(j=yA;j<=yB;j++)
                                        {
                                if (i==xJ && j==yA)//P
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])+thermal_1[j]*(1-2*AA-2*BB)
                                                +Q4(i-xK)*Mould_dt/(Mould_dy*C_mould*Density_mould)+q3(j)*Mould_dt/(Mould_dx*C_mould*Density_mould));
                                }
                                else if (i==xx && j==yA)//H
                                {
                                        thermal_0[j] = float(2*AA*thermal_1[i-1][j]+2*BB*thermal_1[j+1]+thermal_1[j]*(1-2*AA-2*BB)
                                                +2*h_n_r*(Water_Tem_in - thermal_1[j])*Mould_dt/(Mould_dx*C_mould*Density_mould));
                                }
                                else if (i==xJ && j==yB)//N
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])+thermal_1[j]*(1-2*AA-2*BB)
                                                +Q2(i-xK)*Mould_dt/(Mould_dy*C_mould*Density_mould)+q3(j)*Mould_dt/(Mould_dx*C_mould*Density_mould));
                                }
                                else if (i==xx && j==yB)//G
                                {
                                        thermal_0[j] = float(2*AA*thermal_1[i-1][j]+2*BB*thermal_1[j-1]+thermal_1[j]*(1-2*AA-2*BB)
                                                +2*h_n_r*(Water_Tem_in - thermal_1[j])*Mould_dt/(Mould_dx*C_mould*Density_mould));
                                }
////side
                                else if ((i>=xJ && i<=xx) && j==yA)//PH
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+2*BB*(thermal_1[j+1])+thermal_1[j]*(1-2*AA-2*BB));
                                }
                                else if (i==xx && (j>=yA && j<=yB))//HG
                                {
                                        thermal_0[j] = float(2*AA*(thermal_1[i-1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])
                                                +thermal_1[j]*(1-2*AA-2*BB)+2*h_n_r*(Water_Tem_in - thermal_1[j])*Mould_dt/(Mould_dx*C_mould*Density_mould));
                                }
                                else if ((i>=xJ && i<=xx) && j==yB)//GN
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+2*BB*(thermal_1[j-1])+thermal_1[j]*(1-2*AA-2*BB));   
                                }
                                else if (i==xJ && (j>=yA && j<=yB))//NP
                                {
                                        thermal_0[j] = float(2*AA*(thermal_1[i+1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])
                                                +thermal_1[j]*(1-2*AA-2*BB)+2*q3(j)*Mould_dt/(Mould_dx*C_mould*Density_mould));
                                }


                                else if ( i>=xJ && (j>=yA && j<=yB))// right
                                {
                                        thermal_0[j] = float(AA*(thermal_1[i-1][j]+thermal_1[i+1][j])+BB*(thermal_1[j-1]+thermal_1[j+1])+thermal_1[j]*(1.0-2*AA-2*BB));
                                }
        

                                        }
                                }

                        }               


                }  
}

±¾ÎÄÀ´×Ô: Сľ³æÂÛ̳ http://muchong.com/bbs/viewthread.php?tid=2410411
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

» ±¾Ö÷ÌâÏà¹Ø¼ÛÖµÌùÍÆ¼ö£¬¶ÔÄúͬÑùÓаïÖú:

ÐÅÑöÎÒËù±ØÐëÏàÐŵÄ
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

frankliu

½û³æ (ÕýʽдÊÖ)

¡ï ¡ï ¡ï
Сľ³æ(½ð±Ò+0.5):¸ø¸öºì°ü£¬Ð»Ð»»ØÌû½»Á÷
mze04532(½ð±Ò+2):¹ÄÀøÒ»Ï£¬»¶Ó­½»Á÷~ 2010-09-28 19:38:41
±¾ÌûÄÚÈݱ»ÆÁ±Î

2Â¥2010-09-28 13:45:51
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ _yixiao µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 277µ÷¼Á +3 ×ÔÓɼå±ý¹û×Ó 2026-03-16 4/200 2026-03-17 16:36 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] Çóµ÷¼Á£¬×Ü·Ö315£¬¿¼µÄÉúÎïÒ½Ò©£¬Ò»Ö¾Ô¸ºþÄÏʦ·¶´óѧ¡£µ÷¼Áµ½ÈκÎרҵ¶¼¿ÉÒÔ +4 С¶¡Ïë½ø²½ 2026-03-11 5/250 2026-03-17 16:05 by ÍâÐÇÎÄÃ÷
[¿¼ÑÐ] Ò»Ö¾Ô¸ÄϾ©´óѧ£¬080500²ÄÁÏ¿ÆÑ§Ó빤³Ì£¬µ÷¼Á +4 Jy? 2026-03-16 4/200 2026-03-17 11:02 by gaoqiong
[¿¼ÑÐ] 085601Çóµ÷¼Á +3 Du.11 2026-03-16 3/150 2026-03-16 20:42 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 328Çóµ÷¼Á£¬Ó¢ÓïÁù¼¶551£¬ÓпÆÑо­Àú +3 ÉúÎ﹤³Ìµ÷¼Á 2026-03-16 4/200 2026-03-16 20:13 by Wangjingyue
[¿¼ÑÐ] »¯Ñ§µ÷¼Á0703 +8 °¡ÎÒÎÒµÄ 2026-03-11 8/400 2026-03-16 17:23 by ÎҵĴ¬Îҵĺ£
[¿¼ÑÐ] 326Çóµ÷¼Á +4 ŵ±´¶û»¯Ñ§½±êéê 2026-03-15 7/350 2026-03-16 17:11 by ŵ±´¶û»¯Ñ§½±êéê
[¿¼ÑÐ] 0703Ò»Ö¾Ô¸211 285·ÖÇóµ÷¼Á +5 ly3471z 2026-03-13 5/250 2026-03-16 16:16 by ŶŶ123
[¿¼ÑÐ] 070300»¯Ñ§Ñ§Ë¶Çóµ÷¼Á +6 Ì«Ïë½ø²½ÁË0608 2026-03-16 6/300 2026-03-16 16:13 by kykm678
[¿¼ÑÐ] 312Çóµ÷¼Á +3 İå·Ï£ 2026-03-16 4/200 2026-03-16 15:06 by peike
[¿¼ÑÐ] 0703»¯Ñ§µ÷¼Á 290·ÖÓпÆÑо­Àú£¬ÂÛÎÄÔÚͶ +7 ÄåÄågk 2026-03-14 7/350 2026-03-16 10:12 by houyaoxu
[¿¼ÑÐ] 326Çóµ÷¼Á +3 mlpqaz03 2026-03-15 3/150 2026-03-16 07:33 by Iveryant
[¿¼ÑÐ] 327Çóµ÷¼Á +6 ʰ¹âÈÎȾ 2026-03-15 11/550 2026-03-15 22:47 by ʰ¹âÈÎȾ
[¿¼ÑÐ] ¸´ÊÔµ÷¼Á +3 ºôºô£¿~+123456 2026-03-14 3/150 2026-03-14 16:53 by WTUChen
[»ù½ðÉêÇë] ÓбØÒª¸ü»»É걨¿ÚÂð 20+3 fannyamoy 2026-03-11 3/150 2026-03-14 00:52 by zhanghaozhu
[¿¼ÑÐ] ²ÄÁϹ¤³Ìµ÷¼Á +4 ßäßä¿Õ¿Õ 2026-03-11 4/200 2026-03-13 19:57 by JourneyLucky
[¿¼ÑÐ] 307Çóµ÷¼Á +5 ³¬¼¶ÒÁ°º´óÍõ 2026-03-12 5/250 2026-03-13 15:56 by °ô°ôÇòÊÖ
[¿¼ÑÐ] ¹¤¿Æµ÷¼Á +4 Jiang191123£¡ 2026-03-11 4/200 2026-03-13 15:15 by Miko19
[¿¼ÑÐ] 290Çóµ÷¼Á +3 ADT 2026-03-13 3/150 2026-03-13 10:19 by peike
[¿¼ÑÐ] 420Çóµ÷¼Á +4 ĪÏòÍâÇó11 2026-03-10 6/300 2026-03-12 14:41 by ruiyingmiao
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û