コード例 #1
0
      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."
コード例 #2
0
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
コード例 #3
0
      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."
コード例 #4
0
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)
コード例 #5
0
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)
コード例 #6
0
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
コード例 #7
0
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]