ExaFMM 1
Fast-multipole Method for exascale systems
Classes | Typedefs | Enumerations | Variables
include/types.h File Reference
#include <algorithm>
#include <assert.h>
#include <cmath>
#include <complex>
#include <cstdlib>
#include <cstring>
#include <fstream>
#include <iomanip>
#include <iostream>
#include <list>
#include <map>
#include <omp.h>
#include <queue>
#include <stack>
#include <string>
#include <utility>
#include <vector>
#include "vec.h"
Include dependency graph for types.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  Trace
 Structure for pthread based trace. More...
struct  JBody
 Structure of source bodies (stuff to send) More...
struct  Body
 Structure of bodies. More...
struct  Leaf
 Linked list of leafs (only used in fast/topdown.h) More...
struct  Node
 Structure of nodes (only used in fast/topdown.h) More...
struct  JCell
 Structure of source cells (stuff to send) More...
struct  Cell
 Structure of cells. More...
struct  Ewald
 Structure for Ewald summation. More...

Typedefs

typedef unsigned bigint
 < My vector type with operator overloading
typedef double real
 Real number type on CPU.
typedef float gpureal
 Real number type on GPU.
typedef std::complex< realcomplex
 Complex number type.
typedef vec< 3, realvect
 3-D vector type
typedef std::vector< bigintBigints
 Vector of big integer types.
typedef std::map< pthread_t,
double > 
ThreadTrace
 Map of pthread id to traced value.
typedef std::map< pthread_t, int > ThreadMap
 Map of pthread id to thread id.
typedef std::queue< TraceTraces
 Queue of traces.
typedef std::map< std::string,
double > 
Timer
 Map of timer event name to timed value.
typedef std::map< std::string,
double >::iterator 
TI_iter
 Iterator for timer event name map.
typedef std::vector< JBodyJBodies
 Vector of source bodies.
typedef std::vector< JBody >
::iterator 
JB_iter
 Iterator for source body vector.
typedef std::vector< BodyBodies
 Vector of bodies.
typedef std::vector< Body >
::iterator 
B_iter
 Iterator for body vector.
typedef std::vector< LeafLeafs
 Vector of leafs.
typedef std::vector< Leaf >
::iterator 
L_iter
 Iterator for leaf vector.
typedef std::vector< NodeNodes
 Vector of nodes.
typedef std::vector< Node >
::iterator 
N_iter
 Iterator for node vector.
typedef std::vector< JCellJCells
 Vector of source cells.
typedef std::vector< JCell >
::iterator 
JC_iter
 Iterator for source cell vector.
typedef std::vector< CellCells
 Vector of cells.
typedef std::vector< Cell >
::iterator 
C_iter
 Iterator for cell vector.
typedef std::queue< C_iterCellQueue
 Queue of cell iterators.
typedef std::stack< C_iterCellStack
 Stack of cell iterators.
typedef std::pair< C_iter, C_iterPair
 Pair of interacting cells.
typedef std::queue< PairPairQueue
 Queue of interacting cell pairs.
typedef std::stack< PairPairStack
 Stack of interacting cell pairs.
typedef std::list< C_iterList
 Interaction list.
typedef std::list< C_iter >
::iterator 
LC_iter
 Iterator for interaction list.
typedef std::vector< ListLists
 Vector of interaction lists.
typedef std::map< C_iter, int > Map
 Map of interaction lists.
typedef std::map< C_iter, int >
::iterator 
MC_iter
 Iterator for interation list map.
typedef std::vector< MapMaps
 Vector of map of interaction lists.
typedef std::vector< EwaldEwalds
 Vector of Ewald summation types.
typedef std::vector< Ewald >
::iterator 
E_iter
 Iterator for Ewald summation types.

Enumerations

enum  Equation { Laplace, VanDerWaals }

Variables

int MPIRANK = 0
 MPI comm rank.
int MPISIZE = 1
 MPI comm size.
int DEVICE = 0
 GPU device ID.
int IMAGES = 0
 Number of periodic image sublevels.
real THETA = .5
 Multipole acceptance criteria.
vect Xperiodic = 0
 Coordinate offset of periodic image.
const int P = 6
 Order of expansions.
const int NCRIT = 30
 Number of bodies per cell.
const int MAXBODY = 200000
 Maximum number of bodies per GPU kernel.
const int MAXCELL = 10000000
 Maximum number of bodies/coefs in cell per GPU kernel.
const real CLET = 2
 LET opening critetia.
const real EPS = 1e-6
 Single precision epsilon.
const real EPS2 = 0
 Softening parameter (squared)
const real R2MIN = 0.25
 Minimum value for L-J R^2.
const real R2MAX = 64
 Maximum value for L-J R^2.
const int GPUS = 3
 Number of GPUs per node.
const int THREADS = 64
 Number of threads per thread-block.
const int PTHREADS = 4
 Number of pthreads in quark.
const int MTERM = P*(P+1)*(P+2)/6
 Number of Cartesian mutlipole terms.
const int LTERM = (P+1)*(P+2)*(P+3)/6
 Number of Cartesian local terms.
const int NTERM = P*(P+1)/2
 Number of Spherical multipole/local terms.

Typedef Documentation

typedef std::vector<Body>::iterator B_iter

Iterator for body vector.

Definition at line 132 of file types.h.

typedef unsigned bigint

< My vector type with operator overloading

Big integer type

Definition at line 46 of file types.h.

typedef std::vector<bigint> Bigints

Vector of big integer types.

Definition at line 93 of file types.h.

typedef std::vector<Body> Bodies

Vector of bodies.

Definition at line 131 of file types.h.

typedef std::vector<Cell>::iterator C_iter

Iterator for cell vector.

