Chombo + EB  3.2
Macros | Functions
NodeIntegrals.H File Reference
#include "LevelData.H"
#include "NodeFArrayBox.H"
#include "Vector.H"
#include "IntVectSet.H"
#include "NamespaceHeader.H"
#include "NamespaceFooter.H"
Include dependency graph for NodeIntegrals.H:

Go to the source code of this file.

Macros

#define _NODEINTEGRALS_H_
 

Functions

Real integral (const NodeFArrayBox &a_nfab, const Real a_dx, const Box &a_subbox, const int a_startComp=0, const int a_numComp=1)
 Computes integral of a subbox of a NodeFArrayBox. More...
 
Real integral (const NodeFArrayBox &a_nfab, const Real a_dx, const int a_startComp=0, const int a_numComp=1)
 Computes integral of a NodeFArrayBox. More...
 
Real integral (const BoxLayoutData< NodeFArrayBox > &a_layout, const Real a_dx, const Interval &a_interval, bool a_verbose=true)
 Computes integral of a BoxLayoutData<NodeFArrayBox>. More...
 
Real integral (const Vector< LevelData< NodeFArrayBox > * > &a_phi, const Vector< ProblemDomain > &a_domain, const Vector< int > &a_nRefFine, const Real a_dxCrse, const Interval a_comps, const int a_lBase, bool a_verbose=true)
 Computes integral of multilevel array, counting only valid nodes at each level. More...
 
Real integral (const Vector< LevelData< NodeFArrayBox > * > &a_phi, const Vector< Box > &a_domain, const Vector< int > &a_nRefFine, const Real a_dxCrse, const Interval a_comps, const int a_lBase, bool a_verbose=true)
 Computes integral of multilevel array, counting only valid nodes at each level. More...
 
Real integral (const LevelData< NodeFArrayBox > &a_phi, const ProblemDomain &a_domain, const DisjointBoxLayout *a_finerGridsPtr, const int a_nRefFine, const Real a_dx, const Interval a_comps, bool a_verbose=true)
 Computes integral of single-level array, counting only valid nodes. More...
 
Real integral (const LevelData< NodeFArrayBox > &a_phi, const Box &a_domain, const DisjointBoxLayout *a_finerGridsPtr, const int a_nRefFine, const Real a_dx, const Interval a_comps, bool a_verbose=true)
 Computes integral of single-level array, counting only valid nodes. More...
 
Real integral (const LevelData< NodeFArrayBox > &a_phi, const ProblemDomain &a_domain, const DisjointBoxLayout &a_finerGridsCoarsened, const LayoutData< Vector< IntVectSet > > &a_IVSVext, const LayoutData< Vector< IntVectSet > > &a_IVSVintFinerCoarsened, const int a_nRefFine, const Real a_dx, const Interval a_comps, bool a_verbose=true)
 Computes integral of single-level array, counting only valid nodes. More...
 
Real integral (const LevelData< NodeFArrayBox > &a_phi, const Box &a_domain, const DisjointBoxLayout &a_finerGridsCoarsened, const LayoutData< Vector< IntVectSet > > &a_IVSVext, const LayoutData< Vector< IntVectSet > > &a_IVSVintFinerCoarsened, const int a_nRefFine, const Real a_dx, const Interval a_comps, bool a_verbose=true)
 Computes integral of single-level array, counting only valid nodes. More...
 
Real integral (const LevelData< NodeFArrayBox > &a_phi, const ProblemDomain &a_domain, const LayoutData< Vector< IntVectSet > > &a_IVSVext, const Real a_dx, const Interval a_comps, bool a_verbose=true)
 Computes integral of single-level array, counting only valid nodes, with no finer level. More...
 
Real integral (const LevelData< NodeFArrayBox > &a_phi, const Box &a_domain, const LayoutData< Vector< IntVectSet > > &a_IVSVext, const Real a_dx, const Interval a_comps, bool a_verbose=true)
 Computes integral of single-level array, counting only valid nodes, with no finer level. More...
 

Macro Definition Documentation

◆ _NODEINTEGRALS_H_

#define _NODEINTEGRALS_H_

Function Documentation

◆ integral() [1/11]

Real integral ( const NodeFArrayBox a_nfab,
const Real  a_dx,
const Box a_subbox,
const int  a_startComp = 0,
const int  a_numComp = 1 
)

Computes integral of a subbox of a NodeFArrayBox.

Computes integral of the data in a subbox of a_nfab.

Parameters
a_nfabthe data on which to take the integral
a_dxmesh spacing at this level
a_subboxCELL-centered subbox over which to take integral
a_startCompstarting component
a_numCompnumber of components

Referenced by OneDIntegrator::~OneDIntegrator().

◆ integral() [2/11]

Real integral ( const NodeFArrayBox a_nfab,
const Real  a_dx,
const int  a_startComp = 0,
const int  a_numComp = 1 
)

Computes integral of a NodeFArrayBox.

