رفتن به مطلب

Fortran یا C؛ مسئله این است!


ارسال های توصیه شده

سلام

با توجه به الزام آ ناصر (آقا ناصر):ws53:به زدن یه موضوع در روز دید و بازدیدا، گفتم یکی بزنم که با دوستان تو دانشگاه گاهی بحثش انجام میشه و یکی از سوالات ماها لااقل بوده (و هست).

 

چه زبان برنامه نویسی شما کار میکنید؟

چرا؟

کدوم برا مکانیکا بهتره؟

آیا کتابخونه این زبان برا مکانیک جامعه؟

سیالاتی هستید یا جامداتی یا ساختی؟! ببخشید داشت یادم میرفت! یا هوافضایی؟ (منظورم اینه که اگه میتونید تخصصی تر راجع به ارتباط این زبان با گرایش خودتون صحبت کنید)

 

هر کدوم از زبان ها یه سری مزایا دارن و یه سری معایب.

منتظر نظراتتون هستیم...

  • Like 7
لینک به دیدگاه

نظرات من:

خب به نظر من اولین و مهمترین مسئله اینه که برای چه کاری میخواهیم برنامه نویسی کنیم.

مثلا اگه میخواهیم یه کد بنویسیم که نیاز به حافظه و پردازش خارق العاده ای نداره، شاید MATLAB از همه بهتر باشه به دلیل این که خیلی کتابخونه معرکه ای داره.

یا اگه میخواهیم مثلا تو آباکوس حرکات محیرالعقول بزنیم، خب زبونش پایتونه گویا. یا OpenFoam زبونش ++C هست و ...

زبون Fortran کتابخونه مهندسی بسیار خوبی داره. به دلیل این که سالها استفاده شده. کار باهاش هم نسبتا راحته. شبیه متلبه و پیچیدگی های ++C نداره.

++C شی گراست (Object Oreinted) و ویژگیهای شی گرایی خب طبیعتا شاملش میشه. بسیار انعطاف پذیره. میشه باهاش آپولو هوا کرد! شباهتایی با C داره... ولی خب شاید برای تازه کارایی مثل من شروعش مشکل باشه.

 

حالا به نظر شما مثلا این ++C آیا کتابخونه مهندسی مثل فرترن نداره؟ یعنی دیگرانی براش یه سری چیزا نوشته باشن و آزاد در اختیار دیگران گذاشته باشن.

آیا برای همین کارهای ساده هم نمی ارزه آدم به جای اینکه بره سراغ فرترن، بره سراغ ++C؟

  • Like 7
لینک به دیدگاه

به به مرسی از تاپیک خوبت

شاید من در حدی نباشم که نظر بدم:ws3:

ولی معمولا از فورترن و متلب استفاده میشه چون معمولا پوشش میده مسائل مکانیک رو

البته همونطور که گفتی ++c هم بلد باشی که عالیه:a030:

  • Like 8
لینک به دیدگاه

سلام

ما تو کارشناسی C خوندیم، تو ارشدم که ماشالله هر کی یه برنامه میگفت

 

کارشناسی سیالات بودم ارشدم تبدیل

تو ارشد Maple گفتن که اونم بیسش C بود

MATLAB ههم بود که اینم پایه اش C بود

اما در نهایت CFD رو با فرترن گفتن، که ما هم تمرکز رو گذاشتیم رو اون

  • Like 7
لینک به دیدگاه
  • 3 هفته بعد...

"I dont know what the programming language of the year 2000 will look like, but I know it will be called FORTRAN."

Charles Anthony Richard Hoare

 

تقریبا تمام مسائل سی اف دی رو با فرترن مینویسم من

بسیار زبان راحت و روانی هست

  • Like 6
لینک به دیدگاه
  • 1 ماه بعد...

سلام...

اتفاقا این موضوع خیلی تو ارشد بجا هست...

ببینین فرترن خوبه اما یه سری محدودیت هایی داره

اما زبان برنامه نویسی سی خیلی خوبه و توی اکثر برنامه های قوی استفاده میشه

مثلا همون Open FOAM که خودتون مثال زدین و بر پایه ی C هست از لحاظ سیالاتی خیلی قوی تر از نرم افزار های متداول سیالاتی امروزی هست و کارای خیلی قوی ای میشه باهاش انجام داد... از لحاظ سیالاتی همه نرم افزار Fluent رو میشناسن... در حالی که با نرم افزار Open FOAM خیلی کار های بزرگتری میشه کرد!

 

در کل زبان برنامه نویسی C از لحاظ وسعت و انعطاف پذیری از Fortran خیلی بهتره بنا بر این بهتره از همون کارشناسی بچه ها روی یادگیری این زبان تمرکز کنن

  • Like 7
لینک به دیدگاه
سلام...

اتفاقا این موضوع خیلی تو ارشد بجا هست...

ببینین فرترن خوبه اما یه سری محدودیت هایی داره

