در قسمت هاي قبلي به معرفي نرم افزارهاي عمومي از قبيل microsoft office و نرم افزارهاي محاسباتي رياضي مثل mathcad و maple پرداختيم… حالا بحث رو كمي تخصصي مي كنيم و زبان برنامه نويسي فرترن كه در عرصه هوافضا و خصوصا آيروديناميك اهميت داره مورد بحث و بررسي قرار خواهيم داد….
قصد ندارم خيلي ريز وارد اين نرم افزار بشم و تنها به نكات مهمي كه يه هوافضايي بايد بدونه بسنده مي كنم…
اگرچه اين زبان نسبت به MATLAB بسيار ابتدايي تر هست (به عبارتي كودن تر!) اما سرعتش بسيار بالاتر و مناسب براي محاسبات سنگين هست. كسايي كه از روشهاي CFD استفاده مي كنند ارزش زمان رو مي دونند و ترجيح ميدن كه با اين زبان كار كنند.
كاربرد فرترن در ايروديناميك، حل عددي معادلات ديفرانسيل جريان يعني معادلات ناوير-استوكس هست. در پيشرانش هم اين زبان به صورت گسترده استفاده ميشه و براي مدل كردن احتراق و جريانهاي داخلي كاربرد داره.
اما زبان فرترن رو بايد توسط يك نرم افزار اجرا كه مخصوص كد نويسي اين زبان هست اجرا كرد… به اين نرم افزار، كامپايلر ميگن…. هر زباني كامپايلر هاي متعددي داره از جمله زبان فرترن….يكي از مشكلاتي كه فرترن داره اينه كه اكثر كامپايلرهاش با محيط هاي جديد مثل ويندوز ۷ سازگاري ندارن و برنامه رو به درستي اجرا نمي كنن….البته من يه كامپايلر portable فرترن (نياز به نصب روي ويندوز نداره) دارم كه البته هنوز خوب ازش جواب نگرفتم…
براي آشنايي با اين زبان و كاربرد اون در ادامه قصد دارم مثالي رو در زمينه CFD حل كنم… مثال به شرح زير هست:
يك جريان ناپاياي يك بعدي بين دو صفحه موازي بي نهايت قرار داره و صفحه پاييني با سرعت مشخص ۴۰ متر بر ثانيه در حال حركت هست. جريان لزج و تراكم ناپذيره و معادله حاكم بر اون به شكل زيره:
ميدان حل به صورت زير شبكه بندي شده كه راستاي عمودي نشان دهنده گره هاي مكاني (j ها) و زاستاي افقي شامل گره هاي زماني هست.
قصد ما اينه كه پروفيل سرعت (مقدار u در تمامي j ها) رو در زمان ۱٫۰۸ ثانيه با فاصله گام هاي زماني ۰٫۰۰۲ و گام مكاني ۰٫۰۰۱ حل كنيم.
در اينجا ما از طريق يكي از روشهاي CFD يعني روش FTCS معادلات رو با زبان فرترن نوشته و حل مي كنيم پروفيل سرعت رو بين زمان هاي صفر تا ۱٫۰۸ نشون مي ديم:
IMPLICIT NONE
!Tarife motaghayyerha———————————-
INTEGER :: JM, NM, j, n
REAL :: dy, dt, u0,d,v
REAL,DIMENSION(:,:),ALLOCATABLE :: U
!Input————————————————–
dy=0.001
dt=0.002
u0=40
JM=41
NM=541
v=0.000217
d=v*dt/(dy**2)
ALLOCATE(U(JM,NM))
!tarife I.C & B.C——————————————–
DO j = 2, JM-1
U(j,1)=0
END DO
DO n=1,NM
U(1,n)=u0
U(JM,n)=0
END DO
!FTCS Method:—————————————–
DO n= 1,NM-1
DO j=2,JM-1
U(j,n+1)=U(j,n)+d*(U(j+1,n)-2*U(j,n)+U(j-1,n))
END DO
END DO
!Output————————————————
open(unit=2,file=”FTCS.txt”,action=”write”,status=”replace”)
do j=1,JM
write (2,*) U(j,NM)
end do
end PROGRAM FTCS
با اجراي اين كد در كامپايلر فرترن در پوشه پروژه، فايلي با پسوند txt ايجاد ميشه كه پروفيل سرعت در زمان نهايي نشون ميده….
در زير شكل پروفيل سرعت رو در گامهاي زماني مختلف نشون داديم :
قصد ندارم خيلي ريز وارد اين نرم افزار بشم و تنها به نكات مهمي كه يه هوافضايي بايد بدونه بسنده مي كنم…
اگرچه اين زبان نسبت به MATLAB بسيار ابتدايي تر هست (به عبارتي كودن تر!) اما سرعتش بسيار بالاتر و مناسب براي محاسبات سنگين هست. كسايي كه از روشهاي CFD استفاده مي كنند ارزش زمان رو مي دونند و ترجيح ميدن كه با اين زبان كار كنند.
كاربرد فرترن در ايروديناميك، حل عددي معادلات ديفرانسيل جريان يعني معادلات ناوير-استوكس هست. در پيشرانش هم اين زبان به صورت گسترده استفاده ميشه و براي مدل كردن احتراق و جريانهاي داخلي كاربرد داره.
اما زبان فرترن رو بايد توسط يك نرم افزار اجرا كه مخصوص كد نويسي اين زبان هست اجرا كرد… به اين نرم افزار، كامپايلر ميگن…. هر زباني كامپايلر هاي متعددي داره از جمله زبان فرترن….يكي از مشكلاتي كه فرترن داره اينه كه اكثر كامپايلرهاش با محيط هاي جديد مثل ويندوز ۷ سازگاري ندارن و برنامه رو به درستي اجرا نمي كنن….البته من يه كامپايلر portable فرترن (نياز به نصب روي ويندوز نداره) دارم كه البته هنوز خوب ازش جواب نگرفتم…
براي آشنايي با اين زبان و كاربرد اون در ادامه قصد دارم مثالي رو در زمينه CFD حل كنم… مثال به شرح زير هست:
يك جريان ناپاياي يك بعدي بين دو صفحه موازي بي نهايت قرار داره و صفحه پاييني با سرعت مشخص ۴۰ متر بر ثانيه در حال حركت هست. جريان لزج و تراكم ناپذيره و معادله حاكم بر اون به شكل زيره:
ميدان حل به صورت زير شبكه بندي شده كه راستاي عمودي نشان دهنده گره هاي مكاني (j ها) و زاستاي افقي شامل گره هاي زماني هست.
قصد ما اينه كه پروفيل سرعت (مقدار u در تمامي j ها) رو در زمان ۱٫۰۸ ثانيه با فاصله گام هاي زماني ۰٫۰۰۲ و گام مكاني ۰٫۰۰۱ حل كنيم.
در اينجا ما از طريق يكي از روشهاي CFD يعني روش FTCS معادلات رو با زبان فرترن نوشته و حل مي كنيم پروفيل سرعت رو بين زمان هاي صفر تا ۱٫۰۸ نشون مي ديم:
IMPLICIT NONE
!Tarife motaghayyerha———————————-
INTEGER :: JM, NM, j, n
REAL :: dy, dt, u0,d,v
REAL,DIMENSION(:,:),ALLOCATABLE :: U
!Input————————————————–
dy=0.001
dt=0.002
u0=40
JM=41
NM=541
v=0.000217
d=v*dt/(dy**2)
ALLOCATE(U(JM,NM))
!tarife I.C & B.C——————————————–
DO j = 2, JM-1
U(j,1)=0
END DO
DO n=1,NM
U(1,n)=u0
U(JM,n)=0
END DO
!FTCS Method:—————————————–
DO n= 1,NM-1
DO j=2,JM-1
U(j,n+1)=U(j,n)+d*(U(j+1,n)-2*U(j,n)+U(j-1,n))
END DO
END DO
!Output————————————————
open(unit=2,file=”FTCS.txt”,action=”write”,status=”replace”)
do j=1,JM
write (2,*) U(j,NM)
end do
end PROGRAM FTCS
با اجراي اين كد در كامپايلر فرترن در پوشه پروژه، فايلي با پسوند txt ايجاد ميشه كه پروفيل سرعت در زمان نهايي نشون ميده….
در زير شكل پروفيل سرعت رو در گامهاي زماني مختلف نشون داديم :