EFTCAMB  Reference documentation for version 3.0
09p2_Designer_mc_quintessence.f90
Go to the documentation of this file.
1 !----------------------------------------------------------------------------------------
2 !
3 ! This file is part of EFTCAMB.
4 !
5 ! Copyright (C) 2013-2016 by the EFTCAMB authors
6 !
7 ! The EFTCAMB code is free software;
8 ! You can use it, redistribute it, and/or modify it under the terms
9 ! of the GNU General Public License as published by the Free Software Foundation;
10 ! either version 3 of the License, or (at your option) any later version.
11 ! The full text of the license can be found in the file eftcamb/LICENSE at
12 ! the top level of the EFTCAMB distribution.
13 !
14 !----------------------------------------------------------------------------------------
15 
19 
20 
21 !----------------------------------------------------------------------------------------
24 
26 
28 
29  use precision
30  use inifile
31  use amlutils
42 
43  implicit none
44 
45  private
46 
47  public eftcamb_des_mc_quint
48 
49  !----------------------------------------------------------------------------------------
51  type, extends ( eftcamb_std_pure_eft ) :: eftcamb_des_mc_quint
52 
53  contains
54 
55  ! initialization of the model:
56  procedure :: allocate_model_selection => eftcambdesmc5eallocatemodelselection
57  ! utility functions:
58  procedure :: feedback => eftcambdesmc5efeedback
59 
60  end type eftcamb_des_mc_quint
61 
62  ! ---------------------------------------------------------------------------------------------
63 
64 contains
65 
66  ! ---------------------------------------------------------------------------------------------
68  subroutine eftcambdesmc5eallocatemodelselection( self )
69 
70  implicit none
71 
72  class(eftcamb_des_mc_quint) :: self
73 
74  ! allocate wDE:
75  if ( allocated(self%PureEFTwDE) ) deallocate(self%PureEFTwDE)
76  select case ( self%EFTwDE )
77  case(0)
78  allocate( wde_lcdm_parametrization_1d::self%PureEFTwDE )
79  case(1)
80  allocate( constant_parametrization_1d::self%PureEFTwDE )
81  case(2)
82  allocate( cpl_parametrization_1d::self%PureEFTwDE )
83  call self%PureEFTwDE%set_param_names( ['EFTw0', 'EFTwa'], ['w_0', 'w_a'] )
84  case(3)
85  allocate( jbp_parametrization_1d::self%PureEFTwDE )
86  call self%PureEFTwDE%set_param_names( ['EFTw0', 'EFTwa', 'EFTwn'], [ 'w_0', 'w_a', 'n ' ] )
87  case(4)
88  allocate( turning_point_parametrization_1d::self%PureEFTwDE )
89  call self%PureEFTwDE%set_param_names( ['EFTw0 ', 'EFTwa ', 'EFTwat'], ['w_0', 'w_a', 'a_t'] )
90  case(5)
91  allocate( taylor_parametrization_1d::self%PureEFTwDE )
92  call self%PureEFTwDE%set_param_names( ['EFTw0', 'EFTwa', 'EFTw2', 'EFTw3'], ['w_0', 'w_a', 'w_2', 'w_3'] )
93  case default
94  write(*,'(a,I3)') 'No model corresponding to EFTwDE =', self%EFTwDE
95  write(*,'(a)') 'Please select an appropriate model.'
96  end select
97  ! allocate Omega:
98  if ( allocated(self%PureEFTOmega) ) deallocate(self%PureEFTOmega)
99  allocate( zero_parametrization_1d::self%PureEFTOmega )
100  ! allocate Gamma1:
101  if ( allocated(self%PureEFTGamma1) ) deallocate(self%PureEFTGamma1)
102  allocate( zero_parametrization_1d::self%PureEFTGamma1 )
103  ! allocate Gamma2:
104  if ( allocated(self%PureEFTGamma2) ) deallocate(self%PureEFTGamma2)
105  allocate( zero_parametrization_1d::self%PureEFTGamma2 )
106  ! allocate Gamma3:
107  if ( allocated(self%PureEFTGamma3) ) deallocate(self%PureEFTGamma3)
108  allocate( zero_parametrization_1d::self%PureEFTGamma3 )
109  ! allocate Gamma4:
110  if ( allocated(self%PureEFTGamma4) ) deallocate(self%PureEFTGamma4)
111  allocate( zero_parametrization_1d::self%PureEFTGamma4 )
112  ! allocate Gamma5:
113  if ( allocated(self%PureEFTGamma5) ) deallocate(self%PureEFTGamma5)
114  allocate( zero_parametrization_1d::self%PureEFTGamma5 )
115  ! allocate Gamma6:
116  if ( allocated(self%PureEFTGamma6) ) deallocate(self%PureEFTGamma6)
117  allocate( zero_parametrization_1d::self%PureEFTGamma6 )
118 
119  ! initialize the names:
120  call self%PureEFTOmega%set_name ( 'EFTOmega' , '\Omega' )
121  call self%PureEFTwDE%set_name ( 'EFTw' , 'w' )
122  call self%PureEFTGamma1%set_name( 'EFTGamma1', '\gamma^{(1)}' )
123  call self%PureEFTGamma2%set_name( 'EFTGamma2', '\gamma^{(2)}' )
124  call self%PureEFTGamma3%set_name( 'EFTGamma3', '\gamma^{(3)}' )
125  call self%PureEFTGamma4%set_name( 'EFTGamma4', '\gamma^{(4)}' )
126  call self%PureEFTGamma5%set_name( 'EFTGamma5', '\gamma^{(5)}' )
127  call self%PureEFTGamma6%set_name( 'EFTGamma6', '\gamma^{(6)}' )
128 
129  end subroutine eftcambdesmc5eallocatemodelselection
130 
131  ! ---------------------------------------------------------------------------------------------
133  subroutine eftcambdesmc5efeedback( self, print_params )
134 
135  implicit none
136 
137  class(eftcamb_des_mc_quint) :: self
138  logical, optional :: print_params
140 
141  ! print general model informations:
142  write(*,*)
143  write(*,'(a,a)') ' Model = ', self%name
144  write(*,'(a,I3)') ' Number of params =' , self%parameter_number
145 
146  ! print model functions informations:
147  write(*,*)
148  if ( self%EFTwDE /= 0 ) write(*,'(a,I3)') ' EFTwDE =', self%EFTwDE
149 
150  write(*,*)
151  ! print functions informations:
152  call self%PureEFTwDE%feedback( print_params )
153 
154  end subroutine eftcambdesmc5efeedback
155 
156  ! ---------------------------------------------------------------------------------------------
157 
159 
160 !----------------------------------------------------------------------------------------
This module contains the definition of the constant parametrization, inheriting from parametrized_fun...
This module contains the definition of the Taylor expansion parametrization, around a=0...
This module contains the definition of the designer minimally coupled quintessence model...
This module contains the definition of the linear parametrization, inheriting from parametrized_funct...
This module contains the definition of the turning point parametrization, inheriting from parametrize...
This module contains the definition of the CPL parametrization, inheriting from parametrized_function...
This module contains the definition of the power law parametrization, inheriting from parametrized_fu...
This module contains the definition of neutral parametrizations that can be used when parametrized fu...
This module contains the definition of the generalized Jassal-Bagla-Padmanabhan (JBP) parametrization...
This module contains the definition of the Pure EFT model in which the EFT is described by six functi...
This module contains the definition of the exponential parametrization, inheriting from parametrized_...