روشهای محاسباتی در اپتیک
روشهای محاسباتی در طراحی سیستمهای اپتیکی، در شبیهسازیهای فوتونیکی، در کاربردهای اپتیک نظیر نورپردازی و نیز در حوزهٔ آموزش اپتیک کاربرد گستردهای دارند.
- طراحی سیستمهای اپتیکی نیازمند بهینهسازی موقعیت و انحنای سطوح اپتیکی (مرزهای جدایی بین محیطهای مختلف) و نیز خصوصیات فیزیکی این محیطها نظیر توزیع ضریب شکست در آنها میباشد. برای این بهینهسازی لازم است که مسیر پرتوهای مختلف ردیابی شود. این کار مستلزم حجم بالای محاسبات است. بیجهت نیست که پس از ساخت اولین نمونههای کامپیوترهای الکترونیکی جدید، برنامههای ردیابی پرتو جزو اولین کاربردهای ماشینهای محاسبه جدید بود.
-
یافتن توزیع شدت میدانهای الکتریکی و مغناطیسی، انتشار امواج الکترومغناطیسی در محیطهای مختلف و تعیین شکل هندسی محیط از مسائل عمده در فوتونیک است که عموماً به حل عددی معادلات دیفرانسیل با مشتقات جزئی و شرایط مرزی و اولیهٔ مختلف منجر میشود. روش استاندارد حل این معادلات روشهای محاسباتی نظیر روش «اجزای محدود» است.
-
توانایی مشاهدهٔ رفتار سیستمهای اپتیکی تحت شرایط مختلف، کمک شایانی به درک مفاهیم اساسی اپتیک خواهد کرد. به همین دلیل شبیهسازیهای آموزشی از این سیستمها گسترش یافته و بتدریج بخشی از آموزش اپتیک بویژه در حوزهٔ مهندسی اپتیک را تشکیل میدهد.
در هر یک از این حوزهها، نرمافزارهای متعددی تدوین شده است. چه در قالبهای تجاری و چه در قالب برنامههای متن-باز و آزاد.
اما همواره این امکان وجود دارد که بتوان در سطوح مختلف اقدام به پیادهسازی الگوریتمهای لازم و برنامهسازی کرد. بر خلاف تصور اولیه براحتی میتوان به توانایی و دقت ادعایی برنامههای تجاری رسید. در اینجا سعی خواهد شد علاوه بر بحث راجع به برنامهنویسی اپتیکی و نگارش برنامه، برنامههای متن-باز و آزاد موجود در حوزهٔ اپتیک نیز مورد بررسی قرار گیرند.
ابزارهای برنامهنویسی
ابزارهای مورد نیاز را میتوان در چند سطح تقسیم بندی کرد:
-
انجام محاسبات اپتیکی سردستی
برای اینکار نیاز به برنامهای است که بتوان با دقت نسبی براحتی مسائل مورد نظر را پیادهسازی کرد.
در این سطح، سرعت و دقت محاسبات در اولویت نیست.
برای این منظور استفاده از نرمافزارهای
«صفحات گسترده»
توصیه میشود. در بین این نرمافزارها، برنامهٔ
Gnumeric
از نظر سبکی، سرعت، دقت و راحتی کار ویژگیهای منحصر بفردی دارد. با استفاده از آن براحتی میتوان یک «ماشین حساب اپتیکی» طراحی و پیادهسازی کرد. توضیحات بیشتر راجع به این برنامه در
مقالهٔ ویکیپدیای
آن موجود است.
- برنامهنویسی
در این سطح نیاز به نرمافزاری مناسب برای انجام محاسبات اپتیکی و استفاده از الگوریتمهای مختلف بهینهسازی میباشد. از میان انواع نرمافزارهای محاسبات ریاضی، آن دسته که بر محاسبات جبر خطی و فضاهای برداری تکیه دارند و برای اینگونه عملیات بهینه شدهاند، مناسبتر خواهند بود. یکی از زبانهای محاسباتی قوی در این حوزه زبان «مَتلب» است که پیادهسازیهای مختلفی از آن وجود دارد. از میان آنها برنامهٔ اُکتاو (GNU Octave) پیشنهاد میشود.
این پیادهسازی از جنبههای متعددی بر پیادهسازی «متلب تجاری» برتری دارد. برای اطلاع بیشتر از این برنامه میتوانید به
مقالهٔ ویکیپدیای
آن مراجعه کنید.
-
برنامه نویسی بهینه
در این سطح به زبان برنامهنویسی تواناتری نیاز است تا پیادهسازی الگوریتمها بخصوص از نظر زمان اجرا بهینه شوند. این بهینهسازی در محاسبات جدی بویژه در ردیابی پرتو و حل معادلات میدانهای الکترومغناطیسی بسیار ضروری است.
دو زبان برنامهنویسی «پاسکال» و «پیتون» انتخابهای مناسبی هستند. از بین این دو زبان
«پیتون»
بدلیل پشتیبانی از پاردایمهای مختلف برنامهنویسی ارجح است. علاوه بر این امکان تلفیق برنامههای آن با برنامههای اُکتاو نیز وجود دارد. از طرفی امروزه از پیتون به عنوان زبان معیار محاسبات علمی یاد میشود. برای اطلاعات بیشتر میتوانید به
پایگاه رسمی آن
مراجعه کنید.