Uniform Texture¶
Last changes: Documentation changelog
Contract¶
texture.uniform creates a versioned analytic preset for constant reduced magnetization. Version
2 rejects a zero or non-finite direction; version 1 is retained only for compatibility.
Governing equations¶
The preset evaluates \(\mathbf m(\mathbf x)=\mathbf m_0\) at every active sample point. The runtime normalization policy belongs to the initial-state evaluator.
Symbols and SI units¶
Symbol |
Meaning |
SI unit |
|---|---|---|
q |
canonical typed authoring quantity |
\mathrm{1} |
All direction components and preset_version are dimensionless.
Assumptions and validity¶
Use either one three-component sequence or three scalar components. preset_version must be the
integer 1 or 2; booleans and other values are rejected by PresetTexture.
Python API¶
Python |
Type |
Default |
SI unit |
Validation |
Meaning |
Backend support |
ProblemIR |
|---|---|---|---|---|---|---|---|
|
|
|
\(1\) |
sequence of three values or first scalar component |
uniform direction input |
all authoring lanes |
preset params |
|
|
|
\(1\) |
required with scalar |
second component |
all authoring lanes |
preset params |
|
|
|
\(1\) |
required with scalar |
third component |
all authoring lanes |
preset params |
|
|
|
\(1\) |
exactly |
serialized texture formula/version identity |
all authoring lanes; evaluator supports declared versions |
|
# %% Uniform initial magnetization
import fullmag as fm
study = fm.study("uniform_texture_api_example")
study.engine("fdm")
study.objects.mesh.defaults(cell_size=(2e-9, 2e-9, 2e-9))
film = study.geometry(fm.Box(40e-9, 20e-9, 4e-9), name="film")
film.Ms = 8.0e5
film.Aex = 13.0e-12
film.alpha = 0.02
film.m = fm.texture.uniform(1.0, 0.0, 0.0, preset_version=2)
study.exchange()
study.stages.add_run(stage_id="run", until=1e-12)
ProblemIR¶
Version 2 lowers as a preset_texture with preset_kind="uniform", explicit
preset_version=2, direction parameters, mapping, and texture transform.
Round-trip and failure semantics¶
Requested intent preserves the authored direction, mapping, transform, and preset version. Resolved execution samples that intent on the final FDM/FEM point ordering without rewriting a compatibility-v1 texture as v2. Validation errors reject malformed component forms, non-finite or zero version-2 directions, and invalid versions. Unsupported combinations fail closed and are not silently converted to another texture.
Discrete realization¶
The analytic preset is sampled at FDM cell centres or FEM nodes after final geometry/mesh ordering.
Implementation mapping¶
packages/fullmag-py/src/fullmag/init/textures.py, texture.uniform and PresetTexture, own
validation and serialization.
Validation¶
Tests compare this inventory with the live function signature and verify v1/v2 evaluation and round-trip behavior.
Limitations¶
A uniform preset is an initial condition, not a persistent magnetization constraint.
Scientific bibliography¶
No independent interaction is introduced.
Control Room crosswalk¶
Status: The exposed texture families are partial; unlisted presets remain Python-only.
Python/API surface |
Control Room path |
Status |
Transaction |
|---|---|---|---|
Parameters documented on this page |
|
|
Apply magnetization draft; authored object state is revised |
Parameters without a named UI field |
|
|
Python-only until implemented |
frontend support is not implemented for texture presets and arguments not exposed by ObjectMagneticTexturePanel.
See Control Room capability register for the support matrix and not implemented policy.
Frontend source owner: apps/control-room/src/modules/inspector/panels/ObjectMagneticTexturePanel.tsx (ObjectMagneticTexturePanel).
Source-code index¶
Claim |
Path |
Stable symbol |
Responsibility |
Evidence |
|---|---|---|---|---|
factory and versioning |
|
|
preset construction and IR |
signature/evaluator tests |