KokkosLinearFVFunctorNeumannBC

This object provides prescribed outward normal gradient data for Kokkos linear finite volume kernels. The outward normal gradient is supplied through a KokkosParsedFunction via the "functor" parameter.

The primitive relation supplied by this BC is

where is the prescribed outward normal gradient. Kernels apply their own physics coefficients when consuming this relation; for example, a diffusion kernel multiplies by its diffusion coefficient and face area. This BC therefore prescribes a normal gradient, not a total diffusive flux.

For kernels that need a boundary value, this object also supplies the orthogonal extrapolation

where is the cell value and is the cell-center-to-face-center distance.

Example Syntax

[LinearFVBCs<<<{"href": "../../../syntax/LinearFVBCs/index.html"}>>>]
  [dirichlet_lr]
    type = KokkosLinearFVFunctorDirichletBC<<<{"description": "Kokkos LinearFV Dirichlet boundary condition.", "href": "KokkosLinearFVFunctorDirichletBC.html"}>>>
    variable<<<{"description": "The name of the variable this boundary condition supplies data for"}>>> = u
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'left right'
    functor<<<{"description": "The boundary-value functor."}>>> = analytic_solution_kokkos
  []
  [neumann_bottom]
    type = KokkosLinearFVFunctorNeumannBC<<<{"description": "Kokkos LinearFV Neumann boundary condition.", "href": "KokkosLinearFVFunctorNeumannBC.html"}>>>
    variable<<<{"description": "The name of the variable this boundary condition supplies data for"}>>> = u
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'bottom'
    functor<<<{"description": "The prescribed outward normal gradient functor on the boundary."}>>> = neumann_bottom_gradient
  []
  [neumann_top]
    type = KokkosLinearFVFunctorNeumannBC<<<{"description": "Kokkos LinearFV Neumann boundary condition.", "href": "KokkosLinearFVFunctorNeumannBC.html"}>>>
    variable<<<{"description": "The name of the variable this boundary condition supplies data for"}>>> = u
    boundary<<<{"description": "The list of boundary IDs from the mesh where this object applies"}>>> = 'top'
    functor<<<{"description": "The prescribed outward normal gradient functor on the boundary."}>>> = neumann_top_gradient
  []
[]
(test/tests/kokkos/linearfvkernels/diffusion/kokkos_diffusion-2d-neumann.i)

Input Parameters

  • boundaryThe list of boundary IDs from the mesh where this object applies

    C++ Type:std::vector<BoundaryName>

    Controllable:No

    Description:The list of boundary IDs from the mesh where this object applies

  • functorThe prescribed outward normal gradient functor on the boundary.

    C++ Type:FunctionName

    Unit:(no unit assumed)

    Controllable:No

    Description:The prescribed outward normal gradient functor on the boundary.

  • variableThe name of the variable this boundary condition supplies data for

    C++ Type:LinearVariableName

    Unit:(no unit assumed)

    Controllable:No

    Description:The name of the variable this boundary condition supplies data for

Required Parameters

  • control_tagsAdds user-defined labels for accessing object parameters via control logic.

    C++ Type:std::vector<std::string>

    Controllable:No

    Description:Adds user-defined labels for accessing object parameters via control logic.

  • enableTrueSet the enabled status of the MooseObject.

    Default:True

    C++ Type:bool

    Controllable:Yes

    Description:Set the enabled status of the MooseObject.

  • implicitTrueDetermines whether this object is calculated using an implicit or explicit form

    Default:True

    C++ Type:bool

    Controllable:No

    Description:Determines whether this object is calculated using an implicit or explicit form

Advanced Parameters

Input Files