GPUE
v1.0
GPU Gross-Pitaevskii Equation numerical solver for Bose-Einstein condensates
|
File for dynamic parameter parsing. More...
Go to the source code of this file.
Functions | |
EqnNode | parse_eqn (Grid &par, std::string eqn_string, std::string val_str) |
Parses a provided equation string into an Abstract Syntax Tree ,. More... | |
void | find_element_num (EqnNode eqn_tree, int &element_num) |
finds the total number of elements in an Abstract Syntax Tree , More... | |
void | tree_to_array (EqnNode eqn, EqnNode_gpu *eqn_array, int &element_num) |
Transforms an AST into a GPU array ,. More... | |
void | allocate_equation (EqnNode_gpu *eqn_cpu, EqnNode_gpu *eqn_gpu, int n) |
Allocates space on GPU for AST ,. More... | |
void | parse_param_file (Grid &par) |
Parses a provided file into Abstract Syntax Trees ,. More... | |
__device__ double | evaluate_eqn_gpu (EqnNode_gpu *eqn, double x, double y, double z, double time, int element_num) |
Evaluates a GPU AST with provided x, y, z, and t valued ,. More... | |
__global__ void | find_field (double *field, double dx, double dy, double dz, double xMax, double yMax, double zMax, double time, EqnNode_gpu *eqn) |
Creates a fields for all values of x, y, and z with AST ,. More... | |
__global__ void | zeros (double *field, int n) |
Creates a field of all zeros ,. More... | |
__device__ double | poly_j (int v, double x, int n) |
Polynomial approximation for J bessel functions ,. More... | |
File for dynamic parameter parsing.
This file has all functions necessary for dynamic parameter parsing, including parsing equation strings into abstract syntax trees
Definition in file dynamic.h.
void allocate_equation | ( | EqnNode_gpu * | eqn_cpu, |
EqnNode_gpu * | eqn_gpu, | ||
int | n | ||
) |
Allocates space on GPU for AST ,.
CPU | AST |
GPU | AST |
Element | number |
__device__ double evaluate_eqn_gpu | ( | EqnNode_gpu * | eqn, |
double | x, | ||
double | y, | ||
double | z, | ||
double | time, | ||
int | element_num | ||
) |
Evaluates a GPU AST with provided x, y, z, and t valued ,.
GPUE | AST |
x | |
y | |
z | |
t | |
element | number |
void find_element_num | ( | EqnNode | eqn_tree, |
int & | element_num | ||
) |
finds the total number of elements in an Abstract Syntax Tree ,
AST | |
A | count for each node |
__global__ void find_field | ( | double * | field, |
double | dx, | ||
double | dy, | ||
double | dz, | ||
double | xMax, | ||
double | yMax, | ||
double | zMax, | ||
double | time, | ||
EqnNode_gpu * | eqn | ||
) |
Creates a fields for all values of x, y, and z with AST ,.
Field | |
dx | |
dy | |
dz | |
xMax | |
yMax | |
zMax | |
time | |
GPUE | AST |
Parses a provided equation string into an Abstract Syntax Tree ,.
Parameter | set |
Equation | string |
String | value to store in node |
void parse_param_file | ( | Grid & | par | ) |
Parses a provided file into Abstract Syntax Trees ,.
Parameter | set |
__device__ double poly_j | ( | int | v, |
double | x, | ||
int | n | ||
) |
Polynomial approximation for J bessel functions ,.
Order | of bessel function |
x | position |
power | of bessel function |
void tree_to_array | ( | EqnNode | eqn, |
EqnNode_gpu * | eqn_array, | ||
int & | element_num | ||
) |
Transforms an AST into a GPU array ,.
CPU | AST |
GPU | AST |
Total | number of elements |
__global__ void zeros | ( | double * | field, |
int | n | ||
) |
Creates a field of all zeros ,.
Field | |
gridSize |