Skip to content

Commit

Permalink
LPT NL PT (#1097)
Browse files Browse the repository at this point in the history
* Adding first try.

* Changes to aliases.

* First version of LPT.

* Clean-up, unit tests and benchmarks.

* Removing files that are not part of PR.

* add docfile

* removed heft_aemulus import

* velocileptors in CI

* Addressing comments. Thanks David.

* Relaxing accuracy requirements for travis run.

---------

Co-authored-by: Andrina Nicola <nicola@aibn1097>
Co-authored-by: David Alonso <dam.phys@gmail.com>
  • Loading branch information
3 people committed Jul 12, 2023
1 parent 0c1940a commit 6c91ee9
Show file tree
Hide file tree
Showing 10 changed files with 1,051 additions and 1 deletion.
2 changes: 1 addition & 1 deletion .github/environment.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@ dependencies:
- pytest-cov
- pip:
- classy<3
- velocileptors @ git+https://github.com/sfschen/velocileptors
- baccoemu @ git+https://bitbucket.org/rangulo/baccoemu.git@master

88 changes: 88 additions & 0 deletions benchmarks/data/codes/pt_bm_lpt.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
import numpy as np
import pyccl as ccl
from velocileptors.EPT.cleft_kexpanded_resummed_fftw import RKECLEFT

cosmo = ccl.Cosmology(Omega_c=0.25, Omega_b=0.05, h=0.7, n_s=0.96, sigma8=0.8,
transfer_function='boltzmann_camb', T_CMB=2.725)
lkmin = -4
lkmax = 2
n_per_decade = 20
z_s = np.array([0., 1.])
a_s = 1./(1 + z_s)
ks = np.logspace(lkmin, lkmax, (lkmax - lkmin) * n_per_decade)

pklz0 = cosmo.linear_matter_power(ks, 1.0)
g = cosmo.growth_factor(a_s)

h = cosmo['h']
cleft = RKECLEFT(ks / h, pklz0 * h ** 3)
lpt_table = []
for gz in g:
cleft.make_ptable(D=gz, kmin=ks[0] / h,
kmax=ks[-1] / h, nk=ks.size)
lpt_table.append(cleft.pktable)
lpt_table = np.array(lpt_table)
lpt_table[:, :, 1:] /= h ** 3

b11 = b12 = 1.3
b21 = b22 = 1.5
bs1 = bs2 = 1.7
b3nl1 = b3nl2 = 1.9
bk21 = bk22 = 0.1

# Transform from Eulerian to Lagrangian biases
bL11 = b11 - 1
bL12 = b12 - 1

# Pgg
Pdmdm = lpt_table[:, :, 1]
Pdmd1 = 0.5*lpt_table[:, :, 2]
Pd1d1 = lpt_table[:, :, 3]
pgg = (Pdmdm + (bL11+bL12) * Pdmd1 +
(bL11*bL12) * Pd1d1)

Pdmd2 = 0.5*lpt_table[:, :, 4]
Pd1d2 = 0.5*lpt_table[:, :, 5]
Pd2d2 = lpt_table[:, :, 6]
Pdms2 = 0.25*lpt_table[:, :, 7]
Pd1s2 = 0.25*lpt_table[:, :, 8]
Pd2s2 = 0.25*lpt_table[:, :, 9]
Ps2s2 = 0.25*lpt_table[:, :, 10]
Pdmo3 = 0.25*lpt_table[:, :, 11]
Pd1o3 = 0.25*lpt_table[:, :, 12]

Pdmk2 = 0.5*Pdmdm * (ks**2)[None, :]
Pd1k2 = 0.5*Pdmd1 * (ks**2)[None, :]
Pd2k2 = Pdmd2 * (ks**2)[None, :]
Ps2k2 = Pdms2 * (ks**2)[None, :]
Pk2k2 = 0.25*Pdmdm * (ks**4)[None, :]

pgg += ((b21 + b22) * Pdmd2 +
(bs1 + bs2) * Pdms2 +
(bL11*b22 + bL12*b21) * Pd1d2 +
(bL11*bs2 + bL12*bs1) * Pd1s2 +
(b21*b22) * Pd2d2 +
(b21*bs2 + b22*bs1) * Pd2s2 +
(bs1*bs2) * Ps2s2 +
(b3nl1 + b3nl2) * Pdmo3 +
(bL11*b3nl2 + bL12*b3nl1) * Pd1o3)

pgg += ((bk21 + bk22) * Pdmk2 +
(bL12 * bk21 + bL11 * bk22) * Pd1k2 +
(b22 * bk21 + b21 * bk22) * Pd2k2 +
(bs2 * bk21 + bs1 * bk22) * Ps2k2 +
(bk21 * bk22) * Pk2k2)

# Pgm
pgm = Pdmdm + bL11 * Pdmd1
pgm += (b21 * Pdmd2 +
bs1 * Pdms2 +
b3nl1 * Pdmo3 +
bk21 * Pdmk2)

np.savetxt("../pt_bm_lpt_z0.txt",
np.transpose([ks, pgg[0], pgm[0]]),
header='[0]-k [1]-GG [2]-GM')
np.savetxt("../pt_bm_lpt_z1.txt",
np.transpose([ks, pgg[1], pgm[1]]),
header='[0]-k [1]-GG [2]-GM')
121 changes: 121 additions & 0 deletions benchmarks/data/pt_bm_lpt_z0.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
# [0]-k [1]-GG [2]-GM
1.000000000000000048e-04 4.207294223922031233e+04 2.350869964433202313e+03
1.123104501832951563e-04 4.243269908668629068e+04 2.627649991647560455e+03
1.261363722037443607e-04 4.283473279902279319e+04 2.936962375080829133e+03
1.416643274669020691e-04 4.328390083188002609e+04 3.282545993287432793e+03
1.591038439272153397e-04 4.378565422828785086e+04 3.668598344717169766e+03
1.786902433735828547e-04 4.434604404150720802e+04 4.099778298100147367e+03
2.006878167664966517e-04 4.497179089736612514e+04 4.581261604814251768e+03
2.253933904734791273e-04 4.567032510809090309e+04 5.118771287146989380e+03
2.531403315241567112e-04 4.644984256602529058e+04 5.718620874431739139e+03
2.843030459302664991e-04 4.731939859295078350e+04 6.387787703162788603e+03
3.193020307691026927e-04 4.828891851015744032e+04 7.133920791544034728e+03
3.586095482011828752e-04 4.936925885556686262e+04 7.965389291157484877e+03
4.027559979850297688e-04 5.057231067304212047e+04 8.891362579826045476e+03
4.523370744772100735e-04 5.191094198872150446e+04 9.921767235879302461e+03
5.080218046913023006e-04 5.339906860594044701e+04 1.106734326945759312e+04
5.705615758781020690e-04 5.505172032753632084e+04 1.233969653173932420e+04
6.408002744415996176e-04 5.688480449084784777e+04 1.375111878264795087e+04
7.196856730011521675e-04 5.891518105433775054e+04 1.531464674688002742e+04
8.082822192522714057e-04 6.116056147884800885e+04 1.704398645033490902e+04
9.077853991937557794e-04 6.363886711396009923e+04 1.895302518523907929e+04
1.019537868532730158e-03 6.636835806584786042e+04 2.105593895614408393e+04
1.145047569938281197e-03 6.936711560191915487e+04 2.336679648552498475e+04
1.286008080610566342e-03 7.265182291373325279e+04 2.589861532007493224e+04
1.444321464727281977e-03 7.623791652851829713e+04 2.866349963923856922e+04
1.622123939129172920e-03 8.013835415174360969e+04 3.167171229514911829e+04
1.821814698566974824e-03 8.436170553171169013e+04 3.493016613100061659e+04
2.046088289466011217e-03 8.891237951392395189e+04 3.844267750911000621e+04
2.297970969046962773e-03 9.378775740311371919e+04 4.220769679113970051e+04
2.580861540418076874e-03 9.897611955971604038e+04 4.621680535970522033e+04
2.898577214651068025e-03 1.044562549038765865e+05 5.045433223014683608e+04
3.255405118685032132e-03 1.101940519885457616e+05 5.489482297926963656e+04
3.656160144085193742e-03 1.161399920471829391e+05 5.950108662173125776e+04
4.106249917244298060e-03 1.222267544120856328e+05 6.422234893351078063e+04
4.611747767708260920e-03 1.283665852796286490e+05 6.899224889550385706e+04
5.179474679231212825e-03 1.344482501971161109e+05 7.372649623917718418e+04
5.817091329374357578e-03 1.403345679469715105e+05 7.832092163584922673e+04
6.533201459593769925e-03 1.458605460024889035e+05 8.265019850636612682e+04
7.337467970651380747e-03 1.508309905544974317e+05 8.656580112979319529e+04
8.240743309893666310e-03 1.550220074669351161e+05 8.989742606830361183e+04
9.255215909791354029e-03 1.581836254631296615e+05 9.245495771879532549e+04
1.039457465372262655e-02 1.600495209552349697e+05 9.403613927632138075e+04
1.167419358823458715e-02 1.603536191977501148e+05 9.443966637062572408e+04
1.311133937421564422e-02 1.588575634469977813e+05 9.348656743542780168e+04
1.472540427624122357e-02 1.553912929166885733e+05 9.105160870992128912e+04
1.653816783395672951e-02 1.499078225699339528e+05 8.710592033757916943e+04
1.857409074638571855e-02 1.425433781915532600e+05 8.176269315018485941e+04
2.086064493471958756e-02 1.336696441290512157e+05 7.531614096265257103e+04
2.342868423732233016e-02 1.239149987873810751e+05 6.825595373042165011e+04
2.631286073895944613e-02 1.140677093717622483e+05 6.118956839714485977e+04
2.955209235202888030e-02 1.049748415414628980e+05 5.476183854708475701e+04
3.319008795914676901e-02 9.746241667346020404e+04 4.958809695299228770e+04
3.727593720314941600e-02 9.160216671677010891e+04 4.570590540713415976e+04
4.186477288289951193e-02 8.696172987839928828e+04 4.277084515731155989e+04
4.701851489299856829e-02 8.226904210010603128e+04 3.982653998370894988e+04
5.280670574582636834e-02 7.615695502429598127e+04 3.588191612127111875e+04
5.930744895010558321e-02 6.852191677775846620e+04 3.090732160835988543e+04
6.660846290809160908e-02 6.099732122265047656e+04 2.612380293000393431e+04
7.480826455225085547e-02 5.552369043547243928e+04 2.290949180964338302e+04
8.401749869294343476e-02 5.209740784944438201e+04 2.120000884563704312e+04
9.436043101478890083e-02 4.847299427250601730e+04 1.938617214775780667e+04
1.059766248676070888e-01 4.373508096876819036e+04 1.686077451459520671e+04
1.190228244778715611e-01 3.982182388872155570e+04 1.494523248134329515e+04
1.336750699919707630e-01 3.692861404033352301e+04 1.373036145393243714e+04
1.501310728908174241e-01 3.377004680810174614e+04 1.238074173097200946e+04
1.686128838286880538e-01 3.092002896874052021e+04 1.128249881893597922e+04
1.893698888950360315e-01 2.820414679982055168e+04 1.027768156973045188e+04
2.126821747296210319e-01 2.551176757268197252e+04 9.238834407437290793e+03
2.388643078984598045e-01 2.307732651982280731e+04 8.328451086427887276e+03
2.682695795279727569e-01 2.095470083387331761e+04 7.644188394815771971e+03
3.012947724726992016e-01 1.883816537794634496e+04 6.938589621160390379e+03
3.383855153428233509e-01 1.670255154997950740e+04 6.129273891228922366e+03
3.800422956365885896e-01 1.493868600643956051e+04 5.550365288961176702e+03
4.268272131163821093e-01 1.321655560338802206e+04 4.956665791291441565e+03
4.793715645558218608e-01 1.159089411290533644e+04 4.359731632767763585e+03
5.383843622033489540e-01 1.018870601308978439e+04 3.877965275327876043e+03
6.046619009070435258e-01 8.856414525889364086e+03 3.389146471450791068e+03
6.790985029955713959e-01 7.679409498531723330e+03 2.956304328560829163e+03
7.626985859023444059e-01 6.644392090312009714e+03 2.578625790751927525e+03
8.565902153685499565e-01 5.711607087004627829e+03 2.228125815633520688e+03
9.620403271064760231e-01 4.895547560265819811e+03 1.918380895022889035e+03
1.080471822318128439e+00 4.186335013872021591e+03 1.646487717737148159e+03
1.213482767749143099e+00 3.574325150950304305e+03 1.409645490683192065e+03
1.362867959355775538e+00 3.049231866087216076e+03 1.204080635327693244e+03
1.530643140556359416e+00 2.603215294879876637e+03 1.027640374755359744e+03
1.719072201858574678e+00 2.230276330739888635e+03 8.798868992830424531e+02
1.930697728883249642e+00 1.915989076905133516e+03 7.524002258258143456e+02
2.168375310987432858e+00 1.663756992432384322e+03 6.516113721231198497e+02
2.435312073433417268e+00 1.458438515723826868e+03 5.676082770978803183e+02
2.735109953041210851e+00 1.295322108262259917e+03 4.989387751331457821e+02
3.071814301268696479e+00 1.200606624804954436e+03 4.645179578782037879e+02
3.449968470549715782e+00 1.090440663290948805e+03 4.073590185223438311e+02
3.874675120456128052e+00 1.113802733513084604e+03 4.203012346068911143e+02
4.351665070924420675e+00 1.126718967276348621e+03 4.111026036261343393e+02
4.887374631624426868e+00 1.149000647065746307e+03 3.944271765638453644e+02
5.489032450921557782e+00 1.788625382447469519e+03 6.148799145267612403e+02
6.164757056337161423e+00 1.142511361891642991e+03 3.192890410320847536e+02
6.923666402678734677e+00 3.256253426697368468e+03 9.029000300585370269e+02
7.776000906038043503e+00 3.487479064065844341e+03 8.259534629279577302e+02
8.733261623828436626e+00 2.444772966514030031e+03 4.785848237794434681e+02
9.808365445406671768e+00 2.295222229815960964e+04 3.929904879379865179e+03
1.101581938735899513e+01 -2.224884707076807172e+04 -3.161794580910731838e+03
1.237191634532161899e+01 6.998629916970182967e+04 8.079134922210260811e+03
1.389495494373138840e+01 2.528142857538940007e+04 2.367804425080440069e+03
1.560548645007074953e+01 -9.541212866094280616e+04 -7.243969966242384544e+03
1.752659208536758584e+01 1.046231841850055731e+06 6.395276319666705967e+04
1.968419447286611401e+01 -2.480792661972647533e+06 -1.217670545980870083e+05
2.210740742743127996e+01 4.200134796334661543e+06 1.651196842309724598e+05
2.482892880560330084e+01 -1.159749887406748254e+06 -3.644294301715874462e+04
2.788548171726291613e+01 -9.958367097290189937e+06 -2.497082938454368268e+05
3.131831005243844857e+01 7.296385373753009737e+07 1.458057340285842307e+06
3.517373500969380018e+01 -2.324068835575423241e+08 -3.697238783915257081e+06
3.950378013566648860e+01 3.539317082609414458e+08 4.478593042695605196e+06
4.436687330978615762e+01 -2.251105172180508673e+08 -2.264215604304601438e+06
4.982863514647305436e+01 -8.383135025952383280e+08 -6.698756536315558478e+06
5.596276445319552550e+01 5.740023439683015823e+09 3.642342137347067893e+07
6.285203269240097512e+01 -2.210413188083390808e+10 -1.113452260869309306e+08
7.058940086618751764e+01 3.271045869412665176e+10 1.307669441736216098e+08
7.927927389450606199e+01 -2.834480321611344910e+10 -8.990924479112567008e+07
8.903890941296735662e+01 -6.406274643927260590e+10 -1.612061693251197040e+08
1.000000000000000000e+02 4.825746190431843872e+11 9.632227925443732738e+08

0 comments on commit 6c91ee9

Please sign in to comment.