Definition at line 179 of file types.h.

typedef std::queue<C_iter> CellQueue

Queue of cell iterators.

Definition at line 180 of file types.h.

typedef std::vector<Cell> Cells

Vector of cells.

Definition at line 178 of file types.h.

typedef std::stack<C_iter> CellStack

Stack of cell iterators.

Definition at line 181 of file types.h.

Complex number type.

Definition at line 49 of file types.h.

typedef std::vector<Ewald>::iterator E_iter

Iterator for Ewald summation types.

Definition at line 199 of file types.h.

typedef std::vector<Ewald> Ewalds

Vector of Ewald summation types.

Definition at line 198 of file types.h.

typedef float gpureal

Real number type on GPU.

Definition at line 48 of file types.h.

typedef std::vector<JBody>::iterator JB_iter

Iterator for source body vector.

Definition at line 122 of file types.h.

typedef std::vector<JBody> JBodies

Vector of source bodies.

Definition at line 121 of file types.h.

typedef std::vector<JCell>::iterator JC_iter

Iterator for source cell vector.

Definition at line 161 of file types.h.

typedef std::vector<JCell> JCells

Vector of source cells.

Definition at line 160 of file types.h.

typedef std::vector<Leaf>::iterator L_iter

Iterator for leaf vector.

Definition at line 141 of file types.h.

typedef std::list<C_iter>::iterator LC_iter

Iterator for interaction list.

Definition at line 186 of file types.h.

typedef std::vector<Leaf> Leafs

Vector of leafs.

Definition at line 140 of file types.h.

typedef std::list<C_iter> List

Interaction list.

Definition at line 185 of file types.h.

typedef std::vector<List> Lists

Vector of interaction lists.

Definition at line 187 of file types.h.

typedef std::map<C_iter,int> Map

Map of interaction lists.

Definition at line 188 of file types.h.

typedef std::vector<Map> Maps

Vector of map of interaction lists.

Definition at line 190 of file types.h.

typedef std::map<C_iter,int>::iterator MC_iter

Iterator for interation list map.

Definition at line 189 of file types.h.

typedef std::vector<Node>::iterator N_iter

Iterator for node vector.

Definition at line 153 of file types.h.

typedef std::vector<Node> Nodes

Vector of nodes.

Definition at line 152 of file types.h.

typedef std::pair<C_iter,C_iter> Pair

Pair of interacting cells.

Definition at line 182 of file types.h.

typedef std::queue<Pair> PairQueue

Queue of interacting cell pairs.

Definition at line 183 of file types.h.

typedef std::stack<Pair> PairStack

Stack of interacting cell pairs.

Definition at line 184 of file types.h.

typedef double real

Real number type on CPU.

Definition at line 47 of file types.h.

typedef std::map<pthread_t,int> ThreadMap

Map of pthread id to thread id.

Definition at line 103 of file types.h.

typedef std::map<pthread_t,double> ThreadTrace

Map of pthread id to traced value.

Definition at line 102 of file types.h.

typedef std::map<std::string,double>::iterator TI_iter

Iterator for timer event name map.

Definition at line 106 of file types.h.

typedef std::map<std::string,double> Timer

Map of timer event name to timed value.

Definition at line 105 of file types.h.

typedef std::queue<Trace> Traces

Queue of traces.

Definition at line 104 of file types.h.

typedef vec<3,real> vect

3-D vector type

Definition at line 50 of file types.h.


Enumeration Type Documentation

enum Equation
Enumerator:
Laplace 

Equation type enumeration.

Laplace potential + force

VanDerWaals 

Van der Walls potential + force.

Definition at line 108 of file types.h.


Variable Documentation

const real CLET = 2

LET opening critetia.

Definition at line 73 of file types.h.

int DEVICE = 0

GPU device ID.

Definition at line 56 of file types.h.

const real EPS = 1e-6

Single precision epsilon.

Definition at line 74 of file types.h.

const real EPS2 = 0

Softening parameter (squared)

Definition at line 75 of file types.h.

const int GPUS = 3

Number of GPUs per node.

Definition at line 78 of file types.h.

int IMAGES = 0

Number of periodic image sublevels.

Definition at line 57 of file types.h.

const int LTERM = (P+1)*(P+2)*(P+3)/6

Number of Cartesian local terms.

Definition at line 83 of file types.h.

const int MAXBODY = 200000

Maximum number of bodies per GPU kernel.

Definition at line 71 of file types.h.

const int MAXCELL = 10000000

Maximum number of bodies/coefs in cell per GPU kernel.

Definition at line 72 of file types.h.

int MPIRANK = 0

MPI comm rank.

Definition at line 54 of file types.h.

int MPISIZE = 1

MPI comm size.

Definition at line 55 of file types.h.

const int MTERM = P*(P+1)*(P+2)/6

Number of Cartesian mutlipole terms.

Definition at line 82 of file types.h.

const int NCRIT = 30

Number of bodies per cell.

Definition at line 70 of file types.h.

const int NTERM = P*(P+1)/2

Number of Spherical multipole/local terms.

Definition at line 84 of file types.h.

const int P = 6

Order of expansions.

Definition at line 69 of file types.h.

const int PTHREADS = 4

Number of pthreads in quark.

Definition at line 80 of file types.h.

const real R2MAX = 64

Maximum value for L-J R^2.

Definition at line 77 of file types.h.

const real R2MIN = 0.25

Minimum value for L-J R^2.

Definition at line 76 of file types.h.

real THETA = .5

Multipole acceptance criteria.

Definition at line 58 of file types.h.

const int THREADS = 64

Number of threads per thread-block.

Definition at line 79 of file types.h.

Coordinate offset of periodic image.

Definition at line 59 of file types.h.

 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Defines