Skip to content

uniform2DMultiMaterialInterface

Description

This class applies a uniform multi-material correction to the solution of the momentum balance equation in mechanicsSubSolver. However, the correction is applied only in the x-y plane. This class was created for 2D r-z simulations with a coarse axial discretization. In these cases, the full 3D correction creates convergence issues, probably because the axial gradients is not sufficiently well discretized. As the mesh is refined axially, there should not be any issue using the uniform class.


Options

The parameters for this class are to be set in the multiMaterialCorrection sub-dictionary within the mechanicsOptions subdictionary, which in turn is located within the solverDict.

Parameters in multiMaterialCorrection:

defaultWeights Parameter of the multiMaterialCorrection subdictionary; defines the fraction of the full correction applied, between 1 and 0. Applying full correction in all directions for every cell may negatively impact convergence. We recommend setting defaultWeights between 0.9 and 1 for a good balance (1 if possible).
defaultWeightsGrad Defines the fraction of the full correction applied to the gradient contribution in sigmaExp, ranging from 0 to 1. By default it is set equal to defaultWeights. Applying full correction in all directions for every cell may negatively impact convergence. We recommend setting defaultWeights between 0.9 and 1 for a good balance (1 if possible).


Usage

Here is a code snippet of the solverDict to be used for activating the uniform multi-material correction:

// It is just an example, you can select any mechanicsSolver
mechanicsSolver smallStrain;

// Rest of the solverDict etc...

mechanicsOptions
{
    // Other options if needed

    // This is not necessary, as activating the multiMaterial correction
    // will make RhieChowCorrection false by default
    RhieChowCorrection false;    

    // The presence of this subdictionary activates the multiMaterial 
    // correction
    multiMaterialCorrection
    {
        type uniform2D;

        defaultWeights 1.0;
    }
}

// Rest of the solverDict etc...