| Nektar++
    | 
| Classes | |
| struct | array | 
| struct | comm | 
| struct | pw_comm_data | 
| struct | pw_data | 
| struct | cr_stage | 
| struct | cr_data | 
| struct | allreduce_data | 
| struct | gs_remote | 
| struct | gs_data | 
| Typedefs | |
| typedef array | buffer | 
| typedef int | comm_ext | 
| typedef int | comm_req | 
| typedef void | 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 | fin_fun(void *data) | 
| Enumerations | |
| enum | gs_dom { gs_double , gs_float , gs_int , gs_long , gs_dom_n } | 
| enum | gs_op { gs_add , gs_mul , gs_min , gs_max , gs_amax , gs_bpr , gs_op_n } | 
| enum | gs_mode { mode_plain , mode_vec , mode_many , mode_dry_run } | 
| enum | gs_method { gs_auto , gs_pairwise , gs_crystal_router , gs_all_reduce } | 
| Functions | |
| void | nektar_gs (void *u, gs_dom dom, gs_op op, unsigned transpose, gs_data *gsh, buffer *buf) | 
| gs_data * | nektar_gs_setup (const long *id, unsigned int n, const struct comm *comm, int unique, gs_method method, int verbose) | 
| void | nektar_gs_free (gs_data *gsh) | 
| void | nektar_gs_unique (const long *id, unsigned int n, const struct comm *comm) | 
| static gs_data * | Init (const Nektar::Array< OneD, long > pId, const LibUtilities::CommSharedPtr &pComm, bool verbose=true) | 
| Initialise Gather-Scatter map.  More... | |
| static void | Unique (const Nektar::Array< OneD, long > pId, const LibUtilities::CommSharedPtr &pComm) | 
| Updates pId to negate all-but-one references to each universal ID.  More... | |
| static void | Finalise (gs_data *pGsh) | 
| Deallocates the GSLib mapping data.  More... | |
| static void | 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.  More... | |
| typedef array Gs::buffer | 
| typedef int Gs::comm_ext | 
| typedef int Gs::comm_req | 
| enum Gs::gs_dom | 
| enum Gs::gs_method | 
| enum Gs::gs_mode | 
| enum Gs::gs_op | 
| 
 | inlinestatic | 
Deallocates the GSLib mapping data.
Definition at line 226 of file GsLib.hpp.
References nektar_gs_free().
Referenced by Nektar::MultiRegions::AssemblyMapCG::AssemblyMapCG(), Nektar::MultiRegions::AssemblyMapCG::CreateGraph(), and Nektar::MultiRegions::AssemblyMapCG::~AssemblyMapCG().
| 
 | inlinestatic | 
Performs a gather-scatter operation of the provided values.
The
Definition at line 245 of file GsLib.hpp.
References gs_double, and nektar_gs().
Referenced by Nektar::MultiRegions::AssemblyMapCG::AssemblyMapCG(), Nektar::MultiRegions::PreconditionerBlock::BlockPreconditionerCG(), Nektar::MultiRegions::PreconditionerBlock::BlockPreconditionerHDG(), Nektar::MultiRegions::AssemblyMapCG::CreateGraph(), Nektar::MultiRegions::AssemblyMap::LocalBndToGlobal(), Nektar::MultiRegions::AssemblyMap::UniversalAbsMaxBnd(), Nektar::MultiRegions::AssemblyMap::UniversalAssembleBnd(), Nektar::MultiRegions::PreconditionerLowEnergy::v_BuildPreconditioner(), Nektar::MultiRegions::AssemblyMapCG::v_LocalToGlobal(), Nektar::MultiRegions::AssemblyMapCG::v_UniversalAssemble(), and Nektar::MultiRegions::AssemblyMapDG::v_UniversalAssemble().
| 
 | inlinestatic | 
Initialise Gather-Scatter map.
On each process an array of IDs for each global degree of freedom is supplied which corresponds to a unique numbering of universal degrees of freedom. This is used to initialise the GSLib mapping between process- boundary degrees of freedom on different processes.
| pId | Array of integers providing universal IDs for each global DOF on the process. | 
| pComm | Communication object used for inter-process communication. | 
Definition at line 167 of file GsLib.hpp.
References ASSERTL1, Gs::comm::c, gs_auto, Gs::comm::id, nektar_gs_setup(), and Gs::comm::np.
Referenced by Nektar::MultiRegions::AssemblyMapCG::AssemblyMapCG(), Nektar::MultiRegions::PreconditionerBlock::BlockPreconditionerCG(), Nektar::MultiRegions::PreconditionerBlock::BlockPreconditionerHDG(), Nektar::CoupledAssemblyMap::CoupledAssemblyMap(), Nektar::MultiRegions::AssemblyMapCG::CreateGraph(), Nektar::MultiRegions::AssemblyMapCG::SetUpUniversalC0ContMap(), Nektar::MultiRegions::AssemblyMapDG::SetUpUniversalDGMap(), Nektar::MultiRegions::PreconditionerLowEnergy::v_BuildPreconditioner(), and Nektar::MultiRegions::AssemblyMapCG::v_LinearSpaceMap().
| void Gs::nektar_gs | ( | void * | u, | 
| gs_dom | dom, | ||
| gs_op | op, | ||
| unsigned | transpose, | ||
| gs_data * | gsh, | ||
| buffer * | buf | ||
| ) | 
Referenced by Gather().
| void Gs::nektar_gs_free | ( | gs_data * | gsh | ) | 
Referenced by Finalise().
| gs_data* Gs::nektar_gs_setup | ( | const long * | id, | 
| unsigned int | n, | ||
| const struct comm * | comm, | ||
| int | unique, | ||
| gs_method | method, | ||
| int | verbose | ||
| ) | 
Referenced by Init().
| void Gs::nektar_gs_unique | ( | const long * | id, | 
| unsigned int | n, | ||
| const struct comm * | comm | ||
| ) | 
Referenced by Unique().
| 
 | inlinestatic | 
Updates pId to negate all-but-one references to each universal ID.
The array of universal IDs corresponding to the process-local DOF are updated such that the ID of only one instance of each universal ID remains positive. This allows the consistent formulation of universally -distributed dot products, for which the contributions of each DOF must be included only once.
Definition at line 202 of file GsLib.hpp.
References ASSERTL1, Gs::comm::c, Gs::comm::id, nektar_gs_unique(), and Gs::comm::np.
Referenced by Nektar::CoupledAssemblyMap::CoupledAssemblyMap(), Nektar::MultiRegions::AssemblyMapCG::SetUpUniversalC0ContMap(), Nektar::MultiRegions::AssemblyMapDG::SetUpUniversalDGMap(), and Nektar::MultiRegions::AssemblyMapCG::v_LinearSpaceMap().