GPUE  v1.0
GPU Gross-Pitaevskii Equation numerical solver for Bose-Einstein condensates
dynamic.h File Reference

File for dynamic parameter parsing. More...

#include <string>
#include "../include/ds.h"
Include dependency graph for dynamic.h:

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...
 

Detailed Description

File for dynamic parameter parsing.

Author
James R. Schloss (Leios)
Date
1/1/2017
Version
0.1

DESCRIPTION

This file has all functions necessary for dynamic parameter parsing, including parsing equation strings into abstract syntax trees

Definition in file dynamic.h.

Function Documentation

◆ allocate_equation()

void allocate_equation ( EqnNode_gpu eqn_cpu,
EqnNode_gpu eqn_gpu,
int  n 
)

Allocates space on GPU for AST ,.

Parameters
CPUAST
GPUAST
Elementnumber

◆ evaluate_eqn_gpu()

__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 ,.

Parameters
GPUEAST
x
y
z
t
elementnumber
Returns
value for provided node

◆ find_element_num()

void find_element_num ( EqnNode  eqn_tree,
int &  element_num 
)

finds the total number of elements in an Abstract Syntax Tree ,

Parameters
AST
Acount for each node

◆ find_field()

__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 ,.

Parameters
Field
dx
dy
dz
xMax
yMax
zMax
time
GPUEAST

◆ parse_eqn()

EqnNode parse_eqn ( Grid par,
std::string  eqn_string,
std::string  val_str 
)

Parses a provided equation string into an Abstract Syntax Tree ,.

Parameters
Parameterset
Equationstring
Stringvalue to store in node
Returns
Abstract Syntax Tree representing the provided equation

◆ parse_param_file()

void parse_param_file ( Grid par)

Parses a provided file into Abstract Syntax Trees ,.

Parameters
Parameterset

◆ poly_j()

__device__ double poly_j ( int  v,
double  x,
int  n 
)

Polynomial approximation for J bessel functions ,.

Parameters
Orderof bessel function
xposition
powerof bessel function
Returns
J bessel function approximation

◆ tree_to_array()

void tree_to_array ( EqnNode  eqn,
EqnNode_gpu eqn_array,
int &  element_num 
)

Transforms an AST into a GPU array ,.

Parameters
CPUAST
GPUAST
Totalnumber of elements

◆ zeros()

__global__ void zeros ( double *  field,
int  n 
)

Creates a field of all zeros ,.

Parameters
Field
gridSize