Photonics – Korean

Photonics – Korean

Topics related to Lumerical and more, in Korean language

metasurface에서 circular polarization light의 phase와 conversion efficiency 구하는 방법

    • Myunghwan
      Subscriber
      안녕하세요.

      lumerical FDTD로 circular polarization 빛 입사시 투과되는 빛의 RCP to LCP conversion efficiency와 phase를 구하려고 합니다.

      "A broadband achromatic metalens for focusing and imaging in the visible" 논문을 제현하려고 하는데 값이 다르게 나오네요. 어느 부분이 잘못됐는지 모르겠습니다.

    • shkim
      Ansys Employee
      .

      Forum 의 정책상 사용자의 시뮬레이션 파일을 staff 는 다운받아서 살펴볼 수가 없습니다. Metamaterial 의 phase 계산에서 중요한 부분이,

      i) phase 계산을 near-field 가 아닌 grating projection 을 통해 farfield 를 이용하는 것 (이는 "grating_s_parameters" 라는 analysis group 을 이용하면 됩니다.)

      ii) 이 grating_s_parameter 의 analysis 탭에서 "metamaterial span" 및 "metamaterial center" 를 pillar 의 span 과 center 값과 일치시켜주어야 이 pillar 로 인해 발생하는 phase 값을 제대로 구할 수 있다는 점입니다.

      이와 관련해, 다음의 페이지를 잘 살펴보시기를 권합니다.

      .
    • Myunghwan
      Subscriber
      안녕하세요 답변 감사드립니다.
      grating_s_parameter 는 circular polarization source가 지원이 안되는데 어떻게 해야 할까요?





    • Myunghwan
      Subscriber
      그리고 예를들어 RCP 빛을 입사 하였을 경우 RCP와 LCP빛이 둘다 나오는데 그 중 LCP만 어떻게 구별하여 phase를 구할 수 있을까요?
    • Myunghwan
      Subscriber
      답변 부탁드립니다!!
    • shkim
      Ansys Employee
      이는 임의의 원평관은 orthogonal 한 선평광의 중첩으로 표현된다는 원칙을 이용하면 됩니다. RCP 편광 빛을 입사하였을 때, output 에서의 LCP 성분을 추출하고자 한다면 다음의 절차를 밟으면 됩니다.
      i) x-편광된 빛(xE0)을 입사하여 사뮬레이션을 하고 output field (E_1)를 구합니다.
      ii) y-편광된 빛(yE0)을 입사하여 시뮬레이션을 하고 output field (E_2)를 구합니다.
      iii) RCP source 는 이 Wiki 게시물의 convention 을 따르면, (x - i*y)/sqrt(2) 가 됩니다 (E0=1 을 가정). 따라서, 이 RCP input 에 대한 output 은 E_total = (E_1 - i*E_2)/sqrt(2) 가 될 것입니다.
      iv) 이 E_total 에서 LCP 성분을 추출하고자 한다면, E_total vector 에 LCP basis 인 (x + i*y)/sqrt(2) 를 dot product 를 해주면 됩니다.
      다만, 여기서 주의할 점은 위의 절차는 특정 diffraction order 에 대해 적용해주어야 한다는 것입니다.

    • Myunghwan
      Subscriber
      .

      grating_s_parameter 기능 2개를 이용해서 x-pol, y-pol 을 입사시킨 후 계산하면 output으로 나오는 값은 S parameter라 far field 계산된 E-field를 어떻게 구하는지 모르겠습니다.

      스크립트를 봤는데 이해가 잘 안되네요. 자세한 설명이 되어 있는 페이지가 있나요?

      .
    • shkim
      Ansys Employee
      .

      grating_s_params 는 planewave 를 source 로 취하고, 특정 diffraction order 를 갖는 planewave 에 대해서 amplitude 및 phase 정보를 갖는 s-parameter 를 계산해 줍니다. 이 특정 방향의 planewave 는 s-parameter 만으로 완전히 정의되며, 이를 계산할 때, farfield projection 을 통해 1m 반구상에서의 field 를 계산하고, 역으로 source/monitor/구조물 사이의 간격을 고려해 phase compensation 을 하는 과정을 거쳐서, 최종적으로 metamaterial 로 인한 amplitude 및 phase 변화를 계산합니다.

      이러한 계산과정에 대한 설명은 다음 페이지에 나와 있으며, 보다 상세한 세부 설정 관련 설명은 script 내의 comment 를 참고하시기 바랍니다.

      Metamaterial S parameter extraction

      .
    • Myunghwan
      Subscriber
      .

      제가 궁금한 것은 circular polarization 소스를 입사시켰을 때 metamaterial로 인한 phase변화를 구하는 것입니다.

      구체적으로는 RCP 소스를 입사시켰을 때 output LCP 의 phase를 구하는 것입니다.

      이방법에 대한 구체적인 설명이 어디에도 없어서 질문드렸습니다.

      두개의 grating_s_parameter 기능으로 이용해서 소스 2개의 phase를 달리하여 RCP 소스를 입사시키는 것 까지는 알겠으나

      출력된 LCP의 phase를 어떻게 구하는지에 대한 설명이 필요합니다.


      .
    • shkim
      Ansys Employee
      .

      위의 게시물 step iv 에서 설명드린 방법대로 계산을 하면, complex coefficient 를 얻을 수 있는데, 이것의 phase 성분을 구하면 됩니다. 이는 Lumerical tool 과는 직접적인 관련이 없으며, 일반적으로 임의의 field 에서 특정 polarization 성분이 얼마인 지를 추출하려면 원하는 basis vector 를 dot product 를 해주면 된다는 원리를 따르면 됩니다.

      [External Wiki link] Circular polarization - Mathematical Description

      .
    • Myunghwan
      Subscriber
      .

      제가 궁금한 것은 far-field계산 입니다.

      grating_s_parameter 를 통해서 far field 계산된 E-filed가 어떤 변수로 저장되어 있나요?

      스크립트를 봐도 모르겠네요.

      near-field를 이용해서 계산한 결과는 conversion coefficient는 같게 나오는데 phase가 논문과 다릅니다.

      .
    • shkim
      Ansys Employee
      .

      S-parameter analysis group 및 모든 setting 이 제대로 되어있다고 가정하면, 다음의 스크립트를 실행하면 됩니다.

      _____________________________________________________

      sname = "s_param";


      # Run simulation with x-polarized source (E_x)

      switchtolayout;

      setnamed(sname,"polarization angle",0);

      run;

      S_pol = getresult(sname,"S_polarization");

      f = S_pol.f;

      S21_x= S_pol.S21_Gn; # size = [length(f),2] (First column: s(y)-polarization component, second colum: p(x)-polarization component)


      # Run simulation with y-polarized source (E_y)

      switchtolayout;

      setnamed(sname,"polarization angle",90);

      run;

      S_pol = getresult(sname,"S_polarization");

      S21_y= S_pol.S21_Gn;


      # Construct the response to an LCP and RCP input: E_R = (E_x - 1i*E_y)/sqrt(2), E_L = (E_x + 1i*E_y)/sqrt(2)

      S21_L = (S21_x + 1i*S21_y)/sqrt(2);

      S21_R = (S21_x - 1i*S21_y)/sqrt(2);


      # Extract the LCP and RCP components in S21_L and S21_R

      S21_LR = (S21_R(:,2) + 1i*S21_R(:,1))/sqrt(2); # RCP input --> LCP output

      S21_RR = (S21_R(:,2) - 1i*S21_R(:,1))/sqrt(2); # RCP input --> RCP output

      S21_LL = (S21_L(:,2) + 1i*S21_L(:,1))/sqrt(2); # LCP input --> LCP output

      S21_RL = (S21_L(:,2) - 1i*S21_L(:,1))/sqrt(2); # LCP input --> RCP output


      # plot result

      plot(f/1e12,unwrap(angle(S21_LR)-angle(S21_LR(1))),"Frequency (THz)","Phase (rad)","","linewidth=2");

      legend("");

      .
    • 1766756937
      Subscriber
      .

      안녕하세요,shkim ,초렌즈 셀에서 행렬 빠른 각도의 변화에 따라 위상 변화를 계산하고 싶습니다. 위의 스크립트도 사용해 보시겠습니까? unwrap(angle(s21_lr)-angle(s21_lr (1))은 무엇을 뜻하는가? 당신의 회답을 기대합니다!  

      .
Viewing 12 reply threads
  • You must be logged in to reply to this topic.