±±¾©Ê¯ÓÍ»¯¹¤Ñ§Ôº2026ÄêÑо¿ÉúÕÐÉú½ÓÊÕµ÷¼Á¹«¸æ
²é¿´: 634  |  »Ø¸´: 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 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 070300»¯Ñ§Ñ§Ë¶311·ÖÇóµ÷¼Á +11 Áº¸»¹óÏÕÖÐÇó 2026-04-04 11/550 2026-04-06 10:43 by À¶ÔÆË¼Óê
[¿¼ÑÐ] Ò»Ö¾Ô¸ ½­ÄÏ´óѧ 085602 »¯¹¤×¨Ë¶ 338·ÖÇóµ÷¼Á +15 ·³ÕСç÷ 2026-04-05 15/750 2026-04-06 09:27 by cql1109
[¿¼ÑÐ] 290Çóµ÷¼Á085701 +10 1314Åõ»¨ 2026-04-02 10/500 2026-04-05 10:19 by Sealedwind
[¿¼ÑÐ] ²ÄÁϵ÷¼Á +9 ¸ï΢¹ð 2026-04-04 9/450 2026-04-05 08:27 by 544594351
[¿¼ÑÐ] ²ÄÁÏר˶322·Ö +11 ¹þ¹þ¹þºðºðºð¹þ 2026-04-02 11/550 2026-04-04 23:37 by ÓÀ×ÖºÅ
[¿¼ÑÐ] ²ÄÁÏר˶306Ó¢Ò»Êý¶þ +8 z1z2z3879 2026-03-31 8/400 2026-04-04 22:08 by hemengdong
[¿¼ÑÐ] Ò»Ö¾Ô¸»ª±±µçÁ¦´óѧ£¨±±¾©£©£¬²ÄÁÏ¿ÆÑ§Ó빤³Ìѧ˶265£¬Çóµ÷¼Á +11 yelck 2026-04-03 12/600 2026-04-04 19:52 by dongzh2009
[¿¼ÑÐ] 359Çóµ÷¼Á +7 hhhhaaaa$ 2026-04-04 7/350 2026-04-04 18:49 by imissbao
[¿¼ÑÐ] 325Çóµ÷¼Á +4 ´º·ç²»½èÒâ 2026-04-04 4/200 2026-04-04 14:46 by ÏæÅ©´¢ÄܲÄÁÏ
[¿¼ÑÐ] 282Çóµ÷¼Á +20 ycy1201 2026-04-01 22/1100 2026-04-04 00:42 by userper
[¿¼ÑÐ] 294Çóµ÷¼Á +6 Grey_Ey 2026-04-03 6/300 2026-04-03 20:46 by ÐÀϲ777
[¿¼ÑÐ] 0856£¬269·ÖÇóµ÷¼Á +15 ÓÐѧÉϾÍÐÐÇóÇóÁ 2026-03-30 18/900 2026-04-03 16:50 by melodiousnow
[¿¼ÑÐ] 266·Ö£¬Çó²ÄÁÏÏà¹Ø×¨Òµµ÷¼Á +13 ÍÛºôºßºôºß 2026-03-30 15/750 2026-04-03 15:24 by arrow8852
[¿¼ÑÐ] Çóµ÷¼Á +4 15064154688 2026-04-03 5/250 2026-04-03 15:07 by zrongyan
[¿¼ÑÐ] Ò»Ö¾Ô¸Î人Àí¹¤0856£¬³õÊÔ334 +3 26¿¼ÑвÄÁÏ 2026-04-02 3/150 2026-04-02 21:22 by dongzh2009
[¿¼ÑÐ] 070300»¯Ñ§279Çóµ÷¼Á +15 ¹þ¹þ¹þ^_^ 2026-03-31 17/850 2026-04-01 21:37 by ¸øÄãÄã×¢ÒâÐÝÏ¢
[¿¼ÑÐ] Ò»Ö¾Ô¸ ÄϾ©º½¿Õº½Ìì´óѧ £¬080500²ÄÁÏ¿ÆÑ§Ó빤³Ìѧ˶ +10 @taotao 2026-03-31 11/550 2026-04-01 09:43 by xiayizhi
[¿¼ÑÐ] 254²ÄÁÏÓ뻯¹¤Çóµ÷¼Á +3 º²¶¬ÁÖéª 2026-03-30 4/200 2026-03-31 17:53 by yishunmin
[¿¼ÑÐ] 313Çóµ÷¼Á +6 Âô¸ö¹Ø×Ó°É 2026-03-31 6/300 2026-03-31 10:58 by Jaylen.
[¿¼ÑÐ] 269Çóµ÷¼Á +4 ÎÒÏë¶ÁÑÐ11 2026-03-31 4/200 2026-03-31 10:04 by cal0306
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û