Mushy Layer  1.0
Static Public Member Functions | List of all members
Divergence Class Reference

Class to encapsulate Divergence functions. More...

#include <Divergence.H>

Static Public Member Functions

static void levelDivergenceCC (LevelData< FArrayBox > &a_div, LevelData< FArrayBox > &a_u, LevelData< FArrayBox > *a_uCrsePtr, const Real a_dx, const int a_nRefCrse, const ProblemDomain &a_dProblem, const bool a_quadInterp)
 
static void levelDivergenceCC (LevelData< FArrayBox > &a_div, LevelData< FArrayBox > &a_u, LevelData< FArrayBox > *a_uCrsePtr, const Real a_dx, const int a_nRefCrse, const Box &a_dProblem, const bool a_quadInterp)
 
static void levelDivergenceCC (LevelData< FArrayBox > &a_div, LevelData< FArrayBox > &a_u, LevelData< FArrayBox > *a_uCrsePtr, const Real a_dx, const bool a_quadInterp, QuadCFInterp &a_cfInterp)
 
static void levelDivergenceCC (LevelData< FArrayBox > &a_div, LevelData< FArrayBox > &a_u, const Real a_dx)
 Version for a single level, assumes BCs all set.
 
static void levelDivergenceCCNew (LevelData< FArrayBox > &a_div, LevelData< FArrayBox > &a_u, LevelData< FArrayBox > *a_uCrsePtr, const Real a_dx, const bool a_quadInterp, QuadCFInterp &a_cfInterp)
 
static void compDivergenceCC (LevelData< FArrayBox > &a_div, LevelData< FArrayBox > &a_u, LevelData< FArrayBox > *a_uCrsePtr, LevelData< FArrayBox > *a_uFinePtr, const Real a_dx, const int a_nRefCrse, const int a_nRefFine, const ProblemDomain &a_dProblem, const bool a_quadInterp)
 
static void compDivergenceCC (LevelData< FArrayBox > &a_div, LevelData< FArrayBox > &a_u, LevelData< FArrayBox > *a_uCrsePtr, LevelData< FArrayBox > *a_uFinePtr, const Real a_dx, const int a_nRefCrse, const int a_nRefFine, const Box &a_dProblem, const bool a_quadInterp)
 
static void compDivergenceCC (LevelData< FArrayBox > &a_div, LevelData< FArrayBox > &a_u, LevelData< FArrayBox > *a_uCrsePtr, LevelData< FArrayBox > *a_uFinePtr, const Real a_dx, const int a_nRefFine, const int a_nRefCrse, const ProblemDomain &a_dProblem, const bool a_quadInterp, LevelFluxRegister *a_fluxRegFinePtr, QuadCFInterp &a_cfInterpCrse, QuadCFInterp &a_cfInterpFine)
 
static void compDivergenceCC (LevelData< FArrayBox > &a_div, LevelData< FArrayBox > &a_u, LevelData< FArrayBox > *a_uCrsePtr, LevelData< FArrayBox > *a_uFinePtr, const Real a_dx, const int a_nRefFine, const int a_nRefCrse, const Box &a_dProblem, const bool a_quadInterp, LevelFluxRegister *a_fluxRegFinePtr, QuadCFInterp &a_cfInterpCrse, QuadCFInterp &a_cfInterpFine)
 
static void levelDivergenceMAC (LevelData< FArrayBox > &a_div, const LevelData< FluxBox > &a_uEdge, const Real a_dx)
 
static void levelDivergenceMACMultiComp (LevelData< FArrayBox > &a_div, const LevelData< FluxBox > &a_uEdge, const Real a_dx)
 Computes divergence of fields containing multiple components. More...
 
static void simpleDivergenceMAC (FArrayBox &a_div, const FluxBox &a_uEdge, const Real a_dx)
 really basic single-fab MAC divergence
 
static void compDivergenceMAC (LevelData< FArrayBox > &a_div, LevelData< FluxBox > &a_uEdge, LevelData< FluxBox > *a_uEdgeFinePtr, const Real a_dx, const Real *a_dxFine, const int a_nRefFine, const ProblemDomain &a_dProblem)
 
static void compDivergenceMAC (LevelData< FArrayBox > &a_div, LevelData< FluxBox > &a_uEdge, LevelData< FluxBox > *a_uEdgeFinePtr, const Real a_dx, const Real *a_dxFine, const int a_nRefFine, const Box &a_dProblem)
 
static void compDivergenceMAC (LevelData< FArrayBox > &a_div, LevelData< FluxBox > &a_uEdge, LevelData< FluxBox > *a_uEdgeFinePtr, LevelFluxRegister *a_fluxRegPtr, const Real a_dx, const Real *a_dxFine, const int a_nRefine, const ProblemDomain &a_dProblem)
 
