Boundary conditions


1) Generalities

Boundary conditions are defined in system/boundariesDict and divided into three groups as shown below

dsmcGeneralBoundaries
(
    [...]
);

dsmcPatchBoundaries
(
    [...]
);

dsmcCyclicBoundaries
(
    [...]
);



2) Inflow & Outflow boundary conditions

Inflow & Outflow boundary conditions are set in the dsmcGeneralBoundaries() list.

2.1 Supersonic inflow

The supersonic inflow model is named dsmcFreeStreamInflowPatch and can be setup as follows

dsmcGeneralBoundaries
(
    boundary
    {
        boundaryModel   dsmcFreeStreamInflowPatch;
        
        generalBoundaryProperties
        {
            patchName   inlet;
        }

        dsmcFreeStreamInflowPatchProperties
        {
            typeIds                       (N2 O2);
            velocity                 (6053.4 0 0);
            translationalTemperature       217.63;
            rotationalTemperature          217.63;
            vibrationalTemperature         217.63;
            electronicTemperature               0;
            numberDensities
            {
                N2      2.318e18;
                O2      6.161e17;
            };
        }
    }
);

In dsmcFreeStreamInflowPatchProperties, the same species defined in A.1 Species thermophysical properties) should be recalled in the typeIds() list. As is customary, the inflow velocity, modal temperatures and number densities must be prescribed as well.

2.2 Vacuum outlet

The vacuum outlet boundary condition implementation is shown below. The boundary model is called dsmcDeletionPatch and any particle hitting this patch (whether it is an inflow or an outflow in this example) is deleted.

dsmcPatchBoundaries
(
    boundary
    {
        boundaryModel   dsmcDeletionPatch;
        
        patchBoundaryProperties
        {
            patchName   inlet;
        }

        dsmcDeletionPatchProperties
        {
            allSpecies  yes;
        }
    }

    boundary
    {
        boundaryModel   dsmcDeletionPatch;
        
        patchBoundaryProperties
        {
            patchName   outlet;
        }

        dsmcDeletionPatchProperties
        {
            allSpecies  yes;
        }
    }
);



3) Wall boundary conditions

Wall boundary conditions are set in the dsmcPatchBoundaries() list.

3.1 Specular wall

The boundary model for specular walls is dsmcSpecularWallPatch. There are no other parameters to tune.

dsmcPatchBoundaries
(
    boundary
    {
        boundaryModel   dsmcSpecularWallPatch;
        
        patchBoundaryProperties
        {
            patchName   plate;
        }
    }
);

 

3.2 Diffuse wall

The boundary model for diffuse walls is dsmcDiffuseWallPatch. The wall velocity and temperature are given in dsmcDiffuseWallPatchProperties.

dsmcPatchBoundaries
(
    boundary
    {
        boundaryModel   dsmcDiffuseWallPatch;
        
        patchBoundaryProperties
        {
            patchName   cylinder;
        }

        dsmcDiffuseWallPatchProperties
        {
            velocity      (0 0 0);
            temperature      1000;
        }
    }
);

 

3.3 Diffuse-Specular wall

The boundary model for mixed diffuse-specular wall interactions is dsmcDiffuseSpecularWallPatch. The wall velocity and temperature are given in dsmcDiffuseWallPatchProperties (see 3.2), while the fraction of wall interactions that are diffuse, diffuseFraction, is given in dsmcDiffuseSpecularWallPatchProperties. For each particle-wall interaction, a random number is drawn and compared to diffuseFraction to decide on the type of reflection to perform.

dsmcPatchBoundaries
(
    boundary
    {
        boundaryModel   dsmcDiffuseSpecularWallPatch;
        
        patchBoundaryProperties
        {
            patchName   cone;
        }

        dsmcDiffuseWallPatchProperties
        {
            velocity      (0 0 0);
            temperature      1000;
        }
        
        dsmcSpecularWallPatchProperties {}
        
        dsmcDiffuseSpecularWallPatchProperties
        {
            diffuseFraction   0.5;
        }
    }
);



4) Cyclic boundary conditions

Cyclic boundary conditions are set in the dsmcCyclicBoundaries() list.

They are defined using the dsmcReflectiveParticleMembranePatch boundary model, and that for both patches. An example is given hereafter where all Argon DSMC parcels hitting the membrane are mapped onto the corresponding cyclic patch. The species-dependent reflection probabilities can be controlled using reflectionProbabilities in the boundary model’s properties dictionary, and a value of 1 would correspond to a specular wall.

dsmcCyclicBoundaries
(
    boundary
    {
        boundaryModel   dsmcReflectiveParticleMembranePatch;
        
        cyclicBoundaryProperties
        {
            patchName   leftPatch;
        }

        dsmcReflectiveParticleMembranePatchProperties
        {
            typeIds (Ar);

            reflectionProbabilities
            {
                Ar   0;
            }
        }
     }

    boundary
    {
        boundaryModel   dsmcReflectiveParticleMembranePatch;
        
        cyclicBoundaryProperties
        {
            patchName   rightPatch;
        }

        dsmcReflectiveParticleMembranePatchProperties
        {
            typeIds (Ar);

            reflectionProbabilities
            {
                Ar   0;
            }
        }
    }
);