اما زبان برنامه نویسی سی خیلی خوبه و توی اکثر برنامه های قوی استفاده میشه

مثلا همون Open FOAM که خودتون مثال زدین و بر پایه ی C هست از لحاظ سیالاتی خیلی قوی تر از نرم افزار های متداول سیالاتی امروزی هست و کارای خیلی قوی ای میشه باهاش انجام داد... از لحاظ سیالاتی همه نرم افزار Fluent رو میشناسن... در حالی که با نرم افزار Open FOAM خیلی کار های بزرگتری میشه کرد!

 

در کل زبان برنامه نویسی C از لحاظ وسعت و انعطاف پذیری از Fortran خیلی بهتره بنا بر این بهتره از همون کارشناسی بچه ها روی یادگیری این زبان تمرکز کنن

سلام

میتونی یه مثال بزنی کهه فرترن نمیتونه یا سختشه ولی سی راحتتره؟

  • Like 5
لینک به دیدگاه

زبان های برنامه نویسی رو کلا به سه سطح تقسیم میکنند، سطح پایین که به زبان سخت افزار و دستگاه نزدیک تره، مثل اسمبلی، سطح بالا که به زبان انسان نزدیک تره، مثل فرترن و بیسیک و سطح میانی که حد واسط این دو هستن مثل ++c . همه میدونیم که زبان های سطح بالا برای اینکه به زبان قابل فهم برای پردازنده تبدیل بشه نیاز به ترجمه به یک زبان سطح پایین مثل اسمبلی داره.

اما خب زبان سی همانطور که گفتیم هم برای دستگاه و هم برای انسان قابل فهم هست. پس واضح هست که بیشتر مورد توجه قرار بگیره...اما در محاسبات پیچیده ارجحیت با فرترن است.

  • Like 6
لینک به دیدگاه

کتاب چاپمن ورژنی که برای فرترن ۹۵ و ۲۰۰۳ نوشته، یه فصل داره با این عنوان:

Object-oriented programming in fortran

 

دیگه چی میخواهین از این زبون؟

 

(البته این برای فرترن ۲۰۰۳ و احتمالا ۲۰۰۸ هست که کامپایلرهاشونو فکر نکنم راحت بشه گیر آورد. البته من تلاشی نکردم در این رابطه! شاید هم بشه!)

  • Like 3
لینک به دیدگاه
از نظر بنده اول Matlab بعد اگه سرتون درد میکرد برید سراغ Fortran . البته در CFD فرترن تا حدودی کارامدتر هست.ربان های c , c++ , C# هم داستانش کلا فرق داره.

 

 

به قول معروف، برای هر تعداد خطی که ما کد مینویسیم، به طور میانگین، یه میزان وقت صرف میکنیم. پس شاید بهتر باشه کدهامون رو ابتدا در زبانی شروع کنیم به نوشتن که تعداد خط کمتری برای یه منظور خاص احتیاج دارن.

 

 

متلب (که تجاریه) و پایتون (که رایگانه) زبانهای interpreted هستند و با تعداد کمتری خط میشه کدها رو نوشت. به قول شما کم دردسر.

میشه با این مدل زبان ها کد رو شروع کرد و اگر جایی نیاز به سرعت بالا پیدا کردیم، فقط همون بخش رو در فرترن و یا c++ و ... نوشت و در کد اصلی ازش استفاده کرد. این زبان ها compiled هستند (در مقایسه با interpreted)

  • Like 6
لینک به دیدگاه
از نظر بنده اول Matlab بعد اگه سرتون درد میکرد برید سراغ Fortran . البته در CFD فرترن تا حدودی کارامدتر هست.

ربان های c , c++ , C# هم داستانش کلا فرق داره.

بحث سر درد و اینا نیست.

مطلب همه کدها رو آماده تقریبا داره و کتابخونه بسیار کاملی داره و البته به نظر من دیگه اسمش کد نویسی نیست فقط وارد کردن یه سری دستور هست و الا پیچیده ترین کدها رو هم خود مطلب داخل کتابخونه داره.

خیلی هم کوتاه و سریع میشه به حل مسائل رسید.

البته خود مطلب هم خروجی کد فرترن رو میده...

من عقیده م اینه که کدنویسی فکر رو باز میکنه...

همین نوشتن زیر روال،کنسول و ... برا من خیلی جذابه

  • Like 6
لینک به دیدگاه
کتاب چاپمن ورژنی که برای فرترن ۹۵ و ۲۰۰۳ نوشته، یه فصل داره با این عنوان:

Object-oriented programming in fortran

 

دیگه چی میخواهین از این زبون؟

 

(البته این برای فرترن ۲۰۰۳ و احتمالا ۲۰۰۸ هست که کامپایلرهاشونو فکر نکنم راحت بشه گیر آورد. البته من تلاشی نکردم در این رابطه! شاید هم بشه!)

