Read values from ini file
This commit is contained in:
parent
4baac7619e
commit
b89b1fe7ae
2 changed files with 56 additions and 11 deletions
54
example0.py
54
example0.py
|
@ -4,7 +4,7 @@ import numbers
|
|||
import jaxlib
|
||||
import jax.numpy as jnp
|
||||
import jax
|
||||
|
||||
import configparser
|
||||
|
||||
# Output stream management
|
||||
cons = borg.console()
|
||||
|
@ -14,25 +14,59 @@ def myprint(x):
|
|||
else:
|
||||
cons.print_std(repr(x))
|
||||
|
||||
def get_cosmopar(ini_file):
|
||||
"""
|
||||
Extract cosmological parameters from an ini file
|
||||
|
||||
Args:
|
||||
:ini_file (str): Path to the ini file
|
||||
|
||||
Returns:
|
||||
:cpar (borg.cosmo.CosmologicalParameters): Cosmological parameters
|
||||
"""
|
||||
|
||||
config = configparser.ConfigParser()
|
||||
config.read(ini_file)
|
||||
|
||||
cpar = borg.cosmo.CosmologicalParameters()
|
||||
cpar.default()
|
||||
cpar.fnl = float(config['cosmology']['fnl'])
|
||||
cpar.omega_k = float(config['cosmology']['omega_k'])
|
||||
cpar.omega_m = float(config['cosmology']['omega_m'])
|
||||
cpar.omega_b = float(config['cosmology']['omega_b'])
|
||||
cpar.omega_q = float(config['cosmology']['omega_q'])
|
||||
cpar.h = float(config['cosmology']['h100'])
|
||||
cpar.sigma8 = float(config['cosmology']['sigma8'])
|
||||
cpar.n_s = float(config['cosmology']['n_s'])
|
||||
cpar.w = float(config['cosmology']['w'])
|
||||
cpar.wprime = float(config['cosmology']['wprime'])
|
||||
|
||||
return cpar
|
||||
|
||||
|
||||
class MyLikelihood(borg.likelihood.BaseLikelihood):
|
||||
"""
|
||||
HADES likelihood class
|
||||
"""
|
||||
|
||||
def __init__(self, fwd: borg.forward.BaseForwardModel):
|
||||
def __init__(self, fwd: borg.forward.BaseForwardModel, ini_fname: str):
|
||||
|
||||
self.fwd = fwd
|
||||
self.N = [32, 32, 32] # Number of grid points per side
|
||||
self.L = [500, 500, 500] # Box size lenght Mpc/h
|
||||
|
||||
self.sigma_dens = 0.1 # Density scatter
|
||||
# Read the ini file
|
||||
self.ini_fname = ini_fname
|
||||
config = configparser.ConfigParser()
|
||||
config.read(ini_fname)
|
||||
self.N = [int(config['system'][f'N{i}']) for i in range(3)] # Number of grid points per side
|
||||
self.L = [float(config['system'][f'L{i}']) for i in range(3)] # Box size lenght Mpc/h
|
||||
|
||||
self.sigma_dens = float(config['mock']['sigma_dens']) # Density scatter
|
||||
|
||||
myprint(f"Likelihood initialized with {self.N} grid points and box size {self.L} Mpc/h")
|
||||
super().__init__(fwd, self.N, self.L)
|
||||
|
||||
# Set up cosmoligical parameters
|
||||
cpar = borg.cosmo.CosmologicalParameters()
|
||||
cpar.default()
|
||||
cpar = get_cosmopar(ini_fname)
|
||||
self.updateCosmology(cpar)
|
||||
|
||||
# Gradient of the likelihood
|
||||
|
@ -180,6 +214,7 @@ def build_gravity_model(state: borg.likelihood.MarkovState, box: borg.forward.Bo
|
|||
global chain
|
||||
myprint("Building gravity model")
|
||||
|
||||
# READ FROM INI FILE
|
||||
which_model = 'cola'
|
||||
ai = 0.05 # Initial scale factor
|
||||
af = 1.0 # Final scale factor
|
||||
|
@ -250,8 +285,7 @@ def build_gravity_model(state: borg.likelihood.MarkovState, box: borg.forward.Bo
|
|||
chain @= mod
|
||||
|
||||
# Cosmological parameters
|
||||
cpar = borg.cosmo.CosmologicalParameters()
|
||||
cpar.default()
|
||||
cpar = get_cosmopar(borg.getIniConfigurationFilename())
|
||||
chain.setCosmoParams(cpar)
|
||||
|
||||
return chain
|
||||
|
@ -291,5 +325,5 @@ def build_likelihood(state: borg.likelihood.MarkovState, info: borg.likelihood.L
|
|||
|
||||
myprint("Building likelihood")
|
||||
global likelihood
|
||||
likelihood = MyLikelihood(chain)
|
||||
likelihood = MyLikelihood(chain, borg.getIniConfigurationFilename())
|
||||
return likelihood
|
||||
|
|
11
ini_file.ini
11
ini_file.ini
|
@ -51,3 +51,14 @@ w = -1
|
|||
wprime = 0
|
||||
beta = 1.5
|
||||
z0 = 0
|
||||
|
||||
[mock]
|
||||
sigma_dens = 0.1
|
||||
|
||||
[gravity]
|
||||
which_model = lpt
|
||||
ai = 0.05 # Initial scale factor
|
||||
af = 1.0 # Final scale factor
|
||||
supersampling = 2
|
||||
forcesampling = 2
|
||||
nsteps = 20 # Number of steps in the PM solver
|
Loading…
Add table
Reference in a new issue