distributed lattice object More...
#include <mdp_lattice.h>
Public Member Functions | |
mdp_int | global_coordinate (int *x) |
void | global_coordinate (mdp_int global_idx, int *x) |
int | compute_parity (int *x) |
mdp_lattice () | |
mdp_lattice (int ndim_, int nx_[], int(*where_)(int *, int, int *)=default_partitioning0, void(*neighbour_)(int, int *, int *, int *, int, int *)=torus_topology, mdp_int random_seed_=0, int next_next_=1, bool local_random_=true) | |
mdp_lattice (int ndim_, int ndir_, int nx_[], int(*where_)(int *, int, int *)=default_partitioning0, void(*neighbour_)(int, int *, int *, int *, int, int *)=torus_topology, mdp_int random_seed_=0, int next_next_=1, bool local_random_=true) | |
for weird stuff | |
void | allocate_lattice (int ndim_, int nx_[], int(*where_)(int *, int, int *)=default_partitioning0, void(*neighbour_)(int, int *, int *, int *, int, int *)=torus_topology, mdp_int random_seed_=0, int next_next_=1, bool local_random_=true) |
void | allocate_lattice (int ndim_, int ndir_, int nx_[], int(*where_)(int *, int, int *)=default_partitioning0, void(*neighbour_)(int, int *, int *, int *, int, int *)=torus_topology, mdp_int random_seed_=0, int next_next_=1, bool local_random_=true) |
for weird stuff | |
virtual | ~mdp_lattice () |
void | deallocate_memory () |
dynamically deallocate a lattice | |
void | initialize_random (mdp_int random_seed_=0) |
mdp_prng & | random (mdp_site) |
Returns the local object mdp_prng at site x of the lattice. | |
int | n_dimensions () const |
number of dimensions of the lattice (deprecated_ | |
int | n_directions () const |
number of directions one can move on the lattice; usually same as ndim | |
mdp_int | size () const |
number of sites of the lattice | |
mdp_int | size (const int mu) const |
size of the lattice in direction mu | |
mdp_int | local_volume () const |
number of lattice sites stored locally by current process | |
mdp_int | global_volume () const |
total lattice volume (deprecated) | |
mdp_int | move_up (const mdp_int idx, const int mu) const |
mdp_int | move_down (const mdp_int idx, const int mu) const |
mdp_int | local (mdp_int idx) const |
mdp_int | global (mdp_int idx) const |
int | site_parity (const mdp_int idx) const |
mdp_int | start_index (const int process, int p=EVENODD) const |
mdp_int | stop_index (const int process, int p=EVENODD) const |
Public Attributes | |
int | ndim |
int | ndir |
int | next_next |
int * | nx |
mdp_int | nvol |
mdp_int | nvol_gl |
mdp_int | nvol_in |
mdp_int * | gl |
mdp_int * | lg |
FILE * | lg_file |
mdp_int ** | up |
mdp_int ** | dw |
int ** | co |
int * | wh |
int * | parity |
mdp_int | start [_NprocMax_][2] |
mdp_int | stop [_NprocMax_][2] |
mdp_int | len_to_send [_NprocMax_][2] |
mdp_int * | to_send [_NprocMax_] |
bool | local_random_generator |
int(* | where )(int *, int, int *) |
void(* | neighbour )(int, int *, int *, int *, int, int *) |
distributed lattice object
Example:
/// int box[]={3,3,3}; /// int seed=0, border_width=1; /// mdp_lattice lattice(3,box,default_partitioning0, /// torus_topology,seed,border_width); /// mdp_site x(lattice); /// forallsites(x) /// cout << lattice.random(x).plain() << endl; ///
mdp_lattice::mdp_lattice | ( | ) | [inline] |
mdp_lattice::mdp_lattice | ( | int | ndim_, | |
int | nx_[], | |||
int(*)(int *, int, int *) | where_ = default_partitioning0 , |
|||
void(*)(int, int *, int *, int *, int, int *) | neighbour_ = torus_topology , |
|||
mdp_int | random_seed_ = 0 , |
|||
int | next_next_ = 1 , |
|||
bool | local_random_ = true | |||
) | [inline] |
declares a lattice object
ndim_ | dimensions of the lattice | |
nx_ | size of the lattice | |
where | pointer to a partitioning function neighbour_ pointer to a topology function. | |
random_seed_ | seed to be used by the parallel prng | |
next_next_ | size of the buffer between neighbour processes | |
local_random_ | true is local random generator is required |
mdp_lattice::mdp_lattice | ( | int | ndim_, | |
int | ndir_, | |||
int | nx_[], | |||
int(*)(int *, int, int *) | where_ = default_partitioning0 , |
|||
void(*)(int, int *, int *, int *, int, int *) | neighbour_ = torus_topology , |
|||
mdp_int | random_seed_ = 0 , |
|||
int | next_next_ = 1 , |
|||
bool | local_random_ = true | |||
) | [inline] |
for weird stuff
virtual mdp_lattice::~mdp_lattice | ( | ) | [inline, virtual] |
void mdp_lattice::allocate_lattice | ( | int | ndim_, | |
int | ndir_, | |||
int | nx_[], | |||
int(*)(int *, int, int *) | where_ = default_partitioning0 , |
|||
void(*)(int, int *, int *, int *, int, int *) | neighbour_ = torus_topology , |
|||
mdp_int | random_seed_ = 0 , |
|||
int | next_next_ = 1 , |
|||
bool | local_random_ = true | |||
) | [inline] |
for weird stuff
void mdp_lattice::allocate_lattice | ( | int | ndim_, | |
int | nx_[], | |||
int(*)(int *, int, int *) | where_ = default_partitioning0 , |
|||
void(*)(int, int *, int *, int *, int, int *) | neighbour_ = torus_topology , |
|||
mdp_int | random_seed_ = 0 , |
|||
int | next_next_ = 1 , |
|||
bool | local_random_ = true | |||
) | [inline] |
reallocate a lattice dynamically
ndim_ | dimensions of the lattice | |
nx_ | size of the lattice | |
where | pointer to a partitioning function neighbour_ pointer to a topology function. | |
random_seed_ | seed to be used by the parallel prng | |
next_next_ | size of the buffer between neighbour processes | |
local_random_ | true is local random generator is required |
int mdp_lattice::compute_parity | ( | int * | x | ) | [inline] |
void mdp_lattice::deallocate_memory | ( | ) | [inline] |
dynamically deallocate a lattice
void mdp_lattice::global_coordinate | ( | mdp_int | global_idx, | |
int * | x | |||
) | [inline] |
mdp_int mdp_lattice::global_coordinate | ( | int * | x | ) | [inline] |
mdp_int mdp_lattice::global_volume | ( | ) | const [inline] |
total lattice volume (deprecated)
void mdp_lattice::initialize_random | ( | mdp_int | random_seed_ = 0 |
) | [inline] |
mdp_int mdp_lattice::local_volume | ( | ) | const [inline] |
number of lattice sites stored locally by current process
int mdp_lattice::n_dimensions | ( | ) | const [inline] |
number of dimensions of the lattice (deprecated_
int mdp_lattice::n_directions | ( | ) | const [inline] |
number of directions one can move on the lattice; usually same as ndim
Returns the local object mdp_prng at site x of the lattice.
int mdp_lattice::site_parity | ( | const mdp_int | idx | ) | const [inline] |
mdp_int mdp_lattice::size | ( | const int | mu | ) | const [inline] |
size of the lattice in direction mu
mdp_int mdp_lattice::size | ( | ) | const [inline] |
number of sites of the lattice
int** mdp_lattice::co |
FILE* mdp_lattice::lg_file |
void(* mdp_lattice::neighbour)(int, int *, int *, int *, int, int *) |
int* mdp_lattice::nx |
int* mdp_lattice::parity |
int* mdp_lattice::wh |
int(* mdp_lattice::where)(int *, int, int *) |