-
Notifications
You must be signed in to change notification settings - Fork 0
Monte Carlo sampling for hybrid inflation potential.
laynep/hybridintegrator
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
******************************************************************************* Layne Price, University of Auckland, May 15, 2012. ******************************************************************************* SUMMARY: A program that does integration for two field hybrid inflation. Uses the integrator FCVODE from the LLNL SUNDIALS package, which requires the RHS of the ODE to be expressed in the external subroutine FCVFUN and the Jacobian in the external subroutine FCVDJAC. These are included below the main program. SUNDIALS functions are stored in a library. Uses the integrator LESNLS from http://people.math.gatech.edu/~dieci/software-les.html by Luca Dieci to perform nonlinear integration and to calculate the Lyapunov exponents. CAVEAT: A good calculation of the Lyapunov exponents requires integration over a large range of time. However, because the system that we are integrating is dissipative, we know that at (very) late times all orbits will be at one of the fixed points corresponding to the minima of the potential. Furthermore, friction will inevitably force the late time Lyapunov exponents --> 0. Consequently, any calculation of the Lyapunov exponents is merely suggestive and is truly representative only for systems with very little to no friction and in the late time limit. Furthermore, the Lyapunov exponents are not invariant with respect to spacetime diffeomorphism, so the value we calculate here will be meaningful only for comoving observers. However, the overall sign of the LE will remain the same, implying that if we find a LE>0, then any observer should be able to find a positive LE. OUTLINE: The program architecture is as follows: We parallelize using OpenMPI; load ICs according to the method specified in the namelist; integrate the initial condition; sort the initial condition into a "success" array if it reaches N>65 and into a "fail" array if it reaches the minimum of the potential without inflating. A new IC is chosen and the integration is repeated until we get enough points. Counters on the number of points found are collected on the master thread and stats are printed. OPTIONS: Options for the program are contained in the namelists in the parameter file, parameters_hybrid.txt. Program options are contained in the namelist &ics: how many successful initial conditions do we want to find (points); what method should we use to sample the IC space (IC); what should the time-step be (dt); do we want to print to stdout (printing); do we want to record the trajectories (traj). If we are getting ICs via Metropolis sampling of the IC space, the namelist &sample can be used to specify the dimensions of the array we should be sampling and the name of the file it is stored in. Similarly, the namelist &filetoread provides similar information if we are reading ICs explicitly from a given file, without sampling. The &zoom namelist gives one point which we are to zoom in on, providing a high resolution sample near the given point with tolerance specified. Note that this point should be put in the namelist as (e-fold,psi,phi,psi_dot,phi_dot). The namelist ¶meters specify the particle physics parameters for hybrid inflation. DEPENDENCIES: The program subroutines are contained in the module hybrid_subroutines and the routines that calculate the initial conditions are contained in the d_hybrid_initialconditions module. Random number generation is done with the module rng. MPI functions are called with the module mpi. When storing trajectories we don't a priori know how many steps it will take to reach an end state, so we store these as a linked list, with type and methods defined in the module linked_list. The types module defines the amount of working precision; and the newunit function from the features module gives us the ability to open a new file without worrying about whether the unit has already been used. The libraries from the SUNDIALS package are necessary to do the integration. The modules use sorting and location routines that are collected in the sorters module. All routines needed for the calculation of Lyapunov exponents are contained in the lyapunov_subroutines module.
About
Monte Carlo sampling for hybrid inflation potential.
Resources
Stars
Watchers
Forks
Releases
No releases published
Packages 0
No packages published