static void compDivergenceMAC (LevelData< FArrayBox > &a_div, LevelData< FluxBox > &a_uEdge, LevelData< FluxBox > *a_uEdgeFinePtr, LevelFluxRegister *a_fluxRegPtr, const Real a_dx, const Real *a_dxFine, const int a_nRefine, const Box &a_dProblem)
 

Detailed Description

Class to encapsulate Divergence functions.

Member Function Documentation

◆ compDivergenceCC() [1/4]

void Divergence::compDivergenceCC ( LevelData< FArrayBox > &  a_div,
LevelData< FArrayBox > &  a_u,
LevelData< FArrayBox > *  a_uCrsePtr,
LevelData< FArrayBox > *  a_uFinePtr,
const Real  a_dx,
const int  a_nRefCrse,
const int  a_nRefFine,
const ProblemDomain a_dProblem,
const bool  a_quadInterp 
)
static

computes cell-centered composite-operator divergence of cell-centered vector field u; uses same coarse-fine BC's as levelDivergenceCC – if uFine != NULL, also does flux-matching BC with finer level uFine, using same coarse-fine BC's as used for coarse level BC. NOTE - this expects 1 (one) ghost cell!

◆ compDivergenceCC() [2/4]

void Divergence::compDivergenceCC ( LevelData< FArrayBox > &  a_div,
LevelData< FArrayBox > &  a_u,
LevelData< FArrayBox > *  a_uCrsePtr,
LevelData< FArrayBox > *  a_uFinePtr,
const Real  a_dx,
const int  a_nRefCrse,
const int  a_nRefFine,
const Box a_dProblem,
const bool  a_quadInterp 
)
static

computes cell-centered composite-operator divergence of cell-centered vector field u; uses same coarse-fine BC's as levelDivergenceCC – if uFine != NULL, also does flux-matching BC with finer level uFine, using same coarse-fine BC's as used for coarse level BC. This (deprecated) interface uses a Box instead of a ProblemDomain

◆ compDivergenceCC() [3/4]

void Divergence::compDivergenceCC ( LevelData< FArrayBox > &  a_div,
LevelData< FArrayBox > &  a_u,
LevelData< FArrayBox > *  a_uCrsePtr,
LevelData< FArrayBox > *  a_uFinePtr,
const Real  a_dx,
const int  a_nRefFine,
const int  a_nRefCrse,
const ProblemDomain a_dProblem,
const bool  a_quadInterp,
LevelFluxRegister a_fluxRegFinePtr,
QuadCFInterp a_cfInterpCrse,
QuadCFInterp a_cfInterpFine 
)
static

computes cell-centered composite-operator divergence of cell-centered vector field u; uses same coarse-fine BC's as levelDivergenceCC – if uFine != NULL, also does flux-matching BC with finer level uFine, using same coarse-fine BC's as used for coarse level BC. In this one, pre-allocated LevelFluxRegister and QuadCFInterp objects are passed in as an argument (saves allocation inside fn.)

◆ compDivergenceCC() [4/4]

void Divergence::compDivergenceCC ( LevelData< FArrayBox > &  a_div,
LevelData< FArrayBox > &  a_u,
LevelData< FArrayBox > *  a_uCrsePtr,
LevelData< FArrayBox > *  a_uFinePtr,
const Real  a_dx,
const int  a_nRefFine,
const int  a_nRefCrse,
const Box a_dProblem,
const bool  a_quadInterp,
LevelFluxRegister a_fluxRegFinePtr,
QuadCFInterp a_cfInterpCrse,
QuadCFInterp a_cfInterpFine 
)
static

computes cell-centered composite-operator divergence of cell-centered vector field u; uses same coarse-fine BC's as levelDivergenceCC – if uFine != NULL, also does flux-matching BC with finer level uFine, using same coarse-fine BC's as used for coarse level BC. In this one, pre-allocated LevelFluxRegister and QuadCFInterp objects are passed in as an argument (saves allocation inside fn.) This (deprecated) interface uses a Box instead of a ProblemDomain.

◆ compDivergenceMAC() [1/4]

void Divergence::compDivergenceMAC ( LevelData< FArrayBox > &  a_div,
LevelData< FluxBox > &  a_uEdge,
LevelData< FluxBox > *  a_uEdgeFinePtr,
const Real  a_dx,
const Real a_dxFine,
const int  a_nRefFine,
const ProblemDomain a_dProblem 
)
static

computes composite cell-centered divergence of edge-centered vector field uEdge; if finer level data uEdgeFine exists, use flux-matching condition to compute divergence along coarse-fine interface.

◆ compDivergenceMAC() [2/4]

void Divergence::compDivergenceMAC ( LevelData< FArrayBox > &  a_div,
LevelData< FluxBox > &  a_uEdge,
LevelData< FluxBox > *  a_uEdgeFinePtr,
const Real  a_dx,
const Real a_dxFine,
const int  a_nRefFine,
const Box a_dProblem 
)
static

