/*--------------------------------*- C++ -*----------------------------------*\
| =========                 |                                                 |
| \\      /  F ield         | OpenFOAM: The Open Source CFD Toolbox           |
|  \\    /   O peration     | Version:  8                                     |
|   \\  /    A nd           | Web:      www.OpenFOAM.org                      |
|    \\/     M anipulation  |                                                 |
\*---------------------------------------------------------------------------*/
FoamFile
{
    version     2.0;
    format      ascii;
    class       dictionary;
    location    "";
    object      regionWallBoundaryConditionsDict;
}
// * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //

//directory of include files
//  Below include 3 files are createed at next below directory.
//  If its directory does not exist, its directory is created.
//  - variableSetting
//  - boundaryConditionsFluid
//  - boundaryConditionsSold
//
includeDir      "${FOAM_CASE}/include";


// variable setting
variableSetting
{
    iniTemp         300;
    iniVelocity     (0 0 0);
    zeroVelocity    (0 0 0);
    iniPress        100000;
    turbEpsilon     0.01;
    turbK           0.1;
    turbOmega       10;
}


//internal fields setting for variableName
//  If field does not exist in region, is not apply, so is not change.
//  And if internalField type is nonuniform, should not be applied.
//
// example:
//      U           iniVelocity;
//
//  InternalField of U is set 'internalField uniform $iniVelocity;'.
//
internalFields
{
    fluidRegions
    {
        U           iniVelocity;
        epsilon     turbEpsilon;
        k           turbK;
        omega       turbOmega;
        p           iniPress;
        //p_rgh       0;
    }
    solidRegions
    {
        p           iniPress;
    }
}


//boundary conditions of walls between regions
//  If the field does not exist in region, its boundary condition is not changed.
//
regionWallBoundaryConditions
{
    fluidRegions
    {
        T
        {
            type compressible::turbulentTemperatureCoupledBaffleMixed;
            neighbourFieldName T;
            kappa kappa;
            Tnbr T;
            value uniform $iniTemp;
        }

        U
        {
            type noSlip;
        }

        alphat
        {
            type compressible::alphatWallFunction;
            value uniform 0;
        }

        epsilon
        {
            type compressible::epsilonWallFunction;
            value uniform $turbEpsilon;
        }

        k
        {
            type kqRWallFunction;
            value uniform $turbK;
        }

        nut
        {
            type nutkWallFunction;
            value uniform 0;
        }

        omega
        {
            type omegaWallFunction;
            value uniform $turbOmega;
        }

        p
        {
            type calculated;
            value uniform $iniPress;
        }

        p_rgh
        {
            type fixedFluxPressure;
            value uniform 0;
            gradient uniform 0;
        }

    }
    solidRegions
    {
        T
        {
            type compressible::turbulentTemperatureCoupledBaffleMixed;
            value uniform $iniTemp;
            Tnbr T;
            kappa kappa;
        }

        p
        {
            type calculated;
            value uniform $iniPress;
        }

    }
}

//special setting
//  If you want to set the special boundaryCondition to special region wall,
//  you can get it using wild card of patch name from below setting.
//
//  This setting is that heat flux does not flow between *Solid and topAir.
//
//"topAir_to_.*.Solid"
//{
//    fluidRegions
//    {
//        T
//        {
//            type zeroGradient;
//        }
//    }
//}
//".*.Solid_to_topAir"
//{
//    solidRegions
//    {
//        T
//        {
//            type zeroGradient;
//        }
//    }
//}

// ************************************************************************* //
