AXOM
Axom provides a robust, flexible software infrastructure for the development of multi-physics applications and computational tools.
|
Namespaces | |
detail | |
experimental | |
inlet | |
klee | |
lumberjack | |
mint | |
numerics | |
primal | |
quest | |
sidre | |
slam | |
slic | |
spin | |
utilities | |
Classes | |
class | Array |
Provides a generic multidimensional array container. More... | |
class | ArrayBase |
class | ArrayBase< T, 1, ArrayType > |
Array implementation specific to 1D Arrays. More... | |
class | ArrayIteratorBase |
An iterator type for Array-like types. Each increment operation advances the iterator to the next element in the Array-like. More... | |
class | ArrayView |
Provides a view over a generic array container. More... | |
struct | execution_space |
The execution_space is a traits class that binds the execution space to a corresponding RAJA execution policies and default memory allocator. More... | |
class | IteratorBase |
Base class for a random access iterator over positions in a set. More... | |
class | Path |
Path class for performing basic path operations with a user-selectable delimiter character. More... | |
class | StackArray |
Provides a wrapper for a compile time sized array, similar to std::array. This class is needed because NVCC doesn't caputure standard stack arrays in device lambdas. Furthermore we can't use std::array becuase it is not host-device decorated. More... | |
Typedefs | |
template<typename T > | |
using | MCArray = Array< T, 2 > |
Helper alias for multi-component arrays. More... | |
using | int8 = std::int8_t |
using | uint8 = std::uint8_t |
using | int16 = std::int16_t |
using | uint16 = std::uint16_t |
using | int32 = std::int32_t |
using | uint32 = std::uint32_t |
using | int64 = std::int64_t |
using | uint64 = std::uint64_t |
using | float32 = float |
using | float64 = double |
using | IndexType = int32 |
ArrayView to wrap a pointer and provide indexing semantics | |
template<typename T > | |
using | MCArrayView = ArrayView< T, 2 > |
Helper alias for multi-component arrays. More... | |
Enumerations | |
enum | MemorySpace { MemorySpace::Dynamic } |
Memory spaces supported by Array-like types. More... | |
Functions | |
template<typename T , int DIM, typename ArrayType > | |
std::ostream & | print (std::ostream &os, const ArrayBase< T, DIM, ArrayType > &array) |
Free functions implementing ArrayBase's operator(s) More... | |
bool | operator== (const Path &lhs, const Path &rhs) |
Equality operator (equals) More... | |
bool | operator!= (const Path &lhs, const Path &rhs) |
Equality operator (not equals) More... | |
template<typename T , int N> | |
AXOM_HOST_DEVICE bool | operator== (const StackArray< T, N > &lhs, const StackArray< T, N > &rhs) |
Equality comparison operator for StackArray. More... | |
template<typename T , int N> | |
AXOM_HOST_DEVICE bool | operator!= (const StackArray< T, N > &lhs, const StackArray< T, N > &rhs) |
Inequality comparison operator for StackArray. More... | |
void | about () |
Prints info about how Axom was configured and built to stdout. More... | |
void | about (std::ostream &oss) |
Prints info about how Axom was configured and built to a stream. More... | |
std::string | getVersion () |
Returns a string consisting of the Axom version. More... | |
template<typename ExecSpace > | |
void | synchronize () noexcept |
Synchronizes all execution threads when using an ASYNC policy with the specified execution space. More... | |
template<> | |
void | synchronize< SEQ_EXEC > () noexcept |
Overloaded ArrayBase Operator(s) | |
template<typename T , int DIM, typename ArrayType > | |
std::ostream & | operator<< (std::ostream &os, const ArrayBase< T, DIM, ArrayType > &arr) |
Overloaded output stream operator. Outputs the Array-like to the given output stream. More... | |
template<typename T , int DIM, typename LArrayType , typename RArrayType > | |
bool | operator== (const ArrayBase< T, DIM, LArrayType > &lhs, const ArrayBase< T, DIM, RArrayType > &rhs) |
Equality comparison operator for Array-likes. More... | |
template<typename T , int DIM, typename LArrayType , typename RArrayType > | |
bool | operator!= (const ArrayBase< T, DIM, LArrayType > &lhs, const ArrayBase< T, DIM, RArrayType > &rhs) |
Inequality comparison operator for Arrays. More... | |
Memory Management Routines | |
void | setDefaultAllocator (int allocatorID) |
Sets the default memory allocator to use. More... | |
int | getDefaultAllocatorID () |
Returns the ID of the current default allocator. More... | |
template<typename T > | |
T * | allocate (std::size_t n, int allocID=getDefaultAllocatorID()) noexcept |
Allocates a chunk of memory of type T. More... | |
template<typename T > | |
void | deallocate (T *&p) noexcept |
Frees the chunk of memory pointed to by the supplied pointer, p. More... | |
template<typename T > | |
T * | reallocate (T *p, std::size_t n, int allocID=getDefaultAllocatorID()) noexcept |
Reallocates the chunk of memory pointed to by the supplied pointer. More... | |
void | copy (void *dst, const void *src, std::size_t numbytes) noexcept |
Copies memory from the source to the destination. More... | |
Generic Loop Traversal Functions | |
template<typename ExecSpace , typename KernelType > | |
void | for_all (const IndexType &begin, const IndexType &end, KernelType &&kernel) noexcept |
Loops over a specified contiguous range, I:[begin,end-1]. More... | |
template<typename ExecSpace , typename KernelType > | |
void | for_all (const IndexType &N, KernelType &&kernel) noexcept |
Loops over the contiguous range, I:[0,N-1], given by its length, N. More... | |
Variables | |
constexpr int | INVALID_ALLOCATOR_ID = -1 |
using axom::MCArray = typedef Array<T, 2> |
Helper alias for multi-component arrays.
using axom::MCArrayView = typedef ArrayView<T, 2> |
Helper alias for multi-component arrays.
using axom::int8 = typedef std::int8_t |
8-bit signed integer type
using axom::uint8 = typedef std::uint8_t |
8-bit unsigned integer type
using axom::int16 = typedef std::int16_t |
16-bit signed integer type
using axom::uint16 = typedef std::uint16_t |
16-bit unsigned integer type
using axom::int32 = typedef std::int32_t |
32-bit signed integer type
using axom::uint32 = typedef std::uint32_t |
32-bit unsigned integer type
using axom::int64 = typedef std::int64_t |
64-bit signed integer type
using axom::uint64 = typedef std::uint64_t |
64-bit unsigned integer type
using axom::float32 = typedef float |
using axom::float64 = typedef double |
using axom::IndexType = typedef int32 |
|
strong |
std::ostream & axom::operator<< | ( | std::ostream & | os, |
const ArrayBase< T, DIM, ArrayType > & | arr | ||
) |
Overloaded output stream operator. Outputs the Array-like to the given output stream.
[in,out] | os | output stream object. |
[in] | arr | user-supplied Array-like instance. |
References print().
bool axom::operator== | ( | const ArrayBase< T, DIM, LArrayType > & | lhs, |
const ArrayBase< T, DIM, RArrayType > & | rhs | ||
) |
Equality comparison operator for Array-likes.
[in] | lhs | left Array-like to compare |
[in] | rhs | right Array-like to compare |
References axom::detail::getAllocatorID(), and axom::ArrayBase< T, DIM, ArrayType >::shape().
Referenced by axom::Path::parts().
|
inline |
Free functions implementing ArrayBase's operator(s)
References axom::detail::getAllocatorID(), and axom::utilities::processAbort().
Referenced by operator<<(), and axom::primal::NumericArray< IndexType, NDIMS >::size().
|
inline |
Sets the default memory allocator to use.
[in] | allocatorID | ID of the Umpire allocator to use. |
References AXOM_UNUSED_VAR.
Referenced by axom::quest::getMeshTriangle(), axom::sidre::Group::isRoot(), and axom::quest::IntersectionShaper::setExecPolicy().
|
inline |
Returns the ID of the current default allocator.
References allocate(), copy(), deallocate(), and reallocate().
Referenced by axom::detail::getAllocatorID< MemorySpace::Dynamic >(), axom::quest::getMeshTriangle(), axom::sidre::Group::isRoot(), and axom::quest::IntersectionShaper::setExecPolicy().
|
inlinenoexcept |
Allocates a chunk of memory of type T.
[in] | n | the number of elements to allocate. |
[in] | allocID | the Umpire allocator to use (optional) |
T | the type of pointer returned. |
References AXOM_UNUSED_VAR.
Referenced by getDefaultAllocatorID().
|
inlinenoexcept |
Frees the chunk of memory pointed to by the supplied pointer, p.
[in/out] | p a pointer to memory allocated with allocate/reallocate or a nullptr. |
Referenced by axom::experimental::Map< Key, T, Hash, Policy >::clear(), axom::quest::IntersectionShaper::finalizeShapeQuery(), getDefaultAllocatorID(), axom::quest::getMeshTriangle(), axom::spin::BVH< NDIMS, ExecSpace >::initialize(), axom::numerics::jacobi_eigensolve(), axom::numerics::lu_solve(), axom::numerics::Matrix< T >::ones(), axom::Array< T, DIM >::operator=(), axom::experimental::Map< Key, T, Hash, Policy >::rehash(), axom::quest::IntersectionShaper::setExecPolicy(), axom::quest::SignedDistance< NDIMS, ExecSpace >::setMesh(), and axom::Array< T, DIM >::~Array().
|
inlinenoexcept |
Reallocates the chunk of memory pointed to by the supplied pointer.
[in] | p | pointer to memory allocated with allocate/reallocate, or a nullptr. |
[in] | n | the number of elements to allocate. |
[in] | allocID | the ID of the allocator to use if pointer is null (optional) |
T | the type pointer p points to. |
References AXOM_UNUSED_VAR.
Referenced by getDefaultAllocatorID().
|
inlinenoexcept |
Copies memory from the source to the destination.
[in/out] | dst the destination to copy to. | |
[in] | src | the source to copy from. |
[in] | numbytes | the number of bytes to copy. |
References axom::detail::getAllocatorID().
Referenced by axom::Array< T, DIM >::Array(), axom::quest::InOutOctree< DIM >::generateIndex(), getDefaultAllocatorID(), axom::quest::getMeshTriangle(), axom::sidre::View::getNextValidAttrValueIndex(), axom::slam::DynamicVariableRelation< PosType, ElemType >::isValid(), axom::Array< T, DIM >::operator=(), and axom::quest::IntersectionShaper::setExecPolicy().
AXOM_HOST_DEVICE bool axom::operator== | ( | const StackArray< T, N > & | lhs, |
const StackArray< T, N > & | rhs | ||
) |
Equality comparison operator for StackArray.
[in] | lhs | left StackArray to compare |
[in] | rhs | right StackArray to compare |
AXOM_HOST_DEVICE bool axom::operator!= | ( | const StackArray< T, N > & | lhs, |
const StackArray< T, N > & | rhs | ||
) |
Inequality comparison operator for StackArray.
[in] | lhs | left StackArray to compare |
[in] | rhs | right StackArray to compare |
void axom::about | ( | ) |
Prints info about how Axom was configured and built to stdout.
void axom::about | ( | std::ostream & | oss | ) |
Prints info about how Axom was configured and built to a stream.
[in,out] | oss | the target stream where to append the Axom info |
std::string axom::getVersion | ( | ) |
Returns a string consisting of the Axom version.
|
inlinenoexcept |
Loops over a specified contiguous range, I:[begin,end-1].
[in] | begin | start index of the iteration. |
[in] | end | length of the iteration space. |
[in] | kernel | user-supplied kernel, i.e., a lambda or functor. |
ExecSpace | the execution space where to run the supplied kernel |
KernelType | the type of the supplied kernel (detected by the compiler) |
Usage Example:
References AXOM_STATIC_ASSERT.
|
inlinenoexcept |
Loops over the contiguous range, I:[0,N-1], given by its length, N.
[in] | N | the length of the contiguous range. |
[in] | kernel | user-supplied kernel, i.e., a lambda or functor. |
ExecSpace | the execution space where to run the supplied kernel |
KernelType | the type of the supplied kernel (detected by the compiler) |
Usage Example:
References AXOM_STATIC_ASSERT.
|
inlinenoexcept |
Synchronizes all execution threads when using an ASYNC policy with the specified execution space.
ExecSpace | the execution space |
References AXOM_STATIC_ASSERT.
|
inlinenoexcept |
constexpr int axom::INVALID_ALLOCATOR_ID = -1 |