Difference between revisions of "Kharon input manual"

From Kraken Wiki
Jump to: navigation, search
(Output variables)
(Assembly numbering (optional))
 
(40 intermediate revisions by 3 users not shown)
Line 13: Line 13:
 
Apart from the assembly numbering, at the end, all of the following input groups are required for a working input file. To distinguish between mandatory and optional parameters, the mandatory parameters are colored in {{fontcolor|red|red}} and the optional parameters in {{fontcolor|green|green}}.
 
Apart from the assembly numbering, at the end, all of the following input groups are required for a working input file. To distinguish between mandatory and optional parameters, the mandatory parameters are colored in {{fontcolor|red|red}} and the optional parameters in {{fontcolor|green|green}}.
  
=== Simulation control parameters ===
+
=== Simulation control parameters <span id="simulationControl"></span>===
  
 
The keyword that defines this group is '''simulationControl'''. As the name suggests, these parameters are used to control the solution flow. The bare minimum is to provide a value for the number of phases, ''nPhases''.
 
The keyword that defines this group is '''simulationControl'''. As the name suggests, these parameters are used to control the solution flow. The bare minimum is to provide a value for the number of phases, ''nPhases''.
Line 24: Line 24:
 
!Description
 
!Description
 
|-
 
|-
| {{fontcolor|nPhases|red}}
+
| {{fontcolor|nPhases|red}}<span id="nPhases"></span>
 
| 1*integer  
 
| 1*integer  
 
| 1 = single-phase water or 2 = water and steam  
 
| 1 = single-phase water or 2 = water and steam  
Line 30: Line 30:
 
| Number of phases.
 
| Number of phases.
 
|-
 
|-
| {{fontcolor|nIterMax|green}}
+
| {{fontcolor|nIterMax|green}}<span id="nIterMax"></span>
 
| 1*integer
 
| 1*integer
 
| positive integer
 
| positive integer
Line 36: Line 36:
 
| Number of solution (outer) iterations.
 
| Number of solution (outer) iterations.
 
|-
 
|-
| {{fontcolor|urfU|green}}
+
| {{fontcolor|urfU|green}}<span id="urfU"></span>
 
| 1*real
 
| 1*real
 
| [0, 1]
 
| [0, 1]
 
| 0.5
 
| 0.5
| Under-relaxation factor for velocity [-].
+
| Under-relaxation factor for velocity.
 
|-
 
|-
| {{fontcolor|urfP|green}}
+
| {{fontcolor|urfP|green}}<span id="urfP"></span>
 
| 1*real
 
| 1*real
 
| [0, 1]
 
| [0, 1]
 
| 0.5
 
| 0.5
| Under-relaxation factor for pressure [-].
+
| Under-relaxation factor for pressure.
 
|-
 
|-
| {{fontcolor|urfH|green}}
+
| {{fontcolor|urfH|green}}<span id="urfH"></span>
 
| 1*real
 
| 1*real
 
| [0, 1]
 
| [0, 1]
 
| 0.9
 
| 0.9
| Under-relaxation factor for enthalpy [-].
+
| Under-relaxation factor for enthalpy.
 
|-
 
|-
| {{fontcolor|gravity|green}}
+
| {{fontcolor|gravity|green}}<span id="gravity"></span>
 
| 1*real
 
| 1*real
 
| (<math> -\infty </math>, <math> \infty </math>)
 
| (<math> -\infty </math>, <math> \infty </math>)
Line 60: Line 60:
 
| Gravitational acceleration (in the direction of positive z-coordinate; upwards) [m/s<sup>2</sup>]
 
| Gravitational acceleration (in the direction of positive z-coordinate; upwards) [m/s<sup>2</sup>]
 
|-
 
|-
| {{fontcolor|readRestart|green}}
+
| {{fontcolor|dBub|green}}<span id="dBub"></span>
| 1*integer
+
| 1*real
| 0 = No, 1 = Yes
+
| positive real
| 0
+
| 1.5e-3
| Start from a previously saved state?
+
| Bubble diameter for interphase heat transfer [m].
 +
|-
 +
| {{fontcolor|vofLimit|green}}<span id="vofLimit"></span>
 +
| 1*real
 +
| [0, 1]
 +
| 1.0e-3
 +
| Volume fraction limit for interphase heat transfer.
 
|-
 
|-
| {{fontcolor|standAlone|green}}
+
| {{fontcolor|writeFields|green}}<span id="writeFields"></span>
| 1*integer
+
| 1*integer  
| 0 = Multiphysics coupling, 1 = Stand-alone simulation
+
| 0 = do not write or 1 = write
 
| 0
 
| 0
| Start a stand-alone simulation?
+
| Write output fields in OpenFOAM format.
 
|-
 
|-
| {{fontcolor|writeFormat|green}}
+
| {{fontcolor|writeFormat|green}}<span id="writeFormat"></span>
 
| 1*word
 
| 1*word
 
| ascii, binary
 
| ascii, binary
 
| ascii
 
| ascii
| Write format for output fields
+
| Write format for OpenFOAM fields.
 
|-
 
|-
| {{fontcolor|materialProperties|green}}
+
| {{fontcolor|materialProperties|green}}<span id="materialProperties"></span>
 
| 1*word
 
| 1*word
 
| libTable, libFluid
 
| libTable, libFluid
Line 84: Line 90:
 
| Calculation of material properties: libTable = linear interpolation from a pretabulated set of material properties, libFluid = IAPWS standard polynomial functions.
 
| Calculation of material properties: libTable = linear interpolation from a pretabulated set of material properties, libFluid = IAPWS standard polynomial functions.
 
|-
 
|-
| {{fontcolor|thermalBC|green}}
+
| {{fontcolor|thermalBC|green}}<span id="thermalBC"></span>
 
| 1*word
 
| 1*word
 
| power, heatFlux, wallTemperature
 
| power, heatFlux, wallTemperature
Line 101: Line 107:
 
     urfH              0.9
 
     urfH              0.9
 
     gravity            -9.81
 
     gravity            -9.81
     readRestart        0
+
     dBub              1.5e-3
     standAlone        0
+
    vofLimit          1.0e-3
 +
     writeFields        0
 
     writeFormat        ascii
 
     writeFormat        ascii
 
     materialProperties libTable
 
     materialProperties libTable
Line 108: Line 115:
 
  }
 
  }
  
=== Inlet definition ===
+
=== Inlet definition <span id="inlet"></span>===
  
 
The keyword that defines this group is '''inlet'''. There are four available inlet types to choose from: pressureInlet, velocityInlet, massFlowInlet, totalMassFlowInlet. The inlet type determines the parameter that is required to define the flow into the domain.
 
The keyword that defines this group is '''inlet'''. There are four available inlet types to choose from: pressureInlet, velocityInlet, massFlowInlet, totalMassFlowInlet. The inlet type determines the parameter that is required to define the flow into the domain.
Line 120: Line 127:
 
!Description
 
!Description
 
|-
 
|-
| {{fontcolor|type|red}}
+
| {{fontcolor|type|red}}<span id="type"></span>
 
| 1*word  
 
| 1*word  
 
| pressureInlet
 
| pressureInlet
 
| Defines a pressure inlet.
 
| Defines a pressure inlet.
 
|-
 
|-
| {{fontcolor|pressure|red}}
+
| {{fontcolor|pressure|red}}<span id="pressure"></span>
 
| 1*real
 
| 1*real
 
| [0, <math> \infty </math>)
 
| [0, <math> \infty </math>)
Line 139: Line 146:
 
!Description
 
!Description
 
|-
 
|-
| {{fontcolor|type|red}}
+
| {{fontcolor|type|red}}<span id="type_2"></span>
 
| 1*word  
 
| 1*word  
 
| velocityInlet
 
| velocityInlet
 
