Block-Structured AMR Software Framework
AMReX_FabArrayUtility.H File Reference
#include <AMReX_Config.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

 amrex
 
 amrex::fudetail
 

Functions

template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
FAB::value_type amrex::ReduceSum (FabArray< FAB > const &fa, int nghost, F &&f)
 
template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
FAB::value_type amrex::fudetail::ReduceSum_host (FabArray< FAB > const &fa, IntVect const &nghost, F const &f)
 
template<class OP , class FAB , class F >
std::enable_if_t< IsBaseFab< FAB >::value, std::conditional_t< std::is_same< OP, ReduceOpLogicalAnd >::value||std::is_same< OP, ReduceOpLogicalOr >::value, int, typename FAB::value_type > > amrex::fudetail::ReduceMF (FabArray< FAB > const &fa, IntVect const &nghost, F const &f)
 
template<class OP , class FAB1 , class FAB2 , class F >
std::enable_if_t< IsBaseFab< FAB1 >::value &&IsBaseFab< FAB2 >::value, std::conditional_t< std::is_same< OP, ReduceOpLogicalAnd >::value||std::is_same< OP, ReduceOpLogicalOr >::value, int, typename FAB1::value_type > > amrex::fudetail::ReduceMF (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F const &f)
 
template<class OP , class FAB1 , class FAB2 , class FAB3 , class F >
std::enable_if_t< IsBaseFab< FAB1 >::value &&IsBaseFab< FAB2 >::value &&IsBaseFab< FAB3 >::value, std::conditional_t< std::is_same< OP, ReduceOpLogicalAnd >::value||std::is_same< OP, ReduceOpLogicalOr >::value, int, typename FAB1::value_type > > amrex::fudetail::ReduceMF (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F const &f)
 
template<class FAB , class F >
std::enable_if_t<!amrex::DefinitelyNotHostRunnable< F >::value, typename FAB::value_type > amrex::fudetail::ReduceSum_host_wrapper (FabArray< FAB > const &fa, IntVect const &nghost, F &&f)
 
template<class FAB , class F >
std::enable_if_t< amrex::DefinitelyNotHostRunnable< F >::value, typename FAB::value_type > amrex::fudetail::ReduceSum_host_wrapper (FabArray< FAB > const &fa, IntVect const &nghost, F &&f)
 
template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
FAB::value_type amrex::ReduceSum (FabArray< FAB > const &fa, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::ReduceSum (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, int nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::fudetail::ReduceSum_host (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F const &f)
 
template<class FAB1 , class FAB2 , class F >
std::enable_if_t<!amrex::DefinitelyNotHostRunnable< F >::value, typename FAB1::value_type > amrex::fudetail::ReduceSum_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F >
std::enable_if_t< amrex::DefinitelyNotHostRunnable< F >::value, typename FAB1::value_type > amrex::fudetail::ReduceSum_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::ReduceSum (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::ReduceSum (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, int nghost, F &&f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::fudetail::ReduceSum_host (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F const &f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F >
std::enable_if_t<!amrex::DefinitelyNotHostRunnable< F >::value, typename FAB1::value_type > amrex::fudetail::ReduceSum_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F >
std::enable_if_t< amrex::DefinitelyNotHostRunnable< F >::value, typename FAB1::value_type > amrex::fudetail::ReduceSum_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::ReduceSum (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F &&f)
 
template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
FAB::value_type amrex::ReduceMin (FabArray< FAB > const &fa, int nghost, F &&f)
 
template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
FAB::value_type amrex::fudetail::ReduceMin_host (FabArray< FAB > const &fa, IntVect const &nghost, F const &f)
 
template<class FAB , class F >
std::enable_if_t<!amrex::DefinitelyNotHostRunnable< F >::value, typename FAB::value_type > amrex::fudetail::ReduceMin_host_wrapper (FabArray< FAB > const &fa, IntVect const &nghost, F &&f)
 
template<class FAB , class F >
std::enable_if_t< amrex::DefinitelyNotHostRunnable< F >::value, typename FAB::value_type > amrex::fudetail::ReduceMin_host_wrapper (FabArray< FAB > const &fa, IntVect const &nghost, F &&f)
 
template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
FAB::value_type amrex::ReduceMin (FabArray< FAB > const &fa, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::ReduceMin (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, int nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::fudetail::ReduceMin_host (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F const &f)
 
template<class FAB1 , class FAB2 , class F >
std::enable_if_t<!amrex::DefinitelyNotHostRunnable< F >::value, typename FAB1::value_type > amrex::fudetail::ReduceMin_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F >
std::enable_if_t< amrex::DefinitelyNotHostRunnable< F >::value, typename FAB1::value_type > amrex::fudetail::ReduceMin_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::ReduceMin (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::ReduceMin (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, int nghost, F &&f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::fudetail::ReduceMin_host (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F const &f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F >
std::enable_if_t<!amrex::DefinitelyNotHostRunnable< F >::value, typename FAB1::value_type > amrex::fudetail::ReduceMin_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F >
std::enable_if_t< amrex::DefinitelyNotHostRunnable< F >::value, typename FAB1::value_type > amrex::fudetail::ReduceMin_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::ReduceMin (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F &&f)
 
template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
FAB::value_type amrex::ReduceMax (FabArray< FAB > const &fa, int nghost, F &&f)
 
template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
FAB::value_type amrex::fudetail::ReduceMax_host (FabArray< FAB > const &fa, IntVect const &nghost, F const &f)
 
template<class FAB , class F >
std::enable_if_t<!amrex::DefinitelyNotHostRunnable< F >::value, typename FAB::value_type > amrex::fudetail::ReduceMax_host_wrapper (FabArray< FAB > const &fa, IntVect const &nghost, F &&f)
 
template<class FAB , class F >
std::enable_if_t< amrex::DefinitelyNotHostRunnable< F >::value, typename FAB::value_type > amrex::fudetail::ReduceMax_host_wrapper (FabArray< FAB > const &fa, IntVect const &nghost, F &&f)
 
template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
FAB::value_type amrex::ReduceMax (FabArray< FAB > const &fa, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::ReduceMax (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, int nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::fudetail::ReduceMax_host (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F const &f)
 
template<class FAB1 , class FAB2 , class F >
std::enable_if_t<!amrex::DefinitelyNotHostRunnable< F >::value, typename FAB1::value_type > amrex::fudetail::ReduceMax_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F >
std::enable_if_t< amrex::DefinitelyNotHostRunnable< F >::value, typename FAB1::value_type > amrex::fudetail::ReduceMax_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::ReduceMax (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::ReduceMax (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, int nghost, F &&f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::fudetail::ReduceMax_host (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F const &f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F >
std::enable_if_t<!amrex::DefinitelyNotHostRunnable< F >::value, typename FAB1::value_type > amrex::fudetail::ReduceMax_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F >
std::enable_if_t< amrex::DefinitelyNotHostRunnable< F >::value, typename FAB1::value_type > amrex::fudetail::ReduceMax_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class FAB3 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
FAB1::value_type amrex::ReduceMax (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, FabArray< FAB3 > const &fa3, IntVect const &nghost, F &&f)
 
template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
bool amrex::ReduceLogicalAnd (FabArray< FAB > const &fa, int nghost, F &&f)
 
template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
bool amrex::fudetail::ReduceLogicalAnd_host (FabArray< FAB > const &fa, IntVect const &nghost, F const &f)
 
template<class FAB , class F >
std::enable_if_t<!amrex::DefinitelyNotHostRunnable< F >::value, bool > amrex::fudetail::ReduceLogicalAnd_host_wrapper (FabArray< FAB > const &fa, IntVect const &nghost, F &&f)
 
template<class FAB , class F >
std::enable_if_t< amrex::DefinitelyNotHostRunnable< F >::value, bool > amrex::fudetail::ReduceLogicalAnd_host_wrapper (FabArray< FAB > const &fa, IntVect const &nghost, F &&f)
 
template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
bool amrex::ReduceLogicalAnd (FabArray< FAB > const &fa, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
bool amrex::ReduceLogicalAnd (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, int nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
bool amrex::fudetail::ReduceLogicalAnd_host (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F const &f)
 
template<class FAB1 , class FAB2 , class F >
std::enable_if_t<!amrex::DefinitelyNotHostRunnable< F >::value, bool > amrex::fudetail::ReduceLogicalAnd_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F >
std::enable_if_t< amrex::DefinitelyNotHostRunnable< F >::value, bool > amrex::fudetail::ReduceLogicalAnd_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
bool amrex::ReduceLogicalAnd (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
bool amrex::ReduceLogicalOr (FabArray< FAB > const &fa, int nghost, F &&f)
 
template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
bool amrex::fudetail::ReduceLogicalOr_host (FabArray< FAB > const &fa, IntVect const &nghost, F const &f)
 
template<class FAB , class F >
std::enable_if_t<!amrex::DefinitelyNotHostRunnable< F >::value, bool > amrex::fudetail::ReduceLogicalOr_host_wrapper (FabArray< FAB > const &fa, IntVect const &nghost, F &&f)
 
template<class FAB , class F >
std::enable_if_t< amrex::DefinitelyNotHostRunnable< F >::value, bool > amrex::fudetail::ReduceLogicalOr_host (FabArray< FAB > const &fa, IntVect const &nghost, F &&)
 
template<class FAB , class F , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
bool amrex::ReduceLogicalOr (FabArray< FAB > const &fa, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
bool amrex::ReduceLogicalOr (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, int nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
bool amrex::fudetail::ReduceLogicalOr_host (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F const &f)
 
template<class FAB1 , class FAB2 , class F >
std::enable_if_t<!amrex::DefinitelyNotHostRunnable< F >::value, bool > amrex::fudetail::ReduceLogicalOr_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F >
std::enable_if_t< amrex::DefinitelyNotHostRunnable< F >::value, bool > amrex::fudetail::ReduceLogicalOr_host_wrapper (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB1 , class FAB2 , class F , class bar = std::enable_if_t<IsBaseFab<FAB1>::value>>
bool amrex::ReduceLogicalOr (FabArray< FAB1 > const &fa1, FabArray< FAB2 > const &fa2, IntVect const &nghost, F &&f)
 
template<class FAB , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::printCell (FabArray< FAB > const &mf, const IntVect &cell, int comp=-1, const IntVect &ng=IntVect::TheZeroVector())
 
template<class FAB , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::Subtract (FabArray< FAB > &dst, FabArray< FAB > const &src, int srccomp, int dstcomp, int numcomp, int nghost)
 
template<class FAB , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::Subtract (FabArray< FAB > &dst, FabArray< FAB > const &src, int srccomp, int dstcomp, int numcomp, const IntVect &nghost)
 
template<class FAB , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::Multiply (FabArray< FAB > &dst, FabArray< FAB > const &src, int srccomp, int dstcomp, int numcomp, int nghost)
 
template<class FAB , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::Multiply (FabArray< FAB > &dst, FabArray< FAB > const &src, int srccomp, int dstcomp, int numcomp, const IntVect &nghost)
 
template<class FAB , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::Divide (FabArray< FAB > &dst, FabArray< FAB > const &src, int srccomp, int dstcomp, int numcomp, int nghost)
 
template<class FAB , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::Divide (FabArray< FAB > &dst, FabArray< FAB > const &src, int srccomp, int dstcomp, int numcomp, const IntVect &nghost)
 
template<class FAB , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::Abs (FabArray< FAB > &fa, int icomp, int numcomp, int nghost)
 
template<class FAB , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::Abs (FabArray< FAB > &fa, int icomp, int numcomp, const IntVect &nghost)
 
template<class FAB , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::prefetchToHost (FabArray< FAB > const &fa, const bool synchronous=true)
 
template<class FAB , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::prefetchToDevice (FabArray< FAB > const &fa, const bool synchronous=true)
 
template<class FAB , class IFAB , class bar = std::enable_if_t<IsBaseFab<FAB>::value && IsBaseFab<IFAB>::value>>
void amrex::OverrideSync (FabArray< FAB > &fa, FabArray< IFAB > const &msk, const Periodicity &period)
 
template<class FAB , class IFAB , class bar = std::enable_if_t<IsBaseFab<FAB>::value && IsBaseFab<IFAB>::value>>
void amrex::OverrideSync_nowait (FabArray< FAB > &fa, FabArray< IFAB > const &msk, const Periodicity &period)
 
template<class FAB , class bar = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::OverrideSync_finish (FabArray< FAB > &fa)
 
template<class FAB , class foo = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::dtoh_memcpy (FabArray< FAB > &dst, FabArray< FAB > const &src, int scomp, int dcomp, int ncomp)
 
template<class FAB , class foo = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::dtoh_memcpy (FabArray< FAB > &dst, FabArray< FAB > const &src)
 
template<class FAB , class foo = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::htod_memcpy (FabArray< FAB > &dst, FabArray< FAB > const &src, int scomp, int dcomp, int ncomp)
 
template<class FAB , class foo = std::enable_if_t<IsBaseFab<FAB>::value>>
void amrex::htod_memcpy (FabArray< FAB > &dst, FabArray< FAB > const &src)
 
template<class FAB , class foo = std::enable_if_t<IsBaseFab<FAB>::value>>
IntVect amrex::indexFromValue (FabArray< FAB > const &mf, int comp, IntVect const &nghost, typename FAB::value_type value)
 
template<typename FAB , std::enable_if_t< IsBaseFab< FAB >::value, int > FOO = 0>
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. More...
 
template<class MF , std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
void amrex::setVal (MF &dst, typename MF::value_type val)
 dst = val More...
 
template<class MF , std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
void amrex::setBndry (MF &dst, typename MF::value_type val, int scomp, int ncomp)
 dst = val in ghost cells. More...
 
template<class MF , std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
void amrex::Scale (MF &dst, typename MF::value_type val, int scomp, int ncomp, int nghost)
 dst *= val More...
 
template<class DMF , class SMF , std::enable_if_t< IsMultiFabLike_v< DMF > &&IsMultiFabLike_v< SMF >, int > = 0>
void amrex::LocalCopy (DMF &dst, SMF const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost)
 dst = src More...
 
template<class MF , std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
void amrex::LocalAdd (MF &dst, MF const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost)
 dst += src More...
 
template<class MF , std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
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 More...
 
template<class MF , std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
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 More...
 
template<class MF , std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
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 More...
 
template<class MF , std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
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 More...
 
template<class MF , std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
MF::value_type amrex::norminf (MF const &mf, int scomp, int ncomp, IntVect const &nghost, bool local=false)
 
template<class MF , std::size_t N, std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
void amrex::setVal (Array< MF, N > &dst, typename MF::value_type val)
 dst = val More...
 
template<class MF , std::size_t N, std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
void amrex::setBndry (Array< MF, N > &dst, typename MF::value_type val, int scomp, int ncomp)
 dst = val in ghost cells. More...
 
template<class MF , std::size_t N, std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
void amrex::Scale (Array< MF, N > &dst, typename MF::value_type val, int scomp, int ncomp, int nghost)
 dst *= val More...
 
template<class DMF , class SMF , std::size_t N, std::enable_if_t< IsMultiFabLike_v< DMF > &&IsMultiFabLike_v< SMF >, int > = 0>
void amrex::LocalCopy (Array< DMF, N > &dst, Array< SMF, N > const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost)
 dst = src More...
 
template<class MF , std::size_t N, std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
void amrex::LocalAdd (Array< MF, N > &dst, Array< MF, N > const &src, int scomp, int dcomp, int ncomp, IntVect const &nghost)
 dst += src More...
 
template<class MF , std::size_t N, std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
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 More...
 
template<class MF , std::size_t N, std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
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 More...
 
template<class MF , std::size_t N, std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
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 More...
 
template<class MF , std::size_t N, std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
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 More...
 
template<class MF , std::size_t N, std::enable_if_t< IsMultiFabLike_v< MF >, int > = 0>
MF::value_type amrex::norminf (Array< MF, N > const &mf, int scomp, int ncomp, IntVect const &nghost, bool local=false)
 
template<class MF , std::size_t N, std::enable_if_t< IsMultiFabLike_v< MF > &&(N > 0), int > = 0>
int amrex::nComp (Array< MF, N > const &mf)
 
template<class MF , std::size_t N, std::enable_if_t< IsMultiFabLike_v< MF > &&(N > 0), int > = 0>
IntVect amrex::nGrowVect (Array< MF, N > const &mf)
 
template<class MF , std::size_t N, std::enable_if_t< IsMultiFabLike_v< MF > &&(N > 0), int > = 0>
BoxArray const & amrex::boxArray (Array< MF, N > const &mf)
 
template<class MF , std::size_t N, std::enable_if_t< IsMultiFabLike_v< MF > &&(N > 0), int > = 0>
DistributionMapping const & amrex::DistributionMap (Array< MF, N > const &mf)