Class for computing the required Taylor terms for doing the orthogonal extrapolation to the ghost cell position. This is used in conjuction with EBLeastSquaresMultigridInterpolator.H, and should be understood in that context only.
More...
#include <CD_CoarseInterpQuadCF.H>
|
| CoarseInterpQuadCF () noexcept |
| Default constructor. Must subsequently call the define function.
|
|
virtual | ~CoarseInterpQuadCF () noexcept |
| Destructor.
|
|
virtual void | define (const DisjointBoxLayout &a_dblFine, const ProblemDomain &a_domainCoar, const DataIndex &a_dit, const Box &a_fineGhostCells, const int a_refRat, const int a_ignoreDir) noexcept |
| Define function. Puts object in usable state. More...
|
|
virtual Real | computeFirstDeriv (const FArrayBox &a_coarPhi, const IntVect &a_ivCoar, const int a_dir, const int a_coarVar) const noexcept |
| Compute first-derivative Taylor term in direction a_dir. More...
|
|
virtual Real | computeSecondDeriv (const FArrayBox &a_coarPhi, const IntVect &a_ivCoar, const int a_dir, const int a_coarVar) const noexcept |
| Compute second-derivative Taylor term in direction a_dir. More...
|
|
virtual Real | computeMixedDeriv (const FArrayBox &a_coarPhi, const IntVect &a_ivCoar, const int a_coarVar) const noexcept |
| Compute mixed-derivative Taylor term in directions orthogonal m_ignoreDir. More...
|
|
|
enum class | FirstDerivStencil : unsigned short {
Centered2
, Backward2
, Forward2
, Backward1
,
Forward1
} |
| Simple enum for holding stencil types for the first derivative.
|
|
enum class | SecondDerivStencil : unsigned short { Centered2
, Backward1
, Forward1
} |
| Simple enum for holding stencil types for the second derivative.
|
|
enum class | MixedDerivStencil : unsigned short { Standard
, Explicit
} |
| Simple enum for holding stencil types for the mixed derivative.
|
|
Class for computing the required Taylor terms for doing the orthogonal extrapolation to the ghost cell position. This is used in conjuction with EBLeastSquaresMultigridInterpolator.H, and should be understood in that context only.
This should be defined over the fine grid. It will store stencils for computing the various required terms in the Taylor series, and the user can call various functions for getting those terms.
◆ computeFirstDeriv()
Real CoarseInterpQuadCF::computeFirstDeriv |
( |
const FArrayBox & |
a_coarPhi, |
|
|
const IntVect & |
a_ivCoar, |
|
|
const int |
a_dir, |
|
|
const int |
a_coarVar |
|
) |
| const |
|
virtualnoexcept |
Compute first-derivative Taylor term in direction a_dir.
- Parameters
-
[in] | a_coarPhi | Coarse-side phi. |
[in] | a_ivCoar | Cell where we compute. |
[in] | a_dir | Direction of derivative. Must be different from m_ignoreDir |
[in] | a_coarVar | a_dir Direction of derivative. Must be different from m_ignoreDir |
◆ computeMixedDeriv()
Real CoarseInterpQuadCF::computeMixedDeriv |
( |
const FArrayBox & |
a_coarPhi, |
|
|
const IntVect & |
a_ivCoar, |
|
|
const int |
a_coarVar |
|
) |
| const |
|
virtualnoexcept |
Compute mixed-derivative Taylor term in directions orthogonal m_ignoreDir.
- Parameters
-
[in] | a_coarPhi | Coarse-side phi. |
[in] | a_ivCoar | Cell where we compute. |
[in] | a_coarVar | a_dir Direction of derivative. Must be different from m_ignoreDir |
◆ computeSecondDeriv()
Real CoarseInterpQuadCF::computeSecondDeriv |
( |
const FArrayBox & |
a_coarPhi, |
|
|
const IntVect & |
a_ivCoar, |
|
|
const int |
a_dir, |
|
|
const int |
a_coarVar |
|
) |
| const |
|
virtualnoexcept |
Compute second-derivative Taylor term in direction a_dir.
- Parameters
-
[in] | a_coarPhi | Coarse-side phi. |
[in] | a_ivCoar | Cell where we compute. |
[in] | a_dir | Direction of derivative. Must be different from m_ignoreDir |
[in] | a_coarVar | a_dir Direction of derivative. Must be different from m_ignoreDir |
◆ define()
void CoarseInterpQuadCF::define |
( |
const DisjointBoxLayout & |
a_dblFine, |
|
|
const ProblemDomain & |
a_domainCoar, |
|
|
const DataIndex & |
a_dit, |
|
|
const Box & |
a_fineGhostCells, |
|
|
const int |
a_refRat, |
|
|
const int |
a_ignoreDir |
|
) |
| |
|
virtualnoexcept |
Define function. Puts object in usable state.
- Parameters
-
[in] | a_dblFine | Fine grids |
[in] | a_domainCoar | Coarse domain |
[in] | a_dit | Data index on the fine grid |
[in] | a_fineGhostCells | Ghost cells to interpolate (on the fine level) |
[in] | a_refRat | Refinement factor between coarse and fine |
[in] | a_ignoreDir | Coordinate to ignore when doing the interpolation. I.e., we interpolate in all coordinates except this one. |
◆ defineMixedDerivStencils()
void CoarseInterpQuadCF::defineMixedDerivStencils |
( |
| ) |
|
|
protectedvirtualnoexcept |
Compute all second-derivative stencils in the coarse grid cells.
This only needs to accurate to O(h).
◆ defineStencils()
void CoarseInterpQuadCF::defineStencils |
( |
| ) |
|
|
protectedvirtualnoexcept |
Compute all first-derivative stencils in the coarse grid cells.
- Note
- Must be accurate to O(h^2).
◆ m_stencilBox
Box CoarseInterpQuadCF::m_stencilBox |
|
protected |
Coarse-grid cells corresponding to the fine-grid ghost cells.
- Note
- This is the coarsened box of the fine-grid ghost cell layer, and is where we've defined all our stencils.
The documentation for this class was generated from the following files: