등고선 그래프를 그리는 방법


#1

이번 토픽은 아래 KX 사이트를 번역하여 작성되었습니다.


Contour plots by @nlui

Lumerical 제품군에서 등고선 그래프(contour plot)를 생성시켜주는 내장된 방법은 없습니다. 그러나 아래 스크립트 파일은 FDE 솔버로 부터 전기장 세기 프로파일을 수집할 수 있고 특정한 전기장의 크기에 따라 등고선을 추가할 수 있습니다.
plot_E2_with_contour.lsf (1.4 KB)

이 방법은 1) 전기장 세기 프로파일 내의 각 위치를 통한 for 반복문, 2) almostequal 스크립트 명령어를 이용하여 임계(threshold) 세기와 전기장 세기를 비교하기 위한 스크립트 명령어, 이 두가지 기능을 활용하여 작동합니다. 만약 전기장의 세기가 임계값 주변의 상대적인 차이의 범위 내에 있는 경우, 그 위치에 있는 데이타의 값을 image plot의 붉은 색으로 표시할 전기장 세기의 최대값으로 설정합니다. 아래 그림은 원본 전기장 프로파일과 Arrow waveguide 예제로 부터 스크립트 파일을 이용하여 등고선을 전기장과 함께 표기한 그래프를 나타냅니다.


전기장 프로파일 그래프에 선을 추가하는 이 방법은 구조의 윤곽선을 추가하는데 또한 응용될 수 있습니다.
https://kb.lumerical.com/en/index.html?layout_analysis_structure_outlines.html

이 스크립트를 사용할 때, 메쉬 크기(mesh step size)와 스크립트의 21번째 줄에서 등장하는 상대적인 차이를 수정해야할 필요가 있습니다. 왜냐하면 윤곽선의 두께가 메쉬 크기에 제한을 받기 때문이고, 만약 전기장의 구배(gradient)가 너무 커서 하나의 메쉬와 그와 인접하는 메쉬의 전기장 변화가 너무 급격하여 전기장 세기의 특정한 범위 내에 있는 셀은 존재하지 않게 됩니다. 따라서 이런 경우 상대적인 차이값(relative difference value)을 크게할 필요가 있습니다.

만약 임계값이 최대 전기장 세기값과 근접하게 된다면, 등고선과 전기장 데이타 사이의 대비가 뚜렷하지 못할 것입니다. 이러한 경우는 데이타에서 설정하는 값을 31번째 줄에서 최대 전기장 세기 값 대신 0으로 조정하여, 파란색 등고선을 나타내게 됩니다.

등선고선을 그리는 또 다른 방법으로는 matlabsave 스크립트 명령어을 이용하여 데이타를 저장하고 내장된 contour 명령어 함수를 이용하여 원하는 그래프를 얻을 수 있습니다.
http://www.mathworks.com/help/matlab/contour-plots-1.html