| Defines a velocity inlet.
 
| Defines a velocity inlet.
 
|-
 
|-
| {{fontcolor|velocity|red}}
+
| {{fontcolor|velocity|red}}<span id="velocity"></span>
 
| nPhases*real
 
| nPhases*real
 
| [0, <math> \infty </math>)
 
| [0, <math> \infty </math>)
Line 158: Line 165:
 
!Description
 
!Description
 
|-
 
|-
| {{fontcolor|type|red}}
+
| {{fontcolor|type|red}}<span id="type_3"></span>
 
| 1*word  
 
| 1*word  
 
| massFlowInlet
 
| massFlowInlet
 
| Defines a mass flow inlet.
 
| Defines a mass flow inlet.
 
|-
 
|-
| {{fontcolor|massFlowRate|red}}
+
| {{fontcolor|massFlowRate|red}}<span id="massFlowRate"></span>
 
| nPhases*real
 
| nPhases*real
 
| [0, <math> \infty </math>)
 
| [0, <math> \infty </math>)
Line 177: Line 184:
 
!Description
 
!Description
 
|-
 
|-
| {{fontcolor|type|red}}
+
| {{fontcolor|type|red}}<span id="type_4"></span>
 
| 1*word  
 
| 1*word  
 
| totalMassFlowInlet
 
| totalMassFlowInlet
 
| Defines a total mass flow inlet.
 
| Defines a total mass flow inlet.
 
|-
 
|-
| {{fontcolor|massFlowRate|red}}
+
| {{fontcolor|totalMassFlowRate|red}}<span id="totalMassFlowRate"></span>
 
| 1*real
 
| 1*real
 
| [0, <math> \infty </math>)
 
| [0, <math> \infty </math>)
Line 198: Line 205:
 
!Description
 
!Description
 
|-
 
|-
| {{fontcolor|pressure|red}}
+
| {{fontcolor|pressure|red}}<span id="pressure"></span>
 
| 1*real  
 
| 1*real  
 
| [0, <math> \infty </math>)
 
| [0, <math> \infty </math>)
 
| Absolute (static) pressure at inlet [Pa].
 
| Absolute (static) pressure at inlet [Pa].
 
|-
 
|-
| {{fontcolor|temperature|red}}
+
| {{fontcolor|temperature|red}}<span id="temperature"></span>
 
| nPhases*real  
 
| nPhases*real  
 
| [0, <math> \infty </math>)
 
| [0, <math> \infty </math>)
 
| Phase temperatures at inlet [K].
 
| Phase temperatures at inlet [K].
 
|-
 
|-
| {{fontcolor|volumeFraction|red}}
+
| {{fontcolor|volumeFraction|red}}<span id="volumeFraction"></span>
 
| nPhases*real
 
| nPhases*real
 
| [0, 1]
 
| [0, 1]
Line 236: Line 243:
 
  }
 
  }
  
=== Outlet definition ===
+
=== Outlet definition <span id="outlet"></span>===
  
 
The keyword that defines this group is '''outlet'''. The following parameters need to be provided:
 
The keyword that defines this group is '''outlet'''. The following parameters need to be provided:
Line 246: Line 253:
 
!Description
 
!Description
 
|-
 
|-
| {{fontcolor|pressure|red}}
+
| {{fontcolor|pressure|red}}<span id="pressure_2"></span>
 
| 1*real
 
| 1*real
 
| [0, <math> \infty </math>)
 
| [0, <math> \infty </math>)
 
| Absolute (static) pressure at outlet [Pa].
 
| Absolute (static) pressure at outlet [Pa].
 
|-
 
|-
| {{fontcolor|temperature|red}}
+
| {{fontcolor|temperature|red}}<span id="temperature_2"></span>
 
| nPhases*real  
 
| nPhases*real  
 
| [0, <math> \infty </math>)
 
| [0, <math> \infty </math>)
 
| Phase temperatures at outlet (for backflow) [K].
 
| Phase temperatures at outlet (for backflow) [K].
 
|-
 
|-
| {{fontcolor|volumeFraction|red}}
+
| {{fontcolor|volumeFraction|red}}<span id="volumeFraction_2"></span>
 
| nPhases*real
 
| nPhases*real
 
| [0, 1]
 
| [0, 1]
Line 280: Line 287:
 
  }
 
  }
  
=== List of fuel types ===
+
=== List of fuel types <span id="fuelType"></span>===
  
 
The keyword that defines this group is '''fuelType''', which is immediately followed by the fuel type name. Several different fuel types can be defined, which can then referred to by its name when defining the core load pattern.
 
The keyword that defines this group is '''fuelType''', which is immediately followed by the fuel type name. Several different fuel types can be defined, which can then referred to by its name when defining the core load pattern.
Line 291: Line 298:
 
!Description
 
!Description
 
|-
 
|-
| {{fontcolor|nCells|red}}
+
| {{fontcolor|nCells|red}}<span id="nCells"></span>
 
| 1*integer  
 
| 1*integer  
 
| [1, <math> \infty </math>)
 
| [1, <math> \infty </math>)
Line 297: Line 304:
 
| Number of cells along the height of the fuel assembly.
 
| Number of cells along the height of the fuel assembly.
 
|-
 
|-
| {{fontcolor|nPins|green}}
+
| {{fontcolor|nPins|green}}<span id="nPins"></span>
 
| 1*integer  
 
| 1*integer  
 
| [1, <math> \infty </math>)
 
| [1, <math> \infty </math>)
Line 303: Line 310:
 
| Number of fuel pins for heat transfer / temperature solution.
 
| Number of fuel pins for heat transfer / temperature solution.
 
|-
 
|-
| {{fontcolor|bottomElevation|red}}
+
| {{fontcolor|bottomElevation|red}}<span id="bottomElevation"></span>
 
| 1*real
 
| 1*real
 
| (<math> -\infty </math>, <math> \infty </math>)
 
| (<math> -\infty </math>, <math> \infty </math>)
Line 309: Line 316:
 
| Elevation of the assembly inlet (z-coordinate) [m]. Used for post-processing.
 
| Elevation of the assembly inlet (z-coordinate) [m]. Used for post-processing.
 
|-
 
|-
| {{fontcolor|cellHeight|red}}
+
| {{fontcolor|cellHeight|red}}<span id="cellHeight"></span>
 
| nCells*real
 
| nCells*real
 
| (0, <math> \infty </math>)
 
| (0, <math> \infty </math>)
Line 315: Line 322:
 
| Cell height [m].
 
| Cell height [m].
 
|-
 
|-
| {{fontcolor|hydraulicDiameter|red}}
+
| {{fontcolor|hydraulicDiameter|red}}<span id="hydraulicDiameter"></span>
 
| nCells*real
 
| nCells*real
 
| (0, <math> \infty </math>)
 
| (0, <math> \infty </math>)
Line 321: Line 328:
 
| Hydraulic diameter [m].
 
| Hydraulic diameter [m].
 
|-
 
|-
| {{fontcolor|thermalDiameter|red}}
+
| {{fontcolor|thermalDiameter|red}}<span id="thermalDiameter"></span>
 
| nPins*nCells*real
 
| nPins*nCells*real
 
| (0, <math> \infty </math>)
 
| (0, <math> \infty </math>)
Line 327: Line 334:
 
| Thermal diameter [m].
 
| Thermal diameter [m].
 
|-
 
|-
| {{fontcolor|porosity|red}}
+
| {{fontcolor|porosity|red}}<span id="porosity"></span>
 
| nCells*real
 
| nCells*real
 
| (0, 1]
 
| (0, 1]
 
|
 
|
| Porosity, fluid fraction of total volume [m].
+
| Porosity, fluid fraction of total volume [-].
 
|}
 
|}
  
Line 363: Line 370:
 
  }
 
  }
  