computes composite cell-centered divergence of edge-centered vector field uEdge; if finer level data uEdgeFine exists, use flux-matching condition to compute divergence along coarse-fine interface. This (deprecated) interface uses a Box instead of a ProblemDomain

◆ compDivergenceMAC() [3/4]

void Divergence::compDivergenceMAC ( LevelData< FArrayBox > &  a_div,
LevelData< FluxBox > &  a_uEdge,
LevelData< FluxBox > *  a_uEdgeFinePtr,
LevelFluxRegister a_fluxRegPtr,
const Real  a_dx,
const Real a_dxFine,
const int  a_nRefine,
const ProblemDomain a_dProblem 
)
static

just like normal compDivergenceMAC, but pass in a predefined flux register (more efficient)

◆ compDivergenceMAC() [4/4]

void Divergence::compDivergenceMAC ( LevelData< FArrayBox > &  a_div,
LevelData< FluxBox > &  a_uEdge,
LevelData< FluxBox > *  a_uEdgeFinePtr,
LevelFluxRegister a_fluxRegPtr,
const Real  a_dx,
const Real a_dxFine,
const int  a_nRefine,
const Box a_dProblem 
)
static

just like normal compDivergenceMAC, but pass in a predefined flux register (more efficient). This (deprecated) interface uses a Box instead of a ProblemDomain.

◆ levelDivergenceCC() [1/3]

void Divergence::levelDivergenceCC ( LevelData< FArrayBox > &  a_div,
LevelData< FArrayBox > &  a_u,
LevelData< FArrayBox > *  a_uCrsePtr,
const Real  a_dx,
const int  a_nRefCrse,
const ProblemDomain a_dProblem,
const bool  a_quadInterp 
)
static

computes cell-centered level-operator divergence of cell-centered vector field u; if uCrse != NULL, does coarse-fine boundary conditions for u – if quadInterp == true, uses quadratic coarse-fine boundary conditions, otherwise, use extrap BC's

◆ levelDivergenceCC() [2/3]

void Divergence::levelDivergenceCC ( LevelData< FArrayBox > &  a_div,
LevelData< FArrayBox > &  a_u,
LevelData< FArrayBox > *  a_uCrsePtr,
const Real  a_dx,
const int  a_nRefCrse,
const Box a_dProblem,
const bool  a_quadInterp 
)
static

computes cell-centered level-operator divergence of cell-centered vector field u; if uCrse != NULL, does coarse-fine boundary conditions for u – if quadInterp == true, uses quadratic coarse-fine boundary conditions, otherwise, use extrap BC's. This (deprecated) interface uses a Box instead of a ProblemDomain.

◆ levelDivergenceCC() [3/3]

void Divergence::levelDivergenceCC ( LevelData< FArrayBox > &  a_div,
LevelData< FArrayBox > &  a_u,
LevelData< FArrayBox > *  a_uCrsePtr,
const Real  a_dx,
const bool  a_quadInterp,
QuadCFInterp a_cfInterp 
)
static

computes cell-centered level-operator divergence of cell-centered vector field u; if uCrse != NULL, does coarse-fine boundary conditions for u – if quadInterp == true, uses quadratic coarse-fine boundary conditions, otherwise, use extrap BC's. This one takes a pre-allocated QuadCFInterp object as an argument

◆ levelDivergenceCCNew()

void Divergence::levelDivergenceCCNew ( LevelData< FArrayBox > &  a_div,
LevelData< FArrayBox > &  a_u,
LevelData< FArrayBox > *  a_uCrsePtr,
const Real  a_dx,
const bool  a_quadInterp,
QuadCFInterp a_cfInterp 
)
static

New method that uses one sided diffs everywhere for smooth error.

computes cell-centered level-operator divergence of cell-centered vector field u; if uCrse != NULL, does coarse-fine boundary conditions for u – if quadInterp == true, uses quadratic coarse-fine boundary conditions, otherwise, use extrap BC's. This one takes a pre-allocated QuadCFInterp object as an argument

◆ levelDivergenceMAC()

void Divergence::levelDivergenceMAC ( LevelData< FArrayBox > &  a_div,
const LevelData< FluxBox > &  a_uEdge,
const Real  a_dx 
)
static

computes cell-centered level-operator divergence of edge-centered vector field uEdge; assumes all coarse-fine BC's have already been set.

◆ levelDivergenceMACMultiComp()

void Divergence::levelDivergenceMACMultiComp ( LevelData< FArrayBox > &  a_div,
const LevelData< FluxBox > &  a_uEdge,
const Real  a_dx 
)
static

Computes divergence of fields containing multiple components.

&&Multi component version&& computes cell-centered level-operator divergence of edge-centered vector field uEdge; assumes all coarse-fine BC's have already been set.


The documentation for this class was generated from the following files: