


{"id":348542,"date":"2024-02-02T10:13:58","date_gmt":"2024-02-02T10:13:58","guid":{"rendered":"\/forum\/forums\/reply\/348542\/"},"modified":"2024-02-02T10:13:58","modified_gmt":"2024-02-02T10:13:58","slug":"348542","status":"publish","type":"reply","link":"https:\/\/innovationspace.ansys.com\/forum\/forums\/reply\/348542\/","title":{"rendered":"Reply To: Optimization script writing"},"content":{"rendered":"<p>&lt;p class=&#8221;MsoNormal&#8221;&gt;Dear Bailin,&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&nbsp;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;Thank you for reaching out to us!&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&nbsp;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;I am not exactly sure what you want to optimize and what your settings are (if for example you use 2D or 3D grating, if you use more than one input angle for the excitation, and so on).&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&nbsp;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;An optimization example of a 2D grating that the target is to get 0.2 transmission for s-polarized light if the wavelength is smaller than or equal to 500nm target wavelength and 0.5 transmission if the wavelength is greater than 500nm in a specific diffraction order (in this example it is the -1 diffraction order), could be the following:&lt;\/p&gt;&lt;div style=&#8221;mso-element: para-border-div; border: none; border-bottom: double windowtext 6.75pt; mso-border-bottom-alt: thin-thick-thin-medium-gap windowtext 6.75pt; padding: 0in 0in 1.0pt 0in;&#8221;&gt;&lt;p class=&#8221;MsoNormal&#8221; style=&#8221;border: none; mso-border-bottom-alt: thin-thick-thin-medium-gap windowtext 6.75pt; padding: 0in; mso-padding-alt: 0in 0in 1.0pt 0in;&#8221;&gt;&nbsp;&lt;\/p&gt;&lt;\/div&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;lambda_target=500e-9; # wavelength to be used as a condition&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;target_lower = 0.2; # diffraction efficiency for wavelengths smaller than lambda_target&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;target_upper = 0.5; # diffraction efficiency for wavelengths greater than lambda_target&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&nbsp;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;lambda=grating.lambda;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;Ts=grating.Ts_grating; # result that we need to optimize&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;target_order = -1; # the diffraction order that we are interested in optimizing the power&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&nbsp;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;n = grating.n;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;target_order_index = find(n, target_order);&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&nbsp;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;fom=0;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&nbsp;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;for (i=1:length(lambda)) {&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&lt;span style=&#8221;mso-spacerun: yes;&#8221;&gt;&nbsp;&nbsp;&nbsp; &lt;\/span&gt;if (lambda(i)&lt;=lambda_target) {&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&lt;span style=&#8221;mso-spacerun: yes;&#8221;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/span&gt;fom=fom+abs(Ts(i,1,target_order_index,1)-target_lower);&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&lt;span style=&#8221;mso-spacerun: yes;&#8221;&gt;&nbsp;&nbsp;&nbsp; &lt;\/span&gt;} else {&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&lt;span style=&#8221;mso-spacerun: yes;&#8221;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;\/span&gt;fom=fom+abs(Ts(i,1,target_order_index,1)-target_upper);&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&lt;span style=&#8221;mso-spacerun: yes;&#8221;&gt;&nbsp;&nbsp;&nbsp; &lt;\/span&gt;}&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;}&lt;\/p&gt;&lt;div style=&#8221;mso-element: para-border-div; border: none; border-bottom: double windowtext 6.75pt; mso-border-bottom-alt: thin-thick-thin-medium-gap windowtext 6.75pt; padding: 0in 0in 1.0pt 0in;&#8221;&gt;&lt;p class=&#8221;MsoNormal&#8221; style=&#8221;border: none; mso-border-bottom-alt: thin-thick-thin-medium-gap windowtext 6.75pt; padding: 0in; mso-padding-alt: 0in 0in 1.0pt 0in;&#8221;&gt;&nbsp;&lt;\/p&gt;&lt;\/div&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&nbsp;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;where the result that has been used is the grating_orders result and the fom type is set to minimize:&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&lt;span style=&#8221;mso-no-proof: yes;&#8221;&gt;<img loading=\"lazy\" decoding=\"async\" src=\"\/forum\/wp-content\/uploads\/sites\/2\/2024\/02\/02-02-2024-1706868746-mceclip0.png\" width=\"381\" height=\"338\" \/>&lt;br&gt;&lt;!&#8211;[endif]&#8211;&gt;&lt;\/span&gt;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&nbsp;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;Please keep in mind that the above optimization script can also be used for simulations that run for multiple wavelengths (more than 1 frequency points in the excitation tab of RCWA). In this case the optimization will try to minimize the difference from the target efficiencies for all wavelengths, i.e. the sum of the differences for all wavelengths will be minimized.&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&nbsp;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;I hope this helps.&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;&nbsp;&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;Best regards,&lt;\/p&gt;&lt;p class=&#8221;MsoNormal&#8221;&gt;Afroditi&lt;\/p&gt;<\/p>\n","protected":false},"template":"","class_list":["post-348542","reply","type-reply","status-publish","hentry"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 4.9.10 - aioseo.com -->\n\t<meta name=\"description\" content=\"Dear Bailin, Thank you for reaching out to us! I am not exactly sure what you want to optimize and what your settings are (if for example you use 2D or 3D grating, if you use more than one input angle for the excitation, and so on). An optimization example of\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<link rel=\"canonical\" href=\"https:\/\/innovationspace.ansys.com\/forum\/forums\/reply\/348542\/\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 4.9.10\" \/>\n\t\t<meta property=\"og:locale\" content=\"en_US\" \/>\n\t\t<meta property=\"og:site_name\" content=\"Ansys Learning Forum | Ansys Innovation Space\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"Reply To: Optimization script writing | Ansys Learning Forum\" \/>\n\t\t<meta property=\"og:description\" content=\"Dear Bailin, Thank you for reaching out to us! I am not exactly sure what you want to optimize and what your settings are (if for example you use 2D or 3D grating, if you use more than one input angle for the excitation, and so on). An optimization example of\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/innovationspace.ansys.com\/forum\/forums\/reply\/348542\/\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/innovationspace.ansys.com\/forum\/forum\/wp-content\/uploads\/sites\/2\/2024\/02\/02-02-2024-1706868746-mceclip0.png\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/innovationspace.ansys.com\/forum\/forum\/wp-content\/uploads\/sites\/2\/2024\/02\/02-02-2024-1706868746-mceclip0.png\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2024-02-02T10:13:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2024-02-02T10:13:58+00:00\" \/>\n\t\t<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n\t\t<meta name=\"twitter:title\" content=\"Reply To: Optimization script writing | Ansys Learning Forum\" \/>\n\t\t<meta name=\"twitter:description\" content=\"Dear Bailin, Thank you for reaching out to us! I am not exactly sure what you want to optimize and what your settings are (if for example you use 2D or 3D grating, if you use more than one input angle for the excitation, and so on). An optimization example of\" \/>\n\t\t<meta name=\"twitter:image\" content=\"https:\/\/innovationspace.ansys.com\/forum\/forum\/wp-content\/uploads\/sites\/2\/2024\/02\/02-02-2024-1706868746-mceclip0.png\" \/>\n\t\t<script type=\"application\/ld+json\" class=\"aioseo-schema\">\n\t\t\t{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum\\\/forums\\\/reply\\\/348542\\\/#breadcrumblist\",\"itemListElement\":[{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum#listItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum\",\"nextItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum\\\/forums\\\/reply\\\/348542\\\/#listItem\",\"name\":\"Reply To: Optimization script writing\"}},{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum\\\/forums\\\/reply\\\/348542\\\/#listItem\",\"position\":2,\"name\":\"Reply To: Optimization script writing\",\"previousItem\":{\"@type\":\"ListItem\",\"@id\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum#listItem\",\"name\":\"Home\"}}]},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum\\\/#organization\",\"name\":\"Ansys Learning Forum\",\"description\":\"Ansys Innovation Space\",\"url\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum\\\/\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum\\\/forums\\\/reply\\\/348542\\\/#webpage\",\"url\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum\\\/forums\\\/reply\\\/348542\\\/\",\"name\":\"Reply To: Optimization script writing | Ansys Learning Forum\",\"description\":\"Dear Bailin, Thank you for reaching out to us! I am not exactly sure what you want to optimize and what your settings are (if for example you use 2D or 3D grating, if you use more than one input angle for the excitation, and so on). An optimization example of\",\"inLanguage\":\"en-US\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum\\\/#website\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum\\\/forums\\\/reply\\\/348542\\\/#breadcrumblist\"},\"datePublished\":\"2024-02-02T10:13:58+00:00\",\"dateModified\":\"2024-02-02T10:13:58+00:00\"},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum\\\/#website\",\"url\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum\\\/\",\"name\":\"Ansys Learning Forum\",\"description\":\"Ansys Innovation Space\",\"inLanguage\":\"en-US\",\"publisher\":{\"@id\":\"https:\\\/\\\/innovationspace.ansys.com\\\/forum\\\/#organization\"}}]}\n\t\t<\/script>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"Reply To: Optimization script writing | Ansys Learning Forum","description":"Dear Bailin, Thank you for reaching out to us! I am not exactly sure what you want to optimize and what your settings are (if for example you use 2D or 3D grating, if you use more than one input angle for the excitation, and so on). An optimization example of","canonical_url":"https:\/\/innovationspace.ansys.com\/forum\/forums\/reply\/348542\/","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"BreadcrumbList","@id":"https:\/\/innovationspace.ansys.com\/forum\/forums\/reply\/348542\/#breadcrumblist","itemListElement":[{"@type":"ListItem","@id":"https:\/\/innovationspace.ansys.com\/forum#listItem","position":1,"name":"Home","item":"https:\/\/innovationspace.ansys.com\/forum","nextItem":{"@type":"ListItem","@id":"https:\/\/innovationspace.ansys.com\/forum\/forums\/reply\/348542\/#listItem","name":"Reply To: Optimization script writing"}},{"@type":"ListItem","@id":"https:\/\/innovationspace.ansys.com\/forum\/forums\/reply\/348542\/#listItem","position":2,"name":"Reply To: Optimization script writing","previousItem":{"@type":"ListItem","@id":"https:\/\/innovationspace.ansys.com\/forum#listItem","name":"Home"}}]},{"@type":"Organization","@id":"https:\/\/innovationspace.ansys.com\/forum\/#organization","name":"Ansys Learning Forum","description":"Ansys Innovation Space","url":"https:\/\/innovationspace.ansys.com\/forum\/"},{"@type":"WebPage","@id":"https:\/\/innovationspace.ansys.com\/forum\/forums\/reply\/348542\/#webpage","url":"https:\/\/innovationspace.ansys.com\/forum\/forums\/reply\/348542\/","name":"Reply To: Optimization script writing | Ansys Learning Forum","description":"Dear Bailin, Thank you for reaching out to us! I am not exactly sure what you want to optimize and what your settings are (if for example you use 2D or 3D grating, if you use more than one input angle for the excitation, and so on). An optimization example of","inLanguage":"en-US","isPartOf":{"@id":"https:\/\/innovationspace.ansys.com\/forum\/#website"},"breadcrumb":{"@id":"https:\/\/innovationspace.ansys.com\/forum\/forums\/reply\/348542\/#breadcrumblist"},"datePublished":"2024-02-02T10:13:58+00:00","dateModified":"2024-02-02T10:13:58+00:00"},{"@type":"WebSite","@id":"https:\/\/innovationspace.ansys.com\/forum\/#website","url":"https:\/\/innovationspace.ansys.com\/forum\/","name":"Ansys Learning Forum","description":"Ansys Innovation Space","inLanguage":"en-US","publisher":{"@id":"https:\/\/innovationspace.ansys.com\/forum\/#organization"}}]},"og:locale":"en_US","og:site_name":"Ansys Learning Forum | Ansys Innovation Space","og:type":"article","og:title":"Reply To: Optimization script writing | Ansys Learning Forum","og:description":"Dear Bailin, Thank you for reaching out to us! I am not exactly sure what you want to optimize and what your settings are (if for example you use 2D or 3D grating, if you use more than one input angle for the excitation, and so on). An optimization example of","og:url":"https:\/\/innovationspace.ansys.com\/forum\/forums\/reply\/348542\/","og:image":"https:\/\/innovationspace.ansys.com\/forum\/forum\/wp-content\/uploads\/sites\/2\/2024\/02\/02-02-2024-1706868746-mceclip0.png","og:image:secure_url":"https:\/\/innovationspace.ansys.com\/forum\/forum\/wp-content\/uploads\/sites\/2\/2024\/02\/02-02-2024-1706868746-mceclip0.png","article:published_time":"2024-02-02T10:13:58+00:00","article:modified_time":"2024-02-02T10:13:58+00:00","twitter:card":"summary_large_image","twitter:title":"Reply To: Optimization script writing | Ansys Learning Forum","twitter:description":"Dear Bailin, Thank you for reaching out to us! I am not exactly sure what you want to optimize and what your settings are (if for example you use 2D or 3D grating, if you use more than one input angle for the excitation, and so on). An optimization example of","twitter:image":"https:\/\/innovationspace.ansys.com\/forum\/forum\/wp-content\/uploads\/sites\/2\/2024\/02\/02-02-2024-1706868746-mceclip0.png"},"aioseo_meta_data":{"post_id":"348542","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"content","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":true,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":"default","schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"limit_modified_date":false,"created":"2024-10-28 17:02:00","updated":"2026-08-16 04:25:41","ai":null,"breadcrumb_settings":null,"seo_analyzer_scan_date":null},"aioseo_breadcrumb":"<div class=\"aioseo-breadcrumbs\"><span class=\"aioseo-breadcrumb\">\n\t\t\t<a href=\"https:\/\/innovationspace.ansys.com\/forum\" title=\"Home\">Home<\/a>\n\t\t<\/span><span class=\"aioseo-breadcrumb-separator\">&raquo;<\/span><span class=\"aioseo-breadcrumb\">\n\t\t\tReply To: Optimization script writing\n\t\t<\/span><\/div>","aioseo_breadcrumb_json":[{"label":"Home","link":"https:\/\/innovationspace.ansys.com\/forum"},{"label":"Reply To: Optimization script writing","link":"https:\/\/innovationspace.ansys.com\/forum\/forums\/reply\/348542\/"}],"acf":[],"_links":{"self":[{"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/replies\/348542","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/replies"}],"about":[{"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/types\/reply"}],"version-history":[{"count":0,"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/replies\/348542\/revisions"}],"wp:attachment":[{"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/media?parent=348542"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}