SFCompo data structures

The basic node for the SFCOMPO data structure is the SFCOMPO node of type SfcompoType. It can hold information for an arbitrary number of SFCOMPO benchmark cases.

class sfcompo_schema.sfcompo.Sfcompo(**data: Any)

Bases: SfcompoType

All data structure definitions

class sfcompo_schema.sfcompo.CsvdecimalType(*values)

Bases: Enum

Decimal marker options.

fullStop = '.'
comma = ','
class sfcompo_schema.sfcompo.CsvdelimiterType(*values)

Bases: Enum

Delimiter options for text files containing tables of values.

semicolon = ';'
comma = ','
tab = 'tab'
space = 'space'
class sfcompo_schema.sfcompo.GeoAxisType(*values)

Bases: Enum

Definition of geometrical axes/directions.

axial = 'axial'
radial = 'radial'
x = 'x'
y = 'y'
z = 'z'
class sfcompo_schema.sfcompo.GeoGridSelectionType(*values)

Bases: Enum

Definition of fuel grid/lattice types.

square = 'square'
hexagonal = 'hexagonal'
radial = 'radial'
cruciform = 'cruciform'
class sfcompo_schema.sfcompo.GeoTrisoType(**data: Any)

Bases: BaseModel

The triso node encodes information about TRISO particles which are embedded in a given geometry element. “

Variables:
  • volumePackingFraction – Packing fraction of TRISO particles within the geometry volume, values in range 0-1.

  • geometry – Reference to geometry node which provides the geometry of a TRISO particle

  • name – Name of TRISO element for referencing it in other geometry structures.

volumePackingFraction: float
geometry: str
name: str | None
class sfcompo_schema.sfcompo.MeasurementMethodType(*values)

Bases: Enum

Definition of acceptable measurement types. “

Variables:
  • isotopicConcentration – Isotopic concentration measurement in absolute values.

  • burnup – Burnup determination in absolute values.

  • atomRatio – Atomic number density measurement relative to another atomic number density, i.e. measurement of a ratio.

  • depletion – Measurement of depletion of a given material during burnup (typically relative to initial amount of heavy metal or amount of initial uranium).

  • activity – Activity measurement in absolute values.

  • activityRatio – Activity measurement relative to another activity measurement, i.e. measurement of a ratio.

  • massRatio – Mass measurement relative to another mass measurement, i.e. measurement of a ratio.

  • other

isotopicConcentration = 'Isotopic Concentration'
burnup = 'Burnup'
atomRatio = 'Atom Ratio'
depletion = 'Depletion'
activity = 'Activity'
activityRatio = 'Activity Ratio'
massRatio = 'Mass Ratio'
other = 'Other'
class sfcompo_schema.sfcompo.NuclideFormatType(*values)

Bases: Enum

Defines the nuclides’ naming scheme:

  • nuclideFormat =”Z-A”: Chemical element as string, and A as integer. Example: “U-235”

  • nuclideFormat =”ZA”: Chemical element as string, and A as integer. Example: “U235”

  • nuclideFormat =”ZZ-AAA”: Chemical element as integer, and A as integer. Example: “92-235”

zA = 'Z-A'
za1 = 'ZA'
zzAaa = 'ZZ-AAA'
class sfcompo_schema.sfcompo.PquDate(**data: Any)

Bases: BaseModel

dateType: str
value: XmlDate | XmlDateTime
class sfcompo_schema.sfcompo.PquStringNonNmtoken(**data: Any)

Bases: BaseModel

GNDS defines the PQU_string with label as NMTOKEN.

This type is an alternative for having string type labels.

label: str
value: str
unit: str | None
class sfcompo_schema.sfcompo.PointTypeType(*values)

Bases: Enum

Definition of data points. “

Variables:
  • h – Data point representing a histogram step.

  • p – Data point representing a point value.

h = 'H'
p = 'P'
class sfcompo_schema.sfcompo.ReliabilityClassType(*values)

