Skip to content

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;
}