File fci_comm.hxx#

class GlobalField3DAccessInstance#

Public Functions

const BoutReal &operator[](IndG3D ind) const#
inline GlobalField3DAccessInstance(const GlobalField3DAccess *gfa, const std::vector<BoutReal> &&data)#

Private Members

const GlobalField3DAccess &gfa#
const std::vector<BoutReal> data#
class GlobalField3DAccess#

Public Functions

inline GlobalField3DAccess(Mesh *mesh)#
inline void get(IndG3D ind)#
inline void operator[](IndG3D ind)#
inline void setup()#
inline GlobalField3DAccessInstance communicate(const Field3D &f)#
inline std::unique_ptr<GlobalField3DAccessInstance> communicate_asPtr(const Field3D &f)#

Public Members

const fci_comm::XYZ2Ind<Ind3D> xyzl#
const fci_comm::XYZ2Ind<IndG3D> xyzg#

Private Functions

inline void commCommLists()#
inline std::vector<BoutReal> communicate_data(const Field3D &f)#

Private Members

Mesh *mesh#
std::vector<std::set<int>> o_ids#
std::set<int> ids#
std::map<int, int> mapping#
bool is_setup = {false}#
const fci_comm::globalToLocal1D g2lx#
const fci_comm::globalToLocal1D g2ly#
const fci_comm::globalToLocal1D g2lz#
std::vector<std::vector<int>> toGet#
std::vector<std::vector<int>> toSend#
std::vector<int> getOffsets#
int sendBufferSize = {0}#
MPI_Comm comm#

Friends

friend class GlobalField3DAccessInstance
namespace fci_comm#
struct ProcLocal#

Public Members

int proc#
int ind#
struct globalToLocal1D#

Public Functions

inline globalToLocal1D(int mg, int npe, int localwith, bool periodic)#
inline ProcLocal convert(int id) const#

Public Members

const int mg#
const int npe#
const int localwith#
const int local#
const int global#
const int globalwith#
const bool periodic#
template<class ind>
struct XYZ2Ind#

Public Functions

inline ind convert(const int x, const int y, const int z) const#
inline ind operator()(const int x, const int y, const int z) const#
inline XYZ2Ind(const int nx, const int ny, const int nz)#

Public Members

const int nx#
const int ny#
const int nz#