topCladRingPressureFvPatchVectorField
Description
The topCladRingPressure boundary condition is used for the top cladding
annular ring when the top cap is not explicitly modeled (often done even in
2D or 3D full rod simulations, either due to the difficulty of finding
precise cap dimensions or to save computational time).
Physically, this boundary condition ensures equilibrium by balancing the forces
acting on the annular ring at the top of the cladding tube. If one imagines to
remove the top cap, the forces acting on the remaining cladding ring (internal and
external pressures, as well as the spring force) must balance for the tube to remain
in equilibrium. The topCladRingPressure BC approximates this force distribution
as uniform across the ring surface, using the following contributions:
- Outer fluid pressure (downward force): Specified as a fixed value or a time-dependent list.
- Gap pressure (upward force): Acting on the plenum side of the gap.
- Plenum spring pressure (upward force).
Note
In the real rod, the coolant and the gap gas and plenum spring act on different surfaces: the coolant force acts on the outer top surface of the cap, while the gap gas and spring forces act on the inner bottom surface of the cap. To ensure accuracy, these pressure contributions are scaled by the ratio of the corresponding surface areas before being applied uniformly to the top cladding ring surface. For this reason, the user must provide the dimensions of the top cap (internal and external radii).
Note
This BC inherits from the parten class tractionDisplacement the possibility
of activating a plane strain approximation as well as a spring-dashpot system.
Warning
This BC must be used in combination to a plenumSpringPressure BC on another patch,
typically the fuel top most patch. In the respective dictionary for this patch,
topCapInnerPatches list must reference the patch using topCladRingPressure.
Options
The topCladRingPressure fvPatchField can be selected in the patch subdictionary
inside the boundaryField subdictionary of the displacement field.
Parameters in the patch subdictionary for topCladRingPressure:
| topCapRadius | Radius of the top cap on the fluid side (outer radius) in meters. |
| topCapPlenumRadius | Radius of the top cap on the plenum side (inner radius) in meters. |
| coolantPressureList | A time-dependent coolant pressure table. Each entry consists of a time step (using the time unit defined in solverDict) followed by the pressure value in Pa. |
| coolantPressure | Fixed coolant pressure in Pa. Used only if coolantPressureList is not provided.- tractionList - A time-dependent traction table. Each entry consists of a time step and a corresponding traction vector value in Pa.
|
Parameters in the patch subdictionary derived from tractionDisplacement:
| planeStrain | Activates the plane strain approximation for the normal stress at the boundary. When enabled, the normal strain is assumed constant across the last layer of cells. Default: false. |
| fixedSpring | Activates a fixed spring-dashpot system for additional stability. Default: false. |
| fixedSpringModulus | Spring modulus in N/m. Required when fixedSpring is set to true. |
| dashpotModulus | Dashpot modulus in N/m. Required when fixedSpring is set to true. |
| relax | Relaxation factor for gradient updates. Default: 1.0. |
| value | Initial displacement value (not stress). |
Usage
To apply the topCladRingPressure boundary condition to a given patch, you need
to specify its typename in the patch definition in the boundary condition file
(e.g., 0/D or 0/DD for simulations involving incremental mechanical solvers).
Example 1: Applying topCladRingPressure to the cladTop patch
cladTop
{
type topCladRingPressure;
topCapRadius 0.00525;
topCapPlenumRadius 0.0045;
// Fixed coolant pressure if coolantPressureList is not provided
// coolantPressure 1e5;
coolantPressureList
{
type table;
// Use "file" or directly provide "values"
file "$FOAM_CASE/constant/lists/topCladdingRingPressureCoolantList";
// Optional: values can be provided directly
// values
// (
// (0.0 1e5)
// (100.0 1e6)
// );
format foam; // Optional data format
outOfBounds clamp; // Optional handling for out-of-bounds values
interpolationScheme linear; // Optional interpolation method
}
// Activate plane strain approximation (default is false)
planeStrain false;
// Relaxation factor
relax 1.0;
// Initial displacement value
value $internalField;
}
// Accompanying `plenumSpringPressure` BC definition for `fuelTop` patch
fuelTop
{
type plenumSpringPressure;
springModulus 1e4;
initialSpringLoading 0;
fuelTopPatches (fuelTop);
topCapInnerPatches (cladTop);
// Activate plane strain approximation (default is false)
planeStrain false;
// Relaxation factor
relax 1.0;
// Initial displacement value
value $internalField;
}