


{"id":276405,"date":"2023-03-24T22:26:51","date_gmt":"2023-03-24T22:26:51","guid":{"rendered":"\/forum\/forums\/topic\/ansys-insight-yongtapuyouhualaijinxingyfenshuqidenixiangsheji-inverse-design\/"},"modified":"2023-04-05T21:26:59","modified_gmt":"2023-04-05T21:26:59","slug":"ansys-insight-yongtapuyouhualaijinxingyfenshuqidenixiangsheji-inverse-design","status":"closed","type":"topic","link":"https:\/\/innovationspace.ansys.com\/forum\/forums\/topic\/ansys-insight-yongtapuyouhualaijinxingyfenshuqidenixiangsheji-inverse-design\/","title":{"rendered":"Ansys Insight: \u7528\u62d3\u6251\u4f18\u5316\u6765\u8fdb\u884cY\u5206\u675f\u5668\u7684\u9006\u5411\u8bbe\u8ba1 Inverse design"},"content":{"rendered":"<p>&nbsp;2019b R2 \u4ee5\u53ca\u66f4\u65b0\u7248\u672c\u652f\u6301\u62d3\u6251\u4f18\u5316\u3002 \u76f8\u5173\u4f8b\u5b50\u53c2\u89c1<\/p>\n<h3 class=\"LC20lb MBeuO DKV0Md\"><a class=\"search-result-link\" href=\"https:\/\/optics.ansys.com\/hc\/en-us\/search\/click?data=BAh7DjoHaWRsKwg9L2U%2FXQE6D2FjY291bnRfaWRpA02AjDoJdHlwZUkiDGFydGljbGUGOgZFVDoIdXJsSSJ2aHR0cHM6Ly9vcHRpY3MuYW5zeXMuY29tL2hjL2VuLXVzL2FydGljbGVzLzE1MDAwMDcxODIxNDEtSW52ZXJzZS1EZXNpZ24tb2YtYS1TcGxpdHRlci1Vc2luZy1Ub3BvbG9neS1PcHRpbWl6YXRpb24GOwhUOg5zZWFyY2hfaWRJIik5NGY3Mzc1NS1jNWFjLTRlYTUtYjMzMy1mOTZiODljZDcwNzgGOwhGOglyYW5raQg6C2xvY2FsZUkiCmVuLXVzBjsIVDoKcXVlcnlJIg50b3BvbG9neVwGOwhUOhJyZXN1bHRzX2NvdW50aSA%3D--e4f49f68bf4c0c40651efd71193aa0106d01da5f\">Inverse Design of a Splitter Using Topology Optimization<\/a><\/h3>\n<p><strong><a class=\"search-result-link\" href=\"https:\/\/optics.ansys.com\/hc\/en-us\/search\/click?data=BAh7DjoHaWRsKwhmSGU%2FXQE6D2FjY291bnRfaWRpA02AjDoJdHlwZUkiDGFydGljbGUGOgZFVDoIdXJsSSIBfGh0dHBzOi8vb3B0aWNzLmFuc3lzLmNvbS9oYy9lbi11cy9hcnRpY2xlcy8xNTAwMDA3MTg4NTgyLVRvcG9sb2d5LU9wdGltaXphdGlvbi1vZi1hLTQtY2hhbm5lbC13YXZlbGVuZ3RoLWRlbXVsdGlwbGV4ZXItMkQtVEUGOwhUOg5zZWFyY2hfaWRJIik5NGY3Mzc1NS1jNWFjLTRlYTUtYjMzMy1mOTZiODljZDcwNzgGOwhGOglyYW5raQk6C2xvY2FsZUkiCmVuLXVzBjsIVDoKcXVlcnlJIg50b3BvbG9neVwGOwhUOhJyZXN1bHRzX2NvdW50aSA%3D--09792a63dbd595ae6583763b79ca5511b55c3908\">Topology Optimization of a 4-channel wavelength demultiplexer 2D-TE<\/a><\/strong><\/p>\n<p><strong><a class=\"search-result-link\" href=\"https:\/\/optics.ansys.com\/hc\/en-us\/search\/click?data=BAh7DjoHaWRsKwiTiqg1AQQ6D2FjY291bnRfaWRpA02AjDoJdHlwZUkiDGFydGljbGUGOgZFVDoIdXJsSSIBnmh0dHBzOi8vb3B0aWNzLmFuc3lzLmNvbS9oYy9lbi11cy9hcnRpY2xlcy80NDAzMjQxNzE2MzcxLVRvcG9sb2d5LW9wdGltaXphdGlvbi1vZi1hLU8tYmFuZC1DLWJhbmQtd2F2ZWxlbmd0aC1kZS1tdWx0aXBsZXhlci13aXRoLTEwMG5tLWZlYXR1cmUtc2l6ZS1jb25zdHJhaW50BjsIVDoOc2VhcmNoX2lkSSIpOTRmNzM3NTUtYzVhYy00ZWE1LWIzMzMtZjk2Yjg5Y2Q3MDc4BjsIRjoJcmFua2kNOgtsb2NhbGVJIgplbi11cwY7CFQ6CnF1ZXJ5SSIOdG9wb2xvZ3lcBjsIVDoScmVzdWx0c19jb3VudGkg--db429e5d07da848455cd373103aafe668caa0675\">Topology optimization of a O-band\/C-band wavelength de-multiplexer with 100nm feature size constraint<\/a><\/strong><\/p>\n<p><a class=\"search-result-link\" style=\"text-decoration: none;font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Helvetica, Arial, sans-serif;font-size: 15px;font-style: normal;font-weight: 400;letter-spacing: normal;text-align: left;text-indent: 0px;text-transform: none\" href=\"https:\/\/optics.ansys.com\/hc\/en-us\/search\/click?data=BAh7DjoHaWRsKwgilzHUUwA6D2FjY291bnRfaWRpA02AjDoJdHlwZUkiDGFydGljbGUGOgZFVDoIdXJsSSJhaHR0cHM6Ly9vcHRpY3MuYW5zeXMuY29tL2hjL2VuLXVzL2FydGljbGVzLzM2MDA0MjMwNTMxNC1JbnZlcnNlLWRlc2lnbi1vZi13YXZlZ3VpZGUtY3Jvc3NpbmcGOwhUOg5zZWFyY2hfaWRJIik4OGMyMGEwZS1mMjE3LTQ4MTUtYjBhMy1mNjMxMmY1MmFkYWEGOwhGOglyYW5raQY6C2xvY2FsZUkiCmVuLXVzBjsIVDoKcXVlcnlJIilJbnZlcnNlIGRlc2lnbiBvZiB3YXZlZ3VpZGUgY3Jvc3NpbmcGOwhUOhJyZXN1bHRzX2NvdW50aQKZAw%3D%3D--0634c5a574c766c7a0333b06e1bb3602ae26fc40\">Inverse design of waveguide crossing<\/a><\/p>\n<p><a class=\"search-result-link\" href=\"https:\/\/optics.ansys.com\/hc\/en-us\/search\/click?data=BAh7DjoHaWRsKwhxNMbUUwA6D2FjY291bnRfaWRpA02AjDoJdHlwZUkiDGFydGljbGUGOgZFVDoIdXJsSSJcaHR0cHM6Ly9vcHRpY3MuYW5zeXMuY29tL2hjL2VuLXVzL2FydGljbGVzLzM2MDA1MjA0NDkxMy1PcHRpbWl6YWJsZS1HZW9tZXRyeS1QeXRob24tQVBJBjsIVDoOc2VhcmNoX2lkSSIpNjAwN2RkZmMtNjI2Zi00ZGVlLWIwMGQtMTIyNjEwMWRlYjNhBjsIRjoJcmFua2kLOgtsb2NhbGVJIgplbi11cwY7CFQ6CnF1ZXJ5SSILcHl0aG9uBjsIVDoScmVzdWx0c19jb3VudGl9--dc32999eaa0f8de7e9e70497f3026dcdd01a80f2\">Optimizable Geometry &#8211; Python API<\/a>&nbsp;<\/p>\n<p><strong> \u7b80\u4ecb <\/strong><\/p>\n<p>\u4f7f\u7528\u62d3\u6251\u4f18\u5316\u8fdb\u884c\u9006\u5411\u8bbe\u8ba1\u53ef\u4ee5\u4f7f\u7528\u7528\u6237\u81ea\u5b9a\u4e49\u8bc4\u4ef7\u51fd\u6570FOM\u751f\u6210\u4f18\u5316\u7684\u5668\u4ef6\u3002\u5728\u672c\u4f8b\u4e2d\u6211\u4eec\u4f18\u5316\u7684\u662fT_up \u6700\u5927\u5316\uff0c\u5373\u4e0a\u81c2\u7684\uff08\u5e73\u5747\uff09 \u900f\u5c04\u7387\uff0c\u6240\u4ee5\u5728\u4eff\u771f\u65f6\u4f7f\u7528\u4e86\u5bf9\u79f0\u6027\u8fb9\u754c\u6761\u4ef6\uff08\u6a21\u5f0f\u5149\u6e90\u4e5f\u5177\u6709\u6b64\u5bf9\u79f0\u6027\uff09\u3002 \u4e0a\u81c2\u7684\u6700\u5927\u900f\u5c04\u7387\u662f0.5\uff0c \u6240\u4ee5\u6211\u4eec\u5c06\u4f18\u5316\u51fd\u6570\u5b9a\u4e49\u4e3a FOM=0.5 &#8211; T_up\uff0c\u76f8\u5f53\u4e8e\u63d2\u5165\u635f\u8017\u3002<\/p>\n<p>\u6b64\u79cd\u4f18\u5316\u7684\u7279\u70b9\u662f\u7528\u6237\u53ea\u9700\u8981\u6307\u5b9a\u4f18\u5316\u7684\u533a\u57df\uff0c\u800c\u4e0d\u9700\u8981\u53c2\u6570\u5316\u7ed3\u6784\u548c\u4f18\u5316\u7ed3\u6784\u5f62\u72b6\uff08\u53c2\u89c1\u4e4b\u524d\u7684API\u4f18\u5316\uff09\u3002\u867d\u7136\u7ed3\u679c\u770b\u8d77\u6765\u5e76\u4e0d\u662f\u5f88\u76f4\u89c2\uff08\u4f8b\u5982\u4e3a\u4ec0\u4e48\u662f\u8fd9\u4e2a\u6837\u5b50\uff09\uff0c\u4f46\u662f\u900f\u5c04\u6548\u7387\u5f88\u9ad8\u3002<\/p>\n<p>\u5f53\u7136\uff0c\u6b64\u79cd\u4f18\u5316\u7684\u7f3a\u70b9\u662f\u53ef\u5236\u9020\u6027\u3002\u4e3a\u4e86\u63a7\u5236\u6700\u5c0f\u5c3a\u5bf8\uff0c\u53ef\u4ee5\u5b9a\u4e49\u534a\u5f84\u51fd\u6570\u6ee4\u6ce2\uff0c\u8fdb\u800c\u4e00\u5904\u592a\u5c0f\u7684\u51e0\u4f55\u5f62\u8c8c\u5e76\u5c06\u5c16\u89d2\u5149\u6ed1\u8bdd\uff0c\u8fdb\u800c\u6539\u5584\u53ef\u5236\u9020\u6027\u3002<\/p>\n<p>\u4e0b\u9762\u662f\u4f18\u5316\u6b65\u9aa4\u3002<\/p>\n<h2 id=\"toc_1\">Step 1: Define base simulation project<\/h2>\n<p>\u9996\u5148\u9700\u8981\u5b9a\u4e49\u57fa\u7840\u4eff\u771f\u6587\u4ef6\uff0c\u5b83\u542b\u6709\u5668\u4ef6\u7684\u666e\u901a\u7ed3\u6784\uff0c\u542b\u4eff\u771f\u533a\uff0c\u8f93\u5165\u8f93\u51fa\u6ce2\u5bfc\uff0c\u6a21\u5f0f\u5149\u6e90\u548c\u76d1\u89c6\u5668\u3002\u672c\u4f8b50:50 splitter\u7684\u5de5\u4f5c\u6ce2\u957f\u662f1450nm \u5230 1650nm\u3002\u53ef\u4ee5\u4f7f\u7528\u811a\u672c\u6587\u4ef6\u751f\u6210splitter_base_2D_TE_topology.lsf&nbsp;<\/p>\n<p>\u6253\u5f00FDTD\u5e76\u8fd0\u884c\u811a\u672c\u6587\u4ef6\u540e\u53ef\u4ee5\u770b\u5230<\/p>\n<p><a class=\"wp-colorbox-image cboxElement\" href=\"\/forum\/wp-content\/uploads\/sites\/2\/2023\/03\/29-03-2023-1680048029-mceclip0.png\"><img decoding=\"async\" src=\"\/forum\/wp-content\/uploads\/sites\/2\/2023\/03\/29-03-2023-1680048029-mceclip0.png\"><\/a><\/p>\n<p>\u7ed3\u6784\u7ec4&lsquo;initial_guess&rsquo;\u751f\u6210\u4f18\u5316\u7684\u5668\u4ef6\u7684\u8d77\u70b9\uff0c\u4e0d\u8fc7\u8fd9\u4e2a\u5e76\u4e0d\u662f\u5fc5\u8981\u7684\uff0c\u62d3\u6251\u4f18\u5316\u4e5f\u53ef\u4ee5\u4ece\u96f6\u7ed3\u6784\u5f00\u59cb\u4f18\u5316\u3002 \u5f53\u7136\uff0c\u5148\u6709\u521d\u6b65\u7ed3\u6784\u53ef\u80fd\u4f1a\u51cf\u5c11\u8fed\u4ee3\u6b21\u6570\u3002<\/p>\n<h2 id=\"toc_2\">Step 2: Define optimization region<\/h2>\n<p>\u9996\u5148\u9700\u8981\u4f60\u5b9a\u4e49\u51e0\u4e2a\u8981\u4f18\u5316\u7684\u53c2\u6570\uff1a<\/p>\n<div>\n<table>\n<thead>\n<tr>\n<th>Name<\/th>\n<th>Value in the example<\/th>\n<th>Description<\/th>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>size_x<\/td>\n<td>3000 [nm]<\/td>\n<td>Length of the device<\/td>\n<\/tr>\n<tr>\n<td>size_y<\/td>\n<td>1800 [nm]<\/td>\n<td>Since we use symmetry along the y-axis, the value is half the height of the device<\/td>\n<\/tr>\n<tr>\n<td>delta_x<\/td>\n<td>20 [nm]<\/td>\n<td>Size of a pixel along x-axis<\/td>\n<\/tr>\n<tr>\n<td>delta_y<\/td>\n<td>20 [nm]<\/td>\n<td>Size of a pixel along y-axis<\/td>\n<\/tr>\n<tr>\n<td>filter_R<\/td>\n<td>500 [nm]<\/td>\n<td>Radius of the smoothing filter which removes small features and sharp corners<\/td>\n<\/tr>\n<tr>\n<td>eps_max<\/td>\n<td>2.8^2=7.84<\/td>\n<td>Effective permittivity for a Silicon waveguide with a thickness of 220nm<\/td>\n<\/tr>\n<tr>\n<td>eps_min<\/td>\n<td>1.44^2=2.0736<\/td>\n<td>Permittivity of the SiO2 cladding<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p>\u6b64\u5916\u8fd8\u9700\u8981\u5b9a\u4e49 FOM \u548c\u4e00\u4e9b\u5176\u5b83\u7684\u4f18\u5316\u8bbe\u7f6e\u3002 \u6240\u7528\u811a\u672c\u53c2\u89c1 pt_2D_TE_topology.py<br \/>\u8fd9\u91cc\u4e5f\u5b9a\u4e49\u4e86\u521d\u59cb\u53c2\u6570\u3002 \u524d\u9762\u8bb2\u8fc7\u62d3\u6251\u4f18\u5316\u7684\u4f18\u70b9\u662f\u4e0d\u9700\u8981\u8bbe\u7f6e\u590d\u6742\u7684\u521d\u59cb\u6761\u4ef6\uff0c\u800c\u662f\u7b80\u5355\u5730\u5728\u4f18\u5316\u533a\u8bbe\u7f6e\u4e3a\u5747\u5300\u7684 eps_max \u6216 eps_min.<\/p>\n<h2 id=\"toc_3\">Step 3: Run topology optimization<\/h2>\n<p>\u8fd0\u884cPython \u811a\u672c\u6587\u4ef6\u5c31\u53ef\u4ee5\u5f00\u59cb\u4f18\u5316\u4e86\u3002\u5728\u8fd9\u4e2a\u4f8b\u5b50\u4e2d\uff0c\u62d3\u6251\u4f18\u5316\u6709\u4e24\u4e2a\u9636\u6bb5\uff1a \u7b2c\u4e00\uff0c\u7070\u8272\u9636\u6bb5 &lsquo;grayscale phase&rsquo;\uff0c\u4f18\u5316\u5668\u53ef\u4ee5\u81ea\u7531\u5730\u4f7f\u7528 [eps_low,eps_high ] \u4e2d\u7684\u4efb\u4f55\u6570\u503c\u3002\u5f53\u4f18\u5316\u5668\u8fbe\u5230\u4e00\u4e2a\u4f18\u5316\u540e\uff0c \u5b83\u5c06\u5f00\u59cb\u4e8c\u503c\u5316\u9636\u6bb5 &lsquo;binarization phase&rsquo;\u3002 \u6b64\u65f6\u4f18\u5316\u5668\u5c06\u8fde\u7eed\u7684\u4ecb\u7535\u5e38\u6570\u5206\u5e03\u53d8\u6210\u4e8c\u503c\u7ed3\u6784\uff0c\u5373 eps_low \u6216\u8005 eps_high\u4f46\u662f\u6ca1\u6709\u5176\u5b83\u4e2d\u95f4\u503c\uff0c\u6b64\u65f6\u7528\u6765\u9009\u62e9\u5b9e\u9645\u6750\u6599\u3002\u5927\u7ea6\u7ecf\u8fc7500\u6b21\u8fed\u4ee3\u540e\u6709\u7ed3\u679c\u3002<\/p>\n<p>\u6211\u4eec\u770b\u5230FOM\u66fe\u6682\u65f6\u53d8\u5dee\uff0c\u6bcf\u4e00\u4e2a\u6781\u503c\u9884\u793a\u7740\u4e00\u4e2a\u4e8c\u503c\u5316\u56e0\u5b50\u7684\u589e\u52a0\uff0c\u8fdb\u800c\u8fdb\u4e00\u6b65\u6539\u5584FOM\u3002\u4f18\u5316\u7684\u6700\u540e\u6211\u4eec\u770b\u5230FOM\u7a0d\u6709\u53d8\u5dee\uff0c\u8fd9\u662f\u56e0\u4e3a\u4e8c\u503c\u5316\u7ed3\u6784\u8868\u73b0\u5f97\u4e0d\u5982\u8fde\u7eed\u7ed3\u6784\u3002\u4f46\u662f\u5b9e\u9645\u4e0aFOM\u662f\u6309\u534a\u5bf9\u6570\u753b\u51fa\u7684\u7ed3\u679c\uff0c\u6240\u4ee5\u7edd\u5bf9\u7684\u53d8\u5316\u662f\u5f88\u5c0f\u7684\u3002<\/p>\n<p><strong>4. design for the manufacturing (DFM) phase<\/strong><\/p>\n<p>\u4e8c\u503c\u5316\u540e\u6709\u4e9b\u5730\u65b9\u53ef\u80fd\u6709\u5f88\u5c0f\u7684\u7ec6\u8282\/\u5b64\u5c9b\uff0c\u4e0d\u5229\u4e8e\u5b9e\u9645\u5236\u9020\u3002TopologyOptimization class\u91cc\u9762\u6709\u4e00\u4e2amin_feature_size\uff0c\u53ef\u4ee5\u6307\u5b9a\u6700\u5c0f\u534a\u5f84 filter_R\u3002<\/p>\n<pre>geometry = TopologyOptimization2D(params=params, eps_min=eps_min, eps_max=eps_max, <br>           x=x_pos, y=y_pos, z=0, filter_R=filter_R, min_feature_size=filter_R)<\/pre>\n<p>\u6ce8\uff1a \u6b64\u4f18\u5316\u65b9\u6cd5\u56e0\u4e3a\u9700\u8981FDTD\u5185\u90e8\u7684\u4e00\u4e9b\u53c2\u6570\uff0c\u6240\u4ee5\u5fc5\u987b\u4f7f\u75282019b R2\u53ca\u4ee5\u4e0a\u7248\u672c\u3002&nbsp;<\/p>\n<p>\u66f4\u591a\u7ec6\u8282\u8bf7\u53c2\u8003\u4f8b\u5b50\uff0cGitHub\u548cLumApi\u3002<\/p>\n<p>\u867d\u7136\u4f8b\u5b50\u7528\u7684\u662f\u5355\u4e2a\u4ecb\u7535\u5e38\u6570\uff0c\u539f\u5219\u4e0a\u4e5f\u53ef\u4ee5\u7528\u8272\u6563\u6750\u6599\u3002\u4e0d\u8fc7\uff0c\u4f18\u5316\u4ec5\u5bf9\u4e00\u4e2a\u76ee\u6807\u51fd\u6570\u8fdb\u884c\uff0c\u5149\u6e90\u662f\u5355\u8272\u7684\uff0c\u5982\u679c\u9700\u8981\u5bbd\u8c31\uff0c\u5e94\u8be5\u4fee\u6539\u5149\u6e90\u548c\u76ee\u6807\u51fd\u6570\uff0c\u6bd4\u5982\u7528\u5e73\u5747\u900f\u5c04\u7387\u7b49\u3002<\/p>\n<p>\u6b64\u5916\uff0c\u5f3a\u70c8\u5efa\u8bae\u4f7f\u7528\u8f6f\u4ef6\u81ea\u5e26\u7684Python\uff0c\u4e0d\u8981\u81ea\u5df1\u4e0b\u8f7dPython\u548c\u5176\u7f16\u8f91\u5668\uff0c\u5426\u5219\u4e0d\u4ec5\u9700\u8981\u8bbe\u7f6e\u597d\u8def\u5f84\uff0c\u6709\u4e9b\u529f\u80fd\u8fd8\u4e0d\u652f\u6301\uff0c\u6216\u8005\u4e0d\u517c\u5bb9\u7b49\u3002<\/p>\n<h2 id=\"toc_3\"><\/h2>\n<p>&nbsp;<\/p>\n","protected":false},"template":"","class_list":["post-276405","topic","type-topic","status-closed","hentry"],"aioseo_notices":[],"acf":[],"custom_fields":[{"0":{"_bbp_subscription":["2592"],"_bbp_author_ip":["23.192.164.14"]," _bbp_last_reply_id":["0"]," _bbp_likes_count":["0"],"_btv_view_count":["1798"],"_edit_lock":["1680729986:70791"],"_bbp_topic_status":["unanswered"],"_bbp_status":["publish"],"_bbp_topic_id":["276405"],"_bbp_forum_id":["27835"],"_bbp_engagement":["2592"],"_bbp_voice_count":["1"],"_bbp_reply_count":["0"],"_bbp_last_reply_id":["0"],"_bbp_last_active_id":["276405"],"_bbp_last_active_time":["2023-03-24 22:26:51"]},"test":"gsun"}],"_links":{"self":[{"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/topics\/276405","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/topics"}],"about":[{"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/types\/topic"}],"version-history":[{"count":0,"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/topics\/276405\/revisions"}],"wp:attachment":[{"href":"https:\/\/innovationspace.ansys.com\/forum\/wp-json\/wp\/v2\/media?parent=276405"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}