NanoComp / meep

free finite-difference time-domain (FDTD) software for electromagnetic simulations
GNU General Public License v2.0
1.17k stars 598 forks source link

How to use the principle of equivalence to set inclined unidirectional plane waves? #2619

Open Superwbb1999 opened 10 months ago

Superwbb1999 commented 10 months ago

I added two sources with component components Ez and Hx, which can achieve unidirectional plane wave transmission in the normal direction, and the other half is well offset. But during oblique incidence, the other half being cancelled out is not in a good state. May I ask what is going on? Thank you. sources = [ mp.Source( mp.GaussianSource(fcen, fwidth=0.2228427 fcen, is_integrated=False), center=mp.Vector3(0, 0, 0), size=mp.Vector3(s, 0, 0), component=mp.Ez, amp_func=pw_amp1(k1, mp.Vector3(x=0)), # ), mp.Source( mp.GaussianSource(fcen, fwidth=0.2228427 fcen, is_integrated=False), center=mp.Vector3(0, 0, 0), size=mp.Vector3(s, 0, 0), component=mp.Hx, amp_func=pw_amp2(k1, mp.Vector3(x=0)), ), ]

1

2

oskooi commented 10 months ago

For reference, see the get_equiv_sources function added in #2333.