Bases: Enum

WISARD Reliability classes (proposed by VTT for WISARD project):

Class 1 GREEN: There is confidence in the data. We have a good basis for the data value from existing own designs and/or studies or good understanding of other existing studies at similar conditions. Class 2 YELLOW: This data is an estimate. The data values is an assumption based on literature or best practices, but the data is not fully representative to the conditions/situation it is needed or there are uncertainties in the representativeness. Class 3 RED: The reliability of the data is unknown. The data value is an assumption or rather a guess without a strong basis.

value1 = '1'
value2 = '2'
value3 = '3'
class sfcompo_schema.sfcompo.UnitsNuclideDensityType(*values)

Bases: Enum

Definition of nuclide density units.

weightFraction = 'weight fraction'
atomsFraction = 'atoms fraction'
atomsBcm = 'atoms/bcm'
class sfcompo_schema.sfcompo.UnitsTimeType(*values)

Bases: Enum

Definition of time units.

a = 'a'
d = 'd'
h = 'h'
m = 'm'
s = 's'
class sfcompo_schema.sfcompo.DesignExtensionsType(**data: Any)

Bases: BaseModel

Used by SFCOMPO 2.0 application.

real: list[PquUncertaintyDouble]
date: list[PquDate]
integer: list[PquInteger]
string: list[PquStringNonNmtoken]
class sfcompo_schema.sfcompo.GeoGridPositionType(**data: Any)

Bases: BaseModel

Definition of a fuel rod grid / lattice.

Grid positions can either be defined by a string in “layout” node or by set of “gridPosition” nodes “

Variables:
  • x – x center position within grid.

  • y – y center position within grid.

  • i – “i” definition of matrix grid position. Matrix= (i,j)

  • j – “j” definition of matrix grid position. Matrix= (i,j)

  • content – Name of element loaded in grid position

x: PquUncertaintyDouble | None
y: PquUncertaintyDouble | None
i: int | None
j: int | None
content: str | None
class sfcompo_schema.sfcompo.MatNuclidesType(**data: Any)

Bases: BaseModel

The nuclides node can be used to encode time-dependent compositions (e.g. due to burn-up, activation, and decay) or static compositions.

The nuclide densities can be provided within the node in a child node “csvData” or, alternatively, can be provided in an external CSV file. “

Variables:
  • csvData – CSV data content with table of nuclide densities

  • delimiter – Delimiter of values within one row: “space”, “tab”, “,”, or “;”

  • decimalMarker – Decimal marker: : “.” or “,”

  • nuclideFormat – Defines the nuclides’ naming scheme: - nuclideFormat =”Z-A”: Chemical element as string, and A as integer. Example: “U-235” - nuclideFormat =”ZZ-AAA”: Chemical element as integer, and A as integer. Example: “92-235”

  • nuclideDensityUnits – Defines the format of nuclide densities: - nuclideDensityUnits=”weight fraction” - nuclideDensityUnits=”atoms fraction” - nuclideDensityUnits=”atoms/bcm”

  • timeDependent – “true” if time dependent material, else “false”.

  • timeUnits – Time units can be “s”, “m”, “h”, “d”, “a” for seconds, minutes, hours days, or years, respectively [only required if it is a time-dependent case]

  • csvPath – Path to CSV with nuclide density information

csvData: str | None
delimiter: CsvdelimiterType | None
decimalMarker: CsvdecimalType | None
nuclideFormat: NuclideFormatType
nuclideDensityUnits: UnitsNuclideDensityType
timeDependent: bool
timeUnits: UnitsTimeType | None
csvPath: str | None
class sfcompo_schema.sfcompo.MatPropertiesType(**data: Any)

Bases: BaseModel

This node provides options to document macroscopic physical and chemical material properties. “

