Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fixed-angle broadband simulations #1991

Closed
mountqi opened this issue Mar 10, 2022 · 3 comments · Fixed by #2609
Closed

Fixed-angle broadband simulations #1991

mountqi opened this issue Mar 10, 2022 · 3 comments · Fixed by #2609

Comments

@mountqi
Copy link

mountqi commented Mar 10, 2022

Lumerical FDTD Solutions supports BFAST source, which enable broad band simulation with oblique incident wave.

BFAST

Is there any similar implementation in meep?

@oskooi
Copy link
Collaborator

oskooi commented Mar 13, 2022

In Meep, a broadband planewave source at oblique incidence in a periodic structure generates planewaves at different angles. This is described in Section 4.5 "Efficient Frequency-Angle Coverage" of our book chapter https://arxiv.org/abs/1301.5366. As shown in Fig. 4.7, it is straightforward to compute the angle dependence of the output from e.g. the reflectance spectrum and then to perform additional simulations to generate results to span the entire angular parameter space.

The approach described in IEEE Trans. Antennas & Propagation, vol. 62 , pp. 354-360 (2014) requires defining a new field and update equations which would be non-trivial to set up in Meep. Given its limitations (particularly the requirement that Δt be reduced to preserve numerical stability as well as limited applicability to dispersive materials, etc.), it does not seem to be of much practical use to justify the effort of supporting it.

@stevengj
Copy link
Collaborator

stevengj commented Mar 13, 2022

Yes, that paper makes the field update equations more expensive everywhere in space.

As an alternative, it occurred to me that it might be possible to implement frequency-dependent Bloch periodic boundary conditions to impose a frequency-independent angle. In particular, for an angle θ, you really want Bloch-periodic boundary conditions

image

for frequency-domain electric/magnetic field components û(x,ω), period a, refractive-index n, and frequency-dependent Bloch phase kₓ = ωn/c sin(θ). Let τ = na sin(θ)/c. In the time domain, this corresponds to a delayed boundary condition:

u(a,t) = u(0, t – τ)

To implement this in the time domain, you would need to store τ/Δt = na sin(θ)/cΔt = na sin(θ)/SΔx timesteps worth of information (where S is the Courant factor), but only for the boundary points. Since this is proportional to a/Δx, it requires storage proportional to the whole computational cell, so it has similar memory scaling to the Liang (2014) paper (though the constant factor might be better thanks to the sin(θ) factor) … but on the other hand the computational cost is much cheaper (because essentially there is no additional computational cost in the bulk, and the boundary condition is still cheap).

(The other advantage of the above approach is that it requires no modification to the timestepping, since the only change is to the boundary conditions. Similarly, it should require no change to Δt.)

PS. Note that for θ < 0, you just need to flip the directions of the boundary conditions to u(a,0) = u(a, t + τ) since τ < 0.

@stevengj stevengj changed the title Does meep support BFAST source? Fixed-angle broadband simulations Mar 13, 2022
@stevengj
Copy link
Collaborator

stevengj commented Jul 7, 2023

One problem with the proposed scheme above is that we need to update boundary conditions in both directions. e.g. we need to update u(a,t) from u(0, t – τ) but we also need to update v(0,t) from v(a, t + τ) for different field components u and v, which seems non-causal for at least one component?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants