[docs] document scattering conventions and frozen-basis workflows
Update examples for sampled-interface tapers, explicit physical CPML spacing, copied SCPML widths, and the consolidated complex mode solver. Document breaking API changes, overlap measures, and PML convergence.
This commit is contained in:
parent
153536ee91
commit
7e407dd1ac
10 changed files with 152 additions and 29 deletions
|
|
@ -1,5 +1,5 @@
|
|||
"""
|
||||
Local-mode CMT example for a continuously varying rib-waveguide taper.
|
||||
Sampled-interface EME example for a continuously varying rib-waveguide taper.
|
||||
|
||||
This example keeps geometry construction outside `meanas.fdfd.eme`: it samples a
|
||||
width taper at several cross-sections, solves and normalizes each local mode with
|
||||
|
|
@ -112,14 +112,15 @@ def print_summary(
|
|||
print('sampled taper effective indices:', ', '.join(f'{value:.5f}' for value in neffs))
|
||||
print(f'abrupt endpoint reflection |S_00|^2 = {abs(abrupt_s[0, 0]) ** 2:.6f}')
|
||||
print(f'abrupt endpoint transmission |S_{n_modes},0|^2 = {abs(abrupt_s[n_modes, 0]) ** 2:.6f}')
|
||||
print(f'taper CMT reflection |S_00|^2 = {abs(taper_s[0, 0]) ** 2:.6f}')
|
||||
print(f'taper CMT transmission |S_{n_modes},0|^2 = {abs(taper_s[n_modes, 0]) ** 2:.6f}')
|
||||
print(f'taper CMT total output power = {numpy.sum(abs(taper_s[:, 0]) ** 2):.6f}')
|
||||
print(f'taper reflection |S_00|^2 = {abs(taper_s[0, 0]) ** 2:.6f}')
|
||||
print(f'taper transmission |S_{n_modes},0|^2 = {abs(taper_s[n_modes, 0]) ** 2:.6f}')
|
||||
print(f'taper total output power = {numpy.sum(abs(taper_s[:, 0]) ** 2):.6f}')
|
||||
|
||||
|
||||
def main() -> None:
|
||||
sections, neffs, _omega, dxes_2d = solve_taper_sections()
|
||||
taper_s = eme.get_taper_s(sections, dxes=dxes_2d)
|
||||
prepared = eme.prepare_taper(sections, dxes=dxes_2d)
|
||||
taper_s = eme.evaluate_taper_s(prepared)
|
||||
abrupt_s = eme.get_s(
|
||||
sections[0].modes,
|
||||
sections[0].wavenumbers,
|
||||
|
|
|
|||
Loading…
Reference in a new issue