Nektar++
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
Classes | Namespaces | Typedefs | Enumerations | Functions
GsLib.hpp File Reference
#include <iostream>
#include <LibUtilities/BasicConst/NektarUnivTypeDefs.hpp>
#include <LibUtilities/BasicUtils/SharedArray.hpp>
Include dependency graph for GsLib.hpp:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Gs::array
struct  Gs::comm
struct  Gs::pw_comm_data
struct  Gs::pw_data
struct  Gs::cr_stage
struct  Gs::cr_data
struct  Gs::allreduce_data
struct  Gs::gs_remote
struct  Gs::gs_data

Namespaces

namespace  Gs

Typedefs

typedef array Gs::buffer
typedef int Gs::comm_ext
typedef int Gs::comm_req
typedef void Gs::exec_fun (void *data, gs_mode mode, unsigned vn, gs_dom dom, gs_op op, unsigned transpose, const void *execdata, const struct comm *comm, char *buf)
typedef void Gs::fin_fun (void *data)

Enumerations

enum  Gs::gs_dom {
  Gs::gs_double, Gs::gs_float, Gs::gs_int, Gs::gs_long,
  Gs::gs_dom_n
}
enum  Gs::gs_op {
  Gs::gs_add, Gs::gs_mul, Gs::gs_min, Gs::gs_max,
  Gs::gs_bpr, Gs::gs_op_n
}
enum  Gs::gs_mode { Gs::mode_plain, Gs::mode_vec, Gs::mode_many, Gs::mode_dry_run }
enum  Gs::gs_method { Gs::gs_auto, Gs::gs_pairwise, Gs::gs_crystal_router, Gs::gs_all_reduce }

Functions

void Gs::nektar_gs (void *u, gs_dom dom, gs_op op, unsigned transpose, gs_data *gsh, buffer *buf)
gs_data * Gs::nektar_gs_setup (const long *id, unsigned int n, const struct comm *comm, int unique, gs_method method, int verbose)
void Gs::nektar_gs_free (gs_data *gsh)
void Gs::nektar_gs_unique (const long *id, unsigned int n, const struct comm *comm)
static gs_data * Gs::Init (const Nektar::Array< OneD, long > pId, const LibUtilities::CommSharedPtr &pComm)
 Initialise Gather-Scatter map.
static void Gs::Unique (const Nektar::Array< OneD, long > pId, const LibUtilities::CommSharedPtr &pComm)
 Updates pId to negate all-but-one references to each universal ID.
static void Gs::Finalise (gs_data *pGsh)
 Deallocates the GSLib mapping data.
static void Gs::Gather (Nektar::Array< OneD, NekDouble > pU, gs_op pOp, gs_data *pGsh, Nektar::Array< OneD, NekDouble > pBuffer=NullNekDouble1DArray)
 Performs a gather-scatter operation of the provided values.