=== Core definition ===
+
=== Core definition <span id="core"></span>===
  
 
The keyword that defines this group is '''core'''. This group sets the geometry of the core, namely the core lattice (square or hexagonal) and assembly pitch.
 
The keyword that defines this group is '''core'''. This group sets the geometry of the core, namely the core lattice (square or hexagonal) and assembly pitch.
Line 373: Line 380:
 
!Description
 
!Description
 
|-
 
|-
| {{fontcolor|coreLattice|red}}
+
| {{fontcolor|coreLattice|red}}<span id="coreLattice"></span>
 
| 1*word
 
| 1*word
 
| square, hexagonal
 
| square, hexagonal
 
| Core lattice.
 
| Core lattice.
 
|-
 
|-
| {{fontcolor|assemblyPitch|red}}
+
| {{fontcolor|assemblyPitch|red}}<span id="assemblyPitch"></span>
 
| 1*real  
 
| 1*real  
 
| (0, <math> \infty </math>)
 
| (0, <math> \infty </math>)
Line 400: Line 407:
 
  }
 
  }
  
=== Load pattern ===
+
=== Load pattern <span id="loadPattern"></span>===
  
 
The keyword that defines this group is '''loadPattern'''. Together with the '''core''' definition above, the geometry of the core is fully defined. The output mesh can be generated based on these two input groups. The load pattern consists of the fuel type names defined above that basically provide a map of the core. Empty locations are denoted by zeros. An example of an EPR-like core is given below. Since the '''core''' and '''loadPattern''' groups are closely linked, it is good practice to give them together in the input file.
 
The keyword that defines this group is '''loadPattern'''. Together with the '''core''' definition above, the geometry of the core is fully defined. The output mesh can be generated based on these two input groups. The load pattern consists of the fuel type names defined above that basically provide a map of the core. Empty locations are denoted by zeros. An example of an EPR-like core is given below. Since the '''core''' and '''loadPattern''' groups are closely linked, it is good practice to give them together in the input file.
Line 470: Line 477:
 
  }
 
  }
  
=== Assembly numbering (optional) ===
+
=== Assembly numbering (optional) <span id="assemblyNumbering"></span> ===
  
 
The keyword that defines this group is '''assemblyNumbering'''. This allows to set an arbitrary numbering for the assemblies. The pattern should be identical in shape and size to '''loadPattern'''. {{fontcolor|''The default numbering should not be changed when running coupled multiphysics simulations, since it will mess up the field coupling in Cerberus!''|red}} The following produces the default assembly numbering for the hexagonal core above:
 
The keyword that defines this group is '''assemblyNumbering'''. This allows to set an arbitrary numbering for the assemblies. The pattern should be identical in shape and size to '''loadPattern'''. {{fontcolor|''The default numbering should not be changed when running coupled multiphysics simulations, since it will mess up the field coupling in Cerberus!''|red}} The following produces the default assembly numbering for the hexagonal core above:
Line 574: Line 581:
 
