/rcbk

Primary LanguageHTML

Hi! Here you'll find my solution to the BK evolution equation.
You can find the BK equation in eq. 1 of this paper: https://arxiv.org/pdf/1001.1378.pdf

Contents:
	- bk_solver.py: Contains the important parts of the BK solution
	- solver.pyx  : Contains parts of the BK solution I wrote in Cython for speed
	- solver.pxd  : Header file for solver.pyx required to call LowLevelCallable in bk_solver.py
	- spline_c.c  : Cubic spline interpolator I translated to C from FORTRAN, originally written by J.L. Albacete
	- setup.py    : Script to compile and package solver.pyx for use in bk_solver
	- solver, solver.html: files generated by setup.py during compilation
        - More reference papers I used can be found in the papers folder
If you find room for improvement or have suggestions, please email me at amandawei00@gmail.com!

-----------------------------------------------------------------------------------------
To setup:
- Programs and versions you will need: 
	1. python 3.6.8
	2. gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44) (if you need to recompile solver.pyx)

To run:
	1. Set your parameters in 'params.csv'. The parameters you can control are as follows:
		- n   : number of points in N(r,Y) evaluated at each step in Y
		- rmin, rmax: range of N(r,Y) evaluated at each step in Y 
		- ymax: Y value at which the evolution stops
		- afr : value of the frozen coupling constant
		- qsq0: initial saturation scale
		- c^2 :
		- gamma: anomalous dimension
		- ec  :
		- filename: destination directory to which results will be saved 
		- order: order of runge-kutta. 'RK1', 'RK2', 'RK4' are the options

        2. Edit resource requirements (time, space) in 'run_BK.x' file as needed
	3. Edit command in 'run.bash' as needed (e.g. if you need to run 'python bk_solver.py' instead of 'python3 bk_solver.py')
	4. To submit a job, use command './run_BK.x'
	5. To run locally, use command 'python3 bk_solver.py' or 'python bk_solver.py'
Notes:
- In principle you shouldn't need to change anything in solver.pyx, where the contents of the integrand are contained, but if you do you will need to recompile the cython file with the following: 'python3 setup.py build_ext --inplace'