Skip to content

Commit

Permalink
Add documentation for instructions on how to set kernels up using mul…
Browse files Browse the repository at this point in the history
…tiple nonlinear systems. (#25599)
  • Loading branch information
grmnptr committed Sep 29, 2023
1 parent 275e912 commit e8e0c98
Show file tree
Hide file tree
Showing 3 changed files with 20 additions and 0 deletions.
4 changes: 4 additions & 0 deletions framework/doc/content/source/fviks/FVDiffusionInterface.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@
The diffusive flux is obtained from a two point gradient, and the diffusivity is
interpolated to the interface.

!alert note
This kernel supports interfaces between variables which belong to different nonlinear systems.
For instructions on how to set these cases up, visit the [FVInterfaceKernels syntax page](syntax/FVInterfaceKernels/index.md).

## Example input file syntax

In this example, two diffusion problems with a source terms are solved on each side
Expand Down
12 changes: 12 additions & 0 deletions framework/doc/content/syntax/FVInterfaceKernels/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ side. So making use of the `subdomain` parameters, we provide a protected method
called `elemIsOne()` that returns a boolean indicating whether the
`FaceInfo::elem` side of the interface corresponds to the `subdomain1` side of
the interface. This allows the developer to write code like the following:

```
FVFooInterface::FVFooInterface(const InputParameters & params)
: FVInterfaceKernel(params),
Expand All @@ -47,5 +48,16 @@ FVFooInterface::computeQpResidual()
/// Code that uses coef_elem and coef_neighbor
}
```

and have confidence that they have good data in `coef_elem` and `coef_neighbor`
and have clarity about what is happening in their code.

!alert! note
When using an FVInterfaceKernel which connects variables that belong to different nonlinear systems,
create two kernels with flipped variable and material property parameters. The reason behind this
is that the interface kernel will only contribute to the system which `variable1` belongs to.
For an example, see:

!listing /test/tests/fviks/diffusion/multisystem.i

!alert-end!
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,10 @@ with $q_s$ the surface convective heat flux, $h_{correlation}$ the heat transfer
defined by the correlation as a material property and $T_{solid/fluid}$ the temperature of the
adjacent solid and fluid.

!alert note
This kernel supports interfaces between variables which belong to different nonlinear systems.
For instructions on how to set these cases up, visit the [FVInterfaceKernels syntax page](syntax/FVInterfaceKernels/index.md).

## Example input file syntax

In this example, a cold fluid is flowing next to a centrally-heated solid region. The heat diffuses
Expand Down

0 comments on commit e8e0c98

Please sign in to comment.