Data schema

IFE devices do not map onto the magnetic-confinement ontology that IMAS was written for. There is no equilibrium to solve, and the machine is described by a driver, a target and a chamber rather than by coils and a plasma boundary. IFEdd.jl adds the IDSs that describe those, as JSON schemas alongside IMASdd's own, and generates the corresponding Julia types from them.

Schema metadata is registered into IMASdd's shared registry when the package loads, so IFE quantities are introspectable through exactly the same API as any IMAS quantity — IMASdd.info, IMASdd.units, IMASdd.coordinates and path printing all work on them.

The container

IFEdd.dd{T} embeds eleven top-level slots. Three are IFE-owned; the other eight are IMASdd IDSs that carry over unchanged.

SlotTypeOwner
summaryIFEdd.summary{T}IFEdd
buildIFEdd.build{T}IFEdd
driverIFEdd.driver{T}IFEdd
balance_of_plantIMASdd.balance_of_plant{T}IMASdd
blanketIMASdd.blanket{T}IMASdd
core_profilesIMASdd.core_profiles{T}IMASdd
core_sourcesIMASdd.core_sources{T}IMASdd
costingIMASdd.costing{T}IMASdd
neutronicsIMASdd.neutronics{T}IMASdd
pelletsIMASdd.pellets{T}IMASdd
requirementsIMASdd.requirements{T}IMASdd

Every IFE-owned IDS also carries the standard ids_properties and code substructures, so provenance and software attribution are recorded the same way as in any IMAS IDS.

summary — target implosion physics

summary.target collects the scalar figures of merit of a single shot.

FieldUnitsMeaning
gain–Target gain $G = E_\mathrm{fusion} / E_\mathrm{laser}$
ablation_pressurePaAblation pressure at peak laser intensity
areal_densitykg/m²Compressed fuel areal density $\rho R$
burn_fraction–DT burn fraction $f_b = \rho R / (\rho R + 6.67\,\mathrm{g/cm^2})$
compressed_radiusmOuter radius of the compressed fuel sphere
convergence_ratio–Radial convergence ratio $R_\mathrm{initial} / R_\mathrm{compressed}$
ifar–In-flight aspect ratio of the imploding shell $R/\Delta R$
implosion_velocitym/sPeak implosion velocity of the shell
intensityW/m²Peak laser intensity on the target surface
temperature_scale–Scaling applied to cold profiles to match target fusion power

build — chamber radial build

build.layer is an array of concentric layers, ordered from the chamber centre outwards.

FieldUnitsMeaning
nameLayer name
materialLayer material
typeLayer type code, following the IMAS BuildLayerType convention
start_radiusmInner radius
end_radiusmOuter radius
thicknessmRadial thickness
aream²Inner surface area ($4\pi r^2$ for spherical geometry)
volumem³Layer volume
outline.r, outline.zmPoloidal cross-section of the layer boundary

Because the geometry is spherical rather than toroidal, start_radius / end_radius are radii from the chamber centre, not major radii.

driver — beam lines

driver.beam is an array of beam lines (or ports) of the driver system.

FieldUnitsMeaning
identifierUnique identifier for the beam line
nameBeam line name
typeLaser type code: 0 other/unspecified, 1 KrF excimer, 2 ArF excimer, 3 flashlamp-pumped solid state, 4 diode-pumped solid state
energyJEnergy per pulse delivered to the target
wavelengthmLaser wavelength
intensityW/m²Peak intensity on target
pulse_lengthsDuration of a single pulse
power_launchedWTime-averaged power launched by the beam line
efficiency.conversion–Electric power → driver power
efficiency.coupling–Fraction of driver energy absorbed by the target

Schema source of truth

The schemas live in data_dictionary/data_structures_extra/ as one JSON file per IDS, in the same format IMASdd uses. The Julia types in src/dd_idstypes.jl and src/dd.jl are generated from them and committed; they are never edited by hand.

To change the schema, edit the JSON and regenerate with julia --project=scripts scripts/generate.jl. The same generator is exposed publicly as IFEdd.generate_user_dd so that downstream packages can bake their own variant — see Customizing the container.