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 *) |
1.6.1