Computes integral of the data in a_nfab.

Parameters
a_nfabthe data on which to take the integral
a_dxmesh spacing at this level
a_startCompstarting component
a_numCompnumber of components

◆ integral() [3/11]

Real integral ( const BoxLayoutData< NodeFArrayBox > &  a_layout,
const Real  a_dx,
const Interval a_interval,
bool  a_verbose = true 
)

Computes integral of a BoxLayoutData<NodeFArrayBox>.

Computes integral of a_layout. Ignores ghost cells for LevelData.

This is an internal function that should NOT normally be called by the user.

Parameters
a_layoutthe data on which to take the norm
a_dxmesh spacing at this level
a_intervalinterval of components to use
a_verboseverbosity, whether to print norms of each box

◆ integral() [4/11]

Real integral ( const Vector< LevelData< NodeFArrayBox > * > &  a_phi,
const Vector< ProblemDomain > &  a_domain,
const Vector< int > &  a_nRefFine,
const Real  a_dxCrse,
const Interval  a_comps,
const int  a_lBase,
bool  a_verbose = true 
)

Computes integral of multilevel array, counting only valid nodes at each level.

Computes integral of multilevel array a_phi. Only the valid nodes at each level are counted. The valid nodes at a level are those that are not covered by the interior of any finer level.

Parameters
a_phimultilevel data on which to take the norm
a_domainCELL-centered physical domain on each level
a_nRefFinerefinement ratios between successive levels
a_dxCrsemesh spacing at base level a_lBase
a_compscomponents to use in computing norm
a_lBaseindex of base level to use in Vectors
a_verboseverbosity, whether to print norms of each box

◆ integral() [5/11]

Real integral ( const Vector< LevelData< NodeFArrayBox > * > &  a_phi,
const Vector< Box > &  a_domain,
const Vector< int > &  a_nRefFine,
const Real  a_dxCrse,
const Interval  a_comps,
const int  a_lBase,
bool  a_verbose = true 
)

Computes integral of multilevel array, counting only valid nodes at each level.

Computes integral of multilevel array a_phi. Only the valid nodes at each level are counted. The valid nodes at a level are those that are not covered by the interior of any finer level.

Parameters
a_phimultilevel data on which to take the norm
a_domainCELL-centered physical domain on each level
a_nRefFinerefinement ratios between successive levels
a_dxCrsemesh spacing at base level a_lBase
a_compscomponents to use in computing norm
a_lBaseindex of base level to use in Vectors
a_verboseverbosity, whether to print norms of each box

◆ integral() [6/11]

Real integral ( const LevelData< NodeFArrayBox > &  a_phi,
const ProblemDomain a_domain,
const DisjointBoxLayout a_finerGridsPtr,
const int  a_nRefFine,
const Real  a_dx,
const Interval  a_comps,
bool  a_verbose = true 
)

Computes integral of single-level array, counting only valid nodes.

Computes integral of single-level array a_phi. Only the valid nodes at this level are counted. The valid nodes are the interior nodes of this level that are not projections of interior nodes of the finer level, if any.

This function computes exterior boundary nodes, and interior boundary nodes of the coarsened finer level, if any. It is more efficient to precompute these boundary-node objects and call one of the other integral functions below.

Parameters
a_phithe data on which to take the norm
a_domainCELL-centered physical domain on each level
a_finerGridsPtrpointer to CELL-centered grids on the next finer level, or NULL if there is none.
a_nRefFinerefinement ratio to next finer level
a_dxmesh spacing at this level
a_compsinterval of components to use
a_verboseverbosity, whether to print norms of each box

◆ integral() [7/11]

Real integral ( const LevelData< NodeFArrayBox > &  a_phi,
const Box a_domain,
const DisjointBoxLayout a_finerGridsPtr,
const int  a_nRefFine,
const Real  a_dx,
const Interval  a_comps,
bool  a_verbose = true 
)

Computes integral of single-level array, counting only valid nodes.

Computes integral of single-level array a_phi. Only the valid nodes at this level are counted. The valid nodes are the interior nodes of this level that are not projections of interior nodes of the finer level, if any.

This function computes exterior boundary nodes, and interior boundary nodes of the coarsened finer level, if any. It is more efficient to precompute these boundary-node objects and call one of the other integral functions below.

Parameters
a_phithe data on which to take the norm
a_domainCELL-centered physical domain on each level
a_finerGridsPtrpointer to CELL-centered grids on the next finer level, or NULL if there is none.
a_nRefFinerefinement ratio to next finer level
a_dxmesh spacing at this level
a_compsinterval of components to use
a_verboseverbosity, whether to print norms of each box

◆ integral() [8/11]

Real integral ( const LevelData< NodeFArrayBox > &  a_phi,
const ProblemDomain a_domain,
const DisjointBoxLayout a_finerGridsCoarsened,
const LayoutData< Vector< IntVectSet > > &  a_IVSVext,
const LayoutData< Vector< IntVectSet > > &  a_IVSVintFinerCoarsened,
const int  a_nRefFine,
const Real  a_dx,
const Interval  a_comps,
bool  a_verbose = true 
)