Variables:
  • heatCapacity

  • thermalConductivity

  • porosity

  • permeability – Permeability of porous media.

  • maxPermissibleTemperature – Maximum permissible temperature to prevent material degradation.

  • dpa – Average number of displacements per atom in material.

  • chemicalState – Chemical state of material. Examples: “solid”, “fluid”,”gaseous”

  • other – Other macroscopic information.

heatCapacity: PquUncertaintyDouble | None
thermalConductivity: PquUncertaintyDouble | None
porosity: PquUncertaintyDouble | None
permeability: PquUncertaintyDouble | None
maxPermissibleTemperature: PquUncertaintyDouble | None
dpa: float | None
chemicalState: str | None
other: str | None
class sfcompo_schema.sfcompo.MeasurementType(**data: Any)

Bases: BaseModel

Provides information for a measurement.

Acceptable types of measurement are defined in MeasurementType definition.

measurementValue: PquUncertaintyDouble
confidence: int | None
method: str | None
laboratory: str | None
description: str | None
nuclideRatio: str | None
dateSeparation: XmlDate | XmlDateTime | None
dateReference: XmlDate | XmlDateTime | None
dateMeasurement: XmlDate | XmlDateTime | None
nuclide: str | None
measurementType: MeasurementMethodType
sfcompo2MeasurementId: int | None
sfcompo2SampleId: int | None
class sfcompo_schema.sfcompo.OpHistTableDataType(**data: Any)

Bases: BaseModel

The data structure encodes a data point within a table containing data on a given physical parameter and its operating history. “

Variables:
  • value

  • elapsedDays – Number of days elapsed during this time interval if histograme (pointType=”H”) or until this time point (pointType=”P”)

  • confidence – SFCOMPO confidence level

  • pointType – H=data set represents histogram step, P= data set represents point in time

  • rank – Rank/row index of data point in table

value: PquUncertaintyDouble
elapsedDays: float
confidence: int | None
pointType: PointTypeType
rank: int
class sfcompo_schema.sfcompo.ReferenceType(**data: Any)

Bases: BaseModel

Reference to publications/websites/…. “

Variables:
  • authors

  • identifier

  • title

  • note

  • year

  • filename

  • openLocation – Position in document where the referenced information can be found, e.g. page or HTML anchor. Used by SFCOMPO 2.0 application.

  • referenceDetail

  • part

authors: AuthorListType | None
identifier: str | None
title: str | None
note: str | None
year: int | None
filename: str | None
openLocation: str | None
referenceDetail: str | None
part: str
class sfcompo_schema.sfcompo.MaterialType(**data: Any)

Bases: BaseModel

This node provides documentation for a single material. “

Variables:
  • materialDensity – Density of material.

  • nuclides – Definition of nuclide composition of material.

  • materialProperties – Macroscopic material properties.

  • name

  • reliabilityClass

materialDensity: PquUncertaintyDouble
nuclides: MatNuclidesType | None
materialProperties: MatPropertiesType | None
name: str
reliabilityClass: ReliabilityClassType | None
class sfcompo_schema.sfcompo.MeasurementsType(**data: Any)

Bases: BaseModel

List of measurements.

measurement: list[MeasurementType]
class sfcompo_schema.sfcompo.OpHistTableType(**data: Any)

Bases: BaseModel

The data structure encodes a table containing data on a given physical parameter and its operating history. “

Variables:
  • data

  • physicalParameter – Physical parameter which changes during operation

data: list[OpHistTableDataType]
physicalParameter: str
class sfcompo_schema.sfcompo.ReferencesType(**data: Any)

Bases: BaseModel

List of references to publications/websites/….

reference: list[ReferenceType]
class sfcompo_schema.sfcompo.GeometryStructureType(**data: Any)

Bases: BaseModel

This node provides basic properties of geometry structures. “

Variables:
  • mass

  • layers – Definition of different material layers within the structure.

  • triso – Definition of TRISO particles embedded in the structure.

  • generatedElectricity – Amount of electricity generated by nuclear reactions in the structure.

  • generatedHeat – Amount of heat generated by nuclear reactions in the structure.

  • parameters

  • references

  • material – Name of material in the structure.

  • description – Description of structure.

  • name – Name of structure.

