[waveguide_real / phasor] more work towards real-FDTD to FDFD equivalence
This commit is contained in:
parent
f7aa21a42a
commit
e50637dc1c
7 changed files with 213 additions and 25 deletions
23
README.md
23
README.md
|
|
@ -159,6 +159,10 @@ The tracked examples under `examples/` are the intended entry points for users:
|
|||
residual check against the matching FDFD operator.
|
||||
- `examples/waveguide.py`: waveguide mode solving, unidirectional mode-source
|
||||
construction, overlap readout, and FDTD/FDFD comparison on a guided structure.
|
||||
- `examples/waveguide_real.py`: real-valued continuous-wave FDTD on a straight
|
||||
guide, with late-time monitor slices, guided-core windows, and mode-weighted
|
||||
errors compared directly against real fields reconstructed from the matching
|
||||
FDFD solution, plus a guided-mode / orthogonal-residual split.
|
||||
- `examples/fdfd.py`: direct frequency-domain waveguide excitation and overlap /
|
||||
Poynting analysis without a time-domain run.
|
||||
|
||||
|
|
@ -189,3 +193,22 @@ For a broadband or continuous-wave FDTD run:
|
|||
4. Build the matching FDFD operator on the stretched `dxes` if CPML/SCPML is
|
||||
part of the simulation, and compare the extracted phasor to the FDFD field or
|
||||
residual.
|
||||
|
||||
### Real-field reconstruction workflow
|
||||
|
||||
For a continuous-wave real-valued FDTD run:
|
||||
|
||||
1. Build the analytic source phasor for the structure, for example with
|
||||
`waveguide_3d.compute_source(...)`.
|
||||
2. Run the real-valued FDTD simulation using the real part of that source.
|
||||
3. Solve the matching FDFD problem from the analytic source phasor on the
|
||||
stretched `dxes`.
|
||||
4. Reconstruct late real `E/H/J` snapshots with
|
||||
`reconstruct_real_e/h/j(...)` and compare those directly against the
|
||||
real-valued FDTD fields, ideally on a monitor window or mode-weighted norm
|
||||
centered on the guided field rather than on the full transverse plane. When
|
||||
needed, split the monitor field into guided-mode and orthogonal residual
|
||||
pieces to see whether the remaining mismatch is actually in the mode or in
|
||||
weak nonguided tails.
|
||||
|
||||
`examples/waveguide_real.py` is the reference implementation of this workflow.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue