Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix docs; Robin BC's for MLMG #2982

Merged
merged 1 commit into from
Oct 11, 2022
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 12 additions & 5 deletions Docs/sphinx_documentation/source/LinearSolvers.rst
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,8 @@ The supported BC types at the physical domain boundaries are

- :cpp:`LinOpBCType::inhomogNeumann` for inhomogeneous Neumann boundary condition.

- :cpp:`LinOpBCType::Robin` for Robin boundary conditions, :math:`a\phi + b\frac{\partial\phi}{\partial n} = f`.

- :cpp:`LinOpBCType::reflect_odd` for reflection with sign changed.

2) Cell-centered solvers only:
Expand Down Expand Up @@ -255,12 +257,12 @@ before the solve one must always call the :cpp:`MLLinOp` member function
::

virtual void setLevelBC (int amrlev, const MultiFab* levelbcdata,
const MultiFab* robinbc_a,
const MultiFab* robinbc_b,
const MultiFab* robinbc_f) = 0;
const MultiFab* robinbc_a = nullptr,
const MultiFab* robinbc_b = nullptr,
const MultiFab* robinbc_f = nullptr) = 0;

If we want to supply an inhomogeneous Dirichlet, inhomogeneous Neumann, or
Robin boundary conditions at the domain boundaries, we must supply those values
If we want to supply an inhomogeneous Dirichlet or inhomogeneous Neumann
boundary condition at the domain boundaries, we must supply those values
in ``MultiFab* levelbcdata``, which must have at least one ghost cell.
Note that the argument :cpp:`amrlev` is relative to the solve, not
necessarily the full AMR hierarchy; amrlev = 0 refers to the coarsest
Expand All @@ -286,6 +288,11 @@ Dirichlet or Neumann boundaries are assumed to be exactly on the face
of the physical domain; storing these values in the ghost cell of
a cell-centered array is a convenience of implementation.

For Robin boundary conditions, the ghost cells in
``MultiFab* robinbc_a``, ``MultiFab* robinbc_b``, and ``MultiFab* robinbc_f``
store the numerical values in the condition,
:math:`a\phi + b\frac{\partial\phi}{\partial n} = f`.

.. _sec:linearsolver:pars:

Parameters
Expand Down