{{NumBlk|:|<math>
 
{{NumBlk|:|<math>
 
D_{\text{t}} = \frac{4 A_{\text{fluid}}}{P_{\text{h}}}
 
D_{\text{t}} = \frac{4 A_{\text{fluid}}}{P_{\text{h}}}
= \frac{4 \varepsilon A_{\text{assembly}}} {P_{\text{t}}}
+
= \frac{4 \varepsilon A_{\text{assembly}}} {P_{\text{h}}}
 
= \frac{4 \varepsilon P^2_{\text{assembly}}} {265 \cdot \pi d_{\text{rod}}}
 
= \frac{4 \varepsilon P^2_{\text{assembly}}} {265 \cdot \pi d_{\text{rod}}}
 
= \frac{4 \cdot 0.530672 \cdot \left( 0.2150364 \, \text{m}\right)^2} {265 \cdot \pi \cdot 0.0094996 \, \text{m}} \approx 0.0124111 \, \text{m}
 
= \frac{4 \cdot 0.530672 \cdot \left( 0.2150364 \, \text{m}\right)^2} {265 \cdot \pi \cdot 0.0094996 \, \text{m}} \approx 0.0124111 \, \text{m}
Line 597: Line 604:
 
== Input fields ==
 
== Input fields ==
  
The following input fields are currently available in Kharon. These are intended to provide the temperature / heat flux boundary condition from either the neutronics code or the fuel behavior code. Depending on the thermal boundary condition setting (thermalBC) in the Kharon input file, different fields can be set in Cerberus.  
+
The following input fields are currently available in Kharon. These are intended to provide the temperature / heat flux boundary condition from either the neutronics code or the fuel behavior code. Depending on the thermal boundary condition setting (thermalBC) in the Kharon input file, different fields can be set in Cerberus. The affix '''if''' stands for ''input field'' and helps to distinguish between input and output fields that point to the same solver variable, e.g. the power field is defined as both input and output field (for different thermal boundary conditions, though).
  
 
{|class="wikitable" style="text-align: left;"
 
{|class="wikitable" style="text-align: left;"
Line 605: Line 612:
 
!Description
 
!Description
 
|-
 
|-
| {{fontcolor|kharon_wallTemperature|black}}
+
| {{fontcolor|kharon_if_wallTemperature|black}}
 
| nPins*nCells*real
 
| nPins*nCells*real
 
| thermalBC = wallTemperature
 
| thermalBC = wallTemperature
 
| Cladding temperature [K].
 
| Cladding temperature [K].
 
|-
 
|-
| {{fontcolor|kharon_heatFlux|black}}
+
| {{fontcolor|kharon_if_heatFlux|black}}
 
| nPins*nCells*real
 
| nPins*nCells*real
 
| thermalBC = heatFlux
 
| thermalBC = heatFlux
 
| Cladding surface heat flux [W/m<sup>2</sup>].
 
| Cladding surface heat flux [W/m<sup>2</sup>].
 
|-
 
|-
| {{fontcolor|kharon_power|black}}
+
| {{fontcolor|kharon_if_power|black}}
 
| nPins*nCells*real
 
| nPins*nCells*real
 
| thermalBC = power
 
| thermalBC = power
 
| Heat transfer rate to coolant [W].
 
| Heat transfer rate to coolant [W].
 
|}
 
|}
 
As an example, a uniform cladding surface temperature (of 373.15 K) can be set in Cerberus by placing the following commands in the Cerberus input file:
 
 
'''init''' ''kharon_wallTemperature'' value 373.15
 
'''writefield''' ''kharon_wallTemperature'' Kharon
 
  
 
== Output fields ==
 
== Output fields ==
  
The following output fields are currently available in Kharon. Depending on how the Kharon simulation is set up, different fields can be read in Cerberus.  
+
The following output fields are currently available in Kharon. Depending on how the Kharon simulation is set up, different fields can be read in Cerberus. The affix '''of''' stands for ''output field''.
  
 
{|class="wikitable" style="text-align: left;"
 
{|class="wikitable" style="text-align: left;"
Line 636: Line 638:
 
!Description
 
!Description
 
|-
 
|-
| {{fontcolor|kharon_out_coolantDensity|black}}
+
| {{fontcolor|kharon_of_coolantDensity|black}}
 
| nCells*real
 
| nCells*real
 
| always
 
| always
 
| Volume averaged mixture density [kg/m<sup>3</sup>].
 
| Volume averaged mixture density [kg/m<sup>3</sup>].
 
|-
 
|-
| {{fontcolor|kharon_out_coolantTemperature|black}}
+
| {{fontcolor|kharon_of_coolantTemperature|black}}
 
| nCells*real
 
| nCells*real
 
| always
 
| always
 
| Volume averaged mixture temperature [K].
 
| Volume averaged mixture temperature [K].
 
|-
 
|-
| {{fontcolor|kharon_out_massAveragedCoolantTemperature|black}}
+
| {{fontcolor|kharon_of_massAveragedCoolantTemperature|black}}
 
| nCells*real
 
| nCells*real
 
| always
 
| always
 
| Mass averaged mixture temperature [K].
 
| Mass averaged mixture temperature [K].
 
|-
 
|-
| {{fontcolor|kharon_out_heatFlux|black}}
+
| {{fontcolor|kharon_of_saturationTemperature|black}}
 +
| nCells*real
 +
| always
 +
| Saturation temperature [K].
 +
|-
 +
| {{fontcolor|kharon_of_heatFlux|black}}
 
| nPins*nCells*real
 
| nPins*nCells*real
 
| thermalBC = wallTemperature
 
| thermalBC = wallTemperature
 
| Cladding surface heat flux [W/m<sup>2</sup>].
 
| Cladding surface heat flux [W/m<sup>2</sup>].
 
|-
 
|-
| {{fontcolor|kharon_out_power|black}}
+
| {{fontcolor|kharon_of_power|black}}
 
| nPins*nCells*real
 
| nPins*nCells*real
 
| thermalBC = wallTemperature
 
| thermalBC = wallTemperature
 
| Heat transfer rate to coolant [W].
 
| Heat transfer rate to coolant [W].
 
|-
 
|-
| {{fontcolor|kharon_out_wallTemperature|black}}
+
| {{fontcolor|kharon_of_wallTemperature|black}}
 
| nPins*nCells*real
 
| nPins*nCells*real
 
| thermalBC = heatFlux or power
 
| thermalBC = heatFlux or power
 
| Cladding temperature [K].
 
| Cladding temperature [K].
 
|-
 
|-
| {{fontcolor|kharon_out_voidFraction|black}}
+
| {{fontcolor|kharon_of_voidFraction|black}}
 
| nCells*real
 
| nCells*real
 
| nPhases = 2
 
| nPhases = 2
 
| Void fraction (vapor volume fraction) [-].
 
| Void fraction (vapor volume fraction) [-].
 
|}
 
|}
 
As an example, cladding surface temperature can be read in Cerberus by placing the following command in the Cerberus input file:
 
 
'''readfield''' ''kharon_out_wallTemperature'' Kharon
 
  
 
== Input variables ==
 
== Input variables ==
  
The following input variables are currently available in Kharon.
+
The following input variables are currently available in Kharon. The affix '''iv''' stands for ''input variable'' and helps to distinguish between input and output variables that point to the same solver variable. All the inlet boundary conditions are also defined as output variables.
  
 
{|class="wikitable" style="text-align: left;"
 
{|class="wikitable" style="text-align: left;"
Line 686: Line 689:
 
!Description
 
!Description
 
|-
 
|-
| {{fontcolor|kharon_inletPressure|black}}
+
| {{fontcolor|kharon_iv_inletPressure|black}}
 
| 1*real
 
| 1*real
 
| inlet type = pressureInlet
 
| inlet type = pressureInlet
 
| Uniform (static) inlet pressure [Pa].
 
| Uniform (static) inlet pressure [Pa].
 
|-
 
|-
| {{fontcolor|kharon_totalMassFlowRate|black}}
+
| {{fontcolor|kharon_iv_totalMassFlowRate|black}}
 
| 1*real
 
| 1*real
 
| inlet type = totalMassFlowInlet
 
| inlet type = totalMassFlowInlet
 
| Total mass flow rate (adjusts inlet pressure to achieve said mass flow rate) [kg/s].
 
| Total mass flow rate (adjusts inlet pressure to achieve said mass flow rate) [kg/s].
 
|-
 
|-
| {{fontcolor|kharon_liquidInletVelocity|black}}
+
| {{fontcolor|kharon_iv_liquidInletVelocity|black}}
 
| 1*real
 
| 1*real
 
| inlet type = velocityInlet
 
| inlet type = velocityInlet
 
| Uniform liquid inlet velocity [m/s].
 
| Uniform liquid inlet velocity [m/s].
 
|-
 
|-
| {{fontcolor|kharon_vaporInletVelocity|black}}
+
| {{fontcolor|kharon_iv_vaporInletVelocity|black}}
 
| 1*real
 
| 1*real
 
| inlet type = velocityInlet, nPhases = 2
 
| inlet type = velocityInlet, nPhases = 2
 
| Uniform vapor inlet velocity [m/s].
 
| Uniform vapor inlet velocity [m/s].
 
|-
 
|-
| {{fontcolor|kharon_liquidMassFlowRate|black}}
+
| {{fontcolor|kharon_iv_liquidMassFlowRate|black}}
 
| 1*real
 
| 1*real
 
| inlet type = massFlowInlet
 
| inlet type = massFlowInlet
 
| Uniform liquid inlet mass flow rate per assembly [kg/s].
 
| Uniform liquid inlet mass flow rate per assembly [kg/s].
 
|-
 
|-
| {{fontcolor|kharon_vaporMassFlowRate|black}}
+
| {{fontcolor|kharon_iv_vaporMassFlowRate|black}}
 
| 1*real
 
| 1*real
 
| inlet type = massFlowInlet, nPhases = 2
 
| inlet type = massFlowInlet, nPhases = 2
 
| Uniform vapor inlet mass flow rate per assembly [kg/s].
 
| Uniform vapor inlet mass flow rate per assembly [kg/s].
 
|-
 
|-
| {{fontcolor|kharon_liquidInletTemperature|black}}
+
| {{fontcolor|kharon_iv_liquidInletTemperature|black}}
 
| 1*real
 
| 1*real
 
| always
 
| always
 
| Uniform liquid inlet temperature [K].
 
| Uniform liquid inlet temperature [K].
 
|-
 
|-
| {{fontcolor|kharon_vaporInletTemperature|black}}
+
| {{fontcolor|kharon_iv_vaporInletTemperature|black}}
 
| 1*real
 
| 1*real
 
| nPhases = 2
 
| nPhases = 2
 
| Uniform vapor inlet temperature [K].
 
| Uniform vapor inlet temperature [K].
 
|-
 
|-
| {{fontcolor|kharon_liquidInletVolumeFraction|black}}
+
| {{fontcolor|kharon_iv_liquidInletVolumeFraction|black}}
 
| 1*real
 
| 1*real
 
| always
 
| always
 
| Uniform liquid inlet volume fraction [-].
 
| Uniform liquid inlet volume fraction [-].
 
|-
 
|-
| {{fontcolor|kharon_vaporInletVolumeFraction|black}}
+
| {{fontcolor|kharon_iv_vaporInletVolumeFraction|black}}
 
| 1*real
 
| 1*real
 
| nPhases = 2
 
| nPhases = 2
 
| Uniform vapor inlet volume fraction [-].
 
| Uniform vapor inlet volume fraction [-].
 +
|-
 +
| {{fontcolor|kharon_iv_outletPressure|black}}
 +
| 1*real
 +
| always
 +
| Absolute (static) pressure at outlet [Pa].
 +
|-
 +
| {{fontcolor|kharon_iv_urfU|black}}
 +
| 1*real
 +
| always
 +
| Velocity under-relaxation factor [-].
 +
|-
 +
| {{fontcolor|kharon_iv_urfP|black}}
 +
| 1*real
 +
| always
 +
| Pressure under-relaxation factor [-].
 +
|-
 +
| {{fontcolor|kharon_iv_urfH|black}}
 +
| 1*real
 +
| always
 +
| Enthalpy under-relaxation factor [-].
 +
|-
 +
| {{fontcolor|kharon_iv_urfI|black}}
 +
| 1*real
 +
| always
 +
| Interphase heat transfer under-relaxation factor [-].
 +
|-
 +
| {{fontcolor|kharon_iv_urfW|black}}
 +
| 1*real
 +
| always
 +
| Wall heat transfer under-relaxation factor [-].
 +
|-
 +
| {{fontcolor|kharon_iv_nIterMax|black}}
 +
| 1*real
 +
| always
 +
| Number of solution (outer) iterations [-].
 
|}
 
|}
 
As an example, liquid inlet temperature can be set (to 333.15 K) in Cerberus by placing the following command in the Cerberus input file:
 
'''writevar''' ''kharon_liquidInletTemperature'' Kharon 333.15
 
  
 
== Output variables ==
 
== Output variables ==
  
The following output variables are currently available in Kharon.
+
The following output variables are currently available in Kharon. The affix '''ov''' stands for ''output variable'' and helps to distinguish between input and output variables that point to the same solver variable, e.g. the inlet boundary conditions.
  
 
{|class="wikitable" style="text-align: left;"
 
{|class="wikitable" style="text-align: left;"
Line 750: Line 785:
 
!Description
 
!Description
 
|-
 
|-
| {{fontcolor|kharon_averageInletTemperature|black}}
+
| {{fontcolor|kharon_ov_averageInletTemperature|black}}
 
| 1*real
 
| 1*real
 
| always
 
| always
 
| Mass flow rate averaged mixture inlet temperature (over assemblies and phases) [K].
 
| Mass flow rate averaged mixture inlet temperature (over assemblies and phases) [K].
 
|-
 
|-
| {{fontcolor|kharon_averageOutletTemperature|black}}
+
| {{fontcolor|kharon_ov_averageOutletTemperature|black}}
 
| 1*real
 
| 1*real
 
| always
 
| always
 
| Mass flow rate averaged mixture outlet temperature (over assemblies and phases) [K].
 
| Mass flow rate averaged mixture outlet temperature (over assemblies and phases) [K].
 
|-
 
|-
| {{fontcolor|kharon_averageInletOutletTemperature|black}}
+
| {{fontcolor|kharon_ov_averageInletOutletTemperature|black}}
 
| 1*real
 
| 1*real
 
| always
 
| always
 
| Arithmetic mean of the two preceding outputs [K].
 
| Arithmetic mean of the two preceding outputs [K].
 
|-
 
|-
| {{fontcolor|kharon_volumeAveragedMixtureTemperature|black}}
+
| {{fontcolor|kharon_ov_volumeAveragedMixtureTemperature|black}}
 
| 1*real
 
| 1*real
 
| always
 
| always
 
| Volume averaged mixture temperature (over cells and phases) [K].
 
| Volume averaged mixture temperature (over cells and phases) [K].
 
|-
 
|-
| {{fontcolor|kharon_massAveragedMixtureTemperature|black}}
+
| {{fontcolor|kharon_ov_massAveragedMixtureTemperature|black}}
 
| 1*real
 
| 1*real
 
| always
 
| always
 
| Mass averaged mixture temperature (over cells and phases) [K].
 
| Mass averaged mixture temperature (over cells and phases) [K].
 
|-
 
|-
| {{fontcolor|kharon_averageInletDensity|black}}
+
| {{fontcolor|kharon_ov_averageInletDensity|black}}
 
| 1*real
 
| 1*real
 
| always
 
| always
 
| Area averaged inlet density (over assemblies and phases) [kg/m<sup>3</sup>].
 
| Area averaged inlet density (over assemblies and phases) [kg/m<sup>3</sup>].
 
|-
 
|-
| {{fontcolor|kharon_maxVoidFraction|black}}
+
| {{fontcolor|kharon_ov_maxVoidFraction|black}}
 
| 1*real
 
| 1*real
 
| nPhases = 2
 
| nPhases = 2
 
| Maximum void fraction (steam volume fraction) [-].
 
| Maximum void fraction (steam volume fraction) [-].
 
|-
 
|-
| {{fontcolor|kharon_maxWallTemperature|black}}
+
| {{fontcolor|kharon_ov_maxWallTemperature|black}}
 
| 1*real
 
| 1*real
 
| always
 
| always
 
| Maximum cladding temperature [K].
 
| Maximum cladding temperature [K].
 
|-
 
|-
| {{fontcolor|kharon_maxWallSuperHeat|black}}
+
| {{fontcolor|kharon_ov_maxWallSuperHeat|black}}
 
| 1*real
 
| 1*real
 
| always
 
| always
 
| Maximum cladding super heat [K].
 
| Maximum cladding super heat [K].
 
|-
 
|-
| {{fontcolor|kharon_continuityError|black}}
+
| {{fontcolor|kharon_ov_continuityError|black}}
 
| 1*real
 
| 1*real
 
| always
 
| always
| Continuity error [?].
+
| Continuity error [kg/m<sup>3</sup>s].
 
|-
 
|-
| {{fontcolor|kharon_residualMomentum|black}}
+
| {{fontcolor|kharon_ov_residualMomentum|black}}
 
| 1*real
 
| 1*real
 
| always
 
| always
| Scaled initial residual of momentum equations [?].
+
| Scaled initial residual of momentum equations [-].
 
|-
 
|-
| {{fontcolor|kharon_residualEnthalpy|black}}
+
| {{fontcolor|kharon_ov_residualEnthalpy|black}}
 
| 1*real
 
| 1*real
 
| always
 
| always
| Scaled initial residual of enthalpy equations [?].
+
| Scaled initial residual of enthalpy equations [-].
 
|-
 
|-
 
| {{fontcolor|kharon_ov_inletPressure|black}}
 
| {{fontcolor|kharon_ov_inletPressure|black}}
Line 859: Line 894:
 
| nPhases = 2
 
| nPhases = 2
 
| Uniform vapor inlet volume fraction [-].
 
| Uniform vapor inlet volume fraction [-].
 +
|-
 +
| {{fontcolor|kharon_ov_outletPressure|black}}
 +
| 1*real
 +
| always
 +
| Absolute (static) pressure at outlet [Pa].
 +
|-
 +
| {{fontcolor|kharon_ov_urfU|black}}
 +
| 1*real
 +
| always
 +
| Velocity under-relaxation factor [-].
 +
|-
 +
| {{fontcolor|kharon_ov_urfP|black}}
 +
| 1*real
 +
| always
 +
| Pressure under-relaxation factor [-].
 +
|-
 +
| {{fontcolor|kharon_ov_urfH|black}}
 +
| 1*real
 +
| always
 +
| Enthalpy under-relaxation factor [-].
 +
|-
 +
| {{fontcolor|kharon_ov_urfI|black}}
 +
| 1*real
 +
| always
 +
| Interphase heat transfer under-relaxation factor [-].
 +
|-
 +
| {{fontcolor|kharon_ov_urfW|black}}
 +
| 1*real
 +
| always
 +
| Wall heat transfer under-relaxation factor [-].
 +
|-
 +
| {{fontcolor|kharon_ov_nIterMax|black}}
 +
| 1*real
 +
| always
 +
| Number of solution (outer) iterations [-].
 
|}
 
|}
 
As an example, maximum cladding temperature can be read in Cerberus by placing the following command in the Cerberus input file:
 
'''readvar''' ''kharon_maxWallTemperature'' Kharon
 
 
[[Category:Kharon]]
 
[[Category:Input manuals]]
 

Latest revision as of 15:04, 3 April 2024

The Kharon input is a keyword input. It consists of several grouped input parameters. Each group starts with the keyword that defines the group (name of the group), possibly followed by data entries associated with the keyword. The group can consist of several keyword (parameter name) and value pairs that are enclosed within a set of curly brackets.

  • A working input file consists of several input groups.
  • The order of the groups or the parameter name and value pairs within the group is not important.
  • The input file can contain comments: all characters after '#', '!', and '%' on each line are considered as comments.
  • All keywords, operators, and data entries must be separated by one or more spaces or line changes, since they are regarded as words.

Input groups

Apart from the assembly numbering, at the end, all of the following input groups are required for a working input file. To distinguish between mandatory and optional parameters, the mandatory parameters are colored in red and the optional parameters in green.

Simulation control parameters

The keyword that defines this group is simulationControl. As the name suggests, these parameters are used to control the solution flow. The bare minimum is to provide a value for the number of phases, nPhases.

Keyword Size and type Valid options / Valid range Default Description
nPhases 1*integer 1 = single-phase water or 2 = water and steam Number of phases.
nIterMax 1*integer positive integer 500 Number of solution (outer) iterations.
urfU 1*real [0, 1] 0.5 Under-relaxation factor for velocity.
urfP 1*real [0, 1] 0.5 Under-relaxation factor for pressure.
urfH 1*real [0, 1] 0.9 Under-relaxation factor for enthalpy.
gravity 1*real ( -\infty ,  \infty ) -9.81 Gravitational acceleration (in the direction of positive z-coordinate; upwards) [m/s2]
dBub 1*real positive real 1.5e-3 Bubble diameter for interphase heat transfer [m].
vofLimit 1*real [0, 1] 1.0e-3 Volume fraction limit for interphase heat transfer.
writeFields 1*integer 0 = do not write or 1 = write 0 Write output fields in OpenFOAM format.
writeFormat 1*word ascii, binary ascii Write format for OpenFOAM fields.
materialProperties 1*word libTable, libFluid libTable Calculation of material properties: libTable = linear interpolation from a pretabulated set of material properties, libFluid = IAPWS standard polynomial functions.
thermalBC 1*word power, heatFlux, wallTemperature heatFlux Thermal boundary condition: power = set the power to each cell (Kharon converts this to heat flux and calculates the surface temperature distribution), heatFlux = set the heat flux of the heated surfaces in each cell (Kharon converts this to power and calculates the surface temperature distribution), wallTemperature = set the surface temperature of the heated surfaces in each cell (Kharon calculates the heat flux and power distributions).

An example with the simulation control default values for a single-phase case is:

simulationControl
{
    nPhases            1
    nIterMax           500
    urfU               0.5
    urfP               0.5
    urfH               0.9
    gravity            -9.81
    dBub               1.5e-3
    vofLimit           1.0e-3
    writeFields        0
    writeFormat        ascii
    materialProperties libTable
    thermalBC          heatFlux
}

Inlet definition

The keyword that defines this group is inlet. There are four available inlet types to choose from: pressureInlet, velocityInlet, massFlowInlet, totalMassFlowInlet. The inlet type determines the parameter that is required to define the flow into the domain.

Pressure inlet

Keyword Size and type Valid options / Valid range Description
type 1*word pressureInlet Defines a pressure inlet.
pressure 1*real [0,  \infty ) Absolute (static) pressure at inlet [Pa].

Velocity inlet

Keyword Size and type Valid options / Valid range Description
type 1*word velocityInlet Defines a velocity inlet.
velocity nPhases*real [0,  \infty ) Phase velocities at inlet [m/s].

Mass flow inlet

Keyword Size and type Valid options / Valid range Description
type 1*word massFlowInlet Defines a mass flow inlet.
massFlowRate nPhases*real [0,  \infty ) Phase mass flow rates per assembly [kg/s].

Total mass flow inlet

Keyword Size and type Valid options / Valid range Description
type 1*word totalMassFlowInlet Defines a total mass flow inlet.
totalMassFlowRate 1*real [0,  \infty ) Total mass flow rate into the core [kg/s].

Common inlet parameters

In addition to the inlet type specific parameters shown above, the following parameters need to be given for all inlet types. Note that inlet pressure needs to be given for all inlet types. For inlet types other than pressure inlet, the inlet pressure value is only used for flow initialization.

Keyword Size and type Valid options / Valid range Description
pressure 1*real [0,  \infty ) Absolute (static) pressure at inlet [Pa].
temperature nPhases*real [0,  \infty ) Phase temperatures at inlet [K].
volumeFraction nPhases*real [0, 1] Phase volume fractions at inlet [-].

An example of a mass flow inlet for a single-phase simulation is given below:

inlet
{
    type               massFlowInlet
    massFlowRate       116.56            ! [kg/s] per assembly
    pressure           15.742e6          ! [Pa]
    temperature        562.0             ! [K]
    volumeFraction     1.0               ! [-]
}

The same exact boundary condition for a two-phase simulation is:

inlet
{
    type               massFlowInlet
    massFlowRate       116.56    0.0     ! [kg/s] per assembly
    pressure           15.742e6          ! [Pa]
    temperature        562.0     618.97  ! [K]
    volumeFraction     1.0       0.0     ! [-]
}

Outlet definition

The keyword that defines this group is outlet. The following parameters need to be provided:

Keyword Size and type Valid options / Valid range Description
pressure 1*real [0,  \infty ) Absolute (static) pressure at outlet [Pa].
temperature nPhases*real [0,  \infty ) Phase temperatures at outlet (for backflow) [K].
volumeFraction nPhases*real [0, 1] Phase volume fractions at outlet (for backflow) [-].

An example of an outlet definition for a single-phase simulation is given below:

outlet
{
    pressure           15.7e6            ! [Pa]
    temperature        618.97            ! [K]
    volumeFraction     1.0               ! [-]
}

The same exact definition for a two-phase simulation is:

outlet
{
    pressure           15.7e6            ! [Pa]
    temperature        618.97    618.97  ! [K]
    volumeFraction     1.0       0.0     ! [-]
}

List of fuel types

The keyword that defines this group is fuelType, which is immediately followed by the fuel type name. Several different fuel types can be defined, which can then referred to by its name when defining the core load pattern.

Keyword Size and type Valid options / Valid range Default Description
nCells 1*integer [1,  \infty ) Number of cells along the height of the fuel assembly.
nPins 1*integer [1,  \infty ) 1 Number of fuel pins for heat transfer / temperature solution.
bottomElevation 1*real ( -\infty ,  \infty ) Elevation of the assembly inlet (z-coordinate) [m]. Used for post-processing.
cellHeight nCells*real (0,  \infty ) Cell height [m].
hydraulicDiameter nCells*real (0,  \infty ) Hydraulic diameter [m].
thermalDiameter nPins*nCells*real (0,  \infty ) Thermal diameter [m].
porosity nCells*real (0, 1] Porosity, fluid fraction of total volume [-].

Two operators, * and x, are available to abbreviate the notation when setting the porosities and diameters, in particular.

An integer value times (*) a real value is replaced in its place with the number of said real values. A combination of separate real values and real values given with the *-operator can be used as well. This way you can provide the values for cell height, porosity of the assembly, hydraulic diameter of the assembly, and thermal diameter of a single pin, e.g. porosity of an assembly consisting of 21 cells can be given by: 10 * 0.5 0.5 10 * 0.5 = 0.5 10 * 0.5 10 * 0.5 = 21 * 0.5.

To facilitate definition of the thermal diameters for multiple pin assemblies, the x-operator is introduced. You first need to define the thermal diameters for a single pin. Multiple copies of that pin can be created with the x-operator: 3 x 21 * 0.01 = 21 * 0.01 21 * 0.01 21 * 0.01. Note that you need to use spaces around the x-operator, since otherwise it will be confused as a word.

In the following two identical fuel types, f1 and f2, are defined using a different number of pins for the heat transfer / temperature solution:

fuelType f1
{
    nCells             20
    bottomElevation    0.0
    cellHeight         20 * 0.1
    hydraulicDiameter  20 * 0.0110946
    thermalDiameter    20 * 0.0124111
    porosity           20 * 0.530672
}

fuelType f2
{
    nCells             20
    nPins              265
    bottomElevation    0.0
    cellHeight         20 * 0.1
    hydraulicDiameter  20 * 0.0110946
    thermalDiameter    265 x 20 * 3.28893
    porosity           20 * 0.530672
}

Core definition

The keyword that defines this group is core. This group sets the geometry of the core, namely the core lattice (square or hexagonal) and assembly pitch.

Keyword Size and type Valid options / Valid range Description
coreLattice 1*word square, hexagonal Core lattice.
assemblyPitch 1*real (0,  \infty ) Assembly pitch [m].

An example of a core definition with a square lattice is given below:

core
{
    coreLattice        square
    assemblyPitch      0.2150364
}

An example of hexagonal core definition is:

core
{
    coreLattice        hexagonal
    assemblyPitch      0.236
}

Load pattern

The keyword that defines this group is loadPattern. Together with the core definition above, the geometry of the core is fully defined. The output mesh can be generated based on these two input groups. The load pattern consists of the fuel type names defined above that basically provide a map of the core. Empty locations are denoted by zeros. An example of an EPR-like core is given below. Since the core and loadPattern groups are closely linked, it is good practice to give them together in the input file.

core
{
    coreLattice        square
    assemblyPitch      0.2150364
}

loadPattern
{
        0    0    0    0    0   f2   f2   f2   f2   f2    0    0    0    0    0
        0    0    0   f2   f2   f2   f1   f1   f1   f2   f2   f2    0    0    0
        0    0   f2   f2   f1   f1   f1   f1   f1   f1   f1   f2   f2    0    0
        0   f2   f2   f1   f1   f1   f1   f1   f1   f1   f1   f1   f2   f2    0
        0   f2   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f2    0
       f2   f2   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f2   f2
       f2   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f2
       f2   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f2
       f2   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f2
       f2   f2   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f2   f2
        0   f2   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f1   f2    0
        0   f2   f2   f1   f1   f1   f1   f1   f1   f1   f1   f1   f2   f2    0
        0    0   f2   f2   f1   f1   f1   f1   f1   f1   f1   f2   f2    0    0
        0    0    0   f2   f2   f2   f1   f1   f1   f2   f2   f2    0    0    0
        0    0    0    0    0   f2   f2   f2   f2   f2    0    0    0    0    0
}

An example of a hexagonal core (VVER-1000) is given below. The array is tilted to produce a better visualization of the core.

core
{
    coreLattice        hexagonal
    assemblyPitch      0.236
}

loadPattern
{
        0     0     0     0     0     0     0     0    f1    f1    f1    f1    f1    f1     0

           0     0     0     0     0     0    f1    f1    f1    f1    f1    f1    f1    f1    f1

              0     0     0     0     0    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1 

                 0     0     0     0    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1 

                    0     0     0    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1 

                       0     0    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1

                          0    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1

                             0    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1     0

                               f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1     0

                                  f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1     0     0

                                     f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1     0     0     0

                                        f1    f1    f1    f1    f1    f1    f1    f1    f1    f1    f1     0     0     0     0

                                           f1    f1    f1    f1    f1    f1    f1    f1    f1    f1     0     0     0     0     0

                                              f1    f1    f1    f1    f1    f1    f1    f1    f1     0     0     0     0     0     0

                                                  0    f1    f1    f1    f1    f1    f1     0     0     0     0     0     0     0     0
}

Assembly numbering (optional)

The keyword that defines this group is assemblyNumbering. This allows to set an arbitrary numbering for the assemblies. The pattern should be identical in shape and size to loadPattern. The default numbering should not be changed when running coupled multiphysics simulations, since it will mess up the field coupling in Cerberus! The following produces the default assembly numbering for the hexagonal core above:

assemblyNumbering
{
        0     0     0     0     0     0     0     0     1     2     3     4     5     6     0

           0     0     0     0     0     0     7     8     9    10    11    12    13    14    15

              0     0     0     0     0    16    17    18    19    20    21    22    23    24    25

                 0     0     0     0    26    27    28    29    30    31    32    33    34    35    36

                    0     0     0    37    38    39    40    41    42    43    44    45    46    47    48

                       0     0    49    50    51    52    53    54    55    56    57    58    59    60    61

                          0    62    63    64    65    66    67    68    69    70    71    72    73    74    75

                             0    76    77    78    79    80    81    82    83    84    85    86    87    88     0

                               89    90    91    92    93    94    95    96    97    98    99   100   101   102     0

                                 103   104   105   106   107   108   109   110   111   112   113   114   115     0     0

                                   116    117   118   119   120   121   122   123   124   125   126   127     0     0     0

                                      128    129   130   131   132   133   134   135   136   137   138     0     0     0     0

                                          139   140   141   142   143   144   145   146   147   148     0     0     0     0     0

                                             149   150   151   152   153   154   155   156   157     0     0     0     0     0     0

                                                  0   158   159   160   161   162   163     0     0     0     0     0     0     0     0
}

Geometric input parameters

Figure 1: Cross section of an EPR fuel assembly.

Porosity,  \varepsilon [-], is defined as the fluid fraction of total volume, which for a 1D channel is equivalent to the ratio of surface areas. Porosity of an EPR fuel assembly cross-section, shown in Figure 1, can be calculated from:



\varepsilon = \frac{A_{\text{fluid}}}{A_{\text{assembly}}} = \frac{A_{\text{assembly}} - A_{\text{rod}} - A_{\text{guide}}} {A_{\text{assembly}}}
= 1 - \frac{A_{\text{rod}} + A_{\text{guide}}}{A_{\text{assembly}}}

 

 

 

 

(1)


\Leftrightarrow \varepsilon = 1 - \frac{265 \cdot \tfrac{1}{4} \pi d^2_{\text{rod}} + 24 \cdot \tfrac{1}{4} \pi d^2_{\text{guide}}} {P^2_{\text{assembly}}}

 

 

 

 

(2)


\Leftrightarrow \varepsilon = 1 - \frac{265 \cdot \tfrac{1}{4} \pi \left( 0.0094996 \, \text{m}\right)^2 + 24 \cdot \tfrac{1}{4} \pi \left( 0.012446 \, \text{m}\right)^2} {\left( 0.2150364 \, \text{m}\right)^2} \approx 0.530672

 

 

 

 

(3)

where:

 A_{\text{assembly}} cross-sectional area of the assembly [m2],
 A_{\text{fluid}} cross-sectional area available for fluid flow [m2],
 A_{\text{guide}} cross-sectional area of control rod guide tubes [m2],
 A_{\text{rod}} cross-sectional area of fuel rods [m2],
 d_{\text{guide}} control rod guide tube outer diameter [m],
 d_{\text{rod}} fuel rod outer diameter [m] and
 P_{\text{assembly}} assembly pitch [m].

Hydraulic diameter for the cross-section in Figure 1 can be calculated from:


D_{\text{h}} = \frac{4 A_{\text{fluid}}}{P_{\text{w}}} = \frac{4 \varepsilon A_{\text{assembly}}} {P_{\text{w}}}
= \frac{4 \varepsilon P^2_{\text{assembly}}} {265 \cdot \pi d_{\text{rod}} + 24 \cdot \pi d_{\text{guide}}}
= \frac{4 \cdot 0.530672 \cdot \left( 0.2150364 \, \text{m}\right)^2} {265 \cdot \pi \cdot 0.0094996 \, \text{m} + 24 \cdot \pi \cdot 0.012446 \, \text{m}} \approx 0.0110946 \, \text{m}

 

 

 

 

(4)

If the boundary conditions are provided for the average pin, i.e. power is averaged over the fuel assembly cross-section in Figure 1, the thermal diameter is calculated from:


D_{\text{t}} = \frac{4 A_{\text{fluid}}}{P_{\text{h}}}
= \frac{4 \varepsilon A_{\text{assembly}}} {P_{\text{h}}}
= \frac{4 \varepsilon P^2_{\text{assembly}}} {265 \cdot \pi d_{\text{rod}}}
= \frac{4 \cdot 0.530672 \cdot \left( 0.2150364 \, \text{m}\right)^2} {265 \cdot \pi \cdot 0.0094996 \, \text{m}} \approx 0.0124111 \, \text{m}

 

 

 

 

(5)

where:

 D_{\text{h}} hydraulic diameter [m],
 D_{\text{t}} thermal diameter [m],
 P_{\text{h}} heated perimeter [m] and
 P_{\text{w}} wetted perimeter [m].

Input fields

The following input fields are currently available in Kharon. These are intended to provide the temperature / heat flux boundary condition from either the neutronics code or the fuel behavior code. Depending on the thermal boundary condition setting (thermalBC) in the Kharon input file, different fields can be set in Cerberus. The affix if stands for input field and helps to distinguish between input and output fields that point to the same solver variable, e.g. the power field is defined as both input and output field (for different thermal boundary conditions, though).

Variable name Size and type Availability Description
kharon_if_wallTemperature nPins*nCells*real thermalBC = wallTemperature Cladding temperature [K].
kharon_if_heatFlux nPins*nCells*real thermalBC = heatFlux Cladding surface heat flux [W/m2].
kharon_if_power nPins*nCells*real thermalBC = power Heat transfer rate to coolant [W].

Output fields

The following output fields are currently available in Kharon. Depending on how the Kharon simulation is set up, different fields can be read in Cerberus. The affix of stands for output field.

Variable name Size and type Availability Description
kharon_of_coolantDensity nCells*real always Volume averaged mixture density [kg/m3].
kharon_of_coolantTemperature nCells*real always Volume averaged mixture temperature [K].
kharon_of_massAveragedCoolantTemperature nCells*real always Mass averaged mixture temperature [K].
kharon_of_saturationTemperature nCells*real always Saturation temperature [K].
kharon_of_heatFlux nPins*nCells*real thermalBC = wallTemperature Cladding surface heat flux [W/m2].
kharon_of_power nPins*nCells*real thermalBC = wallTemperature Heat transfer rate to coolant [W].
kharon_of_wallTemperature nPins*nCells*real thermalBC = heatFlux or power Cladding temperature [K].
kharon_of_voidFraction nCells*real nPhases = 2 Void fraction (vapor volume fraction) [-].

Input variables

The following input variables are currently available in Kharon. The affix iv stands for input variable and helps to distinguish between input and output variables that point to the same solver variable. All the inlet boundary conditions are also defined as output variables.

Variable name Size and type Availability Description
kharon_iv_inletPressure 1*real inlet type = pressureInlet Uniform (static) inlet pressure [Pa].
kharon_iv_totalMassFlowRate 1*real inlet type = totalMassFlowInlet Total mass flow rate (adjusts inlet pressure to achieve said mass flow rate) [kg/s].
kharon_iv_liquidInletVelocity 1*real inlet type = velocityInlet Uniform liquid inlet velocity [m/s].
kharon_iv_vaporInletVelocity 1*real inlet type = velocityInlet, nPhases = 2 Uniform vapor inlet velocity [m/s].
kharon_iv_liquidMassFlowRate 1*real inlet type = massFlowInlet Uniform liquid inlet mass flow rate per assembly [kg/s].
kharon_iv_vaporMassFlowRate 1*real inlet type = massFlowInlet, nPhases = 2 Uniform vapor inlet mass flow rate per assembly [kg/s].
kharon_iv_liquidInletTemperature 1*real always Uniform liquid inlet temperature [K].
kharon_iv_vaporInletTemperature 1*real nPhases = 2 Uniform vapor inlet temperature [K].
kharon_iv_liquidInletVolumeFraction 1*real always Uniform liquid inlet volume fraction [-].
kharon_iv_vaporInletVolumeFraction 1*real nPhases = 2 Uniform vapor inlet volume fraction [-].
kharon_iv_outletPressure 1*real always Absolute (static) pressure at outlet [Pa].
kharon_iv_urfU 1*real always Velocity under-relaxation factor [-].
kharon_iv_urfP 1*real always Pressure under-relaxation factor [-].
kharon_iv_urfH 1*real always Enthalpy under-relaxation factor [-].
kharon_iv_urfI 1*real always Interphase heat transfer under-relaxation factor [-].
kharon_iv_urfW 1*real always Wall heat transfer under-relaxation factor [-].
kharon_iv_nIterMax 1*real always Number of solution (outer) iterations [-].

Output variables

The following output variables are currently available in Kharon. The affix ov stands for output variable and helps to distinguish between input and output variables that point to the same solver variable, e.g. the inlet boundary conditions.

Variable name Size and type Availability Description
kharon_ov_averageInletTemperature 1*real always Mass flow rate averaged mixture inlet temperature (over assemblies and phases) [K].
kharon_ov_averageOutletTemperature 1*real always Mass flow rate averaged mixture outlet temperature (over assemblies and phases) [K].
kharon_ov_averageInletOutletTemperature 1*real always Arithmetic mean of the two preceding outputs [K].
kharon_ov_volumeAveragedMixtureTemperature 1*real always Volume averaged mixture temperature (over cells and phases) [K].
kharon_ov_massAveragedMixtureTemperature 1*real always Mass averaged mixture temperature (over cells and phases) [K].
kharon_ov_averageInletDensity 1*real always Area averaged inlet density (over assemblies and phases) [kg/m3].
kharon_ov_maxVoidFraction 1*real nPhases = 2 Maximum void fraction (steam volume fraction) [-].
kharon_ov_maxWallTemperature 1*real always Maximum cladding temperature [K].
kharon_ov_maxWallSuperHeat 1*real always Maximum cladding super heat [K].
kharon_ov_continuityError 1*real always Continuity error [kg/m3s].
kharon_ov_residualMomentum 1*real always Scaled initial residual of momentum equations [-].
kharon_ov_residualEnthalpy 1*real always Scaled initial residual of enthalpy equations [-].
kharon_ov_inletPressure 1*real inlet type = pressureInlet Uniform (static) inlet pressure [Pa].
kharon_ov_totalMassFlowRate 1*real inlet type = totalMassFlowInlet Total mass flow rate [kg/s].
kharon_ov_liquidInletVelocity 1*real inlet type = velocityInlet Uniform liquid inlet velocity [m/s].
kharon_ov_vaporInletVelocity 1*real inlet type = velocityInlet, nPhases = 2 Uniform vapor inlet velocity [m/s].
kharon_ov_liquidMassFlowRate 1*real inlet type = massFlowInlet Uniform liquid inlet mass flow rate per assembly [kg/s].
kharon_ov_vaporMassFlowRate 1*real inlet type = massFlowInlet, nPhases = 2 Uniform vapor inlet mass flow rate per assembly [kg/s].
kharon_ov_liquidInletTemperature 1*real always Uniform liquid inlet temperature [K].
kharon_ov_vaporInletTemperature 1*real nPhases = 2 Uniform vapor inlet temperature [K].
kharon_ov_liquidInletVolumeFraction 1*real always Uniform liquid inlet volume fraction [-].
kharon_ov_vaporInletVolumeFraction 1*real nPhases = 2 Uniform vapor inlet volume fraction [-].
kharon_ov_outletPressure 1*real always Absolute (static) pressure at outlet [Pa].
kharon_ov_urfU 1*real always Velocity under-relaxation factor [-].
kharon_ov_urfP 1*real always Pressure under-relaxation factor [-].
kharon_ov_urfH 1*real always Enthalpy under-relaxation factor [-].
kharon_ov_urfI 1*real always Interphase heat transfer under-relaxation factor [-].
kharon_ov_urfW 1*real always Wall heat transfer under-relaxation factor [-].
kharon_ov_nIterMax 1*real always Number of solution (outer) iterations [-].