Computes integral of single-level array, counting only valid nodes.

Computes integral of single-level array a_phi. Only the valid nodes at this level are counted. The valid nodes are the interior nodes of this level that are not projections of interior nodes of the finer level, if any.

The a_IVSVext argument is obtained from the calls:
interiorBoundaryNodes(IVSVint, a_phi.getBoxes(), a_domain);
exteriorBoundaryNodes(a_IVSVext, IVSVint, a_phi.getBoxes();

The a_IVSVintFinerCoarsened argument is obtained from the call:
interiorBoundaryNodes(a_IVSVintFinerCoarsened, a_phi.getBoxes(), a_finerGridsCoarsened, a_domain);

Parameters
a_phithe data on which to take the norm
a_domainCELL-centered physical domain on each level
a_finerGridsCoarsenedCELL-centered grids on the next finer level
a_IVSVextexterior boundary nodes of this level
a_IVSVintFinerCoarsenedinterior boundary nodes of coarsened finer-level grids
a_nRefFinerefinement ratio to next finer level
a_dxmesh spacing at this level
a_compsinterval of components to use
a_verboseverbosity, whether to print norms of each box

◆ integral() [9/11]

Real integral ( const LevelData< NodeFArrayBox > &  a_phi,
const Box a_domain,
const DisjointBoxLayout a_finerGridsCoarsened,
const LayoutData< Vector< IntVectSet > > &  a_IVSVext,
const LayoutData< Vector< IntVectSet > > &  a_IVSVintFinerCoarsened,
const int  a_nRefFine,
const Real  a_dx,
const Interval  a_comps,
bool  a_verbose = true 
)

Computes integral of single-level array, counting only valid nodes.

Computes integral of single-level array a_phi. Only the valid nodes at this level are counted. The valid nodes are the interior nodes of this level that are not projections of interior nodes of the finer level, if any.

The a_IVSVext argument is obtained from the calls:
interiorBoundaryNodes(IVSVint, a_phi.getBoxes(), a_domain);
exteriorBoundaryNodes(a_IVSVext, IVSVint, a_phi.getBoxes();

The a_IVSVintFinerCoarsened argument is obtained from the call:
interiorBoundaryNodes(a_IVSVintFinerCoarsened, a_phi.getBoxes(), a_finerGridsCoarsened, a_domain);

Parameters
a_phithe data on which to take the norm
a_domainCELL-centered physical domain on each level
a_finerGridsCoarsenedCELL-centered grids on the next finer level
a_IVSVextexterior boundary nodes of this level
a_IVSVintFinerCoarsenedinterior boundary nodes of coarsened finer-level grids
a_nRefFinerefinement ratio to next finer level
a_dxmesh spacing at this level
a_compsinterval of components to use
a_verboseverbosity, whether to print norms of each box

◆ integral() [10/11]

Real integral ( const LevelData< NodeFArrayBox > &  a_phi,
const ProblemDomain a_domain,
const LayoutData< Vector< IntVectSet > > &  a_IVSVext,
const Real  a_dx,
const Interval  a_comps,
bool  a_verbose = true 
)

Computes integral of single-level array, counting only valid nodes, with no finer level.

Computes integral of single-level array a_phi, where there is no finer level. Only the valid nodes at this level are counted. The valid nodes are the interior nodes of this level.

The a_IVSVext argument is obtained from the calls:
interiorBoundaryNodes(IVSVint, a_phi.getBoxes(), a_domain);
exteriorBoundaryNodes(a_IVSVext, IVSVint, a_phi.getBoxes();

Parameters
a_phithe data on which to take the norm
a_domainCELL-centered physical domain on each level
a_IVSVextexterior boundary nodes of this level
a_dxmesh spacing at this level
a_compsinterval of components to use
a_verboseverbosity, whether to print norms of each box

◆ integral() [11/11]

Real integral ( const LevelData< NodeFArrayBox > &  a_phi,
const Box a_domain,
const LayoutData< Vector< IntVectSet > > &  a_IVSVext,
const Real  a_dx,
const Interval  a_comps,
bool  a_verbose = true 
)

Computes integral of single-level array, counting only valid nodes, with no finer level.

Computes integral of single-level array a_phi, where there is no finer level. Only the valid nodes at this level are counted. The valid nodes are the interior nodes of this level.

The a_IVSVext argument is obtained from the calls:
interiorBoundaryNodes(IVSVint, a_phi.getBoxes(), a_domain);
exteriorBoundaryNodes(a_IVSVext, IVSVint, a_phi.getBoxes();

Parameters
a_phithe data on which to take the norm
a_domainCELL-centered physical domain on each level
a_IVSVextexterior boundary nodes of this level
a_dxmesh spacing at this level
a_compsinterval of components to use
a_verboseverbosity, whether to print norms of each box