Class for computing the required Taylor terms for doing the orthogonal extrapolation to the ghost cell position. This is used in conjunction 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.
|
| |
|
| CoarseInterpQuadCF (const CoarseInterpQuadCF &)=delete |
| | Copy constructor — deleted.
|
| |
|
CoarseInterpQuadCF & | operator= (const CoarseInterpQuadCF &)=delete |
| | Copy assignment — deleted.
|
| |
|
| CoarseInterpQuadCF (CoarseInterpQuadCF &&)=default |
| | Move constructor.
|
| |
| CoarseInterpQuadCF & | operator= (CoarseInterpQuadCF &&) noexcept=default |
| | Move assignment.
|
| |
| virtual void | define (const DisjointBoxLayout &a_dblFine, const ProblemDomain &a_domainCoar, const DataIndex &a_dit, const Box &a_fineGhostCells, int a_refRat, int a_ignoreDir) noexcept |
| | Define function. Puts object in usable state.
|
| |
| virtual Real | computeFirstDeriv (const FArrayBox &a_coarPhi, const IntVect &a_ivCoar, int a_dir, int a_coarVar) const noexcept |
| | Compute first-derivative Taylor term in direction a_dir.
|
| |
| virtual Real | computeSecondDeriv (const FArrayBox &a_coarPhi, const IntVect &a_ivCoar, int a_dir, int a_coarVar) const noexcept |
| | Compute second-derivative Taylor term in direction a_dir.
|
| |
| virtual Real | computeMixedDeriv (const FArrayBox &a_coarPhi, const IntVect &a_ivCoar, int a_coarVar) const noexcept |
| | Compute mixed-derivative Taylor term in directions orthogonal m_ignoreDir.
|
| |
| virtual DerivStencil | getFirstDerivStencil (const IntVect &a_ivCoar, int a_dir) const noexcept |
| | Get the first derivative stencil for the input coarse vof.
|
| |
| virtual DerivStencil | getSecondDerivStencil (const IntVect &a_ivCoar, int a_dir) const noexcept |
| | Get the second derivative stencil for the input coarse vof.
|
| |
| virtual DerivStencil | getMixedDerivStencil (const IntVect &a_ivCoar) const noexcept |
| | Get the second derivative stencil for the input coarse vof.
|
| |
|
| enum class | FirstDerivStencil : unsigned short {
None
, Centered2
, Backward2
, Forward2
,
Backward1
, Forward1
} |
| | Simple enum for holding stencil types for the first derivative.
|
| |
| enum class | SecondDerivStencil : unsigned short { None
, 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.
|
| |
|
| virtual void | defineStencils () noexcept |
| | Compute all first-derivative stencils in the coarse grid cells.
|
| |
| virtual void | defineMixedDerivStencils () noexcept |
| | Compute all second-derivative stencils in the coarse grid cells.
|
| |
|
|
bool | m_isDefined |
| | Is defined or not.
|
| |
|
DisjointBoxLayout | m_dblFine |
| | Fine grids.
|
| |
|
ProblemDomain | m_domainCoar |
| | Coarse domain.
|
| |
|
DataIndex | m_dit |
| | Data index in the fine grid.
|
| |
|
int | m_ignoreDir |
| | Interpolation direction to ignore.
|
| |
|
int | m_tanDir1 |
| | One tangential direction.
|
| |
|
int | m_tanDir2 |
| | One tangential direction.
|
| |
|
int | m_refRat |
| | Refinement factor to coarse.
|
| |
| Box | m_stencilBox |
| | Coarse-grid cells corresponding to the fine-grid ghost cells.
|
| |
|
BaseFab< FirstDerivStencil > | m_firstDerivStencils [SpaceDim] |
| | Stencil types for first derivative.
|
| |
|
BaseFab< SecondDerivStencil > | m_secondDerivStencils [SpaceDim] |
| | Second-derivative stencils (in all directions except m_dir)
|
| |
|
BaseFab< MixedDerivStencil > | m_mixedDerivStencils |
| | Identifier for whether or not we should use a standard or explicit mixed derivative stencil.
|
| |
|
BaseFab< DerivStencil > | m_explicitMixedDerivStencils |
| | Mixed-derivative stencil. Only defined in 3D.
|
| |
Class for computing the required Taylor terms for doing the orthogonal extrapolation to the ghost cell position. This is used in conjunction 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. For the record, all stencils in this object assumes that dx = 1, so the user have to normalize against his/her grid resolutions later.
◆ computeFirstDeriv()
| Real CoarseInterpQuadCF::computeFirstDeriv |
( |
const FArrayBox & |
a_coarPhi, |
|
|
const IntVect & |
a_ivCoar, |
|
|
int |
a_dir, |
|
|
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 |
- Returns
- Computed first deriv
◆ computeMixedDeriv()
| Real CoarseInterpQuadCF::computeMixedDeriv |
( |
const FArrayBox & |
a_coarPhi, |
|
|
const IntVect & |
a_ivCoar, |
|
|
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 |
- Returns
- Computed mixed deriv
◆ computeSecondDeriv()
| Real CoarseInterpQuadCF::computeSecondDeriv |
( |
const FArrayBox & |
a_coarPhi, |
|
|
const IntVect & |
a_ivCoar, |
|
|
int |
a_dir, |
|
|
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 |
- Returns
- Computed second deriv
◆ define()
| void CoarseInterpQuadCF::define |
( |
const DisjointBoxLayout & |
a_dblFine, |
|
|
const ProblemDomain & |
a_domainCoar, |
|
|
const DataIndex & |
a_dit, |
|
|
const Box & |
a_fineGhostCells, |
|
|
int |
a_refRat, |
|
|
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).
◆ getFirstDerivStencil()
| DerivStencil CoarseInterpQuadCF::getFirstDerivStencil |
( |
const IntVect & |
a_ivCoar, |
|
|
int |
a_dir |
|
) |
| const |
|
virtualnoexcept |
Get the first derivative stencil for the input coarse vof.
This will construct the stencil for representing the derivative on the coarse cell center and return it. Useful when explicit stencil storage is required.
- Parameters
-
| [in] | a_ivCoar | Coarse-grid cell index (i.e., the one underneath the fine-grid ghost) |
| [in] | a_dir | Direction of derivative. |
- Returns
- First deriv stencil
◆ getMixedDerivStencil()
| DerivStencil CoarseInterpQuadCF::getMixedDerivStencil |
( |
const IntVect & |
a_ivCoar | ) |
const |
|
virtualnoexcept |
Get the second derivative stencil for the input coarse vof.
This will construct the stencil for representing the derivative on the coarse cell center and return it. Useful when explicit stencil storage is required.
- Parameters
-
| [in] | a_ivCoar | Coarse-grid cell index (i.e., the one underneath the fine-grid ghost) |
- Returns
- Mixed deriv stencil
◆ getSecondDerivStencil()
| DerivStencil CoarseInterpQuadCF::getSecondDerivStencil |
( |
const IntVect & |
a_ivCoar, |
|
|
int |
a_dir |
|
) |
| const |
|
virtualnoexcept |
Get the second derivative stencil for the input coarse vof.
This will construct the stencil for representing the derivative on the coarse cell center and return it. Useful when explicit stencil storage is required.
- Parameters
-
| [in] | a_ivCoar | Coarse-grid cell index (i.e., the one underneath the fine-grid ghost) |
| [in] | a_dir | Direction of derivative. |
- Returns
- Second deriv stencil
◆ operator=()
Move assignment.
- Returns
- Reference to this object.
◆ 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: