Dispersion and Response¶
Last changes: Documentation changelog
Contract¶
This page records the dispersion-curve and frequency-response observables attached to eigenmode and frequency-response studies.
Governing equations¶
Response and dispersion definitions belong to Frequency-domain response and Linearized-LLG eigensolvers.
Symbols and SI units¶
Eigenfrequency values are in hertz; response observables carry the units of their definition.
Assumptions and validity¶
Response observable identifiers and dispersion names are validated immediately.
Python API¶
Python |
Type |
Default |
SI unit |
Validation |
Meaning |
Backend support |
ProblemIR |
|---|---|---|---|---|---|---|---|
— |
— |
— |
\(1\) |
— |
— |
FEM/FDM CPU/GPU; planner and runtime capability checks remain authoritative |
— |
|
|
|
\(1\) |
Non-empty |
Curve name |
FEM/FDM CPU/GPU; planner and runtime capability checks remain authoritative |
|
|
|
|
\(1\) |
Boolean |
Include branch table |
FEM/FDM CPU/GPU; planner and runtime capability checks remain authoritative |
|
|
|
|
\(1\) |
One of the supported response observables |
Response output |
FEM/FDM CPU/GPU; planner and runtime capability checks remain authoritative |
|
Supported response observables include susceptibility_tensor, m_complex, u_complex,
strain_complex, stress_complex, absorbed_power_density, response_amplitude,
response_phase, and mode_hybridization_index.
Complete stage-first example¶
# %% Frequency response with a susceptibility observable
import fullmag as fm
nm = 1.0e-9
study = fm.study("dispersion_response_api_example")
study.engine("fdm")
study.device("cpu", precision="double")
study.mode("strict")
study.objects.mesh.defaults(cell_size=(2 * nm, 2 * nm, 5 * nm))
film = study.geometry(fm.Box(100 * nm, 20 * nm, 5 * nm), name="film")
film.Ms = 800.0e3
film.Aex = 13.0e-12
film.alpha = 0.02
film.m = fm.init.UniformMagnetization((1.0, 0.0, 0.0))
study.exchange()
study.stages.add_relax(stage_id="relax", algorithm="projected_gradient_bb", max_steps=1000, tolT=1e-8)
study.save_response("susceptibility_tensor")
study.stages.add_frequency_response(
frequencies_hz=[1.0e9, 2.0e9],
excitation_field_au_per_m=(0.0, 1.0, 0.0),
equilibrium_source="relax",
)
ProblemIR¶
SaveDispersion.to_ir() emits dispersion_curve; SaveResponse.to_ir() emits
frequency_response_output. Both are carried in the study’s sampling.outputs.
Round-trip and failure semantics¶
Requested intent is the value authored by Python and preserved in ProblemIR; resolved execution is the planner or realization result. Validation errors identify the violated domain rule, and unsupported combinations are rejected explicitly rather than silently substituted.
Unknown response observables fail immediately; dispersion names are preserved without interpretation.
Discrete realization¶
Response materialization follows the frequency-domain solvers; dispersion follows the eigensolver.
Implementation mapping¶
Anchor: packages/fullmag-py/src/fullmag/model/outputs.py (SaveDispersion, SaveResponse).
Validation¶
Ownership tests compare this inventory with live signatures.
Limitations¶
Requesting an output does not guarantee the solver materializes it; planner and solver capability resolution are authoritative.
Scientific bibliography¶
Definitions belong to the frequency-domain and eigensolver pages.
Control Room crosswalk¶
Status: Table/field autosave and result inspection are partial; unsupported output formats remain not implemented.
Python/API surface |
Control Room path |
Status |
Transaction |
|---|---|---|---|
Parameters documented on this page |
|
|
Submit autosave draft; output resources are revised after execution |
Parameters without a named UI field |
|
|
Python-only until implemented |
not implemented: frontend support for output parameters not rendered by the autosave/result inspectors.
See Control Room capability register for the support matrix and not implemented policy.
Frontend source owner: apps/control-room/src/modules/inspector/panels/stages/AutosaveStageInspector.tsx (AutosaveStageInspector).
Source-code index¶
Claim |
Path |
Stable symbol |
Responsibility |
Evidence |
|---|---|---|---|---|
Dispersion/response outputs |
|
|
Output lowering |
Ownership test |
Source-map coverage¶
Claim |
Path |
Stable symbol |
Responsibility |
Evidence |
|---|---|---|---|---|
Dispersion output request validation and lowering. |
|
|
Dispersion output request validation and lowering. |
Source-map validator and focused API tests |
Response output request validation and lowering. |
|
|
Response output request validation and lowering. |
Source-map validator and focused API tests |