From e8e0c98e344983c3b9e3aab218353f7a90a5166b Mon Sep 17 00:00:00 2001 From: Peter German Date: Fri, 29 Sep 2023 10:02:47 -0600 Subject: [PATCH] Add documentation for instructions on how to set kernels up using multiple nonlinear systems. (#25599) --- .../doc/content/source/fviks/FVDiffusionInterface.md | 4 ++++ .../doc/content/syntax/FVInterfaceKernels/index.md | 12 ++++++++++++ .../source/fviks/FVConvectionCorrelationInterface.md | 4 ++++ 3 files changed, 20 insertions(+) diff --git a/framework/doc/content/source/fviks/FVDiffusionInterface.md b/framework/doc/content/source/fviks/FVDiffusionInterface.md index 5d3140728a04..f035e49afa7d 100644 --- a/framework/doc/content/source/fviks/FVDiffusionInterface.md +++ b/framework/doc/content/source/fviks/FVDiffusionInterface.md @@ -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 diff --git a/framework/doc/content/syntax/FVInterfaceKernels/index.md b/framework/doc/content/syntax/FVInterfaceKernels/index.md index 552f85568bcf..cbf17b215de7 100644 --- a/framework/doc/content/syntax/FVInterfaceKernels/index.md +++ b/framework/doc/content/syntax/FVInterfaceKernels/index.md @@ -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), @@ -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! diff --git a/modules/navier_stokes/doc/content/source/fviks/FVConvectionCorrelationInterface.md b/modules/navier_stokes/doc/content/source/fviks/FVConvectionCorrelationInterface.md index 37e10570846c..50071e380b2b 100644 --- a/modules/navier_stokes/doc/content/source/fviks/FVConvectionCorrelationInterface.md +++ b/modules/navier_stokes/doc/content/source/fviks/FVConvectionCorrelationInterface.md @@ -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