mass: PquUncertaintyDouble | None
layers: list[GeoLayersType]
triso: GeoTrisoType | None
generatedElectricity: PquUncertaintyDouble | None
generatedHeat: PquUncertaintyDouble | None
parameters: DesignExtensionsType | None
references: ReferencesType | None
material: str | None
description: str | None
name: str | None
class sfcompo_schema.sfcompo.MaterialsType(**data: Any)

Bases: BaseModel

The materials data structure encodes all material information of a used fuel configuration.

material: list[MaterialType]
class sfcompo_schema.sfcompo.OpHistLoadedSampleType(**data: Any)

Bases: BaseModel

Name of sample in a fuel rod. “

Variables:
  • physicalParameter

  • identifier – Identifier of sample according to the coding system of the corresponding power plant.

physicalParameter: list[OpHistTableType]
identifier: str
class sfcompo_schema.sfcompo.SampleType(**data: Any)

Bases: BaseModel

Provides information related to a sample taken from an equipment which was operated in a NPP or experimental setup.

axialPosition: PquUncertaintyDouble | None
axialLength: PquUncertaintyDouble | None
posFromBottom: PquUncertaintyDouble | None
burnup: PquUncertaintyDouble | None
enrichmentU235: PquUncertaintyDouble | None
enrichmentPu: PquUncertaintyDouble | None
enrichmentPu239Pu241: PquUncertaintyDouble | None
evalStatus: str | None
evalComment: str | None
observation: str | None
references: ReferencesType | None
measurements: MeasurementsType | None
identifier: str
fullReference: str
fuelType: str | None
sfcompo2RodId: int | None
sfcompo2SampleId: int | None
class sfcompo_schema.sfcompo.GeoCylinderType(**data: Any)

Bases: GeometryStructureType

This node provides options to document a cylinder as a geometry element.

radius: PquUncertaintyDouble
height: PquUncertaintyDouble | None
class sfcompo_schema.sfcompo.GeoFuelAssemblyType(**data: Any)

Bases: GeometryStructureType

This node provides options to document a fuel assembly (FA) as a geometry element.

It can, e.g., be used with several layers containing grids. “

Variables:
  • height

  • pitch – Pitch of FAs in core.

  • moderator – Moderator material, e.g. “Water” for LWR.

  • model – Name/description of FA model.

height: PquUncertaintyDouble | None
pitch: PquUncertaintyDouble | None
moderator: str | None
model: str | None
class sfcompo_schema.sfcompo.GeoSlabType(**data: Any)

Bases: GeometryStructureType

This node provides options to document a slab as a geometry element.

lengthX: PquUncertaintyDouble
lengthY: PquUncertaintyDouble
lengthZ: PquUncertaintyDouble
class sfcompo_schema.sfcompo.GeoSphereType(**data: Any)

Bases: GeometryStructureType

This node provides options to document a sphere as a geometry element.

radius: PquUncertaintyDouble
class sfcompo_schema.sfcompo.OpHistFuelRodType(**data: Any)

Bases: BaseModel

The data structure encodes the operating history of a single fuel rod. “

Variables:
  • references

  • gridPosition

  • sample

  • identifier – Identifier of fuel rod according to the coding system of the corresponding power plant.

  • observation – Specific observations for the given rod

  • rodType – Reference to a given fuel rod type defined in the geometry node.

references: ReferencesType | None
gridPosition: list[GeoGridPositionType]
sample: list[SampleType]
identifier: str
observation: str
rodType: str
class sfcompo_schema.sfcompo.OpHistLoadedFuelRodType(**data: Any)

Bases: BaseModel

Name and position of fuel rod loaded in a fuel assembly. “

Variables:
  • loadedSample

  • physicalParameter

  • identifier – Identifier of fuel assembly according to the coding system of the corresponding power plant.

