![]() |
Block-Structured AMR Software Framework
|
#include <AMReX_Config.H>#include <AMReX_Concepts.H>#include <AMReX_FabArray.H>#include <AMReX_LayoutData.H>#include <AMReX_Print.H>#include <AMReX_ParReduce.H>#include <limits>Go to the source code of this file.
Namespaces | |
| namespace | amrex |
Functions | |
| template<BaseFabType FAB, class F > | |
| FAB::value_type | amrex::ReduceSum (FabArray< FAB > const &fa, int nghost, F &&f) |
| template<BaseFabType FAB, class F > | |
| FAB::value_type | amrex::ReduceSum (FabArray< FAB > const &fa, IntVect const &nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, class F > | |
| FAB1::value_type | amrex::ReduceSum (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, int nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, class F > | |
| FAB1::value_type | amrex::ReduceSum (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, BaseFabType FAB3, class F > | |
| FAB1::value_type | amrex::ReduceSum (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, int nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, BaseFabType FAB3, class F > | |
| FAB1::value_type | amrex::ReduceSum (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F &&f) |
| template<BaseFabType FAB, class F > | |
| FAB::value_type | amrex::ReduceMin (FabArray< FAB > const &fa, int nghost, F &&f) |
| template<BaseFabType FAB, class F > | |
| FAB::value_type | amrex::ReduceMin (FabArray< FAB > const &fa, IntVect const &nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, class F > | |
| FAB1::value_type | amrex::ReduceMin (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, int nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, class F > | |
| FAB1::value_type | amrex::ReduceMin (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, BaseFabType FAB3, class F > | |
| FAB1::value_type | amrex::ReduceMin (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, int nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, BaseFabType FAB3, class F > | |
| FAB1::value_type | amrex::ReduceMin (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F &&f) |
| template<BaseFabType FAB, class F > | |
| FAB::value_type | amrex::ReduceMax (FabArray< FAB > const &fa, int nghost, F &&f) |
| template<BaseFabType FAB, class F > | |
| FAB::value_type | amrex::ReduceMax (FabArray< FAB > const &fa, IntVect const &nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, class F > | |
| FAB1::value_type | amrex::ReduceMax (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, int nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, class F > | |
| FAB1::value_type | amrex::ReduceMax (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, BaseFabType FAB3, class F > | |
| FAB1::value_type | amrex::ReduceMax (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, int nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, BaseFabType FAB3, class F > | |
| FAB1::value_type | amrex::ReduceMax (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F &&f) |
| template<BaseFabType FAB, class F > | |
| bool | amrex::ReduceLogicalAnd (FabArray< FAB > const &fa, int nghost, F &&f) |
| template<BaseFabType FAB, class F > | |
| bool | amrex::ReduceLogicalAnd (FabArray< FAB > const &fa, IntVect const &nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, class F > | |
| bool | amrex::ReduceLogicalAnd (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, int nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, class F > | |
| bool | amrex::ReduceLogicalAnd (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f) |
| template<BaseFabType FAB, class F > | |
| bool | amrex::ReduceLogicalOr (FabArray< FAB > const &fa, int nghost, F &&f) |
| template<BaseFabType FAB, class F > | |
| bool | amrex::ReduceLogicalOr (FabArray< FAB > const &fa, IntVect const &nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, class F > | |
| bool | amrex::ReduceLogicalOr (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, int nghost, F &&f) |
| template<BaseFabType FAB1, BaseFabType FAB2, class F > | |
| bool | amrex::ReduceLogicalOr (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f) |
| template<BaseFabType FAB> | |
| void | amrex::printCell (FabArray< FAB > const &mf, const IntVect &cell, int comp=-1, const IntVect &ng=IntVect::TheZeroVector()) |
| template<BaseFabType FAB> | |
| void | amrex::Swap (FabArray< FAB > &dst, FabArray< FAB > &src, int srccomp, int dstcomp, int numcomp, int nghost) |
| template<BaseFabType FAB> | |
| void | amrex::Swap (FabArray< FAB > &dst, FabArray< FAB > &src, int srccomp, int dstcomp, int numcomp, const IntVect &nghost) |
| template<BaseFabType FAB> | |
| void | amrex::Subtract (FabArray< FAB > &dst, FabArray< FAB > const &src, int srccomp, int dstcomp, int numcomp, int nghost) |
| template<BaseFabType FAB> | |
| void | amrex::Subtract (FabArray< FAB > &dst, FabArray< FAB > const &src, int srccomp, int dstcomp, int numcomp, const IntVect &nghost) |
| template<BaseFabType FAB> | |
| void | amrex::Multiply (FabArray< FAB > &dst, FabArray< FAB > const &src, int srccomp, int dstcomp, int numcomp, int nghost) |
| template<BaseFabType FAB> | |
| void | amrex::Multiply (FabArray< FAB > &dst, FabArray< FAB > const &src, int srccomp, int dstcomp, int numcomp, const IntVect &nghost) |
| template<BaseFabType FAB> | |
| void | amrex::Divide (FabArray< FAB > &dst, FabArray< FAB > const &src, int srccomp, int dstcomp, int numcomp, int nghost) |
| template<BaseFabType FAB> | |
| void | amrex::Divide (FabArray< FAB > &dst, FabArray< FAB > const &src, int srccomp, int dstcomp, int numcomp, const IntVect &nghost) |
| template<BaseFabType FAB> | |
| void | amrex::Abs (FabArray< FAB > &fa, int icomp, int numcomp, int nghost) |
| template<BaseFabType FAB> | |
| void | amrex::Abs (FabArray< FAB > &fa, int icomp, int numcomp, const IntVect &nghost) |
| template<BaseFabType FAB> | |
| void | amrex::prefetchToHost (FabArray< FAB > const &fa, const bool synchronous=true) |
| template<BaseFabType FAB> | |
| void | amrex::prefetchToDevice (FabArray< FAB > const &fa, const bool synchronous=true) |
| template<BaseFabType FAB, BaseFabType IFAB> | |
| void | amrex::OverrideSync (FabArray< FAB > &fa, FabArray< IFAB > const &msk, const Periodicity &period) |
| template<BaseFabType FAB, BaseFabType IFAB> | |
| void | amrex::OverrideSync_nowait (FabArray< FAB > &fa, FabArray< IFAB > const &msk, const Periodicity &period) |
| template<BaseFabType FAB> | |
| void | amrex::OverrideSync_finish (FabArray< FAB > &fa) |
| template<BaseFabType FAB> | |
| void | amrex::dtoh_memcpy (FabArray< FAB > &dst, FabArray< FAB > const &src, int scomp, int dcomp, int ncomp) |
| template<BaseFabType FAB> | |
| void | amrex::dtoh_memcpy (FabArray< FAB > &dst, FabArray< FAB > const &src) |
| template<BaseFabType FAB> | |
| void | amrex::htod_memcpy (FabArray< FAB > &dst, FabArray< FAB > const &src, int scomp, int dcomp, int ncomp) |
| template<BaseFabType FAB> | |
| void | amrex::htod_memcpy (FabArray< FAB > &dst, FabArray< FAB > const &src) |
| template<BaseFabType FAB> | |
| IntVect | amrex::indexFromValue (FabArray< FAB > const &mf, int comp, IntVect const &nghost, typename FAB::value_type value) |
| template<BaseFabType FAB> | |
| FAB::value_type | amrex::Dot (FabArray< FAB > const &x, int xcomp, FabArray< FAB > const &y, int ycomp, int ncomp, IntVect const &nghost, bool local=false) |
| Compute dot products of two FabArrays. | |
| template<BaseFabType FAB> | |
| FAB::value_type | amrex::Dot (FabArray< FAB > const &x, int xcomp, int ncomp, IntVect const &nghost, bool local=false) |
| Compute dot product of FabArray with itself. | |
| template<BaseFabType IFAB, BaseFabType FAB> | |
| FAB::value_type | amrex::Dot (FabArray< IFAB > const &mask, FabArray< FAB > const &x, int xcomp, FabArray< FAB > const &y, int ycomp, int ncomp, IntVect const &nghost, bool local=false) |
| Compute dot product of two FabArrays in region that mask is true. | |
| template<BaseFabType IFAB, BaseFabType FAB> | |
| FAB::value_type | amrex::Dot (FabArray< IFAB > const &mask, FabArray< FAB > const &x, int xcomp, int ncomp, IntVect const &nghost, bool local=false) |
| Compute dot product of FabArray with itself in region that mask is true. | |
| template<MultiFabLike MF> | |
| void | amrex::setVal (MF &dst, typename MF::value_type val) |
| dst = val | |
| template<MultiFabLike MF> | |
| void | amrex::setBndry (MF &dst, typename MF::value_type val, int scomp, int ncomp) |
| dst = val in ghost cells. | |
| template<MultiFabLike MF> | |
| void | amrex::Scale (MF &dst, typename MF::value_type val, int scomp, int ncomp, int nghost) |
| dst *= val | |
| template<MultiFabLike DMF, MultiFabLike SMF> | |
| void | amrex::LocalCopy (DMF &dst, SMF const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost) |
| dst = src | |
| template<MultiFabLike MF> | |
| void | amrex::LocalAdd (MF &dst, MF const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost) |
| dst += src | |
| template<MultiFabLike MF> | |
| void | amrex::Saxpy (MF &dst, typename MF::value_type a, MF const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost) |
| dst += a * src | |
| template<MultiFabLike MF> | |
| void | amrex::Xpay (MF &dst, typename MF::value_type a, MF const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost) |
| dst = src + a * dst | |
| template<MultiFabLike MF> | |
| void | amrex::Saxpy_Xpay (MF &dst, typename MF::value_type a_saxpy, MF const &src_saxpy, typename MF::value_type a_xpay, MF const &src_xpay, int scomp, int dcomp, int ncomp, IntVect const &nghost) |
| dst += a_saxpy * src_saxpy followed by dst = src_xpay + a_xpay * dst | |
| template<MultiFabLike MF> | |
| void | amrex::Saxpy_Saxpy (MF &dst1, typename MF::value_type a1, MF const &src1, MF &dst2, typename MF::value_type a2, MF const &src2, int scomp, int dcomp, int ncomp, IntVect const &nghost) |
| dst1 += a1 * src1 followed by dst2 += a2 * src2 | |
| template<MultiFabLike MF> | |
| void | amrex::Saypy_Saxpy (MF &dst1, typename MF::value_type a1, MF &dst2, typename MF::value_type a2, MF const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost) |
| dst1 += a1 * dst2 followed by dst2 += a2 * src | |
| template<MultiFabLike MF> | |
| void | amrex::LinComb (MF &dst, typename MF::value_type a, MF const &src_a, int acomp, typename MF::value_type b, MF const &src_b, int bcomp, int dcomp, int ncomp, IntVect const &nghost) |
| dst = a*src_a + b*src_b | |
| template<MultiFabLike MF> | |
| void | amrex::ParallelCopy (MF &dst, MF const &src, int scomp, int dcomp, int ncomp, IntVect const &ng_src=IntVect(0), IntVect const &ng_dst=IntVect(0), Periodicity const &period=Periodicity::NonPeriodic()) |
| dst = src w/ MPI communication | |
| template<MultiFabLike MF> | |
| MF::value_type | amrex::norminf (MF const &mf, int scomp, int ncomp, IntVect const &nghost, bool local=false) |
| template<MultiFabLike MF, std::size_t N> | |
| void | amrex::setVal (Array< MF, N > &dst, typename MF::value_type val) |
| dst = val | |
| template<MultiFabLike MF, std::size_t N> | |
| void | amrex::setBndry (Array< MF, N > &dst, typename MF::value_type val, int scomp, int ncomp) |
| dst = val in ghost cells. | |
| template<MultiFabLike MF, std::size_t N> | |
| void | amrex::Scale (Array< MF, N > &dst, typename MF::value_type val, int scomp, int ncomp, int nghost) |
| dst *= val | |
| template<MultiFabLike DMF, MultiFabLike SMF, std::size_t N> | |
| void | amrex::LocalCopy (Array< DMF, N > &dst, Array< SMF, N > const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost) |
| dst = src | |
| template<MultiFabLike MF, std::size_t N> | |
| void | amrex::LocalAdd (Array< MF, N > &dst, Array< MF, N > const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost) |
| dst += src | |
| template<MultiFabLike MF, std::size_t N> | |
| void | amrex::Saxpy (Array< MF, N > &dst, typename MF::value_type a, Array< MF, N > const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost) |
| dst += a * src | |
| template<MultiFabLike MF, std::size_t N> | |
| void | amrex::Xpay (Array< MF, N > &dst, typename MF::value_type a, Array< MF, N > const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost) |
| dst = src + a * dst | |
| template<MultiFabLike MF, std::size_t N> | |
| void | amrex::LinComb (Array< MF, N > &dst, typename MF::value_type a, Array< MF, N > const &src_a, int acomp, typename MF::value_type b, Array< MF, N > const &src_b, int bcomp, int dcomp, int ncomp, IntVect const &nghost) |
| dst = a*src_a + b*src_b | |
| template<MultiFabLike MF, std::size_t N> | |
| void | amrex::ParallelCopy (Array< MF, N > &dst, Array< MF, N > const &src, int scomp, int dcomp, int ncomp, IntVect const &ng_src=IntVect(0), IntVect const &ng_dst=IntVect(0), Periodicity const &period=Periodicity::NonPeriodic()) |
| dst = src w/ MPI communication | |
| template<MultiFabLike MF, std::size_t N> | |
| MF::value_type | amrex::norminf (Array< MF, N > const &mf, int scomp, int ncomp, IntVect const &nghost, bool local=false) |
| template<MultiFabLike MF, std::size_t N> requires (N > 0) | |
| int | amrex::nComp (Array< MF, N > const &mf) |
| template<MultiFabLike MF, std::size_t N> requires (N > 0) | |
| IntVect | amrex::nGrowVect (Array< MF, N > const &mf) |
| template<MultiFabLike MF, std::size_t N> requires (N > 0) | |
| BoxArray const & | amrex::boxArray (Array< MF, N > const &mf) |
| template<MultiFabLike MF, std::size_t N> requires (N > 0) | |
| DistributionMapping const & | amrex::DistributionMap (Array< MF, N > const &mf) |
| template<class FAB > | |
| FabArray< BaseFab< int > > | amrex::OverlapMask (FabArray< FAB > const &fa, IntVect const &nghost, Periodicity const &period) |