من قبلا خیلی دنبال ورژنهای جدیدترش گشتم،ولی چیزی پیدا نکردم،بعید میدونم دیگه بشه راحت گیر آورد.همون 95 ش هم هنوز کولاکه برای خودش

  • Like 6
لینک به دیدگاه
البته خود مطلب هم خروجی کد فرترن رو میده...

سلام آقا حمید، اینو بیشتر توضیح میدی؟ من دقیقا متوجه نشدم منظورت چیه از خروجی

 

من عقیده م اینه که کدنویسی فکر رو باز میکنه...

اینو موافقم

  • Like 4
لینک به دیدگاه
بحث سر درد و اینا نیست.

مطلب همه کدها رو آماده تقریبا داره و کتابخونه بسیار کاملی داره و البته به نظر من دیگه اسمش کد نویسی نیست فقط وارد کردن یه سری دستور هست و الا پیچیده ترین کدها رو هم خود مطلب داخل کتابخونه داره.

خیلی هم کوتاه و سریع میشه به حل مسائل رسید.

البته خود مطلب هم خروجی کد فرترن رو میده...

من عقیده م اینه که کدنویسی فکر رو باز میکنه...

همین نوشتن زیر روال،کنسول و ... برا من خیلی جذابه

 

والا منم عاشق برنامه نویسیم. خودم اول از سی شارپ شروع کردم بعد فرترن و الآن هم متلب کار میکنم. اصلا برام قابل هضم نیست کسی که متلب کار کرده باشه بخواد بازم فرترن کار کنه.

  • Like 4
لینک به دیدگاه
سلام

میتونی یه مثال بزنی کهه فرترن نمیتونه یا سختشه ولی سی راحتتره؟

من اصلا نگفتم کدوم سخت تر و کدوم راحت تره!!!!! من گفتم از لحاظ عملی C زبان برنامه نویسی پویا تری هست

از نظر بنده اول Matlab بعد اگه سرتون درد میکرد برید سراغ Fortran . البته در CFD فرترن تا حدودی کارامدتر هست.

ربان های c , c++ , C# هم داستانش کلا فرق داره.

البته اینم بگم نرم افزار MatLab بر پایه ی C نوشته شده:ws37:

  • Like 4
لینک به دیدگاه
سلام آقا حمید، اینو بیشتر توضیح میدی؟ من دقیقا متوجه نشدم منظورت چیه از خروجی

 

 

اینو موافقم

میتونید از خود متلب با یک دستور خروجی فرترن بگیرید.

ویا خروجی سی

والا منم عاشق برنامه نویسیم. خودم اول از سی شارپ شروع کردم بعد فرترن و الآن هم متلب کار میکنم. اصلا برام قابل هضم نیست کسی که متلب کار کرده باشه بخواد بازم فرترن کار کنه.

وقتی خروجی ها در یک مثال ساده مثلا کویتی فلو به بالای 5000هزار دیتای مقایسه ای برسه کاملا قابلا هضم میشه.

وقتی آن استراکچرد گرید رو میخواید روی دماغه ی یک جسم پرنده مدل کنید و سرعت پردازش رو ببینید اون موقع تفاوت رو حس میکنید.

وقتی نویر استوکس کوپله روی شبکه جابجا شده و نا متقارن روی نوک یک ازدر قرار حل بشه اون موقع پردازش رو مقایسه کنید و ببینید چه نتایجی میگیرید. از کدهاتون و اون موقع تازه به لذت سی اف دی پی میبرید.

تو مثالهای ساده بحثی نیست.

  • Like 5
لینک به دیدگاه
میتونید از خود متلب با یک دستور خروجی فرترن بگیرید.

ویا خروجی سی

 

وقتی خروجی ها در یک مثال ساده مثلا کویتی فلو به بالای 5000هزار دیتای مقایسه ای برسه کاملا قابلا هضم میشه.

وقتی آن استراکچرد گرید رو میخواید روی دماغه ی یک جسم پرنده مدل کنید و سرعت پردازش رو ببینید اون موقع تفاوت رو حس میکنید.

وقتی نویر استوکس کوپله روی شبکه جابجا شده و نا متقارن روی نوک یک ازدر قرار حل بشه اون موقع پردازش رو مقایسه کنید و ببینید چه نتایجی میگیرید. از کدهاتون و اون موقع تازه به لذت سی اف دی پی میبرید.

تو مثالهای ساده بحثی نیست.

 

من خودم آخرین چیزی که نوشتم توزیع ورتیسیته ، تابع جریان و بردارهای سرعت تو یک کویتی بود. ولی تاحالا کد های خیلی حجم بالا مثل شما ننوشتم. البته قبلا هم شنیده بودم سرعت و قدرت فرترن تو cfd خیلی بدردبخور هست ولی خودم هنوز پی نبردم چون هنوز خیلی حرفه ای کار نکردم. شاید تو cfd پیشرفته حرف شمارو گوش دادم رفتم سر فرترن.

  • Like 3
لینک به دیدگاه
×
×
  • اضافه کردن...