Difference between revisions of "Kharon input manual"
Ville Hovi (talk | contribs) (→Input fields) |
(Restore changes) |
||
(54 intermediate revisions by 4 users not shown) | |||
Line 8: | Line 8: | ||
*All keywords, operators, and data entries must be separated by one or more spaces or line changes, since they are regarded as words. | *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 == | == Input groups == | ||
Line 14: | 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 25: | 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 31: | 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 37: | 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 61: | 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| | + | | {{fontcolor|dBub|green}}<span id="dBub"></span> |
− | | 1* | + | | 1*real |
− | | 0 | + | | positive real |
− | | | + | | 1.5e-3 |
− | | | + | | 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| | + | | {{fontcolor|writeFields|green}}<span id="writeFields"></span> |
− | | 1*integer | + | | 1*integer |
− | | 0 = | + | | 0 = do not write or 1 = write |
| 0 | | 0 | ||
− | | | + | | 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 | + | | Write format for OpenFOAM fields. |
|- | |- | ||
− | | {{fontcolor|materialProperties|green}} | + | | {{fontcolor|materialProperties|green}}<span id="materialProperties"></span> |
| 1*word | | 1*word | ||
| libTable, libFluid | | libTable, libFluid | ||
Line 85: | 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 102: | Line 107: | ||
urfH 0.9 | urfH 0.9 | ||
gravity -9.81 | gravity -9.81 | ||
− | + | dBub 1.5e-3 | |
− | + | vofLimit 1.0e-3 | |
+ | writeFields 0 | ||
writeFormat ascii | writeFormat ascii | ||
materialProperties libTable | materialProperties libTable | ||
Line 109: | 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 121: | 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 140: | 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 159: | 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 178: | 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| | + | | {{fontcolor|totalMassFlowRate|red}}<span id="totalMassFlowRate"></span> |
| 1*real | | 1*real | ||
| [0, <math> \infty </math>) | | [0, <math> \infty </math>) | ||
Line 199: | 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 237: | 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 247: | 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 281: | 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 292: | 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 298: | 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 304: | 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 310: | 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 316: | 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 322: | 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 328: | 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 [ | + | | Porosity, fluid fraction of total volume [-]. |
|} | |} | ||
Line 364: | 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 374: | 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 401: | 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 471: | 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 564: | Line 570: | ||
<equation id="eqn:HydraulicDiameter"> | <equation id="eqn:HydraulicDiameter"> | ||
{{NumBlk|:|<math> | {{NumBlk|:|<math> | ||
− | D_{\text{h}} = \frac{4 A_{\text{ | + | 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 \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} | = \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} | ||
Line 574: | Line 580: | ||
<equation id="eqn:ThermalDiameter"> | <equation id="eqn:ThermalDiameter"> | ||
{{NumBlk|:|<math> | {{NumBlk|:|<math> | ||
− | D_{\text{t}} = \frac{4 A_{\text{ | + | D_{\text{t}} = \frac{4 A_{\text{fluid}}}{P_{\text{h}}} |
− | = \frac{4 \varepsilon A_{\text{assembly}}} {P_{\text{ | + | = \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 598: | 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 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 606: | Line 612: | ||
!Description | !Description | ||
|- | |- | ||
− | | {{fontcolor| | + | | {{fontcolor|kharon_if_wallTemperature|black}} |
| nPins*nCells*real | | nPins*nCells*real | ||
| thermalBC = wallTemperature | | thermalBC = wallTemperature | ||
| Cladding temperature [K]. | | Cladding temperature [K]. | ||
|- | |- | ||
− | | {{fontcolor| | + | | {{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| | + | | {{fontcolor|kharon_if_power|black}} |
| nPins*nCells*real | | nPins*nCells*real | ||
| thermalBC = power | | thermalBC = power | ||
Line 622: | Line 628: | ||
|} | |} | ||
− | + | == 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''. | |
− | == | + | {|class="wikitable" style="text-align: left;" |
+ | !Variable name | ||
+ | !Size and type | ||
+ | !Availability | ||
+ | !Description | ||
+ | |- | ||
+ | | {{fontcolor|kharon_of_coolantDensity|black}} | ||
+ | | nCells*real | ||
+ | | always | ||
+ | | Volume averaged mixture density [kg/m<sup>3</sup>]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_of_coolantTemperature|black}} | ||
+ | | nCells*real | ||
+ | | always | ||
+ | | Volume averaged mixture temperature [K]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_of_massAveragedCoolantTemperature|black}} | ||
+ | | nCells*real | ||
+ | | always | ||
+ | | Mass averaged mixture temperature [K]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_of_saturationTemperature|black}} | ||
+ | | nCells*real | ||
+ | | always | ||
+ | | Saturation temperature [K]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_of_heatFlux|black}} | ||
+ | | nPins*nCells*real | ||
+ | | thermalBC = wallTemperature | ||
+ | | Cladding surface heat flux [W/m<sup>2</sup>]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_of_power|black}} | ||
+ | | nPins*nCells*real | ||
+ | | thermalBC = wallTemperature | ||
+ | | Heat transfer rate to coolant [W]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_of_wallTemperature|black}} | ||
+ | | nPins*nCells*real | ||
+ | | thermalBC = heatFlux or power | ||
+ | | Cladding temperature [K]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_of_voidFraction|black}} | ||
+ | | nCells*real | ||
+ | | nPhases = 2 | ||
+ | | Void fraction (vapor volume fraction) [-]. | ||
+ | |} | ||
== 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 638: | Line 689: | ||
!Description | !Description | ||
|- | |- | ||
− | | {{fontcolor| | + | | {{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| | + | | {{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| | + | | {{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| | + | | {{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| | + | | {{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| | + | | {{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| | + | | {{fontcolor|kharon_iv_liquidInletTemperature|black}} |
| 1*real | | 1*real | ||
| always | | always | ||
| Uniform liquid inlet temperature [K]. | | Uniform liquid inlet temperature [K]. | ||
|- | |- | ||
− | | {{fontcolor| | + | | {{fontcolor|kharon_iv_vaporInletTemperature|black}} |
| 1*real | | 1*real | ||
| nPhases = 2 | | nPhases = 2 | ||
| Uniform vapor inlet temperature [K]. | | Uniform vapor inlet temperature [K]. | ||
|- | |- | ||
− | | {{fontcolor| | + | | {{fontcolor|kharon_iv_liquidInletVolumeFraction|black}} |
| 1*real | | 1*real | ||
| always | | always | ||
| Uniform liquid inlet volume fraction [-]. | | Uniform liquid inlet volume fraction [-]. | ||
|- | |- | ||
− | | {{fontcolor| | + | | {{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 [-]. | ||
|} | |} | ||
− | |||
− | |||
− | |||
== 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 702: | Line 785: | ||
!Description | !Description | ||
|- | |- | ||
− | | {{fontcolor| | + | | {{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| | + | | {{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| | + | | {{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| | + | | {{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| | + | | {{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| | + | | {{fontcolor|kharon_ov_averageInletDensity|black}} |
+ | | 1*real | ||
+ | | always | ||
+ | | Area averaged inlet density (over assemblies and phases) [kg/m<sup>3</sup>]. | ||
+ | |- | ||
+ | | {{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| | + | | {{fontcolor|kharon_ov_maxWallTemperature|black}} |
| 1*real | | 1*real | ||
| always | | always | ||
| Maximum cladding temperature [K]. | | Maximum cladding temperature [K]. | ||
|- | |- | ||
− | | {{fontcolor| | + | | {{fontcolor|kharon_ov_maxWallSuperHeat|black}} |
| 1*real | | 1*real | ||
| always | | always | ||
| Maximum cladding super heat [K]. | | Maximum cladding super heat [K]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_ov_continuityError|black}} | ||
+ | | 1*real | ||
+ | | always | ||
+ | | Continuity error [kg/m<sup>3</sup>s]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_ov_residualMomentum|black}} | ||
+ | | 1*real | ||
+ | | always | ||
+ | | Scaled initial residual of momentum equations [-]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_ov_residualEnthalpy|black}} | ||
+ | | 1*real | ||
+ | | always | ||
+ | | Scaled initial residual of enthalpy equations [-]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_ov_inletPressure|black}} | ||
+ | | 1*real | ||
+ | | inlet type = pressureInlet | ||
+ | | Uniform (static) inlet pressure [Pa]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_ov_totalMassFlowRate|black}} | ||
+ | | 1*real | ||
+ | | inlet type = totalMassFlowInlet | ||
+ | | Total mass flow rate [kg/s]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_ov_liquidInletVelocity|black}} | ||
+ | | 1*real | ||
+ | | inlet type = velocityInlet | ||
+ | | Uniform liquid inlet velocity [m/s]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_ov_vaporInletVelocity|black}} | ||
+ | | 1*real | ||
+ | | inlet type = velocityInlet, nPhases = 2 | ||
+ | | Uniform vapor inlet velocity [m/s]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_ov_liquidMassFlowRate|black}} | ||
+ | | 1*real | ||
+ | | inlet type = massFlowInlet | ||
+ | | Uniform liquid inlet mass flow rate per assembly [kg/s]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_ov_vaporMassFlowRate|black}} | ||
+ | | 1*real | ||
+ | | inlet type = massFlowInlet, nPhases = 2 | ||
+ | | Uniform vapor inlet mass flow rate per assembly [kg/s]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_ov_liquidInletTemperature|black}} | ||
+ | | 1*real | ||
+ | | always | ||
+ | | Uniform liquid inlet temperature [K]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_ov_vaporInletTemperature|black}} | ||
+ | | 1*real | ||
+ | | nPhases = 2 | ||
+ | | Uniform vapor inlet temperature [K]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_ov_liquidInletVolumeFraction|black}} | ||
+ | | 1*real | ||
+ | | always | ||
+ | | Uniform liquid inlet volume fraction [-]. | ||
+ | |- | ||
+ | | {{fontcolor|kharon_ov_vaporInletVolumeFraction|black}} | ||
+ | | 1*real | ||
+ | | nPhases = 2 | ||
+ | | 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 [-]. | ||
|} | |} | ||
− | + | [[Category:Kharon]] | |
− |
Latest revision as of 08:22, 8 October 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.
Contents
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 | (![]() ![]() |
-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, ![]() |
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, ![]() |
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, ![]() |
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, ![]() |
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, ![]() |
Absolute (static) pressure at inlet [Pa]. |
temperature | nPhases*real | [0, ![]() |
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, ![]() |
Absolute (static) pressure at outlet [Pa]. |
temperature | nPhases*real | [0, ![]() |
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, ![]() |
Number of cells along the height of the fuel assembly. | |
nPins | 1*integer | [1, ![]() |
1 | Number of fuel pins for heat transfer / temperature solution. |
bottomElevation | 1*real | (![]() ![]() |
Elevation of the assembly inlet (z-coordinate) [m]. Used for post-processing. | |
cellHeight | nCells*real | (0, ![]() |
Cell height [m]. | |
hydraulicDiameter | nCells*real | (0, ![]() |
Hydraulic diameter [m]. | |
thermalDiameter | nPins*nCells*real | (0, ![]() |
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, ![]() |
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

Porosity, [-], 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:
-
(1)
-
(2)
-
(3)
where:
cross-sectional area of the assembly [m2], cross-sectional area available for fluid flow [m2], cross-sectional area of control rod guide tubes [m2], cross-sectional area of fuel rods [m2], control rod guide tube outer diameter [m], fuel rod outer diameter [m] and assembly pitch [m].
Hydraulic diameter for the cross-section in Figure 1 can be calculated from:
-
(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:
-
(5)
where:
hydraulic diameter [m], thermal diameter [m], heated perimeter [m] and 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 [-]. |