Optimization을 이용하여 grating coupler를 설계하고 싶습니다


위의 그림과 같이 구조를 구성하였고
각각의 grating 내 parameter는 아래 그림과 같이 Lei,Loi,d로 구성하였습니다. (i=10)

optimization 창에서 아래와 같이 설정하였는데 각각의 항목의 역할에 대해서 설명주실 수 있나요?

이때 FoM은 port 1에서의 transmission에 대한 optimization을 실행한 결과입니다.
실행 할때 마다 값이 달라지고 시간도 오래걸리는데 고쳐야할 부분이 있을까요?
파일은 첨부해 참고해 주시면 감사하겠습니다.

Summary

파일이 첨부되지 않아서 확인을 할 수가 없으니, 필요하다면 다시 올려주시기 바랍니다.
Optimization 관련 각 항목이 뜻하는 것은 Optimization utility 페이지에서 Optimization properties section 을 참고하시고 또한 동일 페이지 최하단부의 동영상을 참고하시면 이해가 되리라 생각합니다.
FOM 값은 매 iteration(=generation) 마다 새로 parameter space 에서 사용하는 parameter 값들이 달라지며 그 중에서 max (또는 min) 값이 달라지는 것입니다. 이 값의 변화가 지정한 tolerance 보다 작아지거나, max generation 에서 지정한 수 만큼의 iteration 에 도달하면 시뮬레이션이 종료가 되는 것입니다.

저는 parameter를 20개를 두었습니다.
각각의 min과 max값은0.1~0.6 um로 두었습니다.
이때 maximum generation을 몇으로 지정해야 정확한 optimization 값을 구할 수 있을까요?

또한 optimization되는 값을 지정된 간격(예를 들어 100nm )으로 sweep 시키게끔 제한시킬 수 없나요?

그럼 혹시 generation 수가 생성될때마다 각 parameter들의 새로운 값들이 랜덤으로 적용되어 simulation이 실행되는 건가요?

그렇다면 generation size는 동일한 parameter들로 적용된 generation의 반복적인 simulation을 말하는건가요?
generation size는 1로 두어도 무관한 건가요? 굳이 1보다 큰 수를 넣는 이유가 있을까요?

Q1. 그럼 혹시 generation 수가 생성될때마다 각 parameter들의 새로운 값들이 랜덤으로 적용되어 simulation이 실행되는 건가요?
A1. 매 generation 마다 생성되는 parameter 값들은 앞서 언급한 Optomization Utility 페이지의 최하단 부 “Particle Swarm Optimization” 에서의 수식에서 볼 수 있듯, next generation 의 parameter 값은 previous generation 의 FOM 값을 바탕으로 하여 새로 생성이 됩니다. 따라서, 완전한 random 한 값이 아니라 이 전 결과를 바탕으로 constraint 를 갖는 random 한 값들입니다.

Q2. 그렇다면 generation size는 동일한 parameter들로 적용된 generation의 반복적인 simulation을 말하는건가요?
A2. Optimization 설정에서 원하는 파라미터를 정했을 것입니다. A1 에서 언급한 페이지의 동영상에서는 x, y 축 좌표값을 변수로하여 총 두개의 parameter 로 parameter space 가 형성이 되었습니다. generation size 는 사용자가 지정한 파라미터의 수(m) 에 해당하는 m-dimension 내에서 N 개의 지점을 잡아 그 곳에서의 FOM 값을 계산한다는 것입니다. 그 계산결과 global minimum/maximum 을 찾아서 다음 iteration 에서 동일하게 N 개의 지점을 정하되 그 위치는 previous iteration 의 FOM 결과를 바탕으로 정하는 것입니다.

Q3. generation size는 1로 두어도 무관한 건가요? 굳이 1보다 큰 수를 넣는 이유가 있을까요?
A3. 역시 앞서 언급한 동영상을 다시 확인해 보시기 바랍니다. 만약, 여기서 generation size 를 1 로 하면 그 곳의 FOM 값이 다른 위치의 값보다 큰 지 작은 지 알 수 있는 방법은 없습니다. 즉, 비교의 대상이 없기 때문입니다. 따라서, generation size 는 2 이상이 되어야 하며, 일반적으로 local minimum/maximum 에 빠지지 않고 global optimization 을 하려면 그 수를 충분히 늘려주어야 합니다. 얼마나 해 주어야 하는 지는 시뮬레이션 마다 FOM 의 경향이 다르므로, 이는 trial and error 를 통해 정해야 합니다.

안녕하세요
혹시 parameter 설정 시 userproperty에서 um-1 단위를 넣고 싶을때 type에는 해당 항목이 없던데
이런 경우에는 어떻게 설정해야 할까요?

optimization value를 소수 첫째짜리까지만 나타나게끔 제한할 수 있을까요?

시뮬레이션 개체에서 설정하는 parameter 의 default unit 은 main menu 의 “Setting” 탭에서 지정을 해줄 수 있습니다.

image

Optimization value 의 digit 을 제한하여 discrete 한 값들 중에서 optimum 값을 찾는 것은 현재로는 불가능합니다. Idea Exchange 에 기능을 요청해 보시기 바랍니다.

거리 단위의 역수를 임의로 취할순 없는건가요?

시뮬레이션 개체의 거리 단위의 역수를 그대로 “Properties” 탭에서 사용할 수는 없습니다. 예를 들어, 구조물의 x-span 을 그것의 역수값 \(a\) 를 이용해 정의하고자 한다면, 이에 대응하는 실제 거리 단위의 값 \(1/a\) 을 parameter 로 하여 시뮬레이션 개체에 적용을 하여야 합니다.

This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.