Boundary-condition file#

The boundary-condition file defines the boundary conditions applied by FELiCS on the computational domain boundaries.

The file is provided in JSON format and referenced in the main configuration file through BoundaryCondition.BCsFilePath.

Boundary identifiers#

Each entry of the boundary-condition file corresponds to one mesh boundary.

The dictionary keys ("1", "2", …) should match the Physical Group numbers defined in the mesh file.

For example, the following .msh section:

$PhysicalNames
6
1 1 "Inlet"
1 2 "Symmetry"
1 3 "Outlet"
1 4 "Top"
1 5 "Wall"
2 6 "all"
$EndPhysicalNames

defines:

  • boundary 1"Inlet"

  • boundary 2"Symmetry"

  • boundary 3"Outlet"

In the boundary-condition file, these identifiers are referenced through their numerical indices:

{
    "1": {...},
    "2": {...},
    "3": {...}
}

The Physical Group names ("Inlet", "Wall", …) are currently ignored by FELiCS.

Structure#

Each boundary entry contains:

  • a boundary-condition name,

  • and optionally a list of boundary-condition specifications.

General structure:

{
    "1": {
        "name": "wall"
    }
}

Supported boundary-condition types#

Name

Description

"zeroDirichlet"

Imposes homogeneous Dirichlet conditions on all variables

"wall"

Wall boundary condition

"custom"

User-defined boundary conditions

"symmetry"

Symmetry boundary condition

"none"

No boundary condition applied

Custom boundary conditions#

The "custom" and "symmetry" boundary types require a "specifics" entry defining the imposed conditions.

Each specification contains:

  • "variable": variable name,

  • "type": boundary-condition type,

  • "value": imposed value.

Type

Description

"Dirichlet"

Imposes the variable value

"Neumann"

Imposes the variable gradient

"None"

No condition applied

Example#

Below is the boundary condition file corresponding to the tutorial 2: Modal Analysis:

{
    "1": {
        "name":             "zeroDirichlet"
    },
    "2":{
        "name":             "symmetry",
        "specifics": [
        {
            "type":         "Dirichlet",
            "value":        0.0,
            "variable":     "ux"
        },
        {
            "type":         "Neumann",
            "value":        0.0,
            "variable":     "uy"
        },
        {
            "type":         "Dirichlet",
            "value":        0.0,
            "variable":     "p"
        }
        ]
    },
    "3": {
        "name":             "zeroDirichlet"
    },
    "4": {
        "name":             "zeroDirichlet"
    },
    "5":{
        "name":             "wall"
    }
}