From 00881ced1c6e64472d8d050baf9ee8f777bb2a4d Mon Sep 17 00:00:00 2001 From: villarrealas Date: Fri, 22 Jul 2016 06:35:20 -0400 Subject: [PATCH 1/6] new branch for code comparison --- tests/benchmark/testfile | 1 + 1 file changed, 1 insertion(+) create mode 100644 tests/benchmark/testfile diff --git a/tests/benchmark/testfile b/tests/benchmark/testfile new file mode 100644 index 000000000..104300bfb --- /dev/null +++ b/tests/benchmark/testfile @@ -0,0 +1 @@ +Test test test From 6f172b5ebceb49a9dc51cfd155a9c8406a19560c Mon Sep 17 00:00:00 2001 From: c-d-leonard Date: Fri, 22 Jul 2016 11:39:19 +0100 Subject: [PATCH 2/6] adding benchmark files --- Makefile | 3 ++- class/build/.base | 0 tests/benchmark/chi_model1-5.txt | 8 ++++++ tests/benchmark/growth_model1-5.txt | 8 ++++++ tests/benchmark/model1_chi.txt | 7 +++++ tests/benchmark/model1_gf.txt | 7 +++++ tests/benchmark/model1_pk.txt | 42 +++++++++++++++++++++++++++++ tests/benchmark/model1_sm.txt | 7 +++++ tests/benchmark/model2_chi.txt | 7 +++++ tests/benchmark/model2_gf.txt | 7 +++++ tests/benchmark/model2_pk.txt | 42 +++++++++++++++++++++++++++++ tests/benchmark/model2_sm.txt | 7 +++++ tests/benchmark/model3_chi.txt | 7 +++++ tests/benchmark/model3_gf.txt | 7 +++++ tests/benchmark/model3_pk.txt | 42 +++++++++++++++++++++++++++++ tests/benchmark/model3_sm.txt | 7 +++++ 16 files changed, 207 insertions(+), 1 deletion(-) create mode 100644 class/build/.base create mode 100644 tests/benchmark/chi_model1-5.txt create mode 100644 tests/benchmark/growth_model1-5.txt create mode 100644 tests/benchmark/model1_chi.txt create mode 100644 tests/benchmark/model1_gf.txt create mode 100644 tests/benchmark/model1_pk.txt create mode 100644 tests/benchmark/model1_sm.txt create mode 100644 tests/benchmark/model2_chi.txt create mode 100644 tests/benchmark/model2_gf.txt create mode 100644 tests/benchmark/model2_pk.txt create mode 100644 tests/benchmark/model2_sm.txt create mode 100644 tests/benchmark/model3_chi.txt create mode 100644 tests/benchmark/model3_gf.txt create mode 100644 tests/benchmark/model3_pk.txt create mode 100644 tests/benchmark/model3_sm.txt diff --git a/Makefile b/Makefile index 5db238e5d..5e49266a8 100644 --- a/Makefile +++ b/Makefile @@ -1,5 +1,6 @@ CC=gcc -CFLAGS=-Wall -Wpedantic -g -O0 -Iinclude -std=c99 -fPIC +#CFLAGS=-Wall -Wpedantic -g -O0 -Iinclude -std=c99 -fPIC +CFLAGS=-Wall -g -O0 -Iinclude -std=c99 -fPIC CFLAGS+=-I/home/damonge/include CFLAGS+=-I/opt/local/include LDFLAGS=-lgsl -lgslcblas -lm -Lclass -lclass diff --git a/class/build/.base b/class/build/.base new file mode 100644 index 000000000..e69de29bb diff --git a/tests/benchmark/chi_model1-5.txt b/tests/benchmark/chi_model1-5.txt new file mode 100644 index 000000000..ec3336dd2 --- /dev/null +++ b/tests/benchmark/chi_model1-5.txt @@ -0,0 +1,8 @@ +#z chi(z,model1) chi(z,model2) chi(z,model3) chi(z,model4) chi(z,model5) [Mpc/h] +0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 0.000000e+00 +1.000000e+00 2.312680e+03 2.265688e+03 2.256882e+03 2.229515e+03 2.285537e+03 +2.000000e+00 3.625903e+03 3.552025e+03 3.533010e+03 3.479886e+03 3.589083e+03 +3.000000e+00 4.448980e+03 4.365270e+03 4.341011e+03 4.273092e+03 4.412740e+03 +4.000000e+00 5.019256e+03 4.931431e+03 4.904493e+03 4.827755e+03 4.985477e+03 +5.000000e+00 5.442759e+03 5.352957e+03 5.324543e+03 5.242161e+03 5.411408e+03 + diff --git a/tests/benchmark/growth_model1-5.txt b/tests/benchmark/growth_model1-5.txt new file mode 100644 index 000000000..2d37a6102 --- /dev/null +++ b/tests/benchmark/growth_model1-5.txt @@ -0,0 +1,8 @@ +#z G(z,model1) G(z,model2) G(z,model3) G(z,model4) G(z,model5) +0.000000e+00 7.789810e-01 7.567071e-01 7.479643e-01 7.157714e-01 7.831042e-01 +1.000000e+00 4.765851e-01 4.687370e-01 4.645434e-01 4.480479e-01 4.823812e-01 +2.000000e+00 3.282982e-01 3.256412e-01 3.238049e-01 3.149879e-01 3.331885e-01 +3.000000e+00 2.483706e-01 2.472678e-01 2.463657e-01 2.410459e-01 2.519587e-01 +4.000000e+00 1.993271e-01 1.987894e-01 1.982932e-01 1.947702e-01 2.019652e-01 +5.000000e+00 1.663410e-01 1.660466e-01 1.657487e-01 1.632542e-01 1.683326e-01 + diff --git a/tests/benchmark/model1_chi.txt b/tests/benchmark/model1_chi.txt new file mode 100644 index 000000000..485620e41 --- /dev/null +++ b/tests/benchmark/model1_chi.txt @@ -0,0 +1,7 @@ +# [1] z, [2] chi(z) (Mpc/h) +0.000000000000000000e+00 0.000000000000000000e+00 +1.000000000000000000e+00 2.312680164121228700e+03 +2.000000000000000000e+00 3.625903452087460209e+03 +3.000000000000000000e+00 4.448979805408229367e+03 +4.000000000000000000e+00 5.019256490124302218e+03 +5.000000000000000000e+00 5.442759346824006570e+03 diff --git a/tests/benchmark/model1_gf.txt b/tests/benchmark/model1_gf.txt new file mode 100644 index 000000000..1a2f0248d --- /dev/null +++ b/tests/benchmark/model1_gf.txt @@ -0,0 +1,7 @@ +# [1] z, [2] D(z) +0.000000000000000000e+00 7.789810171220978852e-01 +1.000000000000000000e+00 4.765850679945813351e-01 +2.000000000000000000e+00 3.282981974613269904e-01 +3.000000000000000000e+00 2.483706199262521175e-01 +4.000000000000000000e+00 1.993271080152875518e-01 +5.000000000000000000e+00 1.663409724161224179e-01 diff --git a/tests/benchmark/model1_pk.txt b/tests/benchmark/model1_pk.txt new file mode 100644 index 000000000..a51f35b67 --- /dev/null +++ b/tests/benchmark/model1_pk.txt @@ -0,0 +1,42 @@ +# [0] k (Mpc/h)^-1, [2] P(k,z=0.0) (Mpc/h)^3, [3] P(k,z=1.0) (Mpc/h)^3, [4] P(k,z=2.0) (Mpc/h)^3, [5] P(k,z=3.0) (Mpc/h)^3, [6] P(k,z=4.0) (Mpc/h)^3, [7] P(k,z=5.0) (Mpc/h)^3 +1.000000000000000021e-03 1.890711719536719102e+03 7.077052698823362107e+02 3.358215513377599564e+02 1.922082434013981356e+02 1.237953404645469391e+02 8.621246031916035690e+01 +1.258925411794167490e-03 2.342301858687763797e+03 8.767382948547533488e+02 4.160314001113733298e+02 2.381165362874673121e+02 1.533634414336011105e+02 1.068040166890670548e+02 +1.584893192461114082e-03 2.895181452646608705e+03 1.083684598837549174e+03 5.142319248279306976e+02 2.943218342550214288e+02 1.895635225262419397e+02 1.320141582262072291e+02 +1.995262314968878920e-03 3.567429521857798136e+03 1.335311272715446648e+03 6.336342573747624556e+02 3.626620360837407588e+02 2.335793170784782262e+02 1.626672500712733154e+02 +2.511886431509579437e-03 4.376865721868949549e+03 1.638288325463492129e+03 7.774034621604034783e+02 4.449486737250242641e+02 2.865775763737993884e+02 1.995758308735610171e+02 +3.162277660168379394e-03 5.337948469712086990e+03 1.998027633372497348e+03 9.481075922557749891e+02 5.426515783072109116e+02 3.495049728427843547e+02 2.433991739066060518e+02 +3.981071705534973415e-03 6.456404832034350875e+03 2.416672873453224383e+03 1.146763869052263090e+03 6.563529588517583306e+02 4.227364891748194395e+02 2.943984213112011616e+02 +5.011872336272724625e-03 7.721052932704623345e+03 2.890038599250036896e+03 1.371386207124777457e+03 7.849160747615218270e+02 5.055399861715377483e+02 3.520637031572630917e+02 +6.309573444801930275e-03 9.093378568852336684e+03 3.403708702767637533e+03 1.615133849512390043e+03 9.244256029318398760e+02 5.953937262206869718e+02 4.146388531543981344e+02 +7.943282347242813790e-03 1.049799114984343032e+04 3.929464012495129282e+03 1.864616185239670585e+03 1.067217396129141662e+03 6.873614709000214589e+02 4.786862196308485409e+02 +1.000000000000000021e-02 1.182053640158683447e+04 4.424501005520173749e+03 2.099522011212805410e+03 1.201666290177752899e+03 7.739558141981432300e+02 5.389914892592404385e+02 +1.258925411794167490e-02 1.292057630279330624e+04 4.836252848553875992e+03 2.294907221099329490e+03 1.313495467993476041e+03 8.459815030894194479e+02 5.891509849413711208e+02 +1.584893192461114125e-02 1.366045909531974212e+04 5.113195624100070745e+03 2.426322594805916651e+03 1.388711361778316586e+03 8.944257165875582132e+02 6.228880772925756446e+02 +1.995262314968879874e-02 1.393878347887514064e+04 5.217374188681650594e+03 2.475757590789122787e+03 1.417005596328292313e+03 9.126491514273591292e+02 6.355790812278577278e+02 +2.511886431509580825e-02 1.371131244639128272e+04 5.132230352754168052e+03 2.435354987777888255e+03 1.393881072834494944e+03 8.977553663932974359e+02 6.252068826747232606e+02 +3.162277660168379134e-02 1.299231003429106386e+04 4.863103234725770562e+03 2.307648313644483096e+03 1.320787861847780732e+03 8.506783067437244199e+02 5.924218915615570040e+02 +3.981071705534973415e-02 1.184453447320124178e+04 4.433483634428133882e+03 2.103784464105750430e+03 1.204105914972143182e+03 7.755271005107524616e+02 5.400857506293981487e+02 +5.011872336272724798e-02 1.036937525194140835e+04 3.881322274230444236e+03 1.841771882793214672e+03 1.054142406666814622e+03 6.789402775973028383e+02 4.728216063850978230e+02 +6.309573444801933051e-02 8.699029726647089774e+03 3.256101454704968546e+03 1.545090998141021146e+03 8.843364145778277816e+02 5.695735291604178201e+02 3.966573790040939684e+02 +7.943282347242817953e-02 6.983222940396896774e+03 2.613864199716845633e+03 1.240335444557430037e+03 7.099088670074575020e+02 4.572301808432723078e+02 3.184202141595313265e+02 +1.000000000000000056e-01 5.365070630179017826e+03 2.008179628356557942e+03 9.529249347990730712e+02 5.454087954793121753e+02 3.512808105098616238e+02 2.446358871288619241e+02 +1.258925411794167559e-01 3.952925803802648261e+03 1.479604951880489125e+03 7.021047481957423315e+02 4.018512802317302999e+02 2.588198881174482153e+02 1.802450661745646698e+02 +1.584893192461114264e-01 2.803046435120210845e+03 1.049197883189480763e+03 4.978672277678055025e+02 2.849554619564220275e+02 1.835309339800715236e+02 1.278129960604350686e+02 +1.995262314968880846e-01 1.921221383986656065e+03 7.191252288800264978e+02 3.412405703984144338e+02 1.953098315229999287e+02 1.257929767297754040e+02 8.760363656700504009e+01 +2.511886431509582351e-01 1.278316043721408505e+03 4.784817227125725481e+02 2.270499899411736351e+02 1.299525880845131098e+02 8.369841272923422082e+01 5.828851117593006137e+01 +3.162277660168379412e-01 8.289227628011475417e+02 3.102709955717313051e+02 1.472303393831357710e+02 8.426762605167643017e+01 5.427415220387226924e+01 3.779712690052685531e+01 +3.981071705534973137e-01 5.256082603434318798e+02 1.967384725524835005e+02 9.335668656442395275e+01 5.343291597231451107e+01 3.441447623550826052e+01 2.396662633443892076e+01 +5.011872336272724660e-01 3.268153866409423927e+02 1.223290515494878719e+02 5.804779703259233514e+01 3.322379119657450275e+01 2.139840867341822062e+01 1.490209123968256222e+01 +6.309573444801935826e-01 1.997347913300141329e+02 7.476198668601659847e+01 3.547618962080827032e+01 2.030487936949673511e+01 1.307774011226470989e+01 9.107484548788823631e+00 +7.943282347242821562e-01 1.202191370455832526e+02 4.499877794628211802e+01 2.135289937961929496e+01 1.222138145968938971e+01 7.871410986207184379e+00 5.481738688691067729e+00 +1.000000000000000000e+00 7.138269927636177670e+01 2.671899260701978207e+01 1.267874343928984970e+01 7.256708199027636752e+00 4.673819635687700647e+00 3.254900292438991816e+00 +1.258925411794167504e+00 4.187371799173681097e+01 1.567359560217895798e+01 7.437462195299958445e+00 4.256848728821212902e+00 2.741703625010407208e+00 1.909353083008808794e+00 +1.584893192461114042e+00 2.429779110773874606e+01 9.094815796487649706e+00 4.315688012914539406e+00 2.470094038713063433e+00 1.590910603471584528e+00 1.107927945902009714e+00 +1.995262314968880846e+00 1.396200865813057668e+01 5.226067519126051941e+00 2.479882765265520650e+00 1.419366649502736166e+00 9.141698322078124495e-01 6.366381003391664573e-01 +2.511886431509582351e+00 7.952542005274587211e+00 2.976686412814169902e+00 1.412502480253519765e+00 8.084490690014868308e-01 5.206968544854672087e-01 3.626191158502925505e-01 +3.162277660168379523e+00 4.493784314928250367e+00 1.682051689069007816e+00 7.981701305507721278e-01 4.568345245190298387e-01 2.942328825132030645e-01 2.049070717288125343e-01 +3.981071705534973137e+00 2.521126078237331924e+00 9.436733232094909329e-01 4.477935276770791395e-01 2.562956636298791557e-01 1.650720509025634386e-01 1.149580233378434818e-01 +5.011872336272724660e+00 1.405216001748377908e+00 5.259811739062950631e-01 2.495895131952822199e-01 1.428531364695686257e-01 9.200725396957662450e-02 6.407488118826801249e-02 +6.309573444801936049e+00 7.786006880451981083e-01 2.914351269788584831e-01 1.382923098377228655e-01 7.915192412143987055e-02 5.097928799325553845e-02 3.550254659605920488e-02 +7.943282347242821118e+00 4.290793701381802605e-01 1.606071027681522378e-01 7.621156532638406755e-02 4.361986608632553025e-02 2.809419657354474131e-02 1.956511285648154103e-02 +1.000000000000000000e+01 2.352958000243635939e-01 8.807269555573751796e-02 4.179241064142912021e-02 2.391998311275674027e-02 1.540611578851978740e-02 1.072899142331231424e-02 diff --git a/tests/benchmark/model1_sm.txt b/tests/benchmark/model1_sm.txt new file mode 100644 index 000000000..b96520e75 --- /dev/null +++ b/tests/benchmark/model1_sm.txt @@ -0,0 +1,7 @@ +# [1] M (M_sun/h), [2] sigma(M) +1.000000000000000000e+06 8.105509216633080882e+00 +1.000000000000000000e+08 5.848043348128250329e+00 +1.000000000000000000e+10 3.831633778198952900e+00 +1.000000000000000000e+12 2.147707459501027039e+00 +1.000000000000000000e+14 9.168025874807437248e-01 +1.000000000000000000e+16 2.384040593203513581e-01 diff --git a/tests/benchmark/model2_chi.txt b/tests/benchmark/model2_chi.txt new file mode 100644 index 000000000..4fdf59a3b --- /dev/null +++ b/tests/benchmark/model2_chi.txt @@ -0,0 +1,7 @@ +# [1] z, [2] chi(z) (Mpc/h) +0.000000000000000000e+00 0.000000000000000000e+00 +1.000000000000000000e+00 2.265688469419004832e+03 +2.000000000000000000e+00 3.552025213618237103e+03 +3.000000000000000000e+00 4.365269918649795727e+03 +4.000000000000000000e+00 4.931431444916223882e+03 +5.000000000000000000e+00 5.352957219062010154e+03 diff --git a/tests/benchmark/model2_gf.txt b/tests/benchmark/model2_gf.txt new file mode 100644 index 000000000..5f1a99b0c --- /dev/null +++ b/tests/benchmark/model2_gf.txt @@ -0,0 +1,7 @@ +# [1] z, [2] D(z) +0.000000000000000000e+00 7.567071110262167943e-01 +1.000000000000000000e+00 4.687370169138532217e-01 +2.000000000000000000e+00 3.256412104875131552e-01 +3.000000000000000000e+00 2.472678048453977873e-01 +4.000000000000000000e+00 1.987893710005104453e-01 +5.000000000000000000e+00 1.660465764960981083e-01 diff --git a/tests/benchmark/model2_pk.txt b/tests/benchmark/model2_pk.txt new file mode 100644 index 000000000..c9bcf9c56 --- /dev/null +++ b/tests/benchmark/model2_pk.txt @@ -0,0 +1,42 @@ +# [0] k (Mpc/h)^-1, [2] P(k,z=0.0) (Mpc/h)^3, [3] P(k,z=1.0) (Mpc/h)^3, [4] P(k,z=2.0) (Mpc/h)^3, [5] P(k,z=3.0) (Mpc/h)^3, [6] P(k,z=4.0) (Mpc/h)^3, [7] P(k,z=5.0) (Mpc/h)^3 +1.000000000000000021e-03 1.890711719536719102e+03 7.254845855960430754e+02 3.501453850580288076e+02 2.018853627243049402e+02 1.304836224220046574e+02 9.103943158723757278e+01 +1.258925411794167490e-03 2.342301858687763797e+03 8.987641403668422981e+02 4.337764333704579371e+02 2.501050030339166028e+02 1.616491970559440290e+02 1.127838938201084886e+02 +1.584893192461114082e-03 2.895181452646608705e+03 1.110909449968045919e+03 5.361655159138725821e+02 3.091400723233784902e+02 1.998050573267176730e+02 1.394055323544744169e+02 +1.995262314968878920e-03 3.567429521857798591e+03 1.368857611430187035e+03 6.606607293386588253e+02 3.809210021663845964e+02 2.461988900461593630e+02 1.717748679196026274e+02 +2.511886431509579437e-03 4.376865721868949549e+03 1.679446200935209845e+03 8.105621378951459519e+02 4.673505298161499582e+02 3.020604824854535764e+02 2.107499325969428412e+02 +3.162277660168379394e-03 5.337948469712086990e+03 2.048223054560114633e+03 9.885473301055274078e+02 5.699724880721269074e+02 3.683876528785131654e+02 2.570269118782575219e+02 +3.981071705534973415e-03 6.456404832034350875e+03 2.477385703811291023e+03 1.195676915017546889e+03 6.893983984663697129e+02 4.455756430775197714e+02 3.108815690577762325e+02 +5.011872336272724625e-03 7.721052932704622435e+03 2.962643553413241989e+03 1.429880094485117525e+03 8.244342888584704951e+02 5.328527586522827733e+02 3.717754869688114354e+02 +6.309573444801930275e-03 9.093378568852336684e+03 3.489218326899811473e+03 1.684024331985102890e+03 9.709677111495376494e+02 6.275610202539044167e+02 4.378541728819104151e+02 +7.943282347242813790e-03 1.049799114984343032e+04 4.028181917019728644e+03 1.944147865333163054e+03 1.120948650850907143e+03 7.244974996618536807e+02 5.054875035755208046e+02 +1.000000000000000021e-02 1.182053640158683447e+04 4.535655469956810521e+03 2.189073155446576493e+03 1.262166650987357343e+03 8.157702693185553926e+02 5.691692202132227294e+02 +1.258925411794167490e-02 1.292057630279330624e+04 4.957751542890360724e+03 2.392792152270436873e+03 1.379626098755890553e+03 8.916872849243694645e+02 6.221371085984798128e+02 +1.584893192461114125e-02 1.366045909531974212e+04 5.241651809429782588e+03 2.529812800426390368e+03 1.458628891407576248e+03 9.427487904616672267e+02 6.577631155548916695e+02 +1.995262314968879874e-02 1.393878347887513883e+04 5.348447598538466991e+03 2.581356352753300143e+03 1.488347657387864274e+03 9.619567815051553907e+02 6.711646793226142336e+02 +2.511886431509580825e-02 1.371131244639128090e+04 5.261164737787441481e+03 2.539230453053411566e+03 1.464058882199265781e+03 9.462583310180340277e+02 6.602117491186554616e+02 +3.162277660168379134e-02 1.299231003429106386e+04 4.985276477512154997e+03 2.406076692043155617e+03 1.387285643176835492e+03 8.966378424519698456e+02 6.255911508375512540e+02 +3.981071705534973415e-02 1.184453447320124178e+04 4.544863764833487039e+03 2.193517415213547338e+03 1.264729103709523542e+03 8.174264474037886430e+02 5.703247484602793520e+02 +5.011872336272724798e-02 1.036937525194140835e+04 3.978830738610904518e+03 1.920329182331334550e+03 1.107215374153164703e+03 7.156213351541164229e+02 4.992945350139511334e+02 +6.309573444801933051e-02 8.699029726647089774e+03 3.337902817818578114e+03 1.610993935138048073e+03 9.288601501576252986e+02 6.003458372637273897e+02 4.188659294228557997e+02 +7.943282347242817953e-02 6.983222940396896774e+03 2.679530966402429385e+03 1.293239609267596279e+03 7.456506889649789400e+02 4.819329229453870198e+02 3.362483241477282263e+02 +1.000000000000000056e-01 5.365070630179017826e+03 2.058630092895732560e+03 9.935701472923940401e+02 5.728685230134424273e+02 3.702594335995335086e+02 2.583328677502252617e+02 +1.258925411794167559e-01 3.952925803802648716e+03 1.516776306525652217e+03 7.320516995671038103e+02 4.220833094103343228e+02 2.728031316016640062e+02 1.903368528190520124e+02 +1.584893192461114264e-01 2.803046435120210845e+03 1.075556342289948134e+03 5.191028136225820617e+02 2.993021307478723543e+02 1.934465465529519861e+02 1.349691502565526946e+02 +1.995262314968880846e-01 1.921221383986655610e+03 7.371914423534340131e+02 3.557955421372010960e+02 2.051431066788309749e+02 1.325891848380894942e+02 9.250849875424079016e+01 +2.511886431509582351e-01 1.278316043721408505e+03 4.905023730784509439e+02 2.367343782395145411e+02 1.364953184011736482e+02 8.822038085520826201e+01 6.155204138564246108e+01 +3.162277660168379412e-01 8.289227628011475417e+02 3.180657743049646342e+02 1.535101713102467329e+02 8.851025299591825046e+01 5.720641792226925304e+01 3.991335980803574301e+01 +3.981071705534973137e-01 5.256082603434318798e+02 2.016810320689961031e+02 9.733863962758253763e+01 5.612310602079803346e+01 3.627378466842318971e+01 2.530849984414745535e+01 +5.011872336272724660e-01 3.268153866409423927e+02 1.254022614307966137e+02 6.052371613072818235e+01 3.489651129472953528e+01 2.255449896010972211e+01 1.573644819901210035e+01 +6.309573444801935826e-01 1.997347913300141329e+02 7.664019364764574505e+01 3.698935945500422662e+01 2.132717028178348073e+01 1.378429023692171107e+01 9.617405807023587272e+00 +7.943282347242821562e-01 1.202191370455832526e+02 4.612925911391699429e+01 2.226366695525852890e+01 1.283669204462195523e+01 8.296679141545075353e+00 5.788657143998604759e+00 +1.000000000000000000e+00 7.138269927636177670e+01 2.739024012392945195e+01 1.321953128355682061e+01 7.622062097959298121e+00 4.926331753062053842e+00 3.437139728987903098e+00 +1.258925411794167504e+00 4.187371799173681097e+01 1.606735528779842426e+01 7.754693091774242042e+00 4.471168533005362988e+00 2.889829449609638168e+00 2.016256336183337439e+00 +1.584893192461114042e+00 2.429779110773874606e+01 9.323300178737122579e+00 4.499765530391584889e+00 2.594456003259550059e+00 1.676862616246851179e+00 1.169960004170276902e+00 +1.995262314968880846e+00 1.396200865813057668e+01 5.357359327054993514e+00 2.585657478752259930e+00 1.490827582640281923e+00 9.635596199967856323e-01 6.722829921230685235e-01 +2.511886431509582351e+00 7.952542005274587211e+00 3.051468175457994647e+00 1.472750104552859263e+00 8.491521000930419838e-01 5.488285060007154215e-01 3.829218893355298969e-01 +3.162277660168379523e+00 4.493784314928250367e+00 1.724309009028917039e+00 8.322145692860207777e-01 4.798347982136485501e-01 3.101293812991764431e-01 2.163796656462024237e-01 +3.981071705534973137e+00 2.521126078237331924e+00 9.673807430323418943e-01 4.668933144713099948e-01 2.691993959308419115e-01 1.739903867267485194e-01 1.213944372115744047e-01 +5.011872336272724660e+00 1.405216001748377908e+00 5.391951285683833639e-01 2.602352822684420031e-01 1.500453714268412952e-01 9.697812326377418246e-02 6.766238593359417963e-02 +6.309573444801936049e+00 7.786006880451981083e-01 2.987567018676294262e-01 1.441909070034393947e-01 8.313699053069496803e-02 5.373354231987115953e-02 3.749030766595949637e-02 +7.943282347242821118e+00 4.290793701381802605e-01 1.646419524541712642e-01 7.946222563971991337e-02 4.581599795609692105e-02 2.961203971163864010e-02 2.066054891369768776e-02 +1.000000000000000000e+01 2.352958000243635939e-01 9.028530061420060593e-02 4.357498694843611048e-02 2.512428385807211409e-02 1.623846089841001622e-02 1.132969964047782739e-02 diff --git a/tests/benchmark/model2_sm.txt b/tests/benchmark/model2_sm.txt new file mode 100644 index 000000000..b96520e75 --- /dev/null +++ b/tests/benchmark/model2_sm.txt @@ -0,0 +1,7 @@ +# [1] M (M_sun/h), [2] sigma(M) +1.000000000000000000e+06 8.105509216633080882e+00 +1.000000000000000000e+08 5.848043348128250329e+00 +1.000000000000000000e+10 3.831633778198952900e+00 +1.000000000000000000e+12 2.147707459501027039e+00 +1.000000000000000000e+14 9.168025874807437248e-01 +1.000000000000000000e+16 2.384040593203513581e-01 diff --git a/tests/benchmark/model3_chi.txt b/tests/benchmark/model3_chi.txt new file mode 100644 index 000000000..28ba6d589 --- /dev/null +++ b/tests/benchmark/model3_chi.txt @@ -0,0 +1,7 @@ +# [1] z, [2] chi(z) (Mpc/h) +0.000000000000000000e+00 0.000000000000000000e+00 +1.000000000000000000e+00 2.256881609485611989e+03 +2.000000000000000000e+00 3.533010027093416284e+03 +3.000000000000000000e+00 4.341010738114349806e+03 +4.000000000000000000e+00 4.904492771109615205e+03 +5.000000000000000000e+00 5.324542505411079219e+03 diff --git a/tests/benchmark/model3_gf.txt b/tests/benchmark/model3_gf.txt new file mode 100644 index 000000000..878c3d323 --- /dev/null +++ b/tests/benchmark/model3_gf.txt @@ -0,0 +1,7 @@ +# [1] z, [2] D(z) +0.000000000000000000e+00 7.479643671495537216e-01 +1.000000000000000000e+00 4.645434362571566611e-01 +2.000000000000000000e+00 3.238048886616587962e-01 +3.000000000000000000e+00 2.463657188125356334e-01 +4.000000000000000000e+00 1.982932503174571481e-01 +5.000000000000000000e+00 1.657487149138989202e-01 diff --git a/tests/benchmark/model3_pk.txt b/tests/benchmark/model3_pk.txt new file mode 100644 index 000000000..544420196 --- /dev/null +++ b/tests/benchmark/model3_pk.txt @@ -0,0 +1,42 @@ +# [0] k (Mpc/h)^-1, [2] P(k,z=0.0) (Mpc/h)^3, [3] P(k,z=1.0) (Mpc/h)^3, [4] P(k,z=2.0) (Mpc/h)^3, [5] P(k,z=3.0) (Mpc/h)^3, [6] P(k,z=4.0) (Mpc/h)^3, [7] P(k,z=5.0) (Mpc/h)^3 +1.000000000000000021e-03 1.890711719536718874e+03 7.293166947137148100e+02 3.543482573958752369e+02 2.051275779927212568e+02 1.328860407019291756e+02 9.284613692879899816e+01 +1.258925411794167490e-03 2.342301858687763797e+03 9.035115358667845840e+02 4.389831476395043524e+02 2.541216105214600987e+02 1.646254248670201150e+02 1.150221246598038078e+02 +1.584893192461114082e-03 2.895181452646608705e+03 1.116777426099658214e+03 5.426012289391009062e+02 3.141047644092279256e+02 2.034837973343381350e+02 1.421720777464751961e+02 +1.995262314968878920e-03 3.567429521857798591e+03 1.376088105141154301e+03 6.685907858881081438e+02 3.870384733521033240e+02 2.507318168837597625e+02 1.751837926679845339e+02 +2.511886431509579437e-03 4.376865721868949549e+03 1.688317266188726308e+03 8.202914941364128936e+02 4.748560319636316081e+02 3.076219131945039180e+02 2.149323294146530259e+02 +3.162277660168379394e-03 5.337948469712086990e+03 2.059042049750696606e+03 1.000413081892214223e+03 5.791260665112348534e+02 3.751702759766941995e+02 2.621276894920819700e+02 +3.981071705534973415e-03 6.456404832034350875e+03 2.490471594996373824e+03 1.210028888927744219e+03 7.004699193699518673e+02 4.537794241356245948e+02 3.170511088013483914e+02 +5.011872336272724625e-03 7.721052932704623345e+03 2.978292643137344839e+03 1.447043260849719900e+03 8.376744435832741829e+02 5.426634550763463949e+02 3.791534851225511602e+02 +6.309573444801930275e-03 9.093378568852336684e+03 3.507648856823579081e+03 1.704238047724887565e+03 9.865611464325469342e+02 6.391154516748074457e+02 4.465435227512872416e+02 +7.943282347242813790e-03 1.049799114984343032e+04 4.049459326572365171e+03 1.967483901255891851e+03 1.138950732734686881e+03 7.378366912373145396e+02 5.155190575613046349e+02 +1.000000000000000021e-02 1.182053640158683447e+04 4.559613424441479765e+03 2.215349083684282505e+03 1.282436649425557334e+03 8.307899428289325670e+02 5.804645573268580847e+02 +1.258925411794167490e-02 1.292057630279330624e+04 4.983939066743885633e+03 2.421513364590075980e+03 1.401782458888845895e+03 9.081047156602385257e+02 6.344836096441434847e+02 +1.584893192461114125e-02 1.366045909531974212e+04 5.269338933442312737e+03 2.560178701827831901e+03 1.482054011479966221e+03 9.601063475676221515e+02 6.708166255959374666e+02 +1.995262314968879874e-02 1.393878347887513883e+04 5.376698832561461131e+03 2.612340942789558994e+03 1.512250051471205325e+03 9.796679893447960694e+02 6.844841474921576037e+02 +2.511886431509580825e-02 1.371131244639128090e+04 5.288954931764732464e+03 2.569709396617916354e+03 1.487571206211627214e+03 9.636805045427416871e+02 6.733138530410783460e+02 +3.162277660168379134e-02 1.299231003429106386e+04 5.011609391846775907e+03 2.434957361625733029e+03 1.409565013178042818e+03 9.131464211011124235e+02 6.380061984070069911e+02 +3.981071705534973415e-02 1.184453447320124178e+04 4.568870358795073116e+03 2.219846688882134004e+03 1.285040254330468770e+03 8.324766138789757406e+02 5.816430173851076688e+02 +5.011872336272724798e-02 1.036937525194140835e+04 3.999847468468198713e+03 1.943379317344943274e+03 1.124996903943449524e+03 7.287971019297965540e+02 5.092031876460552553e+02 +6.309573444801933051e-02 8.699029726647089774e+03 3.355534078462876550e+03 1.630331050905853772e+03 9.437773512881358329e+02 6.113991923664420938e+02 4.271784517979675684e+02 +7.943282347242817953e-02 6.983222940396896774e+03 2.693684616598867706e+03 1.308762649730052544e+03 7.576256039169303449e+02 4.908061013741474881e+02 3.429212748981582308e+02 +1.000000000000000056e-01 5.365070630179017826e+03 2.069504059490650434e+03 1.005496189062366625e+03 5.820686108605525533e+02 3.770765192619560935e+02 2.634595624574299677e+02 +1.258925411794167559e-01 3.952925803802648261e+03 1.524788127078572643e+03 7.408386776889891507e+02 4.288618342714095206e+02 2.778258863199600910e+02 1.941141458303188188e+02 +1.584893192461114264e-01 2.803046435120210845e+03 1.081237578456355095e+03 5.253337192662792177e+02 3.041088285940429614e+02 1.970082159103831998e+02 1.376476542900588527e+02 +1.995262314968880846e-01 1.921221383986655837e+03 7.410853886946800912e+02 3.600662345575215681e+02 2.084376402879503019e+02 1.350303699880934118e+02 9.434435818267932916e+01 +2.511886431509582351e-01 1.278316043721408505e+03 4.930932739100230151e+02 2.395759532314432079e+02 1.386873901760451133e+02 8.984466328770389509e+01 6.277356045728658529e+01 +3.162277660168379412e-01 8.289227628011475417e+02 3.197458413634976182e+02 1.553527877778919333e+02 8.993169975066216182e+01 5.825968224459912648e+01 4.070545263097633182e+01 +3.981071705534973137e-01 5.256082603434318798e+02 2.027463389510411105e+02 9.850701680275670924e+01 5.702442540718698183e+01 3.694164475501418110e+01 2.581075475784946249e+01 +5.011872336272724660e-01 3.268153866409423927e+02 1.260646533808761660e+02 6.125019565370504893e+01 3.545693826282401062e+01 2.296976441327948493e+01 1.604874282259084950e+01 +6.309573444801935826e-01 1.997347913300141329e+02 7.704501766553440234e+01 3.743335090050715763e+01 2.166967791179002489e+01 1.403808171071958277e+01 9.808266164349777938e+00 +7.943282347242821562e-01 1.202191370455832384e+02 4.637292018949539596e+01 2.253090266356230842e+01 1.304284527129182258e+01 8.449434661834454019e+00 5.903534814038848388e+00 +1.000000000000000000e+00 7.138269927636177670e+01 2.753491913020756954e+01 1.337820823525146707e+01 7.744470011922671482e+00 5.017033629947815321e+00 3.505350817301925215e+00 +1.258925411794167504e+00 4.187371799173681097e+01 1.615222526287123017e+01 7.847774384502134382e+00 4.542974089831040452e+00 2.943035966770489065e+00 2.056269559344213960e+00 +1.584893192461114042e+00 2.429779110773874606e+01 9.372547129438874691e+00 4.553777209201355980e+00 2.636122148608035509e+00 1.707736417321782829e+00 1.193178217993615231e+00 +1.995262314968880846e+00 1.396200865813057668e+01 5.385657634050701859e+00 2.616693696153190807e+00 1.514769803541226034e+00 9.813003387315148984e-01 6.856246535518939478e-01 +2.511886431509582351e+00 7.952542005274588099e+00 3.067586449022484452e+00 1.490427849110194547e+00 8.627892150724431053e-01 5.589333422313919053e-01 3.905210912505853171e-01 +3.162277660168379523e+00 4.493784314928250367e+00 1.733417045789966027e+00 8.422038244402058060e-01 4.875407937751506937e-01 3.158393737177282445e-01 2.206737862367254555e-01 +3.981071705534973137e+00 2.521126078237331924e+00 9.724905808417676489e-01 4.724975379734752678e-01 2.735226533476132205e-01 1.771938361546897822e-01 1.238035469162613450e-01 +5.011872336272724660e+00 1.405216001748377908e+00 5.420432312151040044e-01 2.633589437983417381e-01 1.524550527808067046e-01 9.876365015026851435e-02 6.900516666011788369e-02 +6.309573444801936049e+00 7.786006880451981083e-01 3.003347757563418763e-01 1.459216622847443467e-01 8.447214438450306728e-02 5.472286528560595109e-02 3.823431427865418841e-02 +7.943282347242821118e+00 4.290793701381802605e-01 1.655116138359255529e-01 8.041602827227364858e-02 4.655178843692461127e-02 3.015724610757246349e-02 2.107056382076792980e-02 +1.000000000000000000e+01 2.352958000243635661e-01 9.076219995919655725e-02 4.409802713426420884e-02 2.552777193483727822e-02 1.653743769393466873e-02 1.155454099220708589e-02 diff --git a/tests/benchmark/model3_sm.txt b/tests/benchmark/model3_sm.txt new file mode 100644 index 000000000..b96520e75 --- /dev/null +++ b/tests/benchmark/model3_sm.txt @@ -0,0 +1,7 @@ +# [1] M (M_sun/h), [2] sigma(M) +1.000000000000000000e+06 8.105509216633080882e+00 +1.000000000000000000e+08 5.848043348128250329e+00 +1.000000000000000000e+10 3.831633778198952900e+00 +1.000000000000000000e+12 2.147707459501027039e+00 +1.000000000000000000e+14 9.168025874807437248e-01 +1.000000000000000000e+16 2.384040593203513581e-01 From 98b2e2a309e4d4443510e448de749598d129878a Mon Sep 17 00:00:00 2001 From: villarrealas Date: Fri, 22 Jul 2016 09:22:13 -0400 Subject: [PATCH 3/6] successful distance test against benchmark --- tests/ccl_test_distances.c | 72 +++++++++++++++++++++++++++++++++++--- 1 file changed, 67 insertions(+), 5 deletions(-) diff --git a/tests/ccl_test_distances.c b/tests/ccl_test_distances.c index a835cc50a..6993b6d55 100644 --- a/tests/ccl_test_distances.c +++ b/tests/ccl_test_distances.c @@ -3,21 +3,72 @@ #include int main(int argc, char * argv[]){ - + if(argv[1]==NULL){ + printf("No model argument given - program exiting!\n"); + return 0; + } + int i_model=atoi(argv[1]); + int i, testflag=0; double Omega_c = 0.25; double Omega_b = 0.05; double h = 0.7; double A_s = 2.1e-9; - double n_s = 0.96; + double n_s = 0.96; + double Omega_v[5] = {0.7, 0.7, 0.7, 0.65, 0.75}; + double w_0[5] = {-1.0, -0.9, -0.9, -0.9, -0.9}; + double w_a[5] = {0.0, 0.0, 0.1, 0.1, 0.1}; + double Omega_n = 0.0; + double Omega_k; + double z_comp[6], chi_comp[6], diffchi; +// const char *fname[5]; + double temp[5]; + char str[1024]; + FILE * file; + + file = fopen("./benchmark/chi_model1-5.txt", "r"); + fgets(str, 1024, file); + if (file) { + i=0; + while (fscanf(file, "%le %le %le %le %le %le\n", &z_comp[i], &temp[0], &temp[1], &temp[2], &temp[3], &temp[4])!=EOF){ + chi_comp[i] = temp[i_model-1]; + i++; + } + } + +/* + fname[0]="./benchmark/model1_chi.txt"; + fname[1]="./benchmark/model2_chi.txt"; + fname[2]="./benchmark/model3_chi.txt"; + fname[3]="./benchmark/model4_chi.txt"; + fname[4]="./benchmark/model5_chi.txt"; + file = fopen(fname[i_model-1], "r"); + fgets(str, 1024, file); + if (file) { + i=0; + while (fscanf(file, "%le %le", &z_comp[i], &chi_comp[i])!= EOF){ + i++; + } + fclose(file); + } +*/ + ccl_parameters params = ccl_parameters_create_flat_lcdm(Omega_c, Omega_b, h, A_s, n_s); + + if(i_model > 1){ + Omega_k = 1.0 - Omega_c - Omega_b - Omega_n - Omega_v[i_model-1]; + params = ccl_parameters_create(Omega_c, Omega_b, Omega_k, Omega_n, w_0[i_model-1], w_a[i_model-1], h, A_s, n_s); + } ccl_cosmology * cosmo = ccl_cosmology_create(params, default_config); int status; ccl_cosmology_compute_distances(cosmo, &status); + printf("i_model == %i\n", i_model); + printf("Omega_v == %lf, w_0 == %lf, w_a == %lf\n", Omega_v[i_model-1], w_0[i_model-1], w_a[i_model-1]); printf("[0]z, [1]chi(z), [2]dL(z), [3]mu(z), [4]D(z), [5]f(z)\n"); - for (double z=0.0; z<=1.0; z+=0.01){ + i = 0; + for (double z=0.0; z<=5.0; z+=1.0){ int st; double a = 1/(1.+z); double DL = 1/h * ccl_luminosity_distance(cosmo, a); @@ -26,8 +77,19 @@ int main(int argc, char * argv[]){ double chi=ccl_comoving_radial_distance(cosmo,a); double gf=ccl_growth_factor(cosmo,a,&st); double fg=ccl_growth_rate(cosmo,a,&st); - printf("%le %le %le %le %le %le\n", z, chi,h*DL,mu,gf,fg); + diffchi = (chi - chi_comp[i]) / chi_comp[i]; + if((diffchi >= 1e-4) && (z>0.0)){ + testflag=1; + printf("FAIL: z:%lf, chi:%le, chi_comp: %le\n", z, chi, chi_comp[i]); + } + i++; + //printf("%le %le %le %le %le %le\n", z, chi,h*DL,mu,gf,fg); } - + if(testflag!=0){ + printf("FAIL: Values above do not match benchmark!\n"); + } + else{ + printf("PASS!\n"); + } } From c5050f95ee3578d955e89fe1f1ac45ccffb8e941 Mon Sep 17 00:00:00 2001 From: villarrealas Date: Fri, 22 Jul 2016 09:39:17 -0400 Subject: [PATCH 4/6] Successful test of growth function using benchmark. --- tests/ccl_test_distances.c | 34 ++++++++++++++++++++++++++-------- 1 file changed, 26 insertions(+), 8 deletions(-) diff --git a/tests/ccl_test_distances.c b/tests/ccl_test_distances.c index 6993b6d55..3094e609c 100644 --- a/tests/ccl_test_distances.c +++ b/tests/ccl_test_distances.c @@ -4,10 +4,14 @@ int main(int argc, char * argv[]){ if(argv[1]==NULL){ - printf("No model argument given - program exiting!\n"); + printf("No model argument given - program exiting!\n Integer arguments between 1 and 5 are allowed.\n"); return 0; } int i_model=atoi(argv[1]); + if( (i_model>5) || (i_model<1)){ + printf("Model argument not between 1 and 5 - program exiting!\n Integer arguments between 1 and 5 are allowed.\n"); + return 0; + } int i, testflag=0; double Omega_c = 0.25; double Omega_b = 0.05; @@ -19,22 +23,31 @@ int main(int argc, char * argv[]){ double w_a[5] = {0.0, 0.0, 0.1, 0.1, 0.1}; double Omega_n = 0.0; double Omega_k; - double z_comp[6], chi_comp[6], diffchi; + double z_comp[6], chi_comp[6], gf_comp[6], diffchi, diffgf; // const char *fname[5]; double temp[5]; char str[1024]; - FILE * file; + FILE * chifile, * gffile; - file = fopen("./benchmark/chi_model1-5.txt", "r"); - fgets(str, 1024, file); - if (file) { + chifile = fopen("./benchmark/chi_model1-5.txt", "r"); + fgets(str, 1024, chifile); + if (chifile) { i=0; - while (fscanf(file, "%le %le %le %le %le %le\n", &z_comp[i], &temp[0], &temp[1], &temp[2], &temp[3], &temp[4])!=EOF){ + while (fscanf(chifile, "%le %le %le %le %le %le\n", &z_comp[i], &temp[0], &temp[1], &temp[2], &temp[3], &temp[4])!=EOF){ chi_comp[i] = temp[i_model-1]; i++; } } + gffile = fopen("./benchmark/growth_model1-5.txt", "r"); + fgets(str, 1024, gffile); + if (gffile) { + i=0; + while (fscanf(gffile, "%le %le %le %le %le %le\n", &z_comp[i], &temp[0], &temp[1], &temp[2], &temp[3], &temp[4])!=EOF){ + gf_comp[i] = temp[i_model-1]; + i++; + } + } /* fname[0]="./benchmark/model1_chi.txt"; fname[1]="./benchmark/model2_chi.txt"; @@ -78,9 +91,14 @@ int main(int argc, char * argv[]){ double gf=ccl_growth_factor(cosmo,a,&st); double fg=ccl_growth_rate(cosmo,a,&st); diffchi = (chi - chi_comp[i]) / chi_comp[i]; + diffgf = (gf - gf_comp[i]) / gf_comp[i]; if((diffchi >= 1e-4) && (z>0.0)){ testflag=1; - printf("FAIL: z:%lf, chi:%le, chi_comp: %le\n", z, chi, chi_comp[i]); + printf("CHI FAIL: z:%lf, chi:%le, chi_comp: %le\n", z, chi, chi_comp[i]); + } + if((diffgf >= 1e-4)){ + testflag=1; + printf("GROWTH FAIL: z:%lf, gf:%le, gf_comp: %le\n", z, gf, gf_comp[i]); } i++; //printf("%le %le %le %le %le %le\n", z, chi,h*DL,mu,gf,fg); From dbc3ced53ba97c9ad1e97afc9733e87db190378b Mon Sep 17 00:00:00 2001 From: villarrealas Date: Fri, 22 Jul 2016 11:17:39 -0400 Subject: [PATCH 5/6] fix to distance test and unnormalized power test --- Makefile | 2 +- tests/ccl_test_bbks.c | 87 ++++++++++++++++++++++++++++++++++++++ tests/ccl_test_distances.c | 4 +- 3 files changed, 90 insertions(+), 3 deletions(-) create mode 100644 tests/ccl_test_bbks.c diff --git a/Makefile b/Makefile index 5e49266a8..a296b769a 100644 --- a/Makefile +++ b/Makefile @@ -7,7 +7,7 @@ LDFLAGS=-lgsl -lgslcblas -lm -Lclass -lclass OBJECTS=src/ccl_core.o src/ccl_utils.o src/ccl_power.o src/ccl_placeholder.o src/ccl_background.o -TESTS=tests/ccl_test_utils tests/ccl_test_power tests/ccl_test_distances +TESTS=tests/ccl_test_utils tests/ccl_test_power tests/ccl_test_distances tests/ccl_test_bbks LIB=lib/libccl.a DYLIB=lib/libccl.so INC_CCL= diff --git a/tests/ccl_test_bbks.c b/tests/ccl_test_bbks.c new file mode 100644 index 000000000..bedb616ba --- /dev/null +++ b/tests/ccl_test_bbks.c @@ -0,0 +1,87 @@ +#include "ccl.h" +#include +#include + +int main(int argc, char * argv[]){ + if(argv[1]==NULL){ + printf("No model argument given - program exiting!\n Integer arguments between 1 and 3 are allowed.\n"); + return 0; + } + int i_model=atoi(argv[1]); + if( (i_model>3) || (i_model<1)){ + printf("Model argument not between 1 and 3 - program exiting!\n Integer arguments between 1 and 3 are allowed.\n"); + return 0; + } + int i, j, nk, testflag=0; + double Omega_c = 0.25; + double Omega_b = 0.05; + double h = 0.7; + double A_s = 2.1e-9; + double n_s = 0.96; + double Omega_v[5] = {0.7, 0.7, 0.7, 0.65, 0.75}; + double w_0[5] = {-1.0, -0.9, -0.9, -0.9, -0.9}; + double w_a[5] = {0.0, 0.0, 0.1, 0.1, 0.1}; + double Omega_n = 0.0; + double Omega_k; + double z_comp[6] = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0}; + double k_comp[41], pk_comp[6][41], diffpk, pk_z, pk_z0, temp; + const char *fname[3]; + char str[1024]; + FILE * file; + + fname[0]="./benchmark/model1_pk.txt"; + fname[1]="./benchmark/model2_pk.txt"; + fname[2]="./benchmark/model3_pk.txt"; + + file = fopen(fname[i_model-1], "r"); + fgets(str, 1024, file); + if (file) { + i=0; + while (fscanf(file, "%le %le %le %le %le %le %le", &k_comp[i], &pk_comp[0][i], &pk_comp[1][i], &pk_comp[2][i], &pk_comp[3][i], &pk_comp[4][i], &pk_comp[5][i])!= EOF){ + i++; + } + fclose(file); + } + nk = i; + + printf("read complete\n"); + + ccl_parameters params = ccl_parameters_create_flat_lcdm(Omega_c, Omega_b, h, A_s, n_s); + + if(i_model > 1){ + Omega_k = 1.0 - Omega_c - Omega_b - Omega_n - Omega_v[i_model-1]; + params = ccl_parameters_create(Omega_c, Omega_b, Omega_k, Omega_n, w_0[i_model-1], w_a[i_model-1], h, A_s, n_s); + } + ccl_cosmology * cosmo = ccl_cosmology_create(params, default_config); + + int status; + ccl_cosmology_compute_distances(cosmo, &status); + + for (int i=0; i= 1e-4)){ + testflag=1; + printf("P(k) FAIL: k:%lf, z:%lf, pk_z:%le, pk_comp: %le\n", z, k_comp[i], pk_z, pk_comp[j][i]); + } + j++; + } + } + if(testflag!=0){ + printf("FAIL: Values above do not match benchmark!\n"); + } + else{ + printf("PASS!\n"); + } +/* + printf("i_model == %i\n", i_model); + printf("Omega_v == %lf, w_0 == %lf, w_a == %lf\n", Omega_v[i_model-1], w_0[i_model-1], w_a[i_model-1]); + printf("[0]z, [1]chi(z), [2]dL(z), [3]mu(z), [4]D(z), [5]f(z)\n"); +*/ +} diff --git a/tests/ccl_test_distances.c b/tests/ccl_test_distances.c index 3094e609c..4c760b757 100644 --- a/tests/ccl_test_distances.c +++ b/tests/ccl_test_distances.c @@ -92,11 +92,11 @@ int main(int argc, char * argv[]){ double fg=ccl_growth_rate(cosmo,a,&st); diffchi = (chi - chi_comp[i]) / chi_comp[i]; diffgf = (gf - gf_comp[i]) / gf_comp[i]; - if((diffchi >= 1e-4) && (z>0.0)){ + if((fabs(diffchi >= 1e-4)) && (z>0.0)){ testflag=1; printf("CHI FAIL: z:%lf, chi:%le, chi_comp: %le\n", z, chi, chi_comp[i]); } - if((diffgf >= 1e-4)){ + if((fabs(diffgf) >= 1e-4)){ testflag=1; printf("GROWTH FAIL: z:%lf, gf:%le, gf_comp: %le\n", z, gf, gf_comp[i]); } From 37d485e87de086039beebad9d01ddbe3734dd202 Mon Sep 17 00:00:00 2001 From: nchisari Date: Mon, 1 Aug 2016 18:21:35 +0100 Subject: [PATCH 6/6] Minor bug fixes in constants, ccl_test_distances and placeholder. A bug corrected in ccl_power concerning the normalization of the BBKS power spectrum. Makefile now includes BBKS test, but this test doesnt yet pass. --- Makefile | 4 +-- include/ccl_constants.h | 4 +-- src/ccl_placeholder.c | 10 +++++--- src/ccl_power.c | 4 +-- tests/ccl_test_bbks.c | 50 +++++++++++++++++++++++--------------- tests/ccl_test_distances.c | 13 +++++----- 6 files changed, 50 insertions(+), 35 deletions(-) diff --git a/Makefile b/Makefile index a296b769a..cd743e356 100644 --- a/Makefile +++ b/Makefile @@ -1,6 +1,5 @@ CC=gcc -#CFLAGS=-Wall -Wpedantic -g -O0 -Iinclude -std=c99 -fPIC -CFLAGS=-Wall -g -O0 -Iinclude -std=c99 -fPIC +CFLAGS=-Wall -Wpedantic -g -O0 -Iinclude -std=c99 -fPIC CFLAGS+=-I/home/damonge/include CFLAGS+=-I/opt/local/include LDFLAGS=-lgsl -lgslcblas -lm -Lclass -lclass @@ -30,6 +29,7 @@ test: $(TESTS) tests/ccl_test_utils > /dev/null tests/ccl_test_power > /dev/null tests/ccl_test_distances > /dev/null + tests/ccl_test_bbks > /dev/null @echo "---------------------" @echo diff --git a/include/ccl_constants.h b/include/ccl_constants.h index aa4f38556..5f307b461 100644 --- a/include/ccl_constants.h +++ b/include/ccl_constants.h @@ -21,8 +21,8 @@ #define K_PIVOT 0.05 #define K_MAX 1e3 #define K_MIN 1e-4 -#define K_MAX_INT 1e3*1.1 //minimum integration range -#define K_MIN_INT 1e-4/1.1 //maximum integration range +#define K_MAX_INT 1e3/1.1 //minimum integration range +#define K_MIN_INT 1e-4*1.1 //maximum integration range #define N_K 500 //Lightspeed / H0 in units of Mpc/h diff --git a/src/ccl_placeholder.c b/src/ccl_placeholder.c index a74f37e26..46c9503ec 100644 --- a/src/ccl_placeholder.c +++ b/src/ccl_placeholder.c @@ -28,15 +28,15 @@ struct sigma8_args { int * status; }; -//TODO: Sorry, but shouldn't kR be k*8/h? It looks like you are multiplying by h. +//TODO: Sorry, but shouldn't kR be k*8/h? It looks like you are multiplying by h, so I changed that. //TODO: Also, what units is k? If [k]=Mpc/h, then we should remove h from kR. -//TODO: It seems in the constants.h file thtat [k]=Mpc +//TODO: It seems in the constants.h file that [k]=Mpc static double sigma8_integrand(double k, void * args) { struct sigma8_args * s_args = (struct sigma8_args*) args; gsl_spline * spline = s_args->P; - double kR = k*8.0*s_args->h; // r=8 Mpc/h + double kR = k*8.0/s_args->h; // r=8 Mpc/h double x = 3.*(sin(kR) - kR*cos(kR))/pow(kR,3.0); double p = exp(gsl_spline_eval(spline, log(k), NULL)); double res = p*x*x*k*k; @@ -44,6 +44,7 @@ double sigma8_integrand(double k, void * args) } double ccl_sigma8(gsl_spline * P, double h, int * status){ + struct sigma8_args s_args; s_args.P = P; s_args.status = status; @@ -58,9 +59,10 @@ double ccl_sigma8(gsl_spline * P, double h, int * status){ double sigma_8; //TODO: Why not integrating in ln space? *status |= gsl_integration_cquad(&F, K_MIN_INT, K_MAX_INT, 0.0, 1e-5, workspace, &sigma_8, NULL, NULL); + gsl_integration_cquad_workspace_free(workspace); - //TODO: Check whether you are printing sigma_8 or sigma_8^2 + //TODO: Printing sigma_8^2 return sigma_8/(2.*M_PI*M_PI); } diff --git a/src/ccl_power.c b/src/ccl_power.c index 5081f65be..56dcdfb89 100644 --- a/src/ccl_power.c +++ b/src/ccl_power.c @@ -297,8 +297,8 @@ void ccl_cosmology_compute_power_bbks(ccl_cosmology * cosmo, int *status){ } gsl_spline * log_power_lin = gsl_spline_alloc(K_SPLINE_TYPE, nk); *status = gsl_spline_init(log_power_lin, x, y, nk); - double sigma_8 = ccl_sigma8(log_power_lin, cosmo->params.h, status); - double log_sigma_8 = log(cosmo->params.sigma_8) - log(sigma_8); + double sigma_8 = ccl_sigma8(log_power_lin, cosmo->params.h, status); //this is sigma_8^2! + double log_sigma_8 = log(cosmo->params.sigma_8*cosmo->params.sigma_8) - log(sigma_8); for (int i=0; i int main(int argc, char * argv[]){ + if(argv[1]==NULL){ printf("No model argument given - program exiting!\n Integer arguments between 1 and 3 are allowed.\n"); return 0; @@ -12,19 +13,20 @@ int main(int argc, char * argv[]){ printf("Model argument not between 1 and 3 - program exiting!\n Integer arguments between 1 and 3 are allowed.\n"); return 0; } + int i, j, nk, testflag=0; double Omega_c = 0.25; double Omega_b = 0.05; double h = 0.7; double A_s = 2.1e-9; + double sigma_8=0.8; double n_s = 0.96; double Omega_v[5] = {0.7, 0.7, 0.7, 0.65, 0.75}; double w_0[5] = {-1.0, -0.9, -0.9, -0.9, -0.9}; double w_a[5] = {0.0, 0.0, 0.1, 0.1, 0.1}; double Omega_n = 0.0; double Omega_k; - double z_comp[6] = {0.0, 1.0, 2.0, 3.0, 4.0, 5.0}; - double k_comp[41], pk_comp[6][41], diffpk, pk_z, pk_z0, temp; + double k_comp[41], pk_comp[6][41], diffpk, pk_z, log_pk_z; const char *fname[3]; char str[1024]; FILE * file; @@ -37,38 +39,51 @@ int main(int argc, char * argv[]){ fgets(str, 1024, file); if (file) { i=0; + //k units are Mpc/h, Pk units are Mpc/h^3 while (fscanf(file, "%le %le %le %le %le %le %le", &k_comp[i], &pk_comp[0][i], &pk_comp[1][i], &pk_comp[2][i], &pk_comp[3][i], &pk_comp[4][i], &pk_comp[5][i])!= EOF){ - i++; + i++; } fclose(file); - } - nk = i; - - printf("read complete\n"); + nk = i; + } else { + printf("Benchmark P(k) not found in ccl_test_bbks. Exit.\n"); + return 0; + } ccl_parameters params = ccl_parameters_create_flat_lcdm(Omega_c, Omega_b, h, A_s, n_s); - + if(i_model > 1){ Omega_k = 1.0 - Omega_c - Omega_b - Omega_n - Omega_v[i_model-1]; params = ccl_parameters_create(Omega_c, Omega_b, Omega_k, Omega_n, w_0[i_model-1], w_a[i_model-1], h, A_s, n_s); } + + //overwritting sigma_8 for this test only + params.sigma_8=sigma_8; + printf("You just overwrote sigma8 in the params file for BBKS test.\n"); ccl_cosmology * cosmo = ccl_cosmology_create(params, default_config); int status; ccl_cosmology_compute_distances(cosmo, &status); - + ccl_cosmology_compute_power_bbks(cosmo, &status); //it should already be normalized to correct sigma_8 + double D_z0 = ccl_growth_factor(cosmo, 1., &status); + for (int i=0; iparams.h; j = 0; for (double z=0.0; z<=5.0; z+=1.0){ - int st; + + pk_comp[j][i]/=pow(cosmo->params.h,3.); double a = 1/(1.+z); - double gf=ccl_growth_factor(cosmo,a,&st); - pk_z = pk_z0*gf*gf; + double D = ccl_growth_factor(cosmo, a, &status); + status = gsl_spline_eval_e(cosmo->data.p_lin, log(k_comp[i]), NULL,&log_pk_z); + + pk_z = exp(log_pk_z)*D*D/D_z0/D_z0; diffpk = (pk_z - pk_comp[j][i]) / pk_comp[j][i]; + //printf("%e %e %e\n",k_comp[i],pk_z,diffpk); if((fabs(diffpk) >= 1e-4)){ testflag=1; - printf("P(k) FAIL: k:%lf, z:%lf, pk_z:%le, pk_comp: %le\n", z, k_comp[i], pk_z, pk_comp[j][i]); + printf("P(k) FAIL: z:%lf, k:%lf, pk_z:%le, pk_comp: %le, ratio pk: %e\n", z, k_comp[i], pk_z, pk_comp[j][i],pk_z/pk_comp[j][i]); } j++; } @@ -79,9 +94,6 @@ int main(int argc, char * argv[]){ else{ printf("PASS!\n"); } -/* - printf("i_model == %i\n", i_model); - printf("Omega_v == %lf, w_0 == %lf, w_a == %lf\n", Omega_v[i_model-1], w_0[i_model-1], w_a[i_model-1]); - printf("[0]z, [1]chi(z), [2]dL(z), [3]mu(z), [4]D(z), [5]f(z)\n"); -*/ + + } diff --git a/tests/ccl_test_distances.c b/tests/ccl_test_distances.c index 4c760b757..981924331 100644 --- a/tests/ccl_test_distances.c +++ b/tests/ccl_test_distances.c @@ -3,6 +3,7 @@ #include int main(int argc, char * argv[]){ + if(argv[1]==NULL){ printf("No model argument given - program exiting!\n Integer arguments between 1 and 5 are allowed.\n"); return 0; @@ -84,19 +85,19 @@ int main(int argc, char * argv[]){ for (double z=0.0; z<=5.0; z+=1.0){ int st; double a = 1/(1.+z); - double DL = 1/h * ccl_luminosity_distance(cosmo, a); - double DL_pc = DL*1e6; - double mu = 5*log10(DL_pc)-5; + //double DL = 1/h * ccl_luminosity_distance(cosmo, a); + //double DL_pc = DL*1e6; + //double mu = 5*log10(DL_pc)-5; double chi=ccl_comoving_radial_distance(cosmo,a); double gf=ccl_growth_factor(cosmo,a,&st); - double fg=ccl_growth_rate(cosmo,a,&st); + //double fg=ccl_growth_rate(cosmo,a,&st); diffchi = (chi - chi_comp[i]) / chi_comp[i]; diffgf = (gf - gf_comp[i]) / gf_comp[i]; - if((fabs(diffchi >= 1e-4)) && (z>0.0)){ + if((fabs(diffchi) >= 1e-4) && (z>0.0)){ testflag=1; printf("CHI FAIL: z:%lf, chi:%le, chi_comp: %le\n", z, chi, chi_comp[i]); } - if((fabs(diffgf) >= 1e-4)){ + if(fabs(diffgf) >= 1e-4){ testflag=1; printf("GROWTH FAIL: z:%lf, gf:%le, gf_comp: %le\n", z, gf, gf_comp[i]); }