Skip to content

implicitGapContactFvPatchVectorField

Description

The implicitGapContact boundary condition is an extension of the standard gapContact BC, introducing an implicit treatment for better stability and convergence. This BC was originally developed to solve complex multi-body contact problems, such as pellet-to-pellet interaction in nuclear fuel rods.

Note

A gapGasModel is required for this boundary condition to function properly.

Warning

This boundary condition assumes that the same boundary condition is applied to a pair of regionCoupledOFFBEAT patches, coupled using the AMI (Arbitrary Mesh Interface) mapping algorithm. It is strongly suggested to assign the owner role to the smaller surface, e.g., the fuelOuter surface in most cases.

The normal traction is treated implicitly. When no penetration is detected, the boundary condition behaves as a standard tractionDisplacement and applies the gap pressure. If penetration occurs, a contact pressure proportional to the penetration depth is applied. The penalty factor is calculated similarly to the gapContact BC, but the resulting traction vector is partly treated implicitly.

The tangential traction is treated semi-implicitly up to the maximum friction limit defined by the friction coefficient times the normal pressure. Also the friction penalty factor is calculated similarly to the gapContact BC. The resulting tangent traction vector is partly treated implicitly (scaled by the frictionToStick ratio).

Augmented Lagrangian Method: To minimize penetration further, an augmented Lagrangian-like approach is available. This method gradually increases the penalty factor over iterations until the penetration falls below a user-defined tolerance. This approach allows smoother convergence, but smaller initial penalty values should be used.


Options

The implicitGapContact fvPatchField can be specified in the boundaryField subdictionary of the displacement field.

Parameters in the patch subdictionary for implicitGapContact:

patchType Specifies the patch field type. Must be set to regionCoupledOFFBEAT.
penaltyFactor Penalty scale factor for normal pressure. Default: 1. Typical values: 0.01 to 1.
penaltyFactorFriction Penalty scale factor for frictional forces. Default: 1. Typical values: 0.01 to 1.
frictionCoefficient Coefficient of friction between surfaces. Default: 0.
method Algorithm for penalty factor adjustment. Either implicitPenalty (default penalty-based approach) or augmentedLagrangian.
relativePenetrationTolerance Penetration threshold for the augmented Lagrangian method, defined as a fraction of the cell depth. Set to SMALL by default. Te maximum between relative and absolute tolerance is used.
absolutePenetrationTolerance Penetration threshold for the augmented Lagrangian method, defined as an absolute value in m. Set to SMALL by default. Te maximum between relative and absolute tolerance is used.
relax Relaxation factor for implicit contributions. Default: 1. Typical values: 0.01 to 1.
glued Treats patches as glued. Default: off.
value Initial displacement field value.


Usage

To use the implicitGapContact boundary condition, define it in the patch subdictionary inside the boundaryField subdictionary.

Example configuration:

"fuelOuter|claddingInner"
{
    type            implicitGapContact;
    patchType       regionCoupledOFFBEAT;

    glued off;

    // Alternative method
    // method augmentedLagrangian;
    // relativePenetrationTolerance 0.001;
    // absolutePenetrationTolerance 1e-7;

    penaltyFactor           0.1;
    penaltyFactorFriction   0.001;
    penaltyFactorDashpot    0.0;

    frictionCoefficient     0.1;

    relax 0.1;

    value           $internalField;
}