loadedSample: list[OpHistLoadedSampleType]
physicalParameter: list[OpHistTableType]
identifier: str
class sfcompo_schema.sfcompo.GeoFuelRodType(**data: Any)

Bases: GeoCylinderType

This node provides options to document a fuel rod as a geometry element.

activeFuelLength: PquUncertaintyDouble | None
class sfcompo_schema.sfcompo.OpHistFuelAssemblyType(**data: Any)

Bases: BaseModel

The data structure encodes the operating history of a single fuel assembly. “

Variables:
  • fuelRod

  • references

  • sample

  • identifier – Identifier of fuel assembly according to the coding system of the corresponding power plant.

  • observation – Specific observations for the given FA

  • fatype – Reference to a given fuel assembly type defined in the geometry node.

  • layerType – Reference to a given fuel assembly layout definition. Refers to a “layers” node in a given fuel assembly geometry definition.

fuelRod: list[OpHistFuelRodType]
references: ReferencesType | None
sample: list[SampleType]
identifier: str
observation: str
fatype: str
layerType: str | None
class sfcompo_schema.sfcompo.OpHistLoadedFuelAssemblyType(**data: Any)

Bases: BaseModel

Name and position of fuel assembly loaded in a given reactor cycle. “

Variables:
  • loadedFuelRod

  • physicalParameter

  • identifier – Identifier of fuel assembly according to the coding system of the corresponding power plant.

  • position – Position where FA was loaded during cycle.

loadedFuelRod: list[OpHistLoadedFuelRodType]
physicalParameter: list[OpHistTableType]
identifier: str
position: str | None
class sfcompo_schema.sfcompo.GeoRodsType(**data: Any)

Bases: BaseModel

Definition of an arbitrary number of fuel rods which are modelled based on GeoCylinderType structures.

rod: list[GeoFuelRodType]
class sfcompo_schema.sfcompo.GeometryType(**data: Any)

Bases: BaseModel

This node provides options to document a set of geometry element including slabs, spheres, cylinders, fuel assemblies.

All structures can contain an arbitrary number of layers and TRISO particle distributions. If the structure contains a triso node, then the TRISO particles are assumed to be embedded homogeneously in the material of the structure.

cylinder: list[GeoCylinderType]
fuelRod: list[GeoFuelRodType]
fuelAssembly: list[GeoFuelAssemblyType]
slab: list[GeoSlabType]
sphere: list[GeoSphereType]
class sfcompo_schema.sfcompo.OpHistCycleType(**data: Any)

Bases: BaseModel

The data structure encodes the operating history of a given reactor cycle or sub-cycle. “

Variables:
  • loadedFuelAssembly

  • physicalParameter

  • cycle – Cycle number.

  • subCycle – Sub-cycle Identifier

  • startDate – Start of cycle.

  • endDate – End of cycle.

  • irradiationDays – Number of irradiation days.

  • downDays – Number of days without irradiation, i.e. down time of reactor.

loadedFuelAssembly: list[OpHistLoadedFuelAssemblyType]
physicalParameter: list[OpHistTableType]
cycle: str
subCycle: str | None
startDate: XmlDate | XmlDateTime | None
endDate: XmlDate | XmlDateTime | None
irradiationDays: float | None
downDays: float | None
class sfcompo_schema.sfcompo.GeoGridType(**data: Any)

Bases: BaseModel

Definition of a fuel rod grid / lattice.

Grid positions can either be defined by a string in “layout” node or by set of “gridPosition” nodes “

Variables:
  • pitch – Pitch in between fuel rods

  • layout – Layout of grid with references to names of rod or cylinder elements.

  • gridPosition – Definition of a grid position

  • rods – List of fuel rod definitions, the rods node can contain arbitrary many rod definitions.

  • typeValue – Type of grid. Valid values=”square”, “hexagonal.

  • numRodsPerEdge – Number of rods along the edge of the grid.

  • moderator – Reference to material node name which encodes the moderator material.

  • name – Name of grid

  • description – Description of grid

