|
Nektar++
|
Classes | |
| struct | allreduce_data |
| struct | array |
| struct | comm |
| struct | cr_data |
| struct | cr_stage |
| struct | gs_data |
| struct | gs_remote |
| struct | pw_comm_data |
| struct | pw_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 | Free (gs_data *pGsh) |
| Deallocates GSLib mapping data without finalising MPI. 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 |
| Enumerator | |
|---|---|
| gs_auto | |
| gs_pairwise | |
| gs_crystal_router | |
| gs_all_reduce | |
| enum Gs::gs_mode |
| Enumerator | |
|---|---|
| mode_plain | |
| mode_vec | |
| mode_many | |
| mode_dry_run | |
| enum Gs::gs_op |
|
inlinestatic |
Deallocates the GSLib mapping data.
Definition at line 248 of file GsLib.hpp.
References nektar_gs_free().
Referenced by Nektar::MultiRegions::AssemblyMapCG::AssemblyMapCG(), Nektar::MultiRegions::AssemblyMapCG::CreateGraph(), export_SessionReader(), and Nektar::MultiRegions::AssemblyMapCG::~AssemblyMapCG().
|
inlinestatic |
Deallocates GSLib mapping data without finalising MPI.
Definition at line 263 of file GsLib.hpp.
References nektar_gs_free().
Referenced by Nektar::MultiRegions::PreconditionerLowEnergy::v_BuildPreconditioner(), and Nektar::MultiRegions::PreconditionerBlock::~PreconditionerBlock().
|
inlinestatic |
Performs a gather-scatter operation of the provided values.
The
Definition at line 278 of file GsLib.hpp.
References gs_double, Gs::array::n, nektar_gs(), and Gs::array::ptr.
Referenced by Nektar::MultiRegions::AssemblyMapCG::AssemblyMapCG(), Nektar::MultiRegions::PreconditionerBlock::BlockPreconditionerCG(), Nektar::MultiRegions::PreconditionerBlock::BlockPreconditionerHDG(), Nektar::MultiRegions::AssemblyMapCG::CreateGraph(), Nektar::PulseWaveSystem::EnforceInterfaceConditions(), Nektar::MultiRegions::AssemblyMap::LocalBndToGlobal(), Nektar::PulseWaveSystem::SetUpDomainInterfaces(), 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 190 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::PulseWaveSystem::SetUpDomainInterfaces(), 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(), and Free().
| 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 225 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().