def __init__(self): #Geometry Properties self.Geometry_type_name = read_data_string(tag_name='Geometry_type',file_name='parameters/parameters.xml') self.Cosmological_cosntant = read_data_float(tag_name='Cosmological_constant',file_name='parameters/parameters.xml') #Field Properties self.Potential_type_name = read_data_string(tag_name = 'Potential',file_name = 'parameters/parameters.xml') self.Potential_func = Gravity_Dictionary["Potential"][self.Potential_type_name][0] self.Potential_dfunc = Gravity_Dictionary["Potential"][self.Potential_type_name][1] #Initial Condition self.Initial_Condition_type_name = read_data_string(tag_name = 'Initial_Condition_Method',file_name = 'parameters/parameters.xml') self.Initial_Condition_type = Gravity_Dictionary["Initial_Condition"][self.Initial_Condition_type_name] #Numerical Method Setup self.Solver_type_name = read_data_string(tag_name = 'Solver_type',file_name = 'parameters/parameters.xml') self.Grid_size = read_data_int(tag_name = 'Grid_size',file_name = 'parameters/parameters.xml') #Ending Conditions self.Max_interation = read_data_int(tag_name = 'i_max',file_name = 'parameters/parameters.xml') #Horizon Condition self.A_min = read_data_float(tag_name = 'A_min',file_name = 'parameters/parameters.xml') #Initial Condition Setup if (self.Initial_Condition_type != Initial_Condition_Input_File): self.field.r = linspace(0.0,pi/2.0,self.Grid_size+1) (self.field.phi , self.field.Phi , self.field.Pi) = self.Initial_Condition_type(self.field.r) else: (self.field.r , self.field.phi , self.field.Phi , self.field.Pi) = self.Initial_Condition_type() print "The Gravity Object is initialized susseccfully."
def Change_eps(ieps): try: pID = os.environ['PBS_ARRAYID'] num_points = read_data_float(tag_name='Number_of_points' , file_name='parameters/Initial_Condition/Gaussian.xml') end_eps = read_data_float(tag_name='Final_epsilon' ,file_name='parameters/Initial_Condition/Gaussian.xml') print 'success with reading in number of points = %f eeps = %f' %(num_points, end_eps) return ieps + (float(pID)-1)*((end_eps-ieps)/num_points) except KeyError: print("not a PBS array") return ieps
def __init__(self): #Geometry Properties self.Geometry_type_name = read_data_string(tag_name='Geometry_type',file_name='parameters/parameters.xml') self.Cosmological_cosntant = read_data_float(tag_name='Cosmological_constant',file_name='parameters/parameters.xml') #Field Properties self.Potential_type_name = read_data_string(tag_name = 'Potential',file_name = 'parameters/parameters.xml') self.Potential_func = Gravity_Dictionary["Potential"][self.Potential_type_name][0] self.Potential_dfunc = Gravity_Dictionary["Potential"][self.Potential_type_name][1] #Initial Condition #reads in the name of the initial condition self.Initial_Condition_type_name = read_data_string(tag_name = 'Initial_Condition_Method',file_name = 'parameters/parameters.xml') #matches the name of the initial condition to the stuff in the Gravity dictionary try: self.Initial_Condition_type = Gravity_Dictionary["Initial_Condition"][self.Initial_Condition_type_name] except KeyError: print 'ERROR: Initial Condition name is wrong' sys.exit(1) #Numerical Method Setup self.Solver_type_name = read_data_string(tag_name = 'Solver_type',file_name = 'parameters/parameters.xml') self.Grid_size = read_data_int(tag_name = 'Grid_size',file_name = 'parameters/parameters.xml') #Ending Conditions self.Max_interation = read_data_int(tag_name = 'i_max',file_name = 'parameters/parameters.xml') #Horizon Condition self.A_min = read_data_float(tag_name = 'A_min',file_name = 'parameters/parameters.xml') #sets the initial conditions for generating end data try: print os.environ['PBS_ARRAYID'] self.pbs_arr = True except KeyError: print "not a pbs Array" self.pbs_arr = False if self.Initial_Condition_type_name =='Gaussian': #add the report checking before this is done. self.initial_eps = read_data_float(tag_name = 'epsilon' , file_name = 'parameters/Initial_Condition/Gaussian.xml') self.initial_sigma = read_data_float(tag_name = 'sigma' , file_name = 'parameters/Initial_Condition/Gaussian.xml') if self.pbs_arr: self.initial_eps = Change_eps(self.initial_eps) #Initial Condition Setup if (self.Initial_Condition_type != Initial_Condition_Input_File): self.field.r = linspace(0.0,pi/2.0,self.Grid_size+1) (self.field.phi , self.field.Phi , self.field.Pi) = self.Initial_Condition_type(self.field.r) else: (self.field.r , self.field.phi , self.field.Phi , self.field.Pi) = self.Initial_Condition_type() print "The Gravity Object is initialized susseccfully."
def Initial_Condition_Gaussian(x): Phi = zeros(len(x)) Pi = zeros(len(x)) phi = zeros(len(x)) sigma = read_data_float(tag_name = 'sigma' , file_name = 'parameters/Initial_Condition/Gaussian.xml') eps = read_data_float(tag_name = 'epsilon' , file_name = 'parameters/Initial_Condition/Gaussian.xml') for i in range(len(x)): phi[i] = eps*exp(-tan(x[i])**2/sigma**2) Phi[i] = -2.0*sin(x[i])*eps*exp(-tan(x[i])**2/sigma**2)/(sigma**2*cos(x[i])**3) print "Assigned Initial Condition is: Gaussian" return (phi , Phi , Pi)
def Initial_Condition_Eigenfunction_modes_non_normalized(x): Phi = zeros(len(x)) Pi = zeros(len(x)) phi = zeros(len(x)) n = read_data_int(tag_name = 'number_of_modes' , file_name = 'parameters/Initial_Condition/Eigenfunction_modes_non_normalized.xml') a = read_data_float(tag_name = 'non_normalized_modes_amplitude' , file_name = 'parameters/Initial_Condition/Eigenfunction_modes_non_normalized.xml') for i in range(len(x)-1): for j in range(1,n+1): phi[i] += a*sqrt(16.0*float(j+1)*float(j+2)/pi) * cos(x[i])**3 * hyp2f1(-j,3+j,1.5,sin(x[i])**2) Phi[i] += -a*4.0*sqrt(float(2+3*j+j**2))/(3.0*sqrt(pi)) * (float(4*j*(j+3))*cos(x[i])**4*hyp2f1(1-j,4+j,2.5,sin(x[i])**2) + 9.0*cos(x[i])**2*hyp2f1(-j,3+j,1.5,sin(x[i])**2) )*sin(x[i]) print "Assigned Initial Condition is: Eigenfunction modes non-normalized" return (phi , Phi , Pi)
from numpy import cosh, sinh, exp, sqrt from Utilities import read_data_float ################################################# #CONSTANTS: l = 1.0 mass_S = read_data_float(tag_name = 'Mass', file_name = "parameters/Potential_Parameters/Massive_Scalar.xml") mass_H = read_data_float(tag_name = 'Mass', file_name = "parameters/Potential_Parameters/Higgs.xml") Lambda = read_data_float(tag_name = 'Lambda',file_name = "parameters/Potential_Parameters/Higgs.xml") ################################################# #Potential Definitions #Massless Scalar def Massless_Scalar_Potential(phi): return 0.0 #Massive Scalar def Massive_Scalar_Potential(phi): p = 0.5*mass_S*phi**2 return p #Higgs def Higgs_Potential(phi): p = 0.5*mass_H*phi**2 + Lambda*phi**4/24.0 return p #String1 def String1_Potential(phi): p = -3.0/(2.0*l**2) * cosh(phi/2.0)**2 * (5.0 - cosh(phi)) + 6.0/(l**2) return p
from numpy import * from Utilities import read_data_float from Output_Generator import Output_Plot_Construction, Output_Data_Construction, Power_Spectrum_Data_Construction from Gravity_AdS4_RH_Construction import * #from matplotlib.pyplot import * #Initianlization #Constants: l = read_data_float(tag_name = 'Cosmological_constant', file_name = "parameters/parameters.xml") A_horizon = read_data_float(tag_name = 'A_min', file_name = "parameters/parameters.xml") #Delta Solver def Delta_Solver(x,Phi,Pi): delta = zeros(len(x)) dx = x[1]-x[0] delta[0] = 0.0 for i in range(0,len(x)-1): y = (Phi[i+1]+Phi[i])/2.0 z = (Pi[i+1] + Pi[i])/2.0 k1 = dx*(-sin(x[i]) * cos(x[i])*(Pi[i]**2 + Phi[i]**2)) k2 = dx*(-sin(x[i]+0.5*dx) * cos(x[i]+0.5*dx)*(y**2 + z**2)) k3 = dx*(-sin(x[i]+0.5*dx) * cos(x[i]+0.5*dx)*(y**2 + z**2)) k4 = dx*(-sin(x[i]+dx) * cos(x[i]+dx)*(Pi[i+1]**2 + Phi[i+1]**2)) delta[i+1] = delta[i] + (k1+2.0*k2+2.0*k3+k4)/6.0 return delta #A Solver def A_Solver(x,Phi,Pi,phi): A = ones(len(x)) dx = x[1]-x[0]