[bloch] solve transverse magnetic flux with a consistent energy metric
This commit is contained in:
parent
be574d1a5b
commit
89c8ad0318
4 changed files with 292 additions and 188 deletions
|
|
@ -14,6 +14,25 @@
|
|||
|
||||
::: meanas.fdfd.farfield
|
||||
|
||||
## Bloch magnetic materials
|
||||
|
||||
Bloch state vectors store the transverse Fourier coefficients of magnetic flux
|
||||
`B = mu * H`. They equal `H` when permeability is omitted. Pass the same `mu`
|
||||
to `bloch.hmn_2_hxyz(...)` and `bloch.hmn_2_exyz(...)` when converting solved
|
||||
vectors to fields. The eigensolver uses the projected `mu**-1` energy metric
|
||||
for finite positive real permeability, including anisotropic and spatially
|
||||
varying profiles. Its preconditioner remains finite at the Gamma point.
|
||||
|
||||
## Far-field normalization
|
||||
|
||||
The near-to-far transform includes the cell area `dx * dy`, so normalized
|
||||
far-field amplitudes describe a Fourier integral and converge under spatial
|
||||
refinement. This changes amplitudes previously returned as unweighted FFT sums.
|
||||
The inverse applies the matching Fourier quadrature and returns spacings for
|
||||
the requested output shape. Both transforms center their origins at index
|
||||
`size // 2`; padding and cropping preserve that sample. The inverse does not
|
||||
modify input spectra.
|
||||
|
||||
## SCPML conventions
|
||||
|
||||
`stretch_with_scpml` now uses `-1` for the low-index face and `+1` for the
|
||||
|
|
|
|||
Loading…
Reference in a new issue