pitch: PquUncertaintyDouble | None
layout: str | None
gridPosition: list[GeoGridPositionType]
rods: GeoRodsType | None
typeValue: GeoGridSelectionType | None
numRodsPerEdge: int | None
moderator: str | None
name: str | None
description: str | None
class sfcompo_schema.sfcompo.OperatingHistoryType(**data: Any)

Bases: BaseModel

The data structure encodes the operating history of a given power plant which may include detailed information related to the operating history of fuel assemblies and specific fuel rods.

fuelAssembly: list[OpHistFuelAssemblyType]
cycle: list[OpHistCycleType]
class sfcompo_schema.sfcompo.GeoLayerType(**data: Any)

Bases: BaseModel

Single layers can contain materials or grids of fuel rods. “

Variables:
  • min – Minimum value of layer/start of layer

  • max – Maximum value of layer/end of layer

  • grid – Information about a fuel rod grid within the layer

  • material – Reference to material node name which encodes the material within the layer. If the layer contains a grid, then material definition is not required.

  • name – Name of layer.

min: PquUncertaintyDouble | None
max: PquUncertaintyDouble | None
grid: GeoGridType | None
material: str | None
name: str | None
class sfcompo_schema.sfcompo.SfcompoReactorType(**data: Any)

Bases: BaseModel

This data structure encodes all relevant information related to a given nuclear power plant or research reactor such as material compositions as a function of time, the geometries of the used fuel configuration, and operating histories. “

Variables:
  • documentation

  • observation

  • parameters

  • references

  • materials

  • geometry

  • operatingHistory

  • path – Directory in NEA GitLab where the information for a given reactor unit is stored.

  • code – Nuclear power plant code. Example: code=”HIN” for “Hinkley Point B”.

  • name – Name of reactor unit

  • unit – Unit number/identifier

  • typeSfcompo – Reactor classification according to SFCOMPO

  • typeIaea – Reactor classification according to IAEA

  • coolant – Primary reactor coolant

  • country – Country where reactor is located

  • moderator – Reactor core moderator material (if applicable)

  • design – Information related to reactor designer and design

documentation: DocumentationType | None
observation: str | None
parameters: DesignExtensionsType | None
references: ReferencesType | None
materials: MaterialsType | None
geometry: GeometryType | None
operatingHistory: OperatingHistoryType | None
path: str
code: str
name: str
unit: str
typeSfcompo: str
typeIaea: str
coolant: str
country: str
moderator: str
design: str
class sfcompo_schema.sfcompo.GeoLayersType(**data: Any)

Bases: BaseModel

This element can contain several layer elements to define a stack of layers.

Layers must not overlap. “

Variables:
  • min – Minimum value of layers/start of layers

  • max – Maximum value of layers/end of layers

  • layer

  • name – Name of layers structure.

  • axis – Axis along which the layer is oriented (i.e. the direction of the the normal vector of single layers). Valid values: “x”, “y”, “z”, “radial”, “axial”.

  • copyOf – Refer to another layer which provide default values for this layer.

min: PquUncertaintyDouble | None
max: PquUncertaintyDouble | None
layer: list[GeoLayerType]
name: str | None
axis: GeoAxisType | None
copyOf: str | None
class sfcompo_schema.sfcompo.SfcompoType(**data: Any)

Bases: BaseModel

This node provides an XML-based structure designed to store geometries and material compositions information of SFCOMPO used fuel information.

The format is based on the principles and data structures of the Generalised Nuclear Data Structure (GNDS) format. The node contains a set of nodes which each include information for a given reactor unit.

sfcompoReactor: list[SfcompoReactorType]
class sfcompo_schema.sfcompo.Sfcompo(*, sfcompoReactor: list[SfcompoReactorType] = <factory>)

Bases: SfcompoType