## Photonics

#### Calculating the phase in FDTD

• roy.shuvajit
Subscriber

In reflection/transmission monitor how to see the phase of the reflected/transmitted wave. There is an angle option. That is not the phase of the wave. Phase information is needed for design for anomalous reflection or lens design. How to retrieve this information from the reflected/transmitted wave?

• Guilin Sun
Ansys Employee

There are 2 steps using script to get the phase:
1: get the field components. As you know, the phase is associated with Ex,Ey, Ez (or H components). So you can use
E=getresult("monitor","E");
Ex=E.Ex;
Ey=E.Ey;
Ez=E.Ez;
similarly you can get x,y,z and f.
2: get the phase. for example for Ex, you can write
xphase=angle(Ex);
which will be a function of xyz and f.

1: you can use Ex=getdata("monitor","EX") if you know you want Ex
2: you can use pinch to remove singular dimension: https://optics.ansys.com/hc/en-us/articles/360034405674-pinch-Script-command

Please note that, a plannar frequency-domain monitor gives E/H/P as a function of x,y,z and wavelength/frequency. So in general the phase extracted from a monitor will have 4 dimensions, although one of the xyz will be singleton.

You can specify a particular dimension. Say you have a xy plane monitor. The phase will be

Phase(1:nx,1:ny,1,1:nf)

Using pinch to remove z singleton; phase=pinch(phase).

If you want to image phase or a specific wavelength, you can specify the frequency point, say fn (1<=fn<=nf), then

Image(x,y, pinch(phase(:,:fn)), “x”,”y”,”phase”);