diff --git a/.buildinfo b/.buildinfo new file mode 100644 index 0000000..827f845 --- /dev/null +++ b/.buildinfo @@ -0,0 +1,4 @@ +# Sphinx build info version 1 +# This file records the configuration used when building these files. When it is not found, a full rebuild will be done. +config: 292c2c4c18973b0c51527665131fea15 +tags: 645f666f9bcd5a90fca523b33c5a78b7 diff --git a/.doctrees/BayesianSampler.doctree b/.doctrees/BayesianSampler.doctree new file mode 100644 index 0000000..94c43a1 Binary files /dev/null and b/.doctrees/BayesianSampler.doctree differ diff --git a/.doctrees/Contributor.doctree b/.doctrees/Contributor.doctree new file mode 100644 index 0000000..04637a6 Binary files /dev/null and b/.doctrees/Contributor.doctree differ diff --git a/.doctrees/Cornerplot.doctree b/.doctrees/Cornerplot.doctree new file mode 100644 index 0000000..addc972 Binary files /dev/null and b/.doctrees/Cornerplot.doctree differ diff --git a/.doctrees/DownloadCompose.doctree b/.doctrees/DownloadCompose.doctree new file mode 100644 index 0000000..2239c9e Binary files /dev/null and b/.doctrees/DownloadCompose.doctree differ diff --git a/.doctrees/EOS.doctree b/.doctrees/EOS.doctree new file mode 100644 index 0000000..abdd81c Binary files /dev/null and b/.doctrees/EOS.doctree differ diff --git a/.doctrees/EoS_import.doctree b/.doctrees/EoS_import.doctree new file mode 100644 index 0000000..070ccbb Binary files /dev/null and b/.doctrees/EoS_import.doctree differ diff --git a/.doctrees/Likelihood.doctree b/.doctrees/Likelihood.doctree new file mode 100644 index 0000000..54d46a5 Binary files /dev/null and b/.doctrees/Likelihood.doctree differ diff --git a/.doctrees/RMF_EOS.doctree b/.doctrees/RMF_EOS.doctree new file mode 100644 index 0000000..ca0e070 Binary files /dev/null and b/.doctrees/RMF_EOS.doctree differ diff --git a/.doctrees/TOV_solver.doctree b/.doctrees/TOV_solver.doctree new file mode 100644 index 0000000..9eee1e6 Binary files /dev/null and b/.doctrees/TOV_solver.doctree differ diff --git a/.doctrees/UnitConventionForDeveloper.doctree b/.doctrees/UnitConventionForDeveloper.doctree new file mode 100644 index 0000000..644380c Binary files /dev/null and b/.doctrees/UnitConventionForDeveloper.doctree differ diff --git a/.doctrees/cluster.doctree b/.doctrees/cluster.doctree new file mode 100644 index 0000000..a336329 Binary files /dev/null and b/.doctrees/cluster.doctree differ diff --git a/.doctrees/crust_EOS.doctree b/.doctrees/crust_EOS.doctree new file mode 100644 index 0000000..2a7b9e3 Binary files /dev/null and b/.doctrees/crust_EOS.doctree differ diff --git a/.doctrees/environment.pickle b/.doctrees/environment.pickle new file mode 100644 index 0000000..3a34e17 Binary files /dev/null and b/.doctrees/environment.pickle differ diff --git a/.doctrees/fastRMF_EoS.doctree b/.doctrees/fastRMF_EoS.doctree new file mode 100644 index 0000000..0f8ac57 Binary files /dev/null and b/.doctrees/fastRMF_EoS.doctree differ diff --git a/.doctrees/index.doctree b/.doctrees/index.doctree new file mode 100644 index 0000000..95f90b4 Binary files /dev/null and b/.doctrees/index.doctree differ diff --git a/.doctrees/installation.doctree b/.doctrees/installation.doctree new file mode 100644 index 0000000..f5c3859 Binary files /dev/null and b/.doctrees/installation.doctree differ diff --git a/.doctrees/intro.doctree b/.doctrees/intro.doctree new file mode 100644 index 0000000..b3bf7d5 Binary files /dev/null and b/.doctrees/intro.doctree differ diff --git a/.doctrees/main.doctree b/.doctrees/main.doctree new file mode 100644 index 0000000..60a34d6 Binary files /dev/null and b/.doctrees/main.doctree differ diff --git a/.doctrees/nbsphinx/DownloadCompose.ipynb b/.doctrees/nbsphinx/DownloadCompose.ipynb new file mode 100644 index 0000000..39097d4 --- /dev/null +++ b/.doctrees/nbsphinx/DownloadCompose.ipynb @@ -0,0 +1,459 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Usage of download_compose Module\n", + "Tianzhe Zhou 2024/11/9" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[CompOSE](https://compose.obspm.fr/table)(CompStar Online Supernovae Equations of State)\n", + "is a database that provides data tables for different state of the art equations of state (EoS) ready for further usage in astrophysical applications, nuclear physics and beyond.\n", + "\n", + "In this notebook, we will demonstrate how to use the `download_compose` module to download the data from the CompOSE database." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DownloadCompose: Fetching data from https://compose.obspm.fr/table \n", + "...\n", + "DownloadCompose: Find 308 EOS data on website https://compose.obspm.fr/table\n" + ] + } + ], + "source": [ + "# First, import the class that we need to use\n", + "from EOSgenerators.download_compose import DownloadCompose\n", + "\n", + "# Then, create an instance of the class\n", + "# This will automatically fetch the latest version of all available\n", + "# EOS names and their corresponding download links\n", + "dc = DownloadCompose()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "id = 1, name = HS(DD2) neutron matter (no electrons)\n", + "id = 2, name = HS(DD2) neutron matter (with electrons)\n", + "id = 3, name = HS(FSG) neutron matter (no electrons)\n", + "id = 4, name = HS(FSG) neutron matter (with electrons)\n", + "id = 5, name = HS(IUF) neutron matter (no electrons)\n", + "id = 6, name = HS(IUF) neutron matter (with electrons)\n", + "id = 7, name = HS(NL3) neutron matter (no electrons)\n", + "id = 8, name = HS(NL3) neutron matter (with electrons)\n", + "id = 9, name = HS(TM1) neutron matter (no electrons)\n", + "id = 10, name = HS(TM1) neutron matter (with electrons)\n", + "id = 11, name = HS(TMA) neutron matter (no electrons)\n", + "id = 12, name = HS(TMA) neutron matter (with electrons)\n", + "id = 13, name = SFH(SFHo) neutron matter (no electrons)\n", + "id = 14, name = SFH(SFHo) neutron matter (with electrons)\n", + "id = 15, name = SFH(SFHx) neutron matter (no electrons)\n", + "id = 16, name = SFH(SFHx) neutron matter (with electrons)\n", + "id = 17, name = HS(DD2) (no electrons)\n", + "id = 18, name = HS(DD2) (with electrons)\n", + "id = 19, name = HS(FSG) (no electrons)\n", + "id = 20, name = HS(FSG) (with electrons)\n", + "id = 21, name = HS(IUF) (no electrons)\n", + "id = 22, name = HS(IUF) (with electrons)\n", + "id = 23, name = HS(NL3) (no electrons)\n", + "id = 24, name = HS(NL3) (with electrons)\n", + "id = 25, name = HS(TM1) (no electrons)\n", + "id = 26, name = HS(TM1) (with electrons)\n", + "id = 27, name = HS(TMA) (no electrons)\n", + "id = 28, name = HS(TMA) (with electrons)\n", + "id = 29, name = GROM(LS220L) (with Lambdas, no low densities)\n", + "id = 30, name = GROM(LS220L) (with Lambdas, with low densities)\n", + "id = 31, name = LS(LS220) (no low densities)\n", + "id = 32, name = LS(LS220) (with low densities)\n", + "id = 33, name = SFH(SFHo) (no electrons)\n", + "id = 34, name = SFH(SFHo) (with electrons)\n", + "id = 35, name = SFH(SFHx) (no electrons)\n", + "id = 36, name = SFH(SFHx) (with electrons)\n", + "id = 37, name = SHO(FSU1) (no electrons)\n", + "id = 38, name = SHO(FSU1) (with electrons)\n", + "id = 39, name = SHO(FSU2) (with electrons)\n", + "id = 40, name = SHO(FSU2) (no electrons)\n", + "id = 41, name = SHT(NL3) (no electrons)\n", + "id = 42, name = SHT(NL3) (with electrons)\n", + "id = 43, name = BHB(DD2L) (no electrons)\n", + "id = 44, name = BHB(DD2L) (with electrons)\n", + "id = 45, name = BHB(DD2Lphi) (with electrons)\n", + "id = 46, name = BHB(DD2Lphi) (no electrons)\n", + "id = 47, name = SHO(FSU1) (no electrons)\n", + "id = 48, name = SHO(FSU1) (with electrons)\n", + "id = 49, name = SHO(FSU2) (no electrons)\n", + "id = 50, name = SHO(FSU2) (with electrons)\n", + "id = 51, name = SHT(NL3) (no electrons)\n", + "id = 52, name = SHT(NL3) (with electrons)\n", + "id = 53, name = GDTB(DDHdelta)\n", + "id = 54, name = GM(GM1)\n", + "id = 55, name = OPGR(GM1Y4) (with hyperons)\n", + "id = 56, name = STOS(TM1) neutron matter (original version)\n", + "id = 57, name = STOS(TM1) neutron matter (new version)\n", + "id = 58, name = STOS(TM1L) neutron and Lambda matter\n", + "id = 59, name = STOS(TM1) zero temperature (new version)\n", + "id = 60, name = STOS(TM1) zero temperature (original version)\n", + "id = 61, name = STOS(TM1) with Lambda zero temperature\n", + "id = 62, name = STOS(TM1L) with Lambda hyperons\n", + "id = 63, name = STOS(TM1) (new version)\n", + "id = 64, name = STOS(TM1) (original version)\n", + "id = 65, name = OPGR(GM1Y5) (with hyperons)\n", + "id = 66, name = OPGR(GM1Y6) (with hyperons)\n", + "id = 67, name = OPGR(DDHdeltaY4) (with hyperons)\n", + "id = 68, name = APR(APR)\n", + "id = 69, name = BBB(BHF-BBB2)\n", + "id = 70, name = SFHPST(TM1B145), with electrons\n", + "id = 71, name = STOS(TM1) (new version) with electrons\n", + "id = 72, name = STOS(TM1L) with Lambda hyperons and electrons\n", + "id = 73, name = SFHPST(TM1B139) with electrons\n", + "id = 74, name = SFHPST(TM1B155) with electrons\n", + "id = 75, name = SFHPST(TM1B165) with electrons (B165)\n", + "id = 76, name = IOTSY(TM1Y30) Sigma potential 30 MeV\n", + "id = 77, name = IOTSY(TM1Y30pi) with pions, Sigma potential 30 MeV\n", + "id = 78, name = IOTSY(TM1Y90pi) with pions, Sigma potential 90 MeV\n", + "id = 79, name = IOTSY(TM1Y0pi) with pions, Sigma potential 0 MeV\n", + "id = 80, name = IOTSY(TM1Y-30pi) with pions, Sigma potential -30 MeV\n", + "id = 81, name = IOTSY(TM1Y90) , Sigma potential 90 MeV)\n", + "id = 82, name = IOTSY(TM1Y0), Sigma potential 0 MeV\n", + "id = 83, name = IOTSY(TM1Y-30), Sigma potential -30 MeV\n", + "id = 84, name = RG(SLY230a)\n", + "id = 85, name = RG(SLY2)\n", + "id = 86, name = RG(SLY9)\n", + "id = 87, name = RG(SKI2)\n", + "id = 88, name = RG(SkI3)\n", + "id = 89, name = RG(SkI4)\n", + "id = 90, name = RG(SkI5)\n", + "id = 91, name = RG(SkI6)\n", + "id = 92, name = RG(KDE0v1)\n", + "id = 93, name = RG(KDE0v)\n", + "id = 94, name = RG(SK255)\n", + "id = 95, name = RG(SK272)\n", + "id = 96, name = RG(SKa)\n", + "id = 97, name = RG(SKb)\n", + "id = 98, name = RG(SkMp)\n", + "id = 99, name = RG(SkOp)\n", + "id = 100, name = RG(Rs)\n", + "id = 101, name = NL3\n", + "id = 104, name = OMHN(DD2Y)\n", + "id = 105, name = TNTYST(KOST2) variational EoS (with electrons)\n", + "id = 106, name = TNTYST(KOST2) variational EoS (without electrons)\n", + "id = 107, name = TNTYST(KOST2) variational EoS at zero temperature (with electrons)\n", + "id = 108, name = TNTYST(KOST2) variational EoS at zero temperature (no electrons)\n", + "id = 109, name = TNTYST(KOST2) neutron matter (zero temperature)\n", + "id = 110, name = TNTYST(KOST2) neutron matter\n", + "id = 111, name = FYSS(TM1) (no electrons)\n", + "id = 112, name = FTNS(KOST2) variational EoS (no electrons)\n", + "id = 113, name = FYSS(TM1) (with electrons)\n", + "id = 114, name = FTNS(KOST2) variational EoS (with electrons)\n", + "id = 115, name = DNS(CMF) Hadronic (with electrons)\n", + "id = 116, name = DNS(CMF) Hadronic (cold neutron stars)\n", + "id = 117, name = DNS(CMF) Hadronic (no electrons)\n", + "id = 118, name = FOP(SFHoY) (with electrons)\n", + "id = 119, name = FOP(SFHoY) (no electrons)\n", + "id = 120, name = BL(chiral)\n", + "id = 121, name = BL(chiral) with crust\n", + "id = 123, name = RG(SLY4)\n", + "id = 134, name = RG(SLY4)\n", + "id = 136, name = PT(GRDF1_DD2)\n", + "id = 137, name = PT(GRDF2_DD2) old version\n", + "id = 138, name = DNS(CMF) hadronic (cold neutron stars) with crust\n", + "id = 139, name = BHK(QHC18)\n", + "id = 140, name = BFH(QHC19-B)\n", + "id = 141, name = SRO(SLy4) SNA version\n", + "id = 142, name = OOS(DD2_FRG) (2+1 flavors)\n", + "id = 143, name = OOS(DD2_FRG) (2 flavors)\n", + "id = 144, name = SNSH(TM1e)\n", + "id = 145, name = SNSH(TM1e) zero temperature\n", + "id = 146, name = SNSH(TM1e) neutron matter\n", + "id = 147, name = RG(SLy4) with neutrino opacities\n", + "id = 148, name = RG(SLY4) with neutrino opacities, extended version\n", + "id = 149, name = SRO(APR) SNA version\n", + "id = 150, name = BFH(QHC19-A)\n", + "id = 151, name = BFH(QHC19-C)\n", + "id = 152, name = BFH(QHC19-D)\n", + "id = 154, name = MBB(DD2K ) (no electrons)\n", + "id = 155, name = BBKF(DD2F-SF) quark-hadron model RDF 1.1 without leptons\n", + "id = 156, name = BBKF(DD2F-SF) quark-hadron model RDF 1.2 without leptons\n", + "id = 157, name = BBKF(DD2F-SF) quark-hadron model RDF 1.3 without leptons\n", + "id = 158, name = BBKF(DD2F-SF) quark-hadron model RDF 1.4 without leptons\n", + "id = 159, name = BBKF(DD2F-SF) quark-hadron model RDF 1.5 without leptons\n", + "id = 160, name = BBKF(DD2F-SF) quark-hadron model RDF 1.6 without leptons\n", + "id = 161, name = BBKF(DD2F-SF) quark-hadron model RDF 1.7 without leptons\n", + "id = 162, name = BBKF(DD2-SF) quark-hadron model RDF 1.8 without leptons\n", + "id = 163, name = BBKF(DD2-SF) quark-hadron model RDF 1.9 without leptons\n", + "id = 164, name = BBKF(DD2F-SF) quark-hadron model RDF 1.1\n", + "id = 165, name = BBKF(DD2F-SF) quark-hadron model RDF 1.2\n", + "id = 166, name = BBKF(DD2F-SF) quark-hadron model RDF 1.3\n", + "id = 167, name = BBKF(DD2F-SF) quark-hadron model RDF 1.4\n", + "id = 168, name = BBKF(DD2F-SF) quark-hadron model RDF 1.5\n", + "id = 169, name = BBKF(DD2F-SF) quark-hadron model RDF 1.6\n", + "id = 170, name = BBKF(DD2F-SF) quark-hadron model RDF 1.7\n", + "id = 171, name = BBKF(DD2-SF) quark-hadron model RDF 1.8\n", + "id = 172, name = BBKF(DD2-SF) quark-hadron model RDF 1.9\n", + "id = 173, name = SRO(NRAPR) NSE version\n", + "id = 174, name = SRO(SkAPR) SNA version\n", + "id = 175, name = SRO(KDE0v1) SNA version\n", + "id = 176, name = SRO(LS220*) SNA version\n", + "id = 177, name = SRO(LNS) SNA version\n", + "id = 178, name = SRO(LS220) SNA version\n", + "id = 180, name = DS(CMF)-1\n", + "id = 181, name = DS(CMF)-2\n", + "id = 182, name = DS(CMF)-3\n", + "id = 183, name = DS(CMF)-4\n", + "id = 184, name = DS(CMF)-5\n", + "id = 185, name = DS(CMF)-6\n", + "id = 186, name = DS(CMF)-7\n", + "id = 187, name = DS(CMF)-8\n", + "id = 188, name = DS(CMF)-1 with crust\n", + "id = 189, name = DS(CMF)-2 with crust\n", + "id = 190, name = DS(CMF)-3 with crust\n", + "id = 191, name = DS(CMF)-4 with crust\n", + "id = 192, name = DS(CMF)-5 with crust\n", + "id = 193, name = DS(CMF)-6 with crust\n", + "id = 194, name = DS(CMF)-7 with crust\n", + "id = 195, name = DS(CMF)-8 with crust\n", + "id = 196, name = OOS(DD2-FRG) with vector interactions(2 flavors)\n", + "id = 197, name = OOS(DD2-FRG) with vector interactions(2+1 flavors)\n", + "id = 198, name = JJ(VQCD(APR)), intermediate\n", + "id = 199, name = JJ(VQCD(APR)), stiff\n", + "id = 200, name = JJ(VQCD(APR)), soft\n", + "id = 201, name = MBB(HSDD2K) with electrons\n", + "id = 202, name = MBB(BHBLphiK) with electrons\n", + "id = 203, name = GPPVA(FSU2R) NS crust\n", + "id = 204, name = GPPVA(NL3wrL55) NS crust\n", + "id = 205, name = SDGTT(QMC-A), no leptons\n", + "id = 206, name = SDGTT(QMC-A) with leptons\n", + "id = 207, name = GPPVA(TM1e) NS crust\n", + "id = 208, name = GPPVA(FSU2H) NS crust\n", + "id = 209, name = GPPVA(FSU2) NS crust\n", + "id = 210, name = GPPVA(DD2) NS crust\n", + "id = 211, name = GPPVA(DDME2) NS crust\n", + "id = 212, name = GPPVA(TW) NS crust\n", + "id = 213, name = GPPVA(FSU2H) NS unified inner crust-core\n", + "id = 214, name = GPPVA(FSU2R) NS unified inner crust-core\n", + "id = 215, name = GPPVA(FSU2) NS unified inner crust-core\n", + "id = 216, name = GMSR(SLy5)\n", + "id = 217, name = GPPVA(DD2) NS unified inner crust-core\n", + "id = 218, name = GPPVA(DDME2) NS unified inner crust-core\n", + "id = 219, name = GPPVA(TW) NS unified inner crust-core\n", + "id = 220, name = GPPVA(NL3wrL55) NS unified inner crust-core\n", + "id = 221, name = GPPVA(TM1e) NS unified inner crust-core\n", + "id = 222, name = GMSR(LNS5)\n", + "id = 223, name = GMSR(BSK16)\n", + "id = 224, name = GMSR(BSK14)\n", + "id = 225, name = GMSR(RATP)\n", + "id = 227, name = GMSR(F0)\n", + "id = 228, name = GMSR(H1)\n", + "id = 229, name = GMSR(H2)\n", + "id = 230, name = GMSR(H3)\n", + "id = 231, name = GMSR(H4)\n", + "id = 232, name = GMSR(H5)\n", + "id = 233, name = GMSR(H7)\n", + "id = 234, name = GMSR(DHSL59)\n", + "id = 235, name = GMSR(DHSL69)\n", + "id = 236, name = KBH(QHC21_AT)\n", + "id = 237, name = KBH(QHC21_BT)\n", + "id = 238, name = KBH(QHC21_CT)\n", + "id = 239, name = KBH(QHC21_DT)\n", + "id = 240, name = KBH(QHC21_A)\n", + "id = 241, name = KBH(QHC21_B)\n", + "id = 242, name = KBH(QHC21_C)\n", + "id = 243, name = KBH(QHC21_D)\n", + "id = 244, name = R(DD2YDelta) 1.1-1.1 (no electrons)\n", + "id = 245, name = R(DD2YDelta) 1.1-1.1 (with electrons)\n", + "id = 246, name = R(DD2YDelta) 1.2-1.1 (with electrons)\n", + "id = 247, name = R(DD2YDelta) 1.2-1.1 (no electrons)\n", + "id = 248, name = R(DD2YDelta) 1.2-1.3 (with electrons)\n", + "id = 249, name = R(DD2YDelta) 1.2-1.3 (no electrons)\n", + "id = 250, name = R(DD2YDelta) 1.1-1.1 (cold NS)\n", + "id = 251, name = R(DD2YDelta) 1.2-1.3 (cold NS)\n", + "id = 252, name = R(DD2YDelta) 1.2-1.1 (cold NS)\n", + "id = 253, name = PCP(BSK24)\n", + "id = 254, name = VGBCMR(D1MStar)\n", + "id = 255, name = VGBCMR(D1M)\n", + "id = 256, name = PCP(BSK22)\n", + "id = 257, name = PCP(BSK25)\n", + "id = 258, name = PCP(BSK26)\n", + "id = 259, name = DS(CMF)-1 Hybrid\n", + "id = 260, name = DS(CMF)-2 Hybrid\n", + "id = 261, name = DS(CMF)-3 Hybrid\n", + "id = 262, name = DS(CMF)-4 Hybrid\n", + "id = 263, name = DS(CMF)-5 Hybrid\n", + "id = 264, name = DS(CMF)-6 Hybrid\n", + "id = 265, name = DS(CMF)-7 Hybrid\n", + "id = 266, name = DS(CMF)-8 Hybrid\n", + "id = 267, name = DS(CMF)-1 Hybrid with crust\n", + "id = 268, name = DS(CMF)-2 Hybrid with crust\n", + "id = 269, name = DS (CMF)-3 Hybrid with crust\n", + "id = 270, name = DS (CMF)-4 Hybrid with crust\n", + "id = 271, name = DS (CMF)-5 Hybrid with crust\n", + "id = 272, name = DS (CMF)-6 Hybrid with crust\n", + "id = 273, name = DS (CMF)-7 Hybrid with crust\n", + "id = 274, name = DS(CMF)-8 Hybrid with crust\n", + "id = 275, name = ABHT(QMC-RMF1)\n", + "id = 276, name = ABHT(QMC-RMF2)\n", + "id = 277, name = ABHT(QMC-RMF3)\n", + "id = 278, name = ABHT(QMC-RMF4)\n", + "id = 279, name = XMLSLZ(DDME2)\n", + "id = 280, name = XMLSLZ(DD-LZ1)\n", + "id = 281, name = XMLSLZ(DDME-X)\n", + "id = 282, name = XMLSLZ(GM1)\n", + "id = 283, name = XMLSLZ(MTVTC)\n", + "id = 284, name = XMLSLZ(NL3)\n", + "id = 285, name = XMLSLZ(PK1)\n", + "id = 286, name = XMLSLZ(PKDD)\n", + "id = 287, name = XMLSLZ(TM1)\n", + "id = 288, name = XMLSLZ(TW99)\n", + "id = 289, name = DEJ(DD2-VQCD) intermediate\n", + "id = 290, name = DEJ(DD2-VQCD) soft\n", + "id = 291, name = DEJ(DD2-VQCD) stiff\n", + "id = 292, name = PCGS(PCSB0)\n", + "id = 293, name = LPB(chiral) with electrons\n", + "id = 294, name = LPB(chiral)\n", + "id = 295, name = PCGS(PCSB1)\n", + "id = 296, name = PCGS(PCSB2)\n", + "id = 297, name = ABHT(QMC-RMF1)\n", + "id = 298, name = ABHT(QMC-RMF2)\n", + "id = 299, name = ABHT(QMC-RMF3)\n", + "id = 300, name = ABHT(QMC-RMF4)\n", + "id = 301, name = PT(GRDF2-DD2) new version\n", + "id = 302, name = PT(GRDF2-DD2) cold NS\n", + "id = 303, name = HJJSTV(VQCD)-intermediate\n", + "id = 304, name = HJJSTV(VQCD) soft\n", + "id = 305, name = HJJSTV(VQCD) stiff\n", + "id = 306, name = BL(chiral) with unified crust\n", + "id = 307, name = CMGO(GDFM-I)\n", + "id = 308, name = CMGO (GDFM-II)\n", + "id = 309, name = KRT(FSU2H*)\n", + "id = 310, name = SPG(M1) unified NS EoS\n", + "id = 311, name = SPG(M1) Crust NS EoS\n", + "id = 312, name = SPG(M2) unified NS EoS\n", + "id = 313, name = SPG(M3) unified NS EoS\n", + "id = 314, name = SPG(M4) unified NS EoS\n", + "id = 315, name = SPG(M5) unified NS EoS\n", + "id = 316, name = SPG(M2) Crust NS EoS\n", + "id = 317, name = SPG(M3) Crust NS EoS\n", + "id = 318, name = SPG(M4) Crust NS EoS\n", + "id = 319, name = SPG(M5) Crust NS EoS\n", + "id = 320, name = TSO(DDLS(30)-Y)\n", + "id = 321, name = TSO(DDLS(70)-Y)\n", + "id = 322, name = TSO(DDLS(70)-N)\n", + "id = 323, name = TSO(DDLS(50)-Y)\n", + "id = 324, name = TSO(DDLS(50)-N)\n", + "id = 325, name = TSO(DDLS(30)-N)\n" + ] + } + ], + "source": [ + "# Now, we can print the list of available EOS names.\n", + "# Each EOS name is related to a specific identifier,\n", + "# which we can use later to actually download the EOS data file.\n", + "dc.print_eos_list()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "downloads\\compose\\316\\eos.t already exists, skip download https://compose.obspm.fr/download/1D/Crust/M2/eos.t\n", + "downloads\\compose\\316\\eos.nb already exists, skip download https://compose.obspm.fr/download/1D/Crust/M2/eos.nb\n", + "downloads\\compose\\316\\eos.thermo already exists, skip download https://compose.obspm.fr/download/1D/Crust/M2/eos.thermo\n" + ] + } + ], + "source": [ + "# Now we pick the EOS with identifier 316 and download it.\n", + "id = 316\n", + "eosdir = dc.download_id(id)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\t Nucleon masses used within the CompOSE tables :\t m_n = 938.90000 MeV and m_p = 938.90000 MeV\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# We use Compose_eos function to extract the EOS data from the downloaded file\n", + "from EOSgenerators import Compose_eos\n", + "import matplotlib.pyplot as plt\n", + "\n", + "eosdir = dc.eos_download_dir(id).as_posix()\n", + "eps, p, name = Compose_eos.read_compose(eosdir=eosdir, eosname=dc.eos_name(id))\n", + "\n", + "# Finally, we can plot the EOS data using matplotlib,\n", + "# to ensure that all the previous steps were successful.\n", + "plt.figure(dpi=100)\n", + "plt.plot(eps, p)\n", + "plt.xscale(\"log\")\n", + "plt.yscale(\"log\")\n", + "plt.xlabel(\"Energy density [$g/cm^3$]\")\n", + "plt.ylabel(\"Pressure [$dyn/cm^2$]\")\n", + "plt.title(name)\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.15" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/.doctrees/nbsphinx/DownloadCompose_5_1.png b/.doctrees/nbsphinx/DownloadCompose_5_1.png new file mode 100644 index 0000000..244f4fb Binary files /dev/null and b/.doctrees/nbsphinx/DownloadCompose_5_1.png differ diff --git a/.doctrees/nbsphinx/UnitConventionForDeveloper.ipynb b/.doctrees/nbsphinx/UnitConventionForDeveloper.ipynb new file mode 100644 index 0000000..9f238b7 --- /dev/null +++ b/.doctrees/nbsphinx/UnitConventionForDeveloper.ipynb @@ -0,0 +1,301 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Unit Convention for Developer\n", + "Tianzhe Zhou 2024/11/1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To set up a solid foundation for the development of the project, \n", + "we need to establish a unit convention for the project. \n", + "The unit convention is a set of rules that define the units of the physical quantities used in the project. \n", + "The unit convention is important because it ensures that all developers use the same units for the same physical quantities, which helps to avoid errors and inconsistencies throughout the whole project." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "fm = 1\n", + "hbarc = 0.197327053\n", + "c = 1 # speed of light\n", + "hbar = 1 # reduced Planck constant\n", + "\n", + "GeV = 1 / hbarc # Giga-electronvolt\n", + "MeV = 1e-3 * GeV # Mega-electronvolt\n", + "\n", + "g = 5.625e26 * MeV # gram\n", + "kg = 1e3 * g # kilogram\n", + "cm = 1e13 * fm # centimeter\n", + "m = 100 * cm # meter\n", + "km = 1e5 * cm # kilometer\n", + "s = 3e10 * cm # second\n", + "\n", + "dyn = g * cm / s**2 # dyne\n", + "dyn_cm_2 = dyn / cm**2 # dyne / cm^2\n", + "g_cm_3 = g / cm**3 # gram / cm^3\n", + "erg = dyn * cm # ἐργον energy unit\n", + "\n", + "m_n = 939.565 * MeV # mass of neutron\n", + "n0 = 0.16 / fm**3 # saturation density\n", + "\n", + "e0 = m_n * n0 # saturation energy density\n", + "G = 6.6743e-8 * dyn * cm**2 / g**2 # gravitational constant\n", + "Msun = 1.989e33 * g # mass of sun\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first 4 lines come from a widely used unit convention in High Energy Physics (HEP),\n", + "which is called [Natural Unit System](https://en.wikipedia.org/wiki/Natural_units).\n", + "You should be awared that we will NEVER using the Natural Unit System explicity,\n", + "as long as you obey the following rules.\n", + "1. Whenever you define a [literal](https://www.ituonline.com/tech-definitions/what-is-literal-programming/) \n", + "physical quantity, you should always *multiply* the unit of that quantity.\n", + "```python\n", + "# example of rule 1:\n", + "m_n = 939.565 * MeV # GOOD\n", + "m_n = 939.565 # BAD\n", + "m_n = 1.67e-27 * kg # GOOD\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. Whenever you want a physical quantity in cgs unit(or others unit system), \n", + "you should always *divide* the corresponding unit." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.670337777777778e-24\n" + ] + } + ], + "source": [ + "# example of rule 2:\n", + "m_n = 939.565 * MeV # mass of neutron\n", + "# if I want to know m_n in terms of gram, I need to\n", + "print(m_n / g)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. When you need to plot, *devide* the unit of your axis. See the example below." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. When you use physic formula, you leave the whole form as it was, no additional constants.\n", + "```python\n", + "# example of rule 4:\n", + "E = m * c**2 # GOOD\n", + "F = G*M*m / r**2 # GOOD\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we present a full procedure of how to use the unit convention in calculating MR relation.\n", + "See https://arxiv.org/pdf/astro-ph/0506417v1 Page 15 for more details." + ] + }, + { + "attachments": { + "image.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![image.png](attachment:image.png)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6.433772787333139e-26\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "from numpy import pi\n", + "\n", + "K_nrel = hbar**2 / (15 * pi**2 * m_n) * (3 * pi**2 / (m_n * c**2)) ** (5 / 3) # Rule 1\n", + "print(K_nrel / (cm**2 / erg ** (2 / 3))) # Rule 2" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def EOS_P(e):\n", + " return K_nrel * e ** (5 / 3) # Rule 4\n", + "\n", + "\n", + "e_min = 1e4 * g_cm_3 # Rule 1\n", + "e_max = 1e18 * g_cm_3 # Rule 1\n", + "e_grid = np.geomspace(e_min, e_max, 10000)\n", + "p_grid = EOS_P(e_grid)\n", + "\n", + "\n", + "def EofP(P, e_grid, p_grid):\n", + " return np.interp(P, p_grid, e_grid)\n", + "\n", + "\n", + "def PofE(E, e_grid, p_grid):\n", + " return np.interp(E, e_grid, p_grid)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from scipy.integrate import ode\n", + "\n", + "\n", + "# working with rescaled quantities\n", + "def TOV1(r, y, grids):\n", + " p, m = y\n", + " e_grid = grids[0]\n", + " p_grid = grids[1]\n", + "\n", + " e = EofP(p, e_grid, p_grid)\n", + "\n", + " dpdr = -(e + p) * (m + 4 * pi * r**3 * p) # Rule 4\n", + " dpdr = dpdr / (r * (r - 2 * m)) # Rule 4\n", + " dmdr = 4 * pi * r**2 * e # Rule 4\n", + "\n", + " return np.array([dpdr, dmdr])\n", + "\n", + "\n", + "def solveTOV1(rho_c, e_grid, p_grid):\n", + " # Notice that we only rescale quantities inside this function\n", + " rho_c = rho_c * G / c**2\n", + " e_grid = e_grid * G / c**2\n", + " p_grid = p_grid * G / c**4\n", + "\n", + " Pmin = p_grid[0]\n", + "\n", + " r = 4.441e-16 * cm # Rule 1\n", + " dr = 10.0 * cm # Rule 1\n", + "\n", + " p_c = PofE(rho_c, e_grid, p_grid)\n", + "\n", + " P0 = p_c - (4 * pi / 3) * (p_c + rho_c) * (3 * p_c + rho_c) * r**2 # Rule 4\n", + " m0 = 4 / 3 * pi * rho_c * r**3 # Rule 4\n", + "\n", + " param = (e_grid, p_grid)\n", + "\n", + " stateTOV = np.array((P0, m0))\n", + " sy = ode(TOV1).set_integrator(\"dop853\")\n", + " sy.set_initial_value(stateTOV, r).set_f_params(param)\n", + " while sy.successful() and stateTOV[0] > Pmin:\n", + " stateTOV = sy.integrate(sy.t + dr)\n", + " dpdr, dmdr = TOV1(sy.t + dr, stateTOV, param)\n", + " dr = 0.46 / (dmdr / stateTOV[1] - dpdr / stateTOV[0])\n", + " # at the end of this function, we rescale the quantities back\n", + " return stateTOV[1] * c**2 / G, sy.t\n", + "\n", + "\n", + "def compute_tov_properties(rho_c, e_grid, p_grid):\n", + " M = np.zeros_like(rho_c)\n", + " R = np.zeros_like(rho_c)\n", + " for i in range(len(rho_c)):\n", + " M[i], R[i] = solveTOV1(rho_c[i], e_grid, p_grid)\n", + " return M, R\n", + "\n", + "\n", + "def cal_MR():\n", + " density = np.geomspace(1e14 * g_cm_3, e_max, 100) # Rule 1\n", + " return compute_tov_properties(density, e_grid, p_grid)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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V5csXJjMmFG5TAAMfWPGFKfSnHtuMrICf81ua0tmzkxaWsqfBQAAAABUnGukAIChobExOfro0tZOmpSMH5+0tiYTJhSn2Mya5coOAHpvxIjkuOOSrbcurjNcsqS8eW1tyezZxfVSAAAAAMCAomwDAAx+//xncuCBydKl3a99+9uTX/+6OIUAACrt3e8uCjL77Zc88EB5sxobk6amZMqUymQDAAAAACrCNVIAwOD24ovJAQckjz7a/dottkjmz1e0AaC63vzm5JZbkunTy581b175MwAAAACAilK2AQAGr/b25Kijiu/6784aayS//GWy3nrVzwUA66+f3Hhj8bYcLS2VyQMAAAAAVIyyDQAweJ11VnLJJaWt/fGPk0mTqpsHAF5p7Nhkww3Lm9HaWpksAAAAAEDFKNsAAIPTtdcmn/1saWtPP724agoA+tr48eXtnzChMjkAAAAAgIoZ3d8BAABK0tSUXHRRcZ3GE08k999fXCPVnYMPTk4+uerxAKBTtbVJQ0Pv96+2WuWyAAAAAAAV4WQbAGBga25O6uqSXXZJ5s4tvmD5178mK1Z0v3fHHYuCzogRVY8JAJ2aNau8/TfdVJzQVkrBFAAAAADoE8o2AMDAtWBBMn160tjY870TJya//GWyxhqVzwUApZoyJZk6tbwZp56aHHdcaUVTAAAAAKDqlG0AgIGpuTmZOTNpa+v53tGjkyuuSDbfvPK5AKCn5sxJamrKmzF3bnLooclLL1UmEwAAAADQa6P7OwADx913353Fixfn4YcfznPPPZeampqsv/762W677bLzzjtnzJgx/R2xZE8++WSampry2GOP5fHHH09bW1vGjx+fzTbbLG95y1uyxRZb9HdEALpTX9+7ok1SfFHzbW+rbB4A6K3Jk5P583tfIn3Zz36WPPlkcuWVyfjxlcsHAAAAAPSIss0w99BDD+U73/lOLrnkkjz88MOrXDd+/Pjst99+Of7447PLLrv0YcLStba2Zs6cObnyyivT0tKSlStXrnLtFltskcMPPzzHHntsNt544z5MCUBJbrutd1dHvWzy5MplAYBKmDEjWbgwmT27vD/jfvObZM89k2uvTTbYoGLxAAAAAIDSuUZqmFq5cmXOOOOMbLvttjnzzDO7LNokyZIlS3LppZdm1113zQc/+ME8++yzfZS0eytXrsxZZ52VLbbYIieddFKampq6LNokyQMPPJAvf/nLeeMb35ivf/3r3a4HoI/Nm9e/+wGgGmprk4aGolRaX59Mm5bssEPxdo89Sp/T0pK89a3JAw9ULysAAAAAsEpOthmG2traMnPmzCxYsKBX+y+++OLccsst+fWvf503vOENlQ3XQ88991wOO+yw/OpXv+rV/ueffz6f//znc/PNN+eKK67IuHHjKpwQgF5paenf/QBQTVOmFK/Xuvzy5LDDkqVLu5/xv/9blHR+/evkLW+pfEYAAAAAYJWcbDPMrFixIgcffPAqizZjxozJjjvumL333ju77rpr1lxzzU7X3Xvvvdlrr73y6KOPVjNul1544YXsscceXRZtXv/612fq1Kl529velm233TYjR3b+U/66667Lvvvum6Wl/KM2ANW3ZEl5+1tbK5MDAPrSwQcX10ONH1/a+kcfTd72tuT3v69uLgAAAADgVZRthpnTTjstV199dYfna6+9dr75zW/m8ccfzx133JEbb7wxt9xyS5566qlcfvnl2WabbTrseeCBB3LooYf22xVMH/3oR9PSyckFY8aMyQknnJC//OUv+fvf/56GhobcfPPNueeee/Loo4/m3HPPzcSJEzvsu+mmm3Lcccf1RXQAulPqFxlXZcKEyuQAgL62117JTTclG2xQ2vpnn03e+c7kF7+oZioAAAAA4BWUbYaRO++8M1/72tc6PN98883T1NSUT37yk1lrrbVe9b4xY8bkoIMOSktLS/7zP/+zw97f/e53+d73vle1zKsyb968/OQnP+nwfIMNNsgtt9ySs88+u9OC0Prrr5/jjjsu99xzT3bbbbcO7z///PNzww03VCUzAD0waVJ5+2trK5MDAPpDbW2ycGGyxRalrX/ppeSgg5Lvf7+6uQAAAACAJMo2w8qnPvWprFix4lXP1lhjjVx77bXZaqututy7xhpr5Oc//3ne/OY3d3jfKaeckueff76iWbuyfPnynH766R2e19TU5MYbb8zOO+/c7Yz11lsvN9xwQ6eFnE984hP9dloPAP/nX/8qb/+sWRWJAQD9Zuuti8LNjjuWtn7lyuSoo5KvfS1pb69uNgAAAAAY5pRthomWlpZOT2w55ZRTst1225U0Y9y4cbngggs6PH/yySdz/vnnl52xVJdddlnuv//+Ds+/9KUvZVIPTkIYP358Lrroog7P77nnnlxx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05/+tFfz5s+fn5UrV77q2YgRI7Lvvvv2al5/uv/++/Ozn/2sw/Pjjz++78MADAXf+Ebyl7/0fv/UqcnkyZXLAwB0b6+9kuuuS9Zcs7T1V1+d7L9/8uKL1c0FAAAAAAOUss0wcfjhh3d4duWVV+af//xnj+a0t7dn7ty5HZ7vueeeef3rX9/rfP3l2GOPTdtrviNzq622ygc+8IF+SgQwiN11V3L66b3fX1OTdPJnDADQB3bfPbn++mTChNLWX399cQ3V889XNxcAAAAADEDKNsPE0UcfndVWW+1Vz5YtW5aTTz65R3PmzZuXu+++u8Pz+vr6kmfMmjUrI0aM6PB68MEHe5SlXF/72tdy/fXXd3h+zjnnZMyYMX2aBWDQW7asuP5p2bLe7a+pSebPT2prKxoLAOiBurrkN79J1l67tPW/+13y7ncnS5ZUNRYAAAAADDTKNsPEJptskg9/+MMdnl900UWZP39+STP++te/dnq90g477JADDjigzIQ999xzz/VqX3t7e0477bScdNJJHd53xBFHZL/99is3GsDw81//lbS09G5vXV2ycGEyY0ZlMwEAPTdlSlGiWW+90tb/z/8k//mfybPPVjcXAAAAAAwgyjbDyJe//OWsu+66HZ4fccQR+clPftLl3jvuuCN77713nu3kH1DPPffcjBzZ9z+V9ttvvxx00EG55ppr8tJLL5W0Z9GiRdltt93ypS99qcP7dthhh06vyAKgG4sXJ6ed1v26ddZJpk5NdtghmTYtqa9PmpqSRYucaAMAA8lOOyU33ZRssEFp6xsakne8I3n66WqmAgAAAIABY3R/B6DvTJw4MRdeeGEOPPDAVz1/6aWXcuihh+ZHP/pRjjnmmNTV1WXixIlZsmRJ/vjHP+aSSy7JRRddlGWdXA3yyU9+Mm9/+9v76ofwKsuWLcvPf/7z/PznP88aa6yRPfbYIzvttFO23377rLfeellzzTXz9NNP57HHHsvixYtz1VVX5b777ut01hve8IZcd911GT9+fB//KAAGuVKvjxo5Mrn22mS33fokFgBQph12KAo3e++dPPJI9+ubmpK99kpuuCGZOLHq8QAAAACgPynbDDMHHHBAvva1r+ULX/hCh/ddd911ue6660qeNWPGjHzjG9+oZLxee/7553PNNdfkmmuu6fHenXbaKddcc0023njjKiQDGOLO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okWLstFGG1U7dqcefvjhvP3tb8999923yjXjx4/PG9/4xqy99tp58cUX8+ijj+aBBx7odO3SpUvz4Q9/OCNHjswRRxxRrdhAX1ixIvnv/+5+3ezZ1c8CAAB0NGtWade+rspTT1UsCgAAAEBPOdlmmDnttNM6Ldqsvfba+eY3v5nHH388d9xxR2688cbccssteeqpp3L55Zdnm2226bDngQceyKGHHlrSlU3VcNRRR62yaHPYYYelsbExzzzzTJqbm/Ob3/wmixYtyv3335/HH3883/72t7Ppppt22Ldy5cocc8wxqyzkAIPE1Vcnf/tb12v22ivZfvu+yQMAALzalCnJ1Km933/ZZckPflC5PAAAAAA9oGwzjNx555352te+1uH55ptvnqampnzyk5/MWmut9ar3jRkzJgcddFBaWlryn//5nx32/u53v8v3vve9qmVelauvvjrXXHNNh+c1NTW56qqr8uMf/zi77bZbRo7s+FN84sSJ+cQnPpG77ror//Ef/9Hh/S+++GJOPPHEquQG+kBTU1Jf3/26UtYAAADVM2dOUlPT+/3HHps0NlYuDwAAAECJlG2GkU996lNZsWLFq56tscYaufbaa7PVVlt1uXeNNdbIz3/+87z5zW/u8L5TTjklzz//fEWzdueiiy7q9PkFF1yQGTNmlDRjnXXWyZVXXpntttuuw/uuuuqqPP300+VEBPpac3NSV5fsskvy0ENdr33965P99uubXAAAQOcmT07mz+994Wbp0uS9700efriyuQAAAAC6oWwzTLS0tOSGG27o8PyUU07ptGzSmXHjxuWCCy7o8PzJJ5/M+eefX3bGUi1btizXXntth+c777xzDj/88B7NWmONNfLVr361w/Ply5d3+jGAAWrBgmT69NK/q/Xtb09Gj65uJgAAoHszZiQLF/b+SqlHHkkOPDBpa6tsLgAAAIAuKNsME51d9bTuuuvmuOOO69Gcurq6Tq+T6suyzSOPPNLpSToHHXRQr+bts88+GTduXIfn9913X6/mAX2suTmZObNn/7j+s58lLS3VywQAAJSutjZpaEhuu6247nXatGSHHZKddkrGjOl+/623Jh/7WNLeXvWoAAAAAImyzbCwfPnyzJ8/v8Pzww8/vNOSSXeOOuqoDs/uueee3H777b3K11P/+te/On2+/fbb92re2LFjs+WWW3Z4/sgjj/RqHtDH6ut7/l2sbW3J7NnVyQMAAPTOlCnJd75TnHRz113J7bcX10yVYt685Nxzq5sPAAAA4P8o2wwDt9xyS55++ukOz3t7Esy+++6b1VdfvcPzvrp2qX0V36m25ppr9nrmhAkTOjwbNWpUr+cBfeS220q/Ouq1GhuTpqbK5gEAACpr//2T008vbe2JJya/+U118wAAAABE2WZY+O1vf9vh2bhx41JXV9ereTU1NZk2bVpJH6caNtxww06fP/nkk72e+cQTT5T8cYABZN68/t0PAABU30knJaV8w9CKFcn73pfcf3/1MwEAAADDmrLNMNDUyckNO+20U8aUcu/5Kuy6664dnjU3N/d6Xk9svvnmnRZhbr311l7Ne/LJJ/O///u/HZ5PnTq1V/OAPtTS0r/7AQCA6hs5MrnoomTSpO7XPvVUcRrOc89VPRYAAAAwfCnbDAN//OMfOzybVMo/UHWhs/3PPPNM/v73v5c1t1Tvfe97Ozz76U9/mhdffLHHsy666KKsXLnyVc822GCD7L777r3OB/SRJUvK29/aWpkcAABAda25ZvKLXyTrrtv92sWLk1mzktf8XR8AAACgUpRthrhly5bloYce6vB86623Lmvuqvbfd999Zc0t1fHHH5/VVlvtVc8efvjhfOELX+jRnHvvvTdf+cpXOjw/8cQTM3bs2LIyAn1g/Pjy9k+YUJkcAABA9W25ZfKznyWjRnW/9oorkq9+tfqZAAAAgGFpdH8HoLoeeuihDqe2JMmmm25a1txV7X/wwQfLmluqbbbZJqeffno+97nPver5t771rSTJN77xjQ5lnNf6wx/+kA984AN55plnXvV86tSpOeGEEyoZt0sNDQ1l7b/rrrsqlAQGodrapJxfQ7W1lcsCAABU3957J2efnRx/fPdrv/jF5C1vKa6VAgAAAKggZZsh7rHHHuv0+YYbbljW3FXtf/zxx8ua2xOf/exn889//jPf+c53XvX8W9/6Vq644oocddRR2WuvvbLttttm7bXXTltbWx599NHceuut+clPfpJrrrmmQxFp5513ztVXX53Ro/vul8a0adP67GPBkDNrVjJ3bnn7AQCAweUTn0huvz2ZN6/7tYcfntxyS7L99tXPBQAAAAwbrpEa4p566qlOn6+11lplzR01alTGjRvX4fmTTz5Z1tyeOvfcc3PhhRdm7bXXftXzhx56KF/84hczffr0rL/++hkzZkzGjx+fN77xjTnssMOyYMGCVxVtRo8eneOOOy4LFy7MuqXc/w4MDFOmJBMn9m7v1KnJ5MmVzQMAAFTfiBHJd7+b7Lpr92ufe6442ebpp6ufCwAAABg2lG2GuOeee67T52uuuWbZszub8fzzz5c9t6c+/OEP58EHH8wZZ5yRHXfcsUd7t9hii3zmM5/Jvffem3PPPTerr756lVICVfH000lra8/31dSUdyIOAADQv2pqkiuvTDbeuPu1//u/yfvfnyxfXv1cAAAAwLCgbDPELVu2rNPnlbgmacyYMR2eLV26tOy5vbX66qtn7bXXzsiRpf+0fuyxx/LXv/41d911V9rb26uYDqiKH/846envOzU1yfz5SW1tdTIBAAB9Y5NNkp//PFltte7XXn998vnPVz8TAAAAMCyU37hgQFuxYkWnz0eNGlX27M5mLO/j7xJbuXJlzjzzzJxxxhl59tlne7z/+eefz5VXXpkrr7wyb3nLW3LhhRdmypQpVUi6aosWLSpr/1133ZVjjjmmQmlgEGlvT84/v2d76uqSOXMUbQAAYKiYOrW4UurDH+5+7VlnJTvtlBx2WNVjAQAAAEObss0Qt6oTbCpRiulsRmen3VRLa2tr3vOe9+Tmm2/u8L7Ro0fn3e9+d/bcc89stdVWWXfddfPiiy/msccey6233pqrr746999//6v23HnnnZk2bVrOO++8fOQjH+mrH0bq6ur67GPBkHLLLcnixV2vWWONZMcdi3LNrFnJ5Ml9Eg0AAOhDRx6Z3H578p3vdL/2ox9N3vQmfzcAAAAAyqJsM8SNHTu20+erul6qJzq7MmpVH6/SXnrppbzrXe9KQ0NDh/cdcsghOfPMM/P617++072HH354vvWtb+VnP/tZ6uvr8+STT/7/71u2bFmOOuqojBs3Lh/4wAeqlh+ogAsu6H7N+ecnhx5a/SwAAED/Ovvsooz/u991va6tLTnggKSpKdlwwz6JBgAAAAw9I/s7ANU1fvz4Tp+3traWPXvJkiUdnk2YMKHsuaU46aSTOi3afPnLX85ll122yqLNy0aOHJn3v//9uf322/OGN7zhVe9rb2/PMccck7/97W+VjAxUUmtrctllXa9Zd93kve/tmzwAAED/GjMm+dnPktf8Hb9T//hHctBBSSffRAQAAABQCmWbIW699dbr9PkzzzxT1tyXXnopL730Uskfr5L+9re/5Vvf+laH5+9///tz8skn92jW61//+vzqV7/qcN3WkiVL8qUvfamMlEBVXXpp8sILXa/54AeTmpq+yQMAAPS/iROTX/wiGTeu+7ULFyaf+ETVIwEAAABDk7LNELfRRht1+vxf//pXWXMfeeSRHn28Svrud7+bFStWvOrZmDFj8vWvf71X8yZNmpRZs2Z1eH7ppZfm6aef7tVMoMpKuULqqKOqnwMAABhYdtwxueii0tZ+73vJd79b1TgAAADA0KRsM8RtsskmGTt2bIfnf//738ua+9BDD3X6fIsttihrbimuv/76Ds/e+ta3ZvPNN+/1zMMOO6zDs6VLl+b3v/99r2cCVdLcnLS0dL1m2rRk++37Jg8AADCwzJyZnHRSaWuPOy7xd38AAACgh5RthrgRI0Zkq6226vD83nvvLWvuqvZvvfXWZc3tzooVK/LHP/6xw/Pp06eXNXfatGkZMWJEh+e33357WXOBKijlVJujj65+DgAAYOA6/fRkv/26X7d8eXLwwUmZ35QEAAAADC/KNsPAzjvv3OHZHXfcUdbMzva/7nWvy8SJE8ua252nn366wxVSSbLhhhuWNXe11VbLOuus0+H5E088UdZcoMKeey659NKu16y1VvGdrAAAwPA1cmTy4x8nb3pT92sffzw54IDkhReqHgsAAAAYGpRthoHddtutw7O77747ra3/H3t3Hmd1Xe8P/HVYZARBXHMpzbTM6w5IgJi5VJaYJlJqLmhmC9TVX93balm2XrvVTeimZkrmFrhUWJqamSGjMLibS+aC+y64DCKc3x/nQuLgnDMz58yZOfN8Ph7n8eN8zvv9Pa/pV9zHfHl/P59Fnb7m3LlzK/qeanv11VdXuz5w4MAuX3t111i+fHmXrwtU0W9+kyxe3H7Nxz6WDB7cPXkAAICea9iw5Le/LQ3kl3Pjjcnmmyfbb186lnbq1NIRtgAAAACrYdimD9h7773brC1btixXXnllp6735JNPrvZ4pdV9T7Wtt956q13v6g40xWIxTz/9dJv1DTbYoEvXBarstNPK1zhCCgAAWOEd70jOPz9ZzdHRbTz1VHLbbcncucn06cmoUcnYsYZuAAAAgDYM2/QB22yzTbbccss26xdccEGnrjdz5sw2O74UCoXsu+++nbpeRwwcOHC1xz3Nnz+/S9e98cYbV7trjmEb6EFuvTW5/vr2a3bZJdlxx+7JAwAA9A777JN8//ud621uTsaPT2bPrm4mAAAAoFczbNNHHHbYYW3WLr744jz88MMduk6xWMz06dPbrL/nPe/JW97ylk7n64iRI0e2Wbvqqqu6dCzWxRdfvNr1XXbZpdPXBKrs9NPL13ziE7XPAQAA9D7/8R/JIYd0rre1NZk0KVmwoLqZAAAAgF7LsE0fceyxx2aNNdZYZW3p0qX52te+1qHrzJgxI3fccUeb9alTp1Z8jcmTJ6dQKLR53X///RX177PPPm3WFi9enP/+7/+uOMNrPfHEE/npT3/aZn3dddc1bAM9xcsvJ2ef3X7NWmslBx/cPXkAAIDepVBIfvGLZOedO9ff2ppMmVLdTAAAAECvZdimj9hkk01y9NFHt1k/66yzMnPmzIqucc899+S4445rs77ddtvlgAMO6GLCyk2cODEDBw5ss/7d7343l19+eYeutWTJkkycOHG1u+J85CMfSb9+/icCPcKsWclzz7Vfc8ghydCh3RIHAADohQYPTr75zc73NzcnXTzGGgAAAGgMJgn6kJNOOinrrrtum/XDDz885513Xru9N910U/baa688//zzbT776U9/2q1DKW9961vzyU9+ss36q6++mv333z+nnHJKli9fXvY699xzT3bdddf87W9/a/PZ4MGDc8IJJ1QlL9BF8+cnX/xi+TpHSAEAAOV08CGdNmbMqE4OAAAAoFczbNOHrL/++jnjjDParC9ZsiSHHnpoPvCBD+SSSy7J448/nmXLluW5557LNddck2OPPTajR4/OwoUL2/Qef/zx2WOPPboj/iq+8Y1vZPPNN2+zvmTJknzuc5/L1ltvne9///uZO3dunnjiiSxdujSLFy/Ovffem/POOy8HH3xwttlmm7S0tKz2+ieddFI22WSTWv8YQHtaWpKxY5NddkkefbT92h13TEaN6p5cAABA77VgQX37AQAAgIYwoN4B6F4HHHBAvvvd7+YrX/lKm88uu+yyXHbZZRVfa8KECfnBD35QzXgVW3/99XP55Zdn/Pjxeeqpp9p8/o9//CNf/vKXO3Xtz33uc/l//+//dTUi0BWzZyeTJiWtrZXVjx2bFAq1zQQAAPR+ixd3rX81x1ADAAAAfY+dbfqgL3/5y/nxj3+c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kgf8AAAA+rKGG7ap1a41vXVXm6R0bNLrLVu2LFdeeWWnrvfkk0/mxhtvrOh76uXWW2/NvHnz2qwfccQRWWONNeqQCDph9uxk/Pikubl8baGQ3H577TMBAAAA7Zs2LWlq6lzvBRckP/1pdfMAAABQdQPqHaCavvGNb3T5GkuXLs3TTz+dhx9+OHPnzs3TTz+dpLRbTrFYzJAhQzJlypSsueaaXf6u7rLNNttkyy23zL333rvK+gUXXJADDzyww9ebOXNmli9fvspaoVDIvvvu26Wc1XT66aevdt0RUvQaLS3JpElJa2tl9cViqX7OHOe7AwAAQD2NHJnMnNmx3+tf6wtfKO2Qs+uu1c8GAABAVRi2KePaa6/Nf//3f+d3v/tdCoVCXnrppVx66aW59NJLs9lmm1X9+2rlsMMOyze/+c1V1i6++OI8/PDD2XTTTSu+TrFYzPTp09usv+c978lb3vKWLueshiVLluScc85psz5u3Lhss802dUgEnTB1asdvyLW2JlOmJKs55g0AAADoRhMmlB6ImTKlsh1rX+vVV5OPfCRZsCB505tqkw8AAIAuabhjpKptt912yyWXXJLf/OY3GTp0aJLk9ttvz2677ZYHH3ywzukqd+yxx7Y5Pmnp0qX52te+1qHrzJgxI3fccUeb9alTp1Z8jcmTJ6dQKLR53X///R3K8kYuuuiiPPPMM23W7WpDrzFvXsdvxK3Q3JzMn1/dPAAAAEDHjRhReiBm3rzSQzXjxiXbbpv83z3Gdj3ySHLwwaXBGwAAAHocwzYVOuigg/Lb3/42AwcOTKFQyMKFC7PffvtlyZIl9Y5WkU022SRHH310m/WzzjorM2fOrOga99xzT4477rg269ttt10OOOCALiasnjPOOKPN2tChQ/ORj3ykDmmgE2bMqG8/AAAAUD2jRiWnnFLa6ea225K//z3ZcMPyfX/5S/KVr9Q8HgAAAB1n2KYDdt9995x44okpFospFAq57bbb8q1vfavesSp20kknZd11122zfvjhh+e8885rt/emm27KXnvtleeff77NZz/96U/Tr1/P+K/Sfffdlz//+c9t1g855JAMGTKkDomgExYsqG8/AAAAUDubbpqcf35Syf20k09OLrqo9pkAAADokJ4xIdGLHHfccXnT/52VXCwW89Of/jTPPvtsnVNVZv3111/tri9LlizJoYcemg984AO55JJL8vjjj2fZsmV57rnncs011+TYY4/N6NGjs3Dhwja9xx9/fPbYY4/uiF+RM844I8Visc26I6ToVRYv7lr/okXVyQEAAADUxh57JN/9bmW1kycnd99d0zgAAAB0jGGbDmpqasq+++67cqDjpZdeyvnnn1/nVJU74IAD8t03+EX+sssuy4c//OFstNFGGTBgQNZZZ5285z3vyemnn56lS5e2qZ8wYUJ+8IMf1DpyxZYtW5azzjqrzfoOO+yQXXbZpfsDQWdVcnZ7e4YNq04OAAAAoHb+8z+TSo5mX7w4mTgxefHFmkcCAACgMoZtOmG33XZLkhQKhSTJn/70p3rG6bAvf/nL+fGPf5z+/ft3+hqHHXZYZs2alYEDB1YxWddcdtllefjhh9us29WGXmfEiPr2AwAAALVXKCRnnZW8/e3la2+7LTn22GQ1OzoDAADQ/QbUO0BvtPHGG6/8c7FYzK233lrHNJ1z3HHHZezYsZkyZUpaWloq7tt4443zX//1XznssMNqmK5z7rzzzrz//e9fZa1QKPTIrNCuyZOT6dO71g8AAAD0fGuvnVx4YfKudyUvv9x+7bnnJmPHJlOndk82AAAA3lChWPQ4REdde+212X333VMoFFIsFjNkyJAsXry43rE67corr8yvf/3rXHnllavdGWb48OHZbbfdctBBB+WjH/1oBg0aVIeUvJG5c+dm3Lhxq6xdd911GTt2bJ0SURVjxybNzR3vGzMmmTu3+nkAAACA2jnnnKSSB8YGDkyuuaZ03wAAAKAB9ZZ//7azTSc8+eSTq7xfunRpnZJUx95775299947SfLcc8/lkUceyYsvvpimpqasv/76q+zkA3STadNKN8468vdLU1PXdsQBAAAA6uNjH0uuuy752c/ar1u6NJk0KVmwINlww+7JBgAAQBuGbTph7ut2jVh33XXrlKT6hg8fnuHDh9c7BjByZGmXmmuvray+qSmZOTMZMaK2uQAAAIDa+NGPkpaW5Prr2697+OHkkEOSyy9PBri9CwAAUA/96h2gt3n55Zdz/vnnp1AorFzb0FMkQLUVi8m991ZWO3ZsMmdOMmFCbTMBAAAAtTNoUOlBmvXXL1/75z8nJ5xQ+0wAAACslmGbDvr85z+fhx9+OElSLBZTKBR63NlgQAO4777kkUfar9ltt2T+/NI203a0AQAAgN7vLW9Jzj8/6VfBbdvvfz/57W9rnwkAAIA2DNtU6Nlnn83kyZNz6qmnrrKrTZJ84AMfqFMqoGFVcnzUT35SOm4KAAAAaBx77ZWcdFJltUcckfzjH7XNAwAAQBsO9V2N5cuXZ/HixXnsscdyyy235LLLLsuFF16YxYsXr9zNJkkKhUK22mqr7LvvvnVODDScv/2t/c/XWivZYYfuyQIAAAB0ry99KWluTn7/+/brFi1KJk5M5s5NBg/unmwAAAA01rBN//79a3btYrGYJCsHbVYM3fzgBz+o6fcCfVS5nW3GjUsGNNRf4QAAAMAK/folv/pVMmpUcu+97dfeckvyqU8lM2Ykr9uRGwAAgNpoqGOkisVizV6FQqHN8VHf+MY3csABB9TnhwUa1xNPJHfd1X7Nbrt1TxYAAACgPoYPTy68MFlzzfK1Z5+d/PznNY8EAABASUMN2yRZORRT7dcKxWIxgwYNyn//93/n61//eh1/UqBhzZlTvsawDQAAADS+HXesfIjm3/89ueGG2uYBAAAgSQMO21Tba3e3WWONNXLwwQfnpptuyvHHH1/vaECjKneE1MCByejR3ZMFAAAAqK8jjkg++cnydUuXJgcdlDz1VO0zAQAA9HED6h2g2orFYpev0b9//wwdOjRrr712Ntlkk4wYMSK77LJL9ttvv6yzzjpVSAnQjnLDNqNGVbaFNAAAANAY/ud/kgULknnz2q9buDA55JDkssuS/v27JxsAAEAf1FDDNsuXL693BICueeGF5MYb269xhBQAAAD0LYMGJbNmJSNGJE8/3X7tlVcm3/hG8u1vd082AACAPsgxUgA9SXNzsmxZ+zXjx3dPFgAAAKDn2Gyz5Nxzk0KhfO13vpP8/ve1zwQAANBHGbYB6EkuuKB8za671j4HAAAA0PO8733JN79ZWe3hhyf//Gdt8wAAAPRRhm0AeoKWlmTs2OQXv2i/bsstk3XX7Z5MAAAAQM/z1a8m++5bvu7555OJE5OXX659JgAAgD7GsA1Avc2eXToaqrm5fO3995fqAQAAgL6pX7/k7LOTLbYoX3vTTclnPpMUizWPBQAA0JcYtgGop5aWZNKkpLW1svply0r1CxbUNhcAAADQc62zTnLhhUlTU/nas85Kttoq2X77ZNy4ZOrU0v0IAAAAOs2wDUA9TZ1a+aDNCq2tyZQptckDAAAA9A4775z87GeV1f7zn8lttyVz5ybTpyejRpWOszZ0AwAA0CkD6h2gp3rooYfyt7/9LY899liWLVuWTTfdNKNGjcpWW21V72hAo5g3r7Kjo1anuTmZP790cwwAAADom446KrnuuuQXv+h4b3Nz6VjrmTOTCROqnw0AAKCBGbZ5nXnz5uU///M/89e//nW1n++yyy45+eSTs9tuu3VzMqDhzJjR9X7DNgAAANC3nXJKcuONndulprW1dFz1nDnJiBHVzwYAANCgGuoYqSVLluTf/u3f8ra3vW3la+rUqRX3n3vuudltt93y17/+NcVicbWvG264IXvssUe+9a1v1fAnAfqEBQvq2w8AAAD0fk1NyaxZybrrdq7fcdUAAAAd1lDDNpdffnnuvPPOPPDAA7n//vvzwAMP5MADD6yod968eTnqqKPyyiuvpFgsplAovOFr+fLl+eY3v5n/+Z//qfFPBDS0xYu71r9oUXVyAAAAAL3bW9+afP3rne9fcVw1AAAAFWmoYZvf//73q7zfYostsueee1bUe8wxx2Tp0qUrB2pWeO2uNisUCoUUi8X853/+Z+66667qhAf6nqFDu9Y/bFh1cgAAAAC93z33dK2/q8ddAwAA9CENNWwzd+7clYMwhUIhEyZMqKjvoosuyq233tpmyGbQoEHZe++9c/DBB2eXXXZZZeAmSZYuXZrjjz++qj8D0Id09Sx0Z6kDAAAAKziuGgAAoNs0zLDNCy+8kL///e+rrH3wgx+sqPe0005b+ecVAzVjxozJP/7xj/zpT3/Kueeem+uvvz7XXnttNtxwwyRZOZhz+eWX57777qvGjwD0NZMn17cfAAAAaByOqwYAAOg2DTNsc++997bZeWbnnXcu2/fEE0/kqquuWmVXm6FDh+biiy/OJptsskrtrrvumvPPP7/N95x77rldSA70WaNGJWPGdK53zJhk5Mjq5gEAAAB6L8dVAwAAdJuGGba5//77V3m/wQYbZIMNNijb96c//SnLli1LkpXHTx199NF505vetNr63XffPe973/tW1ibJNddc07XwQN81bVoyYEDHepqakunTa5MHAAAA6J0cVw0AANBtGmbY5rHHHlvl/cYbb1xR39VXX91m7cgjj2y356CDDlr552KxmJtvvrmi7wJoY+TIju1Q09SUzJzpBhgAAACwqq4eN73//lWJ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BwAAoIdq2GGbF154Ieeff35++ctf5vrrr0+SVY6Iev2QTb9+/fLe9743Rx99dA444ICsscYa3Z4ZaBCTJyfTp3etHwAAAKA3GzWq9FqhWEwOOSS54IL2+5YsSQ48MGlpSdZfv7YZAQAAOqnhhm2uueaa/PKXv8yFF16Yl19+OUn7u9i87W1vy+TJkzN58uS8+c1v7v7AQOMZNaq0XXJzc8d7x4zx5BYAAADQeAqF5Be/SG67Lbn99vZrH3ywNJhz2WVJ//7dkw8AAKADGmLYZuHChZkxY0bOOuus3HfffUlWv4vNirXBgwdn4sSJOfroo7P77rt3f2Cg8U2bVhqcefXVynuamrq2Iw4AAABAT7bWWsnFF5ceVFq0qP3aK69Mvva15Hvf655sAAAAHdBrh21eeeWVXHTRRTnzzDNz1VVXpVgstntMVJK8613vytFHH52DDz44Q4cO7fbMQB8ycmTpjPIbbqisvqkpmTmz1AMAAADQqN7+9uTXv04+9KHytd//frLLLqVjpQAAAHqQXjds09LSkjPPPDPnnXdennvuuSTtHxP1pje9KYcffniOPvrovPOd7+z2vEAf9sQTldWNHVvaCcegDQAAANAX7LdfcsIJyUknla898sjk3/4tcW8XAADoQXrFsM3TTz+ds88+O2eeeWZuu+22JKs/JmrF+oABA/LBD34wRx99dPbdd9/0d64v0N2efz65//72a9797uRHPyrtggMAAADQl3zjG8m8eclll7Vf98ILyYc/XNo92G7lAABAD9Erhm022WSTvPrqq2WPifq3f/u3HHXUUTn88MOz4YYbdntOgJVuvbV8zbe/bdAGAAAA6Jv690/OOScZNSq57772a++8MznqqNIR3K+5LwwAAFAv/eodoBJLly5d+edCoZBCoZBisZhisZihQ4fmE5/4RObOnZvbbrstn//85w3aAPV3883la3bYofY5AAAAAHqqdddNLr44WXPN8rUXXpicfHLtMwEAAFSgV+xss8KKIZtCoZDddtstRx99dCZOnJjBgwcnSZYvX16XXP369YqZJaA73XJL+59vvnmy9trdkwUAAACgp9pxx+S005LDDy9f++UvJyNGJHvvXftcAAAA7ehVwzYrjosqFov529/+lr/97W85+uij65qpUCjk1VdfrWsGoAcqN2yz447dkwMAAACgpzvssOSG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SUMN2yTJvvvum5/+9Kcrd51JSgM1r32tUCwWs/HGG2fmzJkVX3/GjBmrvF9jjTWy6667dj040DONGFHffgAAAAAawxFHJP/+75XVfvzjjicHAIAerOGGbZJkypQpmT17djbffPM2u9q89vXe9743N9xwQ9785jdXdN2bb745V1111cqBnUKhkN133z2DBw+u5Y8D1NPkyfXtBwAAAKBx/PCHyZ57lq9rbU0+/OHkiSdqnwkAAOiwAfUOUCsf/OAHc/fdd+fPf/5zLr/88ixcuDDPP/98hg8fnm233Tb77rtvRo4c2aFrnnbaaVl77bVXWfvwhz9czdhATzNqVDJmTNLc3PHeMWOSDv49AwAAAEADGzAgueCCZJddkvvvb7/2wQeTSZOSK69MBg7slngAAEBlCsXXnrcE9Dpz587NuHHjVlm77rrrMnbs2DolakAtLcn48aUniirV1FQ6k9sxUgAAAAC83s03J+PGJS+9VL52ypRk2rTaZwIAgB6gt/z7d0MeIwVQVSNHJjNnJv37V1bf1FSqN2gDAAAAwOrsuGNy5pmV1U6fnpxxRm3zAAAAHWLYBqASEyaUjpQqZ+zY0o42EybUPhMAAAAAvddHPpJ8+cuV1X7mM5075hwAAKgJwzYAlSq3re9hhyXXXWdHGwAAAAAqc9JJyQc/WL7ulVeSAw9MHnmk9pkAAICyDNsAVOqxx9r/fIcduicHAAAAAI2hf//k3HOTd7yjfO2jj5YGblpba58LAABol2Gbdjz22GO56aab0tLSksfK/SM70NhefTV58sn2azbaqHuyAAAAANA41l47+e1vk6FDy9def30yZUpSLNY+FwAA8IYM27zO4sWL881vfjNbbbVVNt1004wcOTKjR4/Opptums022yxf+tKX8vTTT9c7JtCdWlqSMWPK1y1aVPssAAAAADSed74zOeecpFAoX/vLXybTp9c+EwAA8IYG1DtAtX3mM59J62u20dx+++1z/PHHV9R7++23Z999983ChQtTXM2TAQ899FBOPvnkzJgxI7/61a/y3ve+t2q5gR5q9uxk0qTKtuf9/OeTzTdPJkyofS4AAAAAGst++yXf+lZywgnla487Ltluu+Q976l1KgAAYDUaathm7ty5+fnPf57Ca6b/zzzzzIp6H3/88ey99955/PHHk2SVa7xWsVjM448/nv333z+XX355dtttt64H7yHuuOOO3HbbbXnkkUfywgsvpKmpKRtssEG22Wab7Lzzzhk4cGC9I3bKq6++mttvvz133XVXHn300bzwwgvp379/1lprrWy88cbZcsst8853vjNNTU31jkpP09JS+aBNkixZUqqfMycZMaK22QAAAABoPF/9anLTTcmFF7Zft2xZ6T7U/Pmlh78AAIBu1VDDNhdffPHKPxeLxay33no55JBDKur91Kc+lccff/wNh2xWWPF5a2trJk6cmLvuuivrrLNO50PX2cKFC3PKKafknHPOySOPPPKGdUOHDs1+++2X4447Lrvssks3JuycZcuW5Q9/+EPOOuusXHnllVlU5nifgQMHZvvtt8+73/3u7Lvvvnn3u9+dNdZYo5vS0mNNnVr5oM0Kra2lc7Pnzq1NJgAAAAAaV6GQnHVWctddyW23tV/71FPJAQeUHvwaPLg70gEAAP+nX70DVNPf/va3JKVBm0KhkH322aei3Vjmz5+f3/72t20GbYrFYgYNGpQ3velN6devX5ujpZ5++umcUMmWnj3Q8uXL873vfS9bb711Tj755HYHbZJk8eLFOffcczN69OgcccQRef7557spacddeuml2WGHHfKhD30oF110UdlBmyRZunRpFixYkJ/85Cd573vfm3PPPbcbktKjzZuXNDd3rre5ufRUEQAAAAB01FprJZdcklTykOdNNyUf/3jyunvXAABAbTXMsM3SpUtz4403rjIwM2HChIp6TznllFXeF4vFrL/++pk1a1YWL16cRx55JM8880y+/e1vp3///klKO9wUi8WcccYZee6556r2c3SH1tbW7L///vnKV76Sl19+ucP9Z599dkaPHp3777+/+uG64OWXX87HP/7xTJgwIXfccUe949DbzZhR334AAAAA+q4tt0x+85ukXwW38M8/Pzn55NpnAgAAVmqYYZt//vOfWbJkySpro0ePLtv38ssv5+KLL145pFMsFtO/f//Mnj07Bx544MrhmqFDh+YrX/lKfvKTn6yyw80rr7ySmTNnVvEnqa1ly5bloIMOyuzZs1f7+cCBA7Pjjjtmr732yujRo7PWWmuttu7uu+/Onnvumccee6yWcSv27LPPZu+9984vf/nLN6wZPHhwttxyy4wbNy7vec97suOOO2a99dbrxpT0KgsW1LcfAAAAgL5t770rH6L5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koMs8/tjfnrFGZwzc86ZM8vz+XicB8xnPp/3eY3Z7TK85vPdaKOi5i7v/DPPPFPU3ELUNfOHv759+2aLLbZ47+MFCxbk8ssvz4477pgVV1wxG264YYYOHZpNNtkk//Vf/5W+fftmm222ydlnn91sGQne8/DDyWmnffieqqpkxoz2yQMAAAAA7zr66ORrX2v7+fr6ZPTo0uUBAIBuolelA5TS4YcfnvPOOy///ve/kzQWYd5+++1897vfzXe/+9339r1bsHm/U089taD3mDt3bn7/+9+/d3tOVVVVtt5665J9DaU2c+bMJo/LSpJ1Cnme74dY3vnnnnuuqLmF+Nvf/tZk7eMf/3j69OmTJPnVr36V008/Pa+++upyZyxZsiS1tbWpra3Neeedl/333z/nnntuNtlkk7LlXp5p06YVdf7xxx8vURKamDy58ad7mrlJaRkNDY3X7k6alBR4QxYAAAAAlMSPf5xMnZpMn96287W1jWdrakqbCwAAurAuVbbp169ffvrTn2afffZ5b+3dUsz7vb9oU1VVla222iqHH354Qe9x22235Z133llmxjbbbFNk8vJZXuFkzTXXLGru8s6/9tprRc0tRHOPqho8eHCWLFmSE044IVdffXWrZ95888256667ctVVVxX870KpDB8+vF3fjwI9/HBhRZt3vXvt7tSpSXV1ebMBAAAAwLt69Uo237ztZZskmTBB2QYAAFqhSz1GKkn22muvXHrppcsUbKqqqpZ5vauhoSFrr712Jk2aVPD8CRMmLPNxnz598tnPfrb44GUye/bsZtdXXnnloub27Nkz/fv3b7L+xhtvFDW3EC+99FKTtcGDB2fUqFFtKtq8q76+Pl/4whdywQUXFBOPrmLMmMKLNu9y7S4AAAAAlfD3vxd3vq6uNDkAAKCb6HJlmyQZPXp0Jk+enPXXXz8NDQ3Lfe2yyy75y1/+knXXXbeguX/961/zu9/97r3CTlVVVT73uc81WzrpKObPn9/s+korrVT07OZmLFiwoOi5LZkzZ06TtXvuuSfXXHPNMmsDBgzIqaeemvvvvz8vvfRSFi5cmJdeein3339/TjvttAwcOLDZ+WeeeWbuvvvuckSns3joocbrc9vi3Wt3AQAAAKC9zJtX3Pm5c0uTAwAAuoku9Rip99tzzz3z9NNP57777ss999yTmTNn5q233sqgQYOyySabZK+99srQoUNbNfOKK65ociPM/vvvX8rYJbdo0aJm13v1Kv4/+t69ezdZe+edd4qe25KFCxc2WfvgbTe77bZbJkyY0ORxV2uttVbWWmutbLfddjnttNNyzDHH5K677lpmz9KlS/OFL3whTz31VFZfffXSfwF0fB+4wapN5127CwAAAEB7GTCguPPL+cFEAACgeV22bJM0Fkp23XXX7LrrriWZN27cuIwbN64ks9rLkiVLml3v2bNn0bObm7F48eKi57akpffYc889c8sttzRbBnq/NddcM7feemsOOOCA3H777ct8bvbs2bnkkkty7rnnFp23JQ8++GBR5x9//PGceOKJJUpDkuKvzXXtLgAAAADtqbo6mTatuPMAAEDBunTZhuXfYFOKUkxzM1oquJTCh73Hf/3Xf2XChAkF5+jdu3euvvrqbLrppnn55ZeX+dzYsWPzzW9+sySP3Pow22yzTVnn0wau3QUAAACgMxk1KinmB0UPPLBkUQAAoDvoUekAlFffvn2bXV/e46Vao7lHRi3v/UqpT58+y/3c17/+9VY/+mm11VbL17/+9Sbrc+bMyR/+8IfWxqMrcO0uAAAAAJ1JTU0ybFjbz194YbKcW9IBAICmlG26uAHLKQ3MLcHNG/Oauf1jYDuUDAYNGtTseo8ePXLssce2aeZxxx3X7GOxlG26qWKvzXXtLgAAAADtbezYpF+/tp29447kW98qbR4AAOjClG26uNVWW63Z9Tlz5hQ1d+HChVm4cGHB71dKy7u5ZsiQIVljjTXaNHPVVVfNJpts0mS9tra2TfPo5EaNqux5AAAAAGitoUOTSZPaXrj50Y+Sa68tbSYAAOiilG26uLXWWqvZ9VdeeaWouS+99FKr3q+U1llnnWbXt9hii6LmfvrTn26yVuw/JzqpYq7dHTas8RsbAAAAANDeRo5Mpk5t+/e2jjsueeih0mYCAIAuSNmmixs8eHD69u3bZP35558vau7MmTObXd9ggw2KmluI5b3HqquuWtTc5m7leeONN4qaSSfWlmt3+/VLxo0rTx4AAAAAKER1dTJtWmNpZsyYZPjwZJNNkgEDWj67cGGy337JrFlljwkAAJ2Zsk0XV1VVlQ033LDJ+tNPP13U3OWd32ijjYqaW4ghQ4Y0u96/f/+i5q644opN1ubPn1/UTDqx1l67269f4/7q6vLmAgAAAIBC1NQkP/1p4003TzyR/OMfyXrrtXxu1qxk//2Tt98uf0YAAOikukXZpqGhIX/84x/zox/9KPvvv38233zzfOQjH8nAgQPTs2fPol+XXXZZpb/ED7Xllls2WXv00UeLmtnc+XXXXTerr756UXMLMXQ5j+iZO3duUXPfeuutJmurrLJKUTPp5EaOTO6+u+V9Q4Y0ftNi5MjyZwIAAACAtlhzzeTWW5MVVmh571/+knzxi0lDQ/lzAQBAJ9Sr0gHKaf78+bn88sszbty4ZR6b1FDCPyBUVVWVbFa5bL311rn22muXWZsxY0bmzp2bgQMHtmnmtGnTmn2f9rDxxhtnjTXWyGuvvbbM+quvvlrU3ObOt0d5iA6ukJ/g6dHDNx4AAAAA6Pi23DKZMCE5+OCW915zTbL55snpp5c/FwAAdDJd9mabhx9+OFtssUW++c1v5t///ncaGhreeyWNJZliX53Fzjvv3GRtyZIlmTJlSpvmvfbaa3nkkUcKep9yqKqqyq677tpk/aGHHipqbnPn119//aJm0slNntz4jOqW/O1vyYgRjfsBAAAAoCM76KDkO98pbO83v5nccUd58wAAQCfUJcs2d9xxRz772c/m2WefTUNDw4cWZd5fwFmeDxZ13tVZCjdDhgzJhhtu2GT9+uuvb9O8SZMmZenSpcusVVVVZa+99mrTvLY44IADmqw9//zzeeqpp9o075///GeeffbZJus77LBDm+bRBTz8cOM3HhYuLGx/fX3j/rq68uYCAAAAgGKdc06y//4t72toSA47LPn738ufCQAAOpEuV7Z58skn84UvfCHvvPNOkv8rxLy/MNNceebDPv/+gs6HzejIjjjiiCZrN998c1588cVWzWloaMi4ceOarG+//fZZb7312pyvtUaOHJk11lijyfrPfvazNs277LLLml1vr9t66IDGjGks0LRGfX0yenR58gAAAABAqfTokfzqV42PiWrJvHnJPvsks2eXPxcAAHQSXa5sc9xxx2Xu3LlNbq/Zb7/9csstt2TWrFlZtGhRkv8r4lRVVaW2tjaLFi3Kq6++mr///e+55ppr8qUvfSmDBg1aplDTq1evfOc738nixYuzdOnSLF26NF/5ylfa94tsgy9+8Yvp06fPMmuLFi3Kt7/97VbNmTBhQmbMmNFkfcyYMQXPGDVqVLO3DT333HMFz+jdu3e++tWvNlm//PLL88QTTxQ8J0lmzJjRbEln6NCh2XLLLVs1iy7ioYeS2tq2na2tTaZPL20eAAAAACi1lVZKbr01WX31lvf+85/JIYckixeXPxcAAHQCXapsc//992fatGnL3ELTp0+f3Hjjjbnpppuyzz77ZK211krPnj2bPd+zZ8+svvrq+cQnPpHDDz88l112WV544YVcfPHFWXHFFVNVVZUlS5bk3HPPzb777pv61t56UUGDBw/Oscce22R9/PjxmTRpUkEz/vGPf+Tkk09usr7ppptmv/32KzJh65100klZc801l1lbuHBhDj744Lz88ssFzXjllVdy8MEHN/uf5TnnnFOSnHRCEyZU9jwAAAAAtIePfjT57W+TXr1a3jtlSnLqqWWPBAAAnUGXKtuMHTv2vd83NDSkqqoql19+eT7/+c+3eeYKK6yQk046KY888kg++clPvvfoqDvvvDOHHXZYKWK3m3PPPTerrrpqk/Ujjzwy11133YeeffTRR7PTTjvlrbfeavK5Sy+9ND16tP+/SiuvvHIuvvjiJut///vfM2LEiPzhD3/40PP3339/RowYkb/97W9NPrfrrrtm7733LlFSOp26usqeBwAAAID2st12ybhxhe299NLkyivLmwcAADqBLlW2uf/++1NVVfVe0WbEiBE5+uijSzJ7ww03zJQpU7LBBhu89x633XZbLr300pLMbw+rr756rrrqqibrCxcuzOGHH5499tgjt9xyS1555ZUsWbIkc+bMyf33358vfvGL2WqrrTJz5swmZ0855ZTssMMO7RG/WYceemhOPPHEJuvPPPNMdthhh2y77ba58MILc9ttt+WBBx7IbbfdlgsvvDDbbbddtt9++/zzn/9scvZjH/tYi+Ujurh584o7P3duaXIAAAAAQHv44heT0aML2/uVryR/+lN58wAAQAdXwN2QncPf//73vP766+89QipJvvKVr5T0PdZee+1ceeWV2Wmnnd4r3HznO9/JMccckwEDBpT0vcplv/32y/nnn5+zzjqryefuvvvu3H333QXPGjlyZH70ox+VMl6bjB07Nm+88UZuvPHGJp/705/+lD+14g9+G2ywQe64445mbwCiGyn2v88DB5YmBwAAAAC0l4suSv7+9+S++z5836JFyec/nzz0ULL++u2TDQAAOpguc7PNU0891WRt9913L/j8okWLCtq3ww47ZLfddktDQ0OSZN68eZk4cWLB79MRnHnmmbnooovSs2fPNs844ogjcuONN6Z3794lTNY2vXr1ym9+85ucccYZy5StWmvHHXfMQw89lE9+8pMlTEenVF1d2fMAAAAA0N56905uuCH52Mda3vvaa8m++yYLFpQ/FwAAdEBdpmwze/bsZT5ef/31s/LKKxd8vr6+vuC9Bx10UJK8V+y49dZbCz7bUZx88smZOnVqhg4d2qpza6+9diZOnJiJEyemb9++ZUrXej179swPf/jD1NbWtvqxVptvvnl++9vfZsqUKVlttdXKlJBOZdSoyp4HAAAAgEpYbbXkttsKu/n5r39Njj46Wbq0/LkAAKCD6ZJlm6qqqqy55pofuv+DRZHWlG223Xbb937f0NCQ2trags92JFtvvXWmT5+ee++9N0cffXTWWWedZvcNGjQoe++9dyZMmJBnn302RxxxRFHvO378+DQ0NDR5ffSjHy1qbpJstdVWue+++/K3v/0tP/jBD7L77rtngw02yIorrpiePXtmtdVWyyc+8YnsvPPO+cEPfpA///nPefTRR/P5z3++qFtx6GJqapJhw9p2dtiwpJUlNgAAAADoMDbZJLn22qSQ75f+9rfJeeeVPxMAAHQwvSodoFQWL168zMcDBw780P0DBgzIG2+88d7Hr7zySsHvtdZaay3z8fz58/Pyyy83We8sdt555+y8885Jkjlz5mTWrFlZsGBB+vXrl9VXXz1rr712hRO23qc+9al86lOfqnQMOrOxY5MRI5JWFPHSr18yblz5MgEAAABAe9h77+T885Mzz2x57znnNBZ0Djig/LkAAKCD6DI32wz4wLWW//nPfz50/wfLODNnziz4vfr169dk7f3Fnc5s0KBB+dSnPpXPfOYz2WyzzTpl0QZKYujQZNKkxmdVF6Jfv8b91dXlzQUAAAAA7eGb30wOO6ywvUcd1fhYKQAA6Ca6TNlmlVVWee/3DQ0Neeuttz50/1prrZWGhob3Pp4xY0bB7/X66683WVu4cGHB54FOYuTI5LjjWt630krJlVc27gcAAACArqCqKrnqqsZHrrfkP/9J9tknefXV8ucCAIAOoMuUbTbaaKNlPn7ppZc+dP9mm22WJKmqqkpDQ0OmTp1a8Hs99NBDTdYGDRpU8Hmgk5g8ufEbCi2Z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853v5Nhjj83KK6/83vqiRYty22235ayzzsrTTz+9zJlnn302hx9+eKZMmZIePTpGb+umm27K2muv3ebza6yxRgnTAAAAAABANzVvXnHn584tTQ4AgDJQtulGHnvssZx//vlN1tdff/387ne/y4Ybbtjkc717984BBxyQ3XffPQcccEDuueeeZT7/+9//Pj//+c/z5S9/uWy5W2PLLbfMRz/60UrHAAAAAACA7m3AgOLODxxYmhwAAGXQMa4joV2cdtppWbJkyTJrK664Yu66665mizYf3HfTTTdlk002afK5s88+OwsWLChpVgAAAAAAoBOrri7u/KabliYHAEAZKNt0E3V1dbn33nubrJ999tkZMmRIQTP69++fX/ziF03W33jjjVxxxRVFZwQAAAAAALqIUaOKO19Xl9TXlyQKAECpKdt0Ez//+c+brK266qr56le/2qo522yzTXbbbbcm68o2AAAAAADAe2pqkmHD2n5++vTksMOSxYtLlwkAoESUbbqBxYsXZ9KkSU3WjzjiiPTv37/V80444YQma08++WQeeeSRNuUDAAAAAAC6oLFjk3792n7+lluSL34xaWgoWSQAgFJQtukG/vznP+fNN99ssn7AAQe0ad5ee+2VFVZYocn6XXfd1aZ5AAAAAABAFzR0aDJpUnGFm6uvTr7xDYUbAKBDUbbpBu67774ma/37988222zTpnn9+vXL8OHDC3ofAAAAAACgGxs5Mpk6tbhHSv34x8kFF5QuEwBAkZRtuoHp06c3Wdtiiy3Su3fvNs/caqutmqw9/PDDbZ4HAAAAAAB0UdXVybRpyUMPJWPGJMOHJ5tumtTUJAMHFjbjjDOSX/yivDkBAArUq9IBKL+//vWvTdY222yzomY2d37OnDl5/vnn85GPfKSo2aXwzjvv5LXXXsvrr7+eHj16ZNVVV82qq67a7OOvAAAAAACAdlBT0/h6v3/9K/nsZ5OXX275/Je+lKy6anLAAeXJBwBQIGWbLm7RokWZOXNmk/WNNtqoqLnLO//MM89UtGzzve99L3/729/yyCOPZPHixU0+v9Zaa+Wzn/1sRowYkQMOOCDrrbdeBVICAAAAAABJko99LLnnnuRzn0vmzPnwvUuXJocfntxxR7Lzzu0SDwCgOco2XdzMmTOzdOnSJuvrrLNOUXOXd/65554ram6xxo8f/6Gf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vFQhHnss+exnk3/9q7y5ACiKsg0AAAAAAABAuRx8cONjovr3L2z/v/7VWLh57LHy5gKgzZRtAAAAAAAAAMpp112T++5LVl21sP0vv5xst13jo6UA6HCUbQAAAAAAAADKbeutkwceSNZZp7D9b72V7LJLcscd5c0FQKsp2wAAAAAAAAC0h099Kpk6Ndl448L219cn++6bTJxY3lwAtIqyDQAAAAAAAEB7WX/9xsdDDR1a2P4lS5KjjkouvrissQAoXK9KBwAAAAAAAADoVtZYI/n975P99kvuu6+wM6eckjz2WLLCCskjjyTz5iUDBiTV1ckxxxRe3gGgaMo2vGfGjBl54oknMmvWrMyfPz/9+vXLGmuskSFDhmTLLbdM7969Kx0RAAAAAAAAuoYBA5I77ki+8IXkppsKO3P11U3Xpk1Lxo1Lhg1Lxo5VugFoB8o23dzMmTPz05/+NNdee21mzZq13H0DBgzI3nvvnZNPPjmf+cxn2jFhaR155JG55pprmv3c0UcfnfHjx7dvIAAAAAAAALqvfv2SG25IvvSl5Mori5tVW5uMGJFMmpSMHFmafAA0q0elA1AZS5cuzQ9/+MN84hOfyIUXXvihRZskmTdvXn79619nq622ylFHHZW33nqrnZKWzl133bXcog0AAAAAAABURM+eyRVXJGeeWfys+vrkoIOSurriZwGwXMo23VB9fX323XffnHXWWXn77bdbfX7ixInZaqut8txzz5U+XJnMmzcvX/rSlyodAwAAAAAAAJqqqkrOPz/58Y+Ln1Vfn4weXfwcAJZL2aabWbJkSQ488MBMnjy52c/37t07n/70p7PTTjtlq622ykorrdTsvqeffjo77rhjXn755XLGLZkzzjgjzz//fKVjAAAAAAAAwPKdemoyfnzjbTfFqK1Npk8vSSQAmlK26Wa+973v5Y477miyPmjQoPzkJz/Ja6+9lkcffTRTpkzJn//858yePTs33nhjNt544yZnnn322Rx++OFZunRpe0Rvsz/96U/52c9+tsxajx7+1QcAAAAAAKADOvro5Oabiy/cTJhQmjwANKFx0I089thjOf/885usr7/++pk+fXpOOeWUrLzyyst8rnfv3jnggANSV1eX3XbbrcnZ3//+9/n5z39etszFqq+vz/HHH5+Ghob31vbcc8+st956FUwFAAAAAAAAH2LvvZNPfrK4GXV1pckCQBPKNt3IaaedliVLliyztuKKK+auu+7Khhtu+KFnV1xxxdx0003ZZJNNmnzu7LPPzoIFC0qatVS+973v5amnnnrv4xVXXDGXXXZZBRMBAAAAAABAAaqqijs/d25pcgDQhLJNN1FXV5d77723yfrZZ5+dIUOGFDSjf//++cUvftFk/Y033sgVV1xRdMZSe+SRR/LjH/94mbXvf//7WX/99SuUCAAAAAAAAAo0YEBx5wcOLE0OAJpQtukmmnvU06qrrpqvfvWrrZqzzTbbNPs4qY5Wtlm8eHGOO+64LF68+L216urqfO1rX6tgKgAAAAAAAChQdXVx5+fOTd73d2UAlI6yTTewePHiTJo0qcn6EUcckf79+7d63gknnNBk7cknn8wjjzzSpnzlcOGFFy6Tp2fPnvnFL36Rnj17VjAVAAAAAAAAFGjUqOLOP/FEcsAByX/+U5I4APwfZZtu4M9//nPefPPNJusHHHBAm+bttddeWWGFFZqs33XXXW2aV2pPP/10vv/97y+z9rWvfS3VxbZ/AQAAAAAAoL3U1CTDhhU347bbkp12Sl5/vTSZAEiibNMt3HfffU3W+vfvn2222aZN8/r165fhw4cX9D7traGhIccff3zq6+vfW1t//fWblG8AAAAAAACgwxs7NunXr7gZtbXJ8OHJM8+UJhMAyjbdwfTp05usbbHFFundu3ebZ2611VZN1h5++OE2zyuVyy67LA888MAyaz/72c+y4oorVigRAAAAAAAAtNHQocmkScUXbv7xj8bCzUMPlSYXQDenbNMN/PWvf22yttlmmxU1s7nzc+bMyfPPP1/U3GLMnDkzZ5555jJrhx56aPbYY48KJQIAAAAAAIAijRyZTJ1a/COlXn012X775M47SxILoDtTtuniFi1alJkzZzZZ32ijjYqau7zzz1Tw+rkTTzwx8+bNe+/jVVZZJRdffHHF8gAAAAAAAEBJVFcn06Y13kwzZkzjLTWbbtr46377JYU+5eE//0n22Se56qqyxgXo6npVOgDlNXPmzCxdurTJ+jrrrFPU3OWdf+6554qa21YTJ07MXXfdtczaBRdckDXXXLMieVpj2rRpRZ1//PHHS5QEAAAAAACADq2mpvH1QY8/nuyxR/Liiy3PWLIkOf74ZObM5Jxzkqqq0ucE6OKUbbq4V199tdn1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+da+fcT48RGffBLRr19Et24R++678d9+/SKefz6iRYvU840bF9GxY8TkySVXM1BuVct0AQAAAAAAAABQLDp23PiTzJFHRpxyysZGmlQsWBDRvXvEgAERvXoVX41AuWdlGwAAAAAAAAAqvu22ixg1KqJv39THrF0bceaZEbfcEpGfX3K1AeWKZhsAAAAAAAAAKoeaNSOefjri0UcjqlZNfdy9925cFWfVqpKrDSg3NNsAAAAAAAAAUHlkZUVceWXEW29FNGqU+rh//Suia9eIr78uudqAckGzDQAAAAAAAACVz5FHRnz8ccTee6c+Zvr0iE6dNm5HBVRamm0AAAAAAAAAqJx22y1iwoSInj1TH/PTTxFHHx3x+OMRBQUlVxtQZmm2AQAAAAAAAKDyys6O+Oc/I37729TH5OVF9OsXcemlERs2lFhpQNmk2QYAAAAAAACAyq1q1Yj77osYPDiiVq3Uxz39dMQRR0T88EPJ1QaUOZptAAAAAAAAACAi4qyzIj74IKJ589THfPhhRKdOEZ9+WmJlAWWLZhsAAAAAAAAA+EXHjhGffBLRpUvqY779NuLAAyNefrnk6gLKDM02AAAAAAAAAPCftt8+YsyYiD59Uh+zZk3E6adH3H57RH5+SVUGlAGabQAAAAAAAADgv9WsGfHssxF/+lNElUJ8tH7XXRGnnRbx888lVxuQUZptAAAAAAAAACCZrKyIa66JGD48omHD1Me9+mpEt24Rc+eWWGlA5lTLdAEAAAAAAAAAUKYdfXTERx9FnHhixJdfpjZm6tSITp0i7r134/89eXLEqlUR9etHtG8fccEFER06lGzdQInQbAMAAAAAAAAAW7PHHhsbbs4+O+LNN1Mbs3RpxGWXJcbHj494/PGILl0iHntM0w2UM7aRAgAAAAAAAIBUNGgQMWxYxA03FE++CRMiunePeP314skHlArNNgAAAAAAAACQqqpVIx54IOK55yJq1kw/37p1EaefvnGbKaBc0GwDAAAAAAAAAIV1zjkR778fscMO6edaty7iiivSzwOUCs02AAAAAAAAAFAUnTtHfPLJxn/TNWFCxMSJ6ecBSpxmGwAAAAAAAAAoqh12iHjvvYhzz00/16BB6ecASpxmGwAAAAAAAABIR61aGxtlWrZML8/kycVTD1CiNNsAAAAAAAAAQLqysiLq108vx8qVxVML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Ly9pvGrVqmnnTpYjNzc37bylberUqXHxxRdH+/btY/LkyZkuBwAAAAAAAAAow2wjVcFtbgWb4miKSZYj2Wo3pWngwIExcODATWLr16+P5cuXx4IFC+KTTz6JN954I4YPH57QiDRjxow46KCD4vXXX4/DDjus1GoeN25cWuOnTp0al156aTFVAwAAAAAAAABsiWabCq5mzZpJ45vbXqowkm0ZtbnzZVLNmjVju+22i+222y46dOgQl112WcydOzcuv/zyePvttzd57Jo1a+KEE06Izz77LHbddddSqa9r166lch4AAAAAAAAAIH22karg6tevnzS+cuXKtHOvWrUqIZadnZ123tLQqlWreOutt+Lqq69OOLZ69eq46KKLSr8oAAAAAAAAAKDM02xTwW2zzTZJ48uXL08r7/r162P9+vUpn6+seuihh+KYY45JiI8ZMyY++uijDFQEAAAAAAAAAJRlmm0quGbNmiWNL168OK2833//faHOV5Y99NBDSeMvvvhiKVcCAAAAAAAAAJR1mm0quB122CFq1qyZEP/222/Tyjt//vyk8VatWqWVNxP22muvaNu2bUL8ww8/zEA1AAAAAAAAAEBZptmmgsvKyopdd901IT5r1qy08m5u/G677ZZW3kzp2LFjQizdhiQAAAAAAAAAoOLRbFMJtGvXLiH26aefppUz2fgdd9wxmjRpklbeTGnatGlCbNmyZRmoBAAAAAAAAAAoyzTbVAIHHHBAQmzGjBmxcuXKIuccP358SucpL1avXp0Qq1GjRgYqAQAAAAAAAADKMs02lcCRRx6ZEMvLy4uRI0cWKd+SJUtiypQpKZ2nvFiwYEFCbLvttstAJQAAAAAAAABAWabZphLYe++9Y9ddd02Iv/TSS0XKN2TIkMjPz98klpWVFccff3yR8mVaTk5OjBo1KiHeunXrDFQDAAAAAAAAAJRlmm0qiXPOOSch9uqrr8bChQsLlaegoCAef/zxhPihhx4aLVq0KHJ9mfTiiy/GihUrEuKHHXZYBqoBAAAAAAAAAMoyzTaVxCWXXBI1atTYJJaTkxO33HJLofIMGjQoZsyYkRDv169fyjn69OkTWVlZCT/z5s0rVC3F4fvvv48bbrghIV6lSpXo1atXqdcDAAAAAAAAAJRtmm0qiR122CEuvPDChPjAgQNjyJAhKeWYPXt2XH311QnxfffdN371q1+lWWHq7r777hg4cGDk5uamlefrr7+OQw45JBYvXpxw7Nxzz40dd9wxrfwAAAAAAAAAQMWj2aYSufvuu6Nx48YJ8XPPPTdefPHFLY799NNP44gjjki63dKjjz4aVaqU3v+U5syZExdccEHssccecdttt8Xnn39eqPHff/993HHHHbHvvvvG7NmzE443adIkHnjggeIqFwAAAAAAAACoQKplugBKT5MmTaJ///5x8sknbxJfv359nH322fG3v/0tLr300ujatWs0adIkVq1aFZ999lm88MILMXDgwMjJyUnIec0118Rhhx1WWk9hE3Pnzo2777477r777mjRokW0b98+9t9//9hll12iYcOG0aBBg8jKyoqVK1fGjz/+GNOmTYuJEyfGBx98EPn5+Ulz1qxZM4YOHRrbbbddKT8bAAAAAAAAAKA80GxTyfzqV7+K++67L2666aaEY2+99Va89dZbKefq2bNnmVkBZv78+TF//vz417/+VeQcTZo0iaFDh8bBBx9cjJUBAAAAAAAAABWJbaQqod/+9rfx0EMPRdWqVYuc45xzzomXX345qlevXoyVZc75558fM2fO1GgDAAAAAAAAAGyRZptK6uqrr46xY8dGhw4dCjVu++23j+eeey6ee+65qFmzZglVt2W//e1v4957740DDzwwrYahhg0bxqWXXhqffPJJDBw4MLbZZptirBIAAAAAAAAAqIiyCgoKCjJdBJk1cuTIeP7552PkyJGxcOHChOMNGzaMgw46KE477bTo1atXxppsklm9enVMmjQpPv7445g+fXrMmzcvvvnmm1ixYkWsXr068vLyon79+tGgQYNo2LBh7LnnntGuXbvo0KFDdO/ePWrVqpXpp5C28ePHR7du3TaJjRs3Lrp27ZqhigAAAAAAAACg8MrL59/VMl0AmXfkkUfGkUceGRERy5cvj++++y5Wr14dtWrViiZNmsT222+f4Qo3r27dunHwwQfb/gkAAAAAAAAAKBWabdhEw4YNo2HDhpkuAwAAAAAAAACgTNJsA+Xc6tWrE2JTp07NQCUAAAAAAAAAUHTJPutO9pl4pmm2gXLu66+/TohdeumlGagEAAAAAAAAAIpXss/EM61KpgsAAAAAAAAAAIDyQrMNAAAAAAAAAACkSLMNAAAAAAAAAACkKKugoKAg00UARffdd9/F66+/vklsl112ibp162aoIsisqVOnxqWXXrpJ7Mknn4z99tsvQxUBZZFrBZAK1wogFa4VQCpcK4CtcZ0AUuFaQWWwevXq+PrrrzeJ9ezZM3bYYYcMVZRctUwXAKRnhx12iEsuuSTTZUCZtt9++0XXrl0zXQZQxrlWAKlwrQBS4VoBpMK1Atga1wkgFa4VkBm2kQIAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRlFRQUFGS6CAAAAAAAAAAAKA+sbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACmqlukCAKC8mTNnTnz++efx7bffxs8//xw1atSIxo0bx5577hkdOnSI2rVrZ7pEAGAzlixZElOmTImvvvoqVq5cGQUFBdGgQYPYbbfdol27dtG0adNMl1hoK1asiMmTJ8esWbNi+fLlkZeXF9nZ2dGqVavYf//9o3nz5pkuEcqF/Pz8mDt3bsyYMSMWL14cy5cvjw0bNkTDhg2jUaNG0aJFC/N9oMIzrwCgoluzZk188cUXMXv27Pjpp59ixYoVUb169WjUqFE0atQoWrduHXvuuWdkZWWVWk3uVUD5pNkGgLSVxKTz9ttvjzvuuKPY8xbV0qVL44knnogBAwbE119/vdnH1apVK44++ui48sor48gjjyzFCqHsuuOOO+LOO+8s8fOU9nVj5513jm+++aZYc55//vkxcODAYs0JmTR37tyYOHFiTJo06d8/y5YtS3jc6NGj49BDDy2xOnJycuL555+PJ598Mj7++OMoKChI+risrKzo3LlzXHbZZdG7d++oXr16idWUroKCgnjllVfiL3/5S7z//vuRm5u72cfut99+cdFFF0Xfvn2jbt26pVglpCZT14qcnJwYN25cjB49OkaNGhWTJk2KNWvWbHFMtWrVom3bttGrV6+48MILY5tttim2etJVUnOuzV0zobRl4lrRp0+fGDRoULHk+kXLli1j3rx5xZozXeYVVBSleZ2YN29etGrVKq0cqcjENcOcgormhx9++Pec/7333ovZs2dHfn7+Fsc0atQoDjrooLjooovi+OOPjypVin+zGPcqzCko/zTbAMBW9O/fP66//vqkf5z/t3Xr1sWwYcNi2LBhcdxxx8VTTz2lQxuASiHVG9ulbdy4cdG3b9+YOXPmVh9bUFAQH330UXz00Ufx4IMPxjPPPBPdunUrhSoLZ8aMGXHhhRfGRx99lNLjp06dGldddVX8/ve/j7/85S9xwgknlHCFsHmZvlbk5OTEO++8E0OGDIl//vOfsXz58kKNz83N/Xfdt912W1xxxRVxzz33RK1atUqmYKikMn2tqEzMKyivXCeALfnhhx/i5ZdfjiFDhsT777+/1eaa/7Zs2bJ/3+ffeeed49FHHy3W9zz3KswpqBg02wDAZuTn58fll18eTz31VJHGv/nmm9GxY8d44403on379sVcHfDfdt9990yXAJVau3btYsWKFZkuYxMDBgyISy+9NHJycgo99osvvohDDz00nnrqqejTp0/xF1dEb731VpxxxhmxatWqQo9dsGBBnHTSSXH33XfHzTffXALVwdZl+lrx0UcfxfHHH18sudatWxd//OMf4/XXX49//OMf0aZNm2LJC2T+WlFZmFdQnlWW64R7HVA0N910U/Tv379Ycs2bNy9OPPHE6NOnT/z1r3+NmjVrppXPvYpNmVNQnmm2AYDNuOKKKzbbaFOlSpXYa6+9olmzZrFu3br44osvkn57ZtGiRXH00UfHBx98EHvvvXdJlwyVVsOGDePUU0/NdBlAGfLiiy9G3759N7sM80477RStWrWKgoKCmDt3bsyfPz/hMTk5OdG3b9+oVatWnHnmmSVd8laNGTMmTj755Fi3bl3S482aNYvdd989qlWrFt9++23MmTMn4TEFBQVxyy23RPXq1eOGG24o6ZKhXKpZs2Y0a9YsmjZtGtnZ2bFs2bKYM2dOrFy5Munjv/zyyzjiiCNi9OjRse+++5ZytQBFY14B5UPfvn0zXQJUWA0bNoztttsutt1224iIWLJkScyaNWuzq+AMHDgwli5dGkOHDi3yVk7uVZhTULFotgGgRIwfPz6t8TvuuGMxVVI0zz77bPz1r39NiNesWTNuvPHGuOKKK/49CY/YuArOu+++GzfffHN88sknm4xZunRpnHrqqfHJJ5/Ye5RK6aKLLopjjjmmWHJ9/vnncemllybEe/fuXSa2b3jllVdi++23L/L4pk2bFmM1UHlNmzZtszevzjrrrLjllluidevWm8SnT58e9957b7z44oubxPPz86Nv376x3377xT777FOidW/J999/H7169Up68+roo4+Ou+++Ozp37rxJfN68efHHP/4x/vKXvyTcLPztb38b7du3jyOPPLJE64byomvXrtGzZ884+OCDo3PnzlGjRo1Njufl5cXEiRPjscceixdffDHy8vI2Of7jjz/GUUcdFdOnT4/GjRuXZulb1Ldv37jooosyXQZUKLfccktaK2Sl+2344mBeAenbfvvt077/+Z/OOOOMhA/Vt9lmmzj55JOL7RzpMKegIqhTp0786le/isMPPzwOPvjgpCtHrVixIt5444148MEH47PPPks4/tprr23xS7pb4l7FRuYUVCgFAJCmiEj4Kc++//77guzs7ITn1KhRo4JPPvlki2NzcnIK+vTpk/R3csMNN5TSM4CK64orrkj6+poyZUqp19KyZcuEOubOnVvqdUBZ0aBBg4TXxE477VRw8sknF9x7770Fb731VsHEiROTvoZHjx5dbHXk5+cXHHDAAQnnyMrKKnj66ae3Ov6pp54qyMrKShjfpUuXgvz8/GKrs7BOP/30pL+7W2+9datjX3/99YKaNWsmjN15550L1qxZUwrVw//J9LXigw8++He+pk2bFtx4440FM2fOLFSO999/v2D77bdPWuMll1ySdo1FdfvttyfUc/vtt2esHkhHpq8Vvzj//PMT8g8YMKDY8meKeQUVQVm5ThSHTz75JGmdV111VUbqMaegIujbt++///d7wAEHFDzzzDMFK1euTHl8bm5uwW233Zb0tZmVlVUwduzYQtXjXkUicwoq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VlaRc2ZlZcUuu+wSM2bM2Oq5SkKy89SrVy+aNWuWVt7ddtstZs2atdVzAVv21ltvxaJFixLiPXv2zEA1yb377rsxceLEGDduXCxbtizheK1ataJTp05x4IEHRo8ePeLQQw8t/SKhnPnHP/4RL7zwQkyYMCF+/vnnhOP16tWLLl26RPfu3eP444+Pjh07ZqDKROYVULb0798/IVazZs0499xzM1DN1plTUJkNGDAgIVa9evU4+uijtzrWvYrUmVNQHlnZBoAS8cQTT8TUqVOTNtpERHzzzTcxePDguPzyy2OnnXaKSy+9NOnepaUlJycn6TY16WwhFRHRtGnTpPu5JltuHkg0cODApE0rZfWbXgMHDoxPPvkkac0RG5uHhg4dGtdcc03ssssucdZZZ8WUKVNKuUqomL755puEWLrv45vLUVrv48me0w477JB23kw+J6goCgoK4s4770yIV61aNU488cQMVJTchx9+GG+88UbSD8UiItatWxcffPBB3H///XHYYYdF27ZtY+DAgZv9Ow6IGD58eIwcOTJpo01ExM8//xwjR46MO+64Izp16hTdu3ePf/7zn6VbZBLmFVB2LFy4MN56662E+K9+9avYZpttMlDR1plTUFlNnTo1XnnllYT4EUccEQ0aNNjqePcqUmdOQXmk2QaAjFu7dm089dRT0bZt23jqqacyUsPSpUuT/vG33XbbpZ072eobyfZ4BRI9++yzCbGddtoppW+OlHW5ubnx97//PTp37hx33323G1CQph9++CEhVhzv48lylNb7eEV8TlBRPPnkk/Hxxx8nxM8666xiuXmeKZ9//nlccMEFccQRR8SCBQsyXQ5UCGPHjo2TTz45Tj/99Fi+fHnG6jCvgLJjwIABkZeXlxAvq18sKgpzCiqC/Pz8uOyyy5K+Xq+77rqUclTE99+K+JygqDTbAFBmrFmzJi699NI477zzSn2f359++ilpPJXu9K3Jzs5OiC1dujTtvFDRvffeezF79uyE+AUXXBBVqlScaWxubm7cdttt0aNHj1i3bl2my4FyK9l7eXl/Hy/N57R27dpYu3Zt2rmhMpg5c2bSm+t16tSJe++9NwMVFb8xY8ZE27ZtkzYUAUXz8ssvR9u2bePrr7/OyPnNK6BsKCgoSLolTatWreKII47IQEUly5yC8uy+++6LcePGJcR79uyZ8uvV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166dgYpKV6avffDf1q9fHyeffHK88847CcfatGkT77zzTjRq1KjYzudeRWrMKSivNNsAUGZMmjQpaXynnXYqlfMfcMABCbEVK1bEjBkzipxz/PjxCbG2bdtGzZo1i5wTKqK8vLwYNGhQQrxNmzbRqVOnDFRUeqZMmZK0yai0rn1QUXTs2DGqVEn8EzfZe3Gqko2tWrVqdOjQocg5C2PXXXdNus1ccT+niOTzIKhMnnvuubjooosS3pOrV68eQ4YMieOPPz5DlWVGsr/NzE2g6HJzc+Pzzz9PiJfm68q8AjIj2ao2ERX/i0W/MKegLNmwYUOccsop8dZbbyUc22effWLkyJFJ3yvT4V5FaswpKK802wBQZrz22mtJ46XVvXzooYdGtWrVEuJvv/12kfLl5uYmXYryyCOPLFI+qMjeeOON+P777xPileHm0+aufZv7lgiQXMOGDaNjx44J8aK+j29ubMeOHaNhw4ZFzlkYWVlZSbesKe7n1KxZM6vuUakNHjw4+vTpE/n5+ZvEq1WrFn//+9/jxBNPzFBlmTF37tyYPn16QtzcBIrugw8+iOXLlyfES/N1ZV4BpS8nJyf+9re/JcTbt29fKd5XzSkoS3JycuL000+PN998M+HY3nvvHaNGjYqmTZsW+3ndq0iNOQXllWYbAMqEOXPmxN///veE+O67715q33aoX79+HHLIIQnxl156qUj5RowYEcuWLUuIV7ab9ZCKZ555JiFWq1atOOecczJQTelZvnx5PPbYYwnx+vXrR+fOnTNQEZRvJ5xwQkJsxIgRST/c2pply5bFiBEjEuKl/T6e7DlNnTo1vvjii0LnysvLi6FDh6Z0Dqgs/vGPf8R5552X0GhTtWrVGDx4cJxyyikZqixz7r777qTxZDfUgdTcc889SeOl/boyr4DS9dprr8XixYsT4pXhi0UR5hSUHbm5udGrV68YNmxYwrE999wzRo0aFdtuu22Jnd+9ii0zp6A802wDQMZt2LAhLr744tiwYUPCsdL+oD3Z+T7++OP4+OOPC50r2QforVq1im7duhWpNqiovv/++xg+fHhC/JRTTinWPZLLoiuvvDJ++umnhPhpp51muzkogt69e0dWVtYmsfXr18dTTz1V6FxPP/10wtwkKysrzj777LRqLKyTTz456tatmxD/85//XOhcQ4cOTbqKWEVvbITNeeWVV6J3796Rl5e3Sbxq1arx/PPPx+mnn56hyjLn7bffTrq1Z/369X1pAIromWeeSbrq7S677BJdu3Yt1VrMK6B0JdtCqnbt2qX+N0UmmFNQVuTl5cXZZ58dr776asKx3XffPUaNGhXNmjUr0Rrcq9gycwrKM802ABTZ8OHDY+nSpWnlWLt2bfTu3TtGjx6dcKx+/fpxxRVXpJyrT58+kZWVlfAzb968lHP06tUr6XKRv/nNb1LOERExZsyYpM0D/fr1K1QeqAwGDhwYubm5CfGS+qZXuteKMWPGxIIFC9KqIS8vL6666qp4/vnnE45VrVo1rr/++rTyQ2XVqlWrOO644xLiDz74YNLGts1ZunRpPPDAAwnxnj17xs4775xynjFjxiS93txxxx0p56hbt2706dMnId6/f/+YNWtWynk2bNgQt956a0K8TZs2cfDBB6ecByqK1157Lc4888yEOUiVKlVi0KBBceaZZ5ZaLeleK77//vt49913065j9OjRceqppyas8hOx8e+YevXqpX0OKC9mzpwZEydOTDvPiy++GJdddlnSYzfeeGPCB29bYl4B5cvChQuTboty+umnR4MGDUrknOYUsKn8/Pw477zzYsiQIQnHdt111xg1alTssMMOJV6HexWbZ05BeafZBoAie/LJJ2OnnXaKfv36xYQJE6KgoKBQ4997773o0KFDvPzyy0mP33fffbHNNtsUR6kpq127dvz6179OiI8ePTr+8Ic/pJTjxx9/TDrR3HbbbeOSSy5Jt0SocJ599tmE2K677hqHHnpo6ReTgn/+85+xyy67xHnnnRejRo1K2ii0JZ9++mkcfPDB8eijjyY9fvXVV8fee+9dHKVCpXTLLbckxJYuXRoXXHBB0pu9/y0/Pz8uuOCChBteWVlZcfPNNxdbnYVx/fXXJ6x2tWHDhujdu3esXbs2pRzXXHNN0hteyX5fUNG99dZbcdppp0VOTs4m8SpVqsSAAQOid+/eGaqsaBYvXhxHHnlkdOjQIZ599tlCfyFi+fLl8dvf/jaOPPLIWL16dcLxli1bxk033VRc5UK5MHPmzOjUqVMcdthh8dJLL8WqVasKNf7777+Piy66KM4+++yE1bMiIjp16hR9+/YtrnILxbwCSseAAQOSvv7L8hZS5hRUJAUFBdG3b98YPHhwwrFWrVrF6NGjY8cddyy1etyrSM6cgvKuWqYLAKB8W7NmTTz++OPx+OOPxw477BA9evSI/fffP9q0aRMtW7aM7OzsyM7OjpycnFi2bFl89dVXMXbs2Hj55ZdjypQpm83bq1evjK0Cc/XVV0f//v1j9uzZm8RvuOGGyMrKStqM84t58+bFiSeeGN98803CsQceeMA3N+C/jBkzJr766quEeN++fQv1Lc/SlpOTE88991w899xz0bhx4+jRo0e0b98+2rRpE7vuumtkZ2dHgwYNIj8/P5YtWxbffPNNjB07Nl577bV47733Npu3e/fucd9995XiM4GKp0uXLnHeeefF3/72t03iw4YNi969e0f//v2jTp06SceuWbMmLrzwwnjttdcSjp133nlxwAEHlEjNW9OyZcu48cYb46677tokPnHixDj++OPjH//4RzRp0iTp2Nzc3Lj++uvjL3/5S8KxQw45pFJuk0Pl9uGHH8bJJ5+cdAvbSy65JPbYY4+YMGFC2udp3bp1ZGdnp52nMCZPnhx9+/aNSy65JLp37x4HHnhgtGnTJlq3bh3bbLNNNGjQIGrWrBkrVqyIJUuWxMSJE2P06NHx0ksvJf1ALCKiTp06MXToUH/HUGmNGTMmxowZEzVr1ozDDz88OnfuHG3atIm99947GjVqFNnZ2VG9evVYvnx5LFq0KD766KMYOXJkvPLKKwkNfb/YdtttY8iQIVG1atVSfjYbmVdAySsoKEj6xaI999wzDjrooAxUVDjmFFQEV155ZQwcODAhXqdOnfjd734XCxcujIULF6Z1jpo1a0a7du1Seqx7FZsyp6DCKACAIjrppJMKIqLYf84444yCDRs2FLqe888/P2m+uXPnFjrXxx9/XFCjRo2k+bp06VLwwgsvFMyfP78gJyenYNWqVQUTJkwouO666wrq1q2bdMwpp5xS6BqgMujdu3fC66VatWoF3333XYmdM91rxVVXXVUi175DDjmkYMWKFSX2vKGkzZ07t0ReG7/8jB49OuVali1bVtCqVaukeXbaaaeChx56qOCLL74oWLduXcG6desKZsyYUfCnP/2poEWLFknHtGrVqmDZsmWF/p2MHj06ab7bb7+90LnWr19f0Llz56T5ttlmm4K77rqr4LPPPitYs2ZNwYYNGwrmzJlT8OSTTxbsvffeScc0atSoSHMkSFemrxW33357iZ6/KNesdK8VU6ZMKZHn0LBhw4IxY8ak/DygOGX6WvHqq6+WyHl33HHHgmnTphXpd2JeAZvK9HViS955552kOR988MHi+wUkYU4B/6dly5Yleo2IiIKWLVsWqib3KswpqHisbANAmZGdnR1/+tOfMraU8n/q1KlT9O/fP84///yEZRwnTJhQqG+7durUKQYMGFDcJUK5t3z58njllVcS4scdd1xsv/32GagoM2rUqBF33HFH3HDDDRn7ditUNA0bNoxhw4bFoYcemrD0+bfffhvXXHNNXHPNNSnl2mabbWLYsGHRsGHDEqg0dTVq1IhXXnklDjrooJg7d+4mx5YuXRq33XZb3HbbbSnlql27dgwdOrRQe7oDlUuPHj3imWeeKdWl9aGi6927dzz22GMZn1NEmFdASevfv39CrHr16nH++ednoJrMMqeA/+NexZaZU1AeVcl0AQCUXx06dNjsMoCF0bhx47jmmmti2rRpZaLR5hfnnHNODB48eLPLN6biqKOOihEjRpT6EvJQHrzwwgtJ9+8ty/uXR0Tsu+++0bx587Tz1K1bNy666KL49NNP47e//a1GGyhm++67b4wePTpatWpV5By/7OO+7777FmNlRde8efN47733Ul6mOpkmTZrE8OHD47DDDivGyoBMatSoUbRv3z6qVEn/Nt9BBx0UL730Urz11ls+FKNSa968ebRu3TrtPFWqVInjjjsu3n777Xj++ecz/oHYfzKvgJLx008/xauvvpoQP+GEE2LbbbfNQEWpM6eAkudeRXLmFJRXVrYBoMhuvfXWuOWWW2LatGkxfvz4mDJlSnz22WcxZ86cWLJkSRQUFCQdV7NmzWjbtm107tw5unfvHieddFLUqlWrlKtPTa9evaJt27Zx5ZVXxsiRI1Me16BBg7jjjjviyiuv9AE6bMY333wTPXr02CRWp06dOO644zJUUWouuuiiuOiii2L27NkxduzYf1/7Zs+eHYsWLUpYDesX1apVi3322Sc6d+4c3bp1i1NOOUUjHpSw/fbbLyZNmhQ33XRTPP3005GXl5fSuKpVq8Yll1wS9913X5n6UCwiokWLFjFu3Li455574o9//GOsW7cupXFZWVlx+umnx5/+9KdiaRgEyo6WLVvGpEmTYsWKFfHhhx/GxIkT49NPP40ZM2bE/PnzkzY3/6J58+bRuXPn6Ny5c5x44onF0lwAFUGnTp1i+vTpsWTJkvjggw9i0qRJ8emnn8YXX3wRCxcujA0bNmx27C677BKdO3eOAw44IE4++eRo2bJlKVZeOOYVUPwmTZoUhx56aEL8qquuKv1iCsmcAkqHexX/x5yC8i6rYHOfhAJAGjZs2BCLFi2Kn3/+OdauXRtVq1aNhg0bRoMGDaJBgwbF8g2J0vbRRx/FoEGDYsSIEfH1118nNBPVrVs3unbtGieffHKce+65Ub9+/QxVCmRKbm5uLFq0KFatWhVr1qyJKlWqRIMGDf59/dN8R0W2fv36mDJlSonlb926dVoNat9++230798/3njjjfjss88iNzd3k+PVqlWLtm3bxvHHHx99+/aNnXbaKd2SS9ySJUtiwIABMWzYsJg4cWKsX79+k+NVqlSJvffeO4455pjo27dv7L333hmqFP5PWb9WVERLly6Nn376KdasWRM5OTlRr169aNiwYTRs2LDMfukByvK1oqCgIJYsWRLLly+PNWvWRG5ubmRnZ//7dVWjRo1irrZ0mFdQ3pTl60RFZU4Bxc+9CnMKyjfNNgBQBD///HMsWLAgfv7556hevXo0btw4dtxxx8jKysp0aQDAVuTk5MS3334bK1asiIiNK9LttNNOUb169QxXVnR5eXkxf/78WL58eeTl5UV2dna0aNHCTW8AoNDMKwCg9LlXAeWPZhsAAAAAAAAAAEhR+dvDAwAAAAAAAAAAMkSzDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAJBg4cGFlZWZv89OnTJ6Wx8+bNSxi78847l2i9bGrMmDEJ/w229DNmzJiU8qbzvwu2bOedd075v5ffOQAAQGZptgEAAAAAAAAAgBRptgEAAADKjTvuuKNQq3VkZWVFnTp1olmzZrHnnnvGEUccEdddd10MHjw4li5dmumnAwAAAEA5VC3TBQAAAACUpLVr18batWtj8eLFMWvWrBg1alRERNSoUSNOPPHE+PWvfx1dunTJcJUAAAAAlBeabQAAAIBKacOGDfHyyy/HK6+8Ev369Yvf/e53UadOnUyXBSWmXbt28Ze//CXpsdatW5dyNfy3V199NdavX58Qf+ONN+Kee+7JQEUAAABsjmYbAAAAoFLLz8+PRx99NKZPnx5vvvlm1KhRI9MlQYnIzs62ilMZ1q5du6TxmTNnlnIlAAAAbI1mGwAAAKDcGz9+/GaPrVmzJpYtWxbTpk2LMWPGxJgxY5I+7t13342+ffvGc889V0JVVh4777xzFBQUZLoMAAAAgBKh2QYAAAAo91JZrePUU0+N22+/PWbMmBF9+/aNCRMmJDzm+eefj8svvzy6detWEmUCAAAAUAFUyXQBAAAAAKWpdevW8f7778cRRxyR9Pjtt99eyhUBAAAAUJ5otgEAAAAqnerVq8fgwYOjTp06CcfGjBkTK1euzEBVAAAAAJQHmm0AAACASmnbbbeNc889NyGem5sbY8aMKf2CAAAAACgXqmW6AAAAAIBMOfLII+PJJ59MiH/55Zdp587JyYk5c+bEzJkzY/HixbFq1arYsGFDNGzYMBo3bhzNmzePjh07Ru3atdM+19asXbs2JkyYEF9++WX89NNPUbVq1WjUqFHsscce0bFjx6hXr16J11CRFBQUxNy5c+Pzzz+PH374IVauXBnr1q2L2rVrR506daJp06ax8847x6677hqNGjXKdLmV2vTp0+Pzzz+P77//PtasWRPZ2dnRqlWr6NKlSzRt2rRQudauXRtTpkyJGTNmxE8//RQREdttt13stttu0aVLl6hatWpJPAUAAADKIM02AAAAQKXVqlWrpPEff/yx0Lny8/Pjww8/jBEjRsSYMWPi448/jpycnC2OqV69enTs2DHOPPPMuPjii4u98ebTTz+NBx54IF599dVYv3590sfUrFkzjjnmmLj++uvjwAMPLJbzzps3L+F327Jly5g3b16Jjt2cPn36xKBBgzaJDRgwIPr06VOoPGPHjo0BAwbE0KFDY/ny5SmN2XXXXaNLly5x3HHHxQknnBD169cv1DkrsmnTpsVxxx0X8+fP3yRes2bNGDhwYJx55pkJY8aMGROHHXbYJrFDDjlkk9Wofvrpp3jkkUeif//+sXDhwqTnrlq1ahx77LFx1113Rbt27bZY5/Tp0+P++++Pf/7zn/Hzzz8nfcw222wT5513Xtx+++3RoEGDLeYDAACg/LONFAAAAFBpZWdnJ43/smpFKgoKCuLqq6+OFi1axCGHHBL33ntvjB07dquNNhEbV78ZP358XHXVVdGyZct4+umnUz7vlmzYsCGuvfba6NChQ/z973/fbKNNRMT69evjX//6V3Tv3j0uvPDCWLt2bbHUUJEsWLAgTjnllOjevXv0798/5UabiIg5c+bECy+8EL179y70SioV2ciRI+PAAw9MaLRp3LhxvPPOO0kbbVIxbNiw2GuvveKuu+7abKNNREReXl68/vrr0alTp7j//vuTPiYnJyduuOGGaNOmTTz//PObbbSJiFi6dGk89NBDsddee8WECROKVDsAAADlh2YbAAAAoNJasWJF0nidOnVSzpGXlxePPPJIfPfdd2nVsmTJkrjkkkvisssuS6lRZ3N+/vnnOOaYY+Khhx6K/Pz8Qo0dMGBAHHHEEVtsKqhsZs2aFV27do1XX3017VxbanqqTAYMGBDHHXdcrFy5cpP4LrvsEuPGjYuDDjqoSHn/+te/xsknnxxLlixJeUxeXl789re/jTvuuGOT+Nq1a6Nnz57x+9//vlCvo0WLFkWPHj1i4sSJKY8BAACg/LGNFAAAAFBpzZkzJ2l82223LZb8NWrUiJYtW0aDBg0iOzs7NmzYEMuXL4/Zs2dvtvHiySefjFq1asXDDz9c6PPl5ubGqaeeGqNHj97sY5o3bx477rhj1KhRI7777ruYO3fuJs0E48ePj969e8fJJ59c6PNXNGvWrIkePXrEggULkh6vUqVKNG/ePJo3bx5169aNnJycWLlyZfzwww9pN19VVLfddlvcfffdCfHOnTvHa6+9VuTX3r/+9a+44oorEhpjdtlll2jWrFlUq1YtFi5cuNnX/J133hkHHnhgHHXUUVFQUBBnnHFGjBgxYpPH1K5dO3bZZZdo2rRprFmzJr766qukq2CtXLkyevfuHZ9//nnUrFmzSM8HAACAsk2zDQAAAFBp/feH6b9o165dkfLVrVs3jjrqqDjxxBOjU6dOsddee0W1aom3X3JycmLSpEkxaNCgePbZZ2PDhg2bHH/kkUfiiCOOiBNOOKFQ5//DH/6Q9DlVrVo1+vXrF5dcckm0bt16k2Pff/99DB48OO6+++5/r/QzbNiwQm2VVFHde++9MW/evIR4ly5d4tprr42jjz46GjRokHTsTz/9FJ999lm8/fbb8frrr8f06dNLuNqybcOGDdG3b994/vnnE4796le/isGDB0ft2rWLlHvx4sVx4YUX/rvRpnHjxnHTTTfFmWeeGc2bN9/ksXPnzo177rknnn322YQ8//u//xvTp0+P3/3ud/H666//O96lS5e4+eab44gjjtikxry8vBg1alRcc801Cf99Z82aFX/4wx/i5ptvLtJzAgAAoGyzjRQAAABQKX333XcxePDghHjt2rWje/fuhcq15557xhNPPBFLliyJV199NS644ILYd999kzbaRERUr149unTpEk888UR89tlnse+++yY85je/+U2hapg1a1bceeedCfEmTZrEuHHj4uGHH05otImI2H777ePXv/51TJ8+PTp27Pjv+Pvvv1+o81c0BQUFMXDgwIT4lVdeGWPHjo3TTz99s402ERsbPg477LC4//77Y9q0afHRRx/F2WefXYIVl13Lly+PHj16JG20+d///d8YOnRokRttIiJmzpz57xVmunXrFrNmzYpf//rXCY02ERGtWrWK/v37x+9///ukeR566KF/r7yTlZUV999/f4wfPz569uyZUGPVqlXjqKOOivHjx0enTp0S8v31r38t9FZuAAAAlA+abQAAAIBKZ8OGDXHWWWfFunXrEo716tUrsrOzU85VrVq1+OKLL+Kyyy4rUsPAXnvtFaNGjYpWrVptEp8xY0aMHDky5Ty/+c1vEp5P3bp146233orOnTtvdXzz5s1j+PDhseeee6Z8zops6tSpCVtB7bLLLvHQQw9FlSqFv6XWuXPneOGFF4qrvHJj3rx50a1btxgzZswm8SpVqsRDDz0UjzzySJF+n8m0a9cuRo4cGdtss81WH3vdddfFwQcfnDT+yxZvDzzwQNx4441bzVW/fv0YNGhQQnPdggULYtSoUSlWDwAAQHmi2QYAAACoVKZOnRoHHnhg0pVb6tSpE3fddVehc2ZlZaVVU9OmTeOhhx5KiCdbCSSZ7777Ll577bWE+G233RYdOnRIuY4mTZrEM888k/LjK7L58+cnxI499tioWrVqBqopnz755JPo0qVLfPHFF5vEa9euHS+//HJcffXVxXau6tWrF3orqi2d/9BDD43rrrsu5Vx77713HHvssQnxDz74IOUcAAAAlB/J1zIGAAAAKEcmTJiw2WNr166NZcuWxbRp0+Ldd9/d7PZIWVlZMWjQoGjRokVJlblFPXv2jCZNmsSPP/7479j48eNTGvvss89Gbm7uJrEWLVoUqZmhe/fucdppp8XLL79c6LEVyYoVKxJi9evXz0Al5dOwYcPirLPOijVr1mwSb9q0abz22mtxwAEHFOv5zjjjjNhrr70KNebYY4+N6tWrR05OTsKxW2+9tdBNdCeddFJC09vkyZMLlQMAAIDyQbMNAAAAUO517do1rfF16tSJZ599Nk477bRiqqjwqlatGu3bt48RI0b8OzZ79uz46aefonHjxlsc++abbybEzjnnnKhRo0aRaunbt2+lb7Zp2LBhQmxLTV38n0cffTSuueaayM/P3yS+xx57xPDhw2OXXXYp9nNeeOGFhR5Tq1at2H333WPGjBmbxHfaaac4/PDDC52vTZs2CbFZs2YVOg8AAABln22kAAAAgEqrWrVqceaZZ8a0adOiV69emS4ntt12203+/4KCgvj666+3OCYnJyemTJmSED/99NOLXMdRRx2VtNmkMtlnn30SYmPGjIn+/ftnoJryIT8/P6655pq46qqrEhptunfvHuPHjy+RRptq1apFly5dijR25513Toh179692HIlWyEJAACA8s/KNgAAAEClVKdOnXjmmWfirLPOKvbcP//8cwwfPjwmT54cU6dOjTlz5sSKFSti1apVsXr16igoKEg51/Lly7d4/PPPP49169ZtEqtZs2bst99+RSk9IjausrP//vvHmDFjipyjvGvZsmXss88+MX369E3iF110Ubz55ptx7bXXxoEHHpih6sqetWvXRu/evePVV19NONarV68YNGhQ1KxZs0TO3bJly6hTp06RxibbGmzvvfcutlyabQAAAComzTYAAABApbRmzZo4++yzY8SIEfHkk08Wecul/zRt2rS49957Y9iwYbFmzZpiqHLrzTbz5s1LiLVu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fHKsW7cuA5UBAABA0Wm2AQAAACq9/fffP0444YSE+AsvvBCzZs1KOqZx48axzz77JMRvvvnmQp3717/+dbz55puFGvPfqlSpEtdee21C/MMPP4zLLrss5TzPPvts/P73v0+rluJw2mmnJcTmzp271a29/tM//vGPQv+3+E9PPfVUPP/885Gbm1vkHHPmzInXXnstId6xY8ci5yyP6tatG2+88UbSLbXeeOONOO644+Lnn3/OQGUAAABQNJptAAAAACLi9ttvT4jl5eXFXXfdtdkxybafevXVV+PKK6/c6vY4ixcvjjPPPHOTbY6qVq2aesH/5corr0zaxPHMM8/EiSeeGN9///1mx65bty5uuOGGuPjii/8dq1OnTpFrSdc+++wTXbp0SYjfc889cffdd2+xAWb58uVx/fXXx5lnnvnv/wZFeS4zZsyIc889N3bZZZe46667YubMmYUaP3Xq1Dj22GMTVm3Zbrvt4ogjjih0PeVdrVq14pVXXolevXolHBs9enQcddRRsXz58tIvDAAAAIpAsw0AAABARLRv3z7pyhsvvvjiZreGuvrqq6N+/foJ8cceeyzatGkTf/7zn2P69OmxevXq2LBhQ8yfPz9GjBgR/fr1iz322CNeeumlf4/Zc88949RTTy1y/VWrVo3+/ftHrVq1Eo699tprseuuu8YZZ5wR/fv3j7fffjtGjRoVzz//fPzP//xP7LTTTvH73/8+8vPzIyIiOzs7fvOb3xS5luJw//33J2ztFbFxy6/WrVvHrbfeGv/85z/jgw8+iDfffDOefvrpOPvss2PnnXeOP/zhD1FQUBAREYcffnhav9f58+fH7bffHnvvvXfst99+0a9fvxgwYEBMnjw5FixYEKtXr468vLxYsWJFTJs2LZ5//vk47bTTol27djF79uyEfA8++GBaTVXlWfXq1WPw4MFx4YUXJhybMGFCHHbYYbFkyZIMVAYAAACFUy3TBQAAAACUFbfddlu8/vrrm8Ty8/PjrrvuihdffDHh8U2aNImHHnooLrroooRjM2fOjP/93/9N6bwNGzaMoUOHpr2FU5s2beL555+PM888M2H1l7Vr18aQIUNiyJAhW8xRpUqVeOGFF+LHH39Mq5Z0HXLIIdGvX7/485//nHBs9uzZcc8992w1x7777htDhgxJusVWUUybNi2mTZtW5PHnn39+nHfeecVSS3lVpUqVeOaZZ6JevXrx6KOPbnLs008/jYMPPjhGjhwZzZs3z1CFAAAAsHVWtgEAAAD4/zp16hTHHntsQvwf//hHTJ8+PemYvn37xi233FLkczZr1ixGjBgR++yzT5Fz/KdTTz01Xn311cjOzi702Fq1asVLL72UdIWfTHj44Yejb9++RRp70EEHxejRo6Nx48bFXFXhZWVlxTXXXBMDBgzIdCllQlZWVjzyyCNx8803JxybOXNmHHTQQTF37twMVAYAAACp0WwDAAAA8B9uv/32hFh+fn7ceeedmx1z9913x4svvhjbbLNNoc516qmnxqRJk6JTp06FrnNLevbsGZ9++mn86le/SnnMoYceGpMmTYrTTjutWGtJxy+roDz11FPRrFmzlMY0atQoHnzwwRg9enQ0adKkyOc+++yz48ILL0z5vJvTuXPn+PDDD+NPf/pT0m2xKrN77rkn7r///oT43Llz46CDDoqZM2dmoCoAAADYuqyCXzawBgAAACjjFixYEAsWLEiId+nSpVjPM2nSpMjJydkkVqVKlejcufMWx61evTqefvrp+Oc//xkTJkyI9evXb3K8atWqsddee8XRRx8dF1xwQey3336bHH/33Xfjiy++2CR25JFHxl577VXk5/LFF1/ECy+8EO+99158+eWXsXz58qhSpUo0bNgw9thjjzjwwAPjtNNOiw4dOhT5HKVh9erVMWzYsBg+fHhMmjQplixZEsuWLYuaNWtG8+bNo23btnHsscfG6aefHvXq1Su28xYUFMRnn30W48aNi3HjxsXUqVPj66+/jp9//jnp4xs0aBBt2rSJAw88MM4666xo06ZNsdVSGGPGjInDDjtsk9ghhxwSY8aMyUg9FN3AgQPjggsu2CR2/vnnx8CBAzNTEAAAAJptAAAAAErChg0bYvHixbF06dIoKCiI7OzsaNGiRdSoUSPTpVEMlixZEsuXL49Vq1ZFRER2dnY0aNAgmjZtmuHKNtJsU3FotgEAACh7qmW6AAAAAICKqEaNGtGiRYto0aJFpkuhBDRt2rTMNNYAAAAApUuzDQAAAABUAitXrowJEyYkPda6devIzs4u5Yr4T1OmTEnYei4iYs6cORmoBgAAgC3RbAMAAAAAlcCUKVOia9euSY+NHj06Dj300NItiE2cfPLJ8c0332S6DAAAAFJQJdMFAAAAAAAAAABAeaHZBgAAAAAAAAAAUqTZBgAAAAAAAAAAUpRVUFBQkOkiAAAAAAAAAACgPLCyDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAwP9r1w4EAAAAAAT5W68wQHEEAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAFPV6ibS1C939gAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "M, R = cal_MR()\n", + "\n", + "plt.figure(dpi=400)\n", + "plt.plot(R / km, M / Msun, \"ro-\", ms=2) # Rule 3\n", + "plt.xlabel(\"Radius [km]\")\n", + "plt.ylabel(\"Mass [Msun]\")\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.15" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/.doctrees/nbsphinx/UnitConventionForDeveloper_13_0.png b/.doctrees/nbsphinx/UnitConventionForDeveloper_13_0.png new file mode 100644 index 0000000..5958e6c Binary files /dev/null and b/.doctrees/nbsphinx/UnitConventionForDeveloper_13_0.png differ diff --git a/.doctrees/nbsphinx/test_Bayesian_inference_MITbag_EOS.ipynb b/.doctrees/nbsphinx/test_Bayesian_inference_MITbag_EOS.ipynb new file mode 100644 index 0000000..c733e26 --- /dev/null +++ b/.doctrees/nbsphinx/test_Bayesian_inference_MITbag_EOS.ipynb @@ -0,0 +1,281 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "edb2cf2a", + "metadata": {}, + "source": [ + "## MIT bag EOS Inference pipline" + ] + }, + { + "cell_type": "markdown", + "id": "7bc633d3", + "metadata": {}, + "source": [ + "The MIT bag model, which has commonly been applied to strange quark stars, relates pressure to energy density with the simple equation of state $p=\\frac{\\epsilon}{3}-\\frac{4B}{3}$. There is only one parameter, the \"bag constant\" $B$. This represents the vacuum energy density, which creates a \"bag\" in which quarks are confined. See [Chodos et al. (1974)](https://doi.org/10.1103/PhysRevD.9.3471).\n", + "\n", + "In this notebook, we use our Bayesian inference code to constrain the value of $B$ using observations." + ] + }, + { + "cell_type": "markdown", + "id": "acdcb64a", + "metadata": {}, + "source": [ + "### (a) Import packages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f6f20856", + "metadata": {}, + "outputs": [], + "source": [ + "import InferenceWorkflow.BayesianSampler as sampler\n", + "import InferenceWorkflow.Likelihood as likelihood\n", + "import InferenceWorkflow.prior as prior\n", + "import math\n", + "import numpy as np\n", + "import EOSgenerators.MITbag_EOS as MITbag\n", + "from TOVsolver.unit import MeV, fm, g_cm_3, dyn_cm_2, km, Msun\n", + "import TOVsolver.main as main" + ] + }, + { + "cell_type": "markdown", + "id": "edfa0f72", + "metadata": {}, + "source": [ + "### (b) Set up priors" + ] + }, + { + "cell_type": "markdown", + "id": "38136542", + "metadata": {}, + "source": [ + "Next, we need to set up the priors. We first use a parameters array to specify the variable name. This process should be consistent with what you need to call them.\n", + "\n", + "Define a prior transform function to define prior. Cube is a set of random numbers from 0 to 1. This prior setting is the standard set-up of UltraNest package, since we are using UltraNest to do nest-sampling.\n", + "\n", + "We provided two options call from prior:\"normal_Prior\" and \"flat_prior\".\n", + "\n", + "We note that since we are doing Equation of state inference from mass-radius data of neutron star measurement. The central density of the star should be also sampled. Otherwise, this will be a partially-defined prior that did not span all of the parameter space, and proved to be different from full-scope inference.\n", + "\n", + "This request will randomly generate a density from a EoS range, however, this process is not that trivial, since we need to determine the upper limit of the central density of the compact star --- different equations of state will predict different upper bounds, so here we need to use the prior-setting EoS parameters computing the mass-radius curve for this equation of state, then find out the last stable point of this equation of state (first mass points that give the direvative to be negative). We can find that index with the len() function, then reset this max_d to be upper limit of this density range.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2b87dd3b", + "metadata": {}, + "outputs": [], + "source": [ + "parameters = ['B','d1']\n", + "\n", + "def prior_transform(cube):\n", + " params = cube.copy()\n", + " params[0] = prior.flat_prior(20,100,cube[0])\n", + "\n", + " B = params[0]\n", + " \n", + " epsilon,p = MITbag.MITbag_compute_EOS(B)\n", + "\n", + " RFSU2R = [] \n", + " MFSU2R = []\n", + " density = np.logspace(14.3, 15.6, 50) \n", + " if all(x 20 and MR[0][i] - MR[0][i-1]< 0: \n", + " break\n", + " if len(MFSU2R)==False:\n", + " params[1] = 0\n", + " #params[3] = 0\n", + " #this line for showing how to add one more observation\n", + " else:\n", + " max_index = len(MFSU2R)\n", + " max_d = np.log10(density[max_index-1])\n", + " params[1] = 14.3 + (max_d - 14.3) * cube[1]\n", + " #params[3] = 14.3 + (max_d - 14.3) * cube[3]\n", + " #this line for showing how to add one more observation\n", + " return params" + ] + }, + { + "cell_type": "markdown", + "id": "6f8e4822", + "metadata": {}, + "source": [ + "In the upper part, we define a flat (uniform) prior for the parameters in the strangeon matter equation of state, due to the lack of constraints from terrestrial experiments.\n", + "\n", + "Note that the above code is an example of Bayesian analysis for a given mass and radius observation measurement.\n", + "For example, if you use the NICER data for the measurements of J0030, then you should define another parameter, except the strangeon EOS parameters, e.g. \"d1\" for the centre density of this measurement, in the meantime add \"params[2]\" to this code.\n", + "\n", + "If you further consider the adjoint analysis with J0030+J0740, then you should define the other two parameters, e.g. \"d1\" and \"d2\" for the centre density of these two measurements, in the meantime add \"params[3]\" to the above code." + ] + }, + { + "cell_type": "markdown", + "id": "53ab6d43", + "metadata": {}, + "source": [ + "### (c) Set up likehood" + ] + }, + { + "cell_type": "markdown", + "id": "3bfd12ff", + "metadata": {}, + "source": [ + "We need to set up a likelihood, Using standard definition way of UltraNest, that is below.\n", + "\n", + "Here the likelihood is generated from a simulated mass radius measurement, which is 𝑀=1.4𝑀⊙\n", + " and 𝑅=13\n", + " km, With a 5% Mass radius measurement uncertainty, \n", + " \n", + " so here\n", + " \n", + " likelihood.MRlikihood_Gaussian\n", + " \n", + "function will be use for our likelihood, please check [likelihood.MRlikihood_Gaussian](https://github.com/ChunHuangPhy/CompactOject/blob/main/InferenceWorkflow/Likelihood.py) to see the original code, and more choice of likelihood. eg:\n", + "\n", + "1.If we have some real mass-radius measurements, say PSR J0030 or PSR J0740, come from NICER, a KDE kernel could be trained to feed into\n", + "\n", + "likelihood.MRlikihood_kernel(eps_total,pres_total,x,d1)\n", + "\n", + "set the KDE kernel as a input for this function\n", + "\n", + "2.If we gain measurement from radio-timing, say only measure the neutron star mass, then\n", + "\n", + "likelihood.Masslikihood_Gaussian(eps_total,pres_total,x,d1)\n", + "\n", + "Which will give the likelihood from single mass measurement, x is the parameters of that measurement, you should specify where this measurement mass is located and what is the sigma width of this mass measurement.\n", + "\n", + "3.If we have nuclear measurements, and want to constrain this RMF model by nuclear properties like K(The Incompressibility of nuclear matter),J ( the symmetry energy at saturation density) and L( the slope of symmetry energy at saturation density). You can choose:\n", + "\n", + "likelihood.Kliklihood(theta,K_low,K_up)\n", + "likelihood.Jliklihood(theta,K_low,K_up)\n", + "likelihood.Lliklihood(theta,K_low,K_up)\n", + "\n", + "We are defaulting a hard-cut flat constrain, so if you don't like this default hard cut, also could define the likelihood by youself with similiar style.\n", + "\n", + "4.If we have a Tidal measurements from Gravitational wave detector, we can use it to do constraint:\n", + "\n", + "likelihood.TidalLikihood_kernel(eps_total,pres_total,x,d1)\n", + "\n", + "Where x is sampled distribution from real measurements, the standard is\n", + "\n", + "kernel, chrip = x,\n", + "\n", + "where the kernel is a whole set sampling from GW event, that is [chrip mass, M2/M1, tidal of M1, tidal of M2] four quantities. Chrip is the single smapling that comes only the chrip mass sampling." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0d3a8359", + "metadata": {}, + "outputs": [], + "source": [ + "import scipy.stats as stats\n", + "\n", + "\n", + "def likelihood_transform(theta):\n", + " # This is a demonstration code for only introduce one constraint from one mass-radius observation.\n", + " # Could be very easy to implement more constraint from nuclear quantity, since that do not need to\n", + " # sample more central density of real neutron star. If user want to expand to two mass radius measurement \n", + " # the code could be:\n", + " \n", + " B, d1 = theta\n", + " \n", + " ####################################################################################################################\n", + " ############ This is the block to compute out all the EoS you need based on your parameters#########################\n", + "\n", + " epsilon,p = MITbag.MITbag_compute_EOS(B)\n", + "\n", + " ####################################################################################################################\n", + " \n", + " probMRgaussian = likelihood.MRlikihood_Gaussian(epsilon,p,(1.4,13,0.07,0.65),d1)\n", + " \n", + " prob = probMRgaussian\n", + " \n", + " return prob" + ] + }, + { + "cell_type": "markdown", + "id": "4a3802c4", + "metadata": {}, + "source": [ + "### (d) Set up sampler" + ] + }, + { + "cell_type": "markdown", + "id": "76bce7fb", + "metadata": {}, + "source": [ + "Here next, we define sampler, there is two different sampler we provided for. \n", + "\n", + "Considering where you need resume file:\n", + "\n", + "sampler.UltranestSampler and sampler.UltranestSamplerResume\n", + "\n", + "Here since it is our first run, so we only use first one. Some of the sampler parameters is requested, first is step number, our choice for UltraNest sampler is slicesampler, which could easily be sliced up your total computation load, and parallelize, speed up sampling. So step as suggested by documentation of UltraNest, we use 2*len(parameters).\n", + "\n", + "live_point we set 2000, it will influence the sampling precision, We suggest for 7 dimension space, maybe 5000 is a better choice, however, since my computer only have limited resources, we set 2000.\n", + "\n", + "max_calls set 10000, it is how many iteration after it will stop, we suggest to set this number significantly higher, otherwise maybe will broken before the inference converging to a definite value. That result will be un-phyiscal." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f05849a0", + "metadata": {}, + "outputs": [], + "source": [ + "step = 2 * len(parameters)\n", + "live_point = 400\n", + "\n", + "max_calls = 60000\n", + "samples = sampler.UltranestSampler(parameters,likelihood_transform,prior_transform,step,live_point,max_calls)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/.doctrees/nbsphinx/test_Bayesian_inference_Strangeon_EOS.ipynb b/.doctrees/nbsphinx/test_Bayesian_inference_Strangeon_EOS.ipynb new file mode 100644 index 0000000..3d57d0d --- /dev/null +++ b/.doctrees/nbsphinx/test_Bayesian_inference_Strangeon_EOS.ipynb @@ -0,0 +1,408 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "edb2cf2a", + "metadata": {}, + "source": [ + "## Strangeon EOS inference pipeline" + ] + }, + { + "cell_type": "markdown", + "id": "7bc633d3", + "metadata": {}, + "source": [ + "This is an example notebook about how to use our tools to analysis a observation constraint on strangeon star equation of state.\n", + "\n", + "Here in this notebook, we are using a strangeon matter EOS.\n", + "\n", + "The following is the package that we need." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "f6f20856", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/a9/CompactOject/InferenceWorkflow/Likelihood.py:314: SyntaxWarning: invalid escape sequence '\\('\n", + " \"\"\"\n" + ] + } + ], + "source": [ + "import InferenceWorkflow.BayesianSampler as sampler\n", + "import InferenceWorkflow.Likelihood as likelihood\n", + "import InferenceWorkflow.prior as prior\n", + "import math\n", + "import numpy as np\n", + "import EOSgenerators.Strangeon_EOS as Strangeon\n", + "from TOVsolver.constant import oneoverfm_MeV, m_rho, m_w,G,c\n", + "import TOVsolver.main as main" + ] + }, + { + "cell_type": "markdown", + "id": "2b494a39", + "metadata": {}, + "source": [ + "The following is the strangeon matter EOS function.\n", + "\n", + "We note that because the parameter Nq is an integer in the strangeon matter EOS.\n", + "\n", + "In the following, we use a possible value of this parameter, Nq=18, as an example to carry out the Bayesian analysis." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c9d879d4", + "metadata": {}, + "outputs": [], + "source": [ + "Nq=18\n" + ] + }, + { + "cell_type": "markdown", + "id": "edfa0f72", + "metadata": {}, + "source": [ + "### Set up prior" + ] + }, + { + "cell_type": "markdown", + "id": "38136542", + "metadata": {}, + "source": [ + "Next step, we need to set up the prior, first use parameters array to specify the variable name, this process should consistent with what you need to call them.\n", + "\n", + "Define a prior transform function to define prior. Cube are set of random number from 0 to 1. This prior setting is standard set-up of UltraNest package, since we are using UltraNest to do nest-sampling.\n", + "\n", + " We provided two options call from prior:\"normal_Prior\" and \"flat_prior\".\n", + " \n", + "Then the Parameters prior should all set.\n", + "\n", + "We note that since we are doing Equation of state Inference from mass-radius data of neutron star measurement. The center density of the star should be also sampled. Otherwise will be a partially-defined prior, did not span all parameters space, and proved to be different with full-scope inference.\n", + "\n", + "This request as randomly generate a density from a EoS range, however, this process is not that trivial, since we need to determine the upper limit of the central density of compact star --- different equation of state will predict different upper bound, so here we need to use the prior-setting EoS parameters computing the EOS by\n", + "\n", + "strangeon.compute_EOS\n", + "Compute out EOS, put into\n", + "\n", + "main.OutputMR\n", + "\n", + "find out Mass Radius of this equation of state, then find out the last stable point of this equation of state.(first mass points that give the direvative to be negative)\n", + "\n", + "and find out that index by len() function, then reset this max_d to be upper limit of this density range.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2b87dd3b", + "metadata": {}, + "outputs": [], + "source": [ + "parameters = [ 'epsilon', 'ns', 'd1']\n", + "# for two or more MR measurements, define \n", + "# parameters = ['epsilon', 'ns', 'd1', 'd2'] \n", + "\n", + "def prior_transform(cube):\n", + " params = cube.copy()\n", + " params[0] = prior.flat_prior(10, 170,cube[0]) #epsilon=10-170MeV\n", + " params[1] = prior.flat_prior(0.17,0.36,cube[1]) #ns=0.17-0.36fm^-3 \n", + " \n", + " epsilon = params[0]\n", + " ns = params[1]\n", + "\n", + " theta1 = np.array([Nq, epsilon, ns])\n", + " n_min = 3 * theta1[2] / theta1[0] \n", + " n_max = 0.16 * 8 * 3 / theta1[0] \n", + " n_values = np.linspace(n_min, n_max, 2000) \n", + " energy_density, pressure = Strangeon.compute_EOS(n_values, theta1)\n", + " \n", + " \n", + "\n", + " eps_total=energy_density\n", + " \n", + " pres_total=pressure\n", + " \n", + " RFSU2R = [] \n", + " MFSU2R = []\n", + " density = np.logspace(14.3, 15.6, 50) \n", + " if all(x 20 and MR[0][i] - MR[0][i-1]< 0: \n", + " break\n", + " if len(MFSU2R)==False:\n", + " params[2] = 0\n", + " #params[3] = 0\n", + " #this line for showing how to add one more observation\n", + " else:\n", + " max_index = len(MFSU2R)\n", + " max_d = np.log10(density[max_index-1])\n", + " params[2] = 14.3 + (max_d - 14.3) * cube[2]\n", + " #params[3] = 14.3 + (max_d - 14.3) * cube[3]\n", + " #this line for showing how to add one more observation\n", + " return params" + ] + }, + { + "cell_type": "markdown", + "id": "6f8e4822", + "metadata": {}, + "source": [ + "In the upper part, we define a flat (uniform) prior for the parameters in the strangeon matter equation of state, due to the lack of constraints from terrestrial experiments.\n", + "\n", + "Note that the above code is an example of Bayesian analysis for a given mass and radius observation measurement.\n", + "For example, if you use the NICER data for the measurements of J0030, then you should define another parameter, except the strangeon EOS parameters, e.g. \"d1\" for the centre density of this measurement, in the meantime add \"params[2]\" to this code.\n", + "\n", + "If you further consider the adjoint analysis with J0030+J0740, then you should define the other two parameters, e.g. \"d1\" and \"d2\" for the centre density of these two measurements, in the meantime add \"params[3]\" to the above code." + ] + }, + { + "cell_type": "markdown", + "id": "53ab6d43", + "metadata": {}, + "source": [ + "### Set up likehood" + ] + }, + { + "cell_type": "markdown", + "id": "3bfd12ff", + "metadata": {}, + "source": [ + "We need to set up a likelihood, Using standard definition way of UltraNest, that is below.\n", + "\n", + "Here the likelihood is generated from a simulated mass radius measurement, which is 𝑀=1.4𝑀⊙\n", + " and 𝑅=13\n", + " km, With a 5% Mass radius measurement uncertainty, \n", + " \n", + " so here\n", + " \n", + " likelihood.MRlikihood_Gaussian\n", + " \n", + "function will be use for our likelihood, please check [likelihood.MRlikihood_Gaussian](https://github.com/ChunHuangPhy/CompactOject/blob/main/InferenceWorkflow/Likelihood.py) to see the original code, and more choice of likelihood. eg:\n", + "\n", + "1.If we have some real mass-radius measurements, say PSR J0030 or PSR J0740, come from NICER, a KDE kernel could be trained to feed into\n", + "\n", + "likelihood.MRlikihood_kernel(eps_total,pres_total,x,d1)\n", + "\n", + "set the KDE kernel as a input for this function\n", + "\n", + "2.If we gain measurement from radio-timing, say only measure the neutron star mass, then\n", + "\n", + "likelihood.Masslikihood_Gaussian(eps_total,pres_total,x,d1)\n", + "\n", + "Which will give the likelihood from single mass measurement, x is the parameters of that measurement, you should specify where this measurement mass is located and what is the sigma width of this mass measurement.\n", + "\n", + "3.If we have nuclear measurements, and want to constrain this RMF model by nuclear properties like K(The Incompressibility of nuclear matter),J ( the symmetry energy at saturation density) and L( the slope of symmetry energy at saturation density). You can choose:\n", + "\n", + "likelihood.Kliklihood(theta,K_low,K_up)\n", + "likelihood.Jliklihood(theta,K_low,K_up)\n", + "likelihood.Lliklihood(theta,K_low,K_up)\n", + "\n", + "We are defaulting a hard-cut flat constrain, so if you don't like this default hard cut, also could define the likelihood by youself with similiar style.\n", + "\n", + "4.If we have a Tidal measurements from Gravitational wave detector, we can use it to do constraint:\n", + "\n", + "likelihood.TidalLikihood_kernel(eps_total,pres_total,x,d1)\n", + "\n", + "Where x is sampled distribution from real measurements, the standard is\n", + "\n", + "kernel, chrip = x,\n", + "\n", + "where the kernel is a whole set sampling from GW event, that is [chrip mass, M2/M1, tidal of M1, tidal of M2] four quantities. Chrip is the single smapling that comes only the chrip mass sampling." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0d3a8359", + "metadata": {}, + "outputs": [], + "source": [ + "import scipy.stats as stats\n", + "\n", + "\n", + "def likelihood_transform(theta):\n", + " # This is a demonstration code for only introduce one constraint from one mass-radius observation.\n", + " # Could be very easy to implement more constraint from nuclear quantity, since that do not need to\n", + " # sample more central density of real neutron star. If user want to expand to two mass radius measurement \n", + " # the code could be:\n", + " \n", + " epsilon, ns, d1 = theta \n", + " # comment this line if you need two measuremnts.\n", + " #epsilon, ns, d1, d2 = theta\n", + " \n", + " ####################################################################################################################\n", + " ############ This is the block to compute out all the EoS you need based on your parameters#########################\n", + "\n", + "\n", + " theta1 = np.array([Nq, epsilon, ns])\n", + " n_min = 3 * theta1[2] / theta1[0] \n", + " n_max = 0.16 * 8 * 3 / theta1[0] \n", + " n_values = np.linspace(n_min, n_max, 2000) \n", + " energy_density, pressure = Strangeon.compute_EOS(n_values, theta1)\n", + "\n", + " ####################################################################################################################\n", + " \n", + " probMRgaussian = likelihood.MRlikihood_Gaussian(energy_density,pressure,(1.4,13,0.07,0.65),d1)\n", + " \n", + " prob = probMRgaussian\n", + " \n", + " return prob" + ] + }, + { + "cell_type": "markdown", + "id": "96d26ce7", + "metadata": {}, + "source": [ + "In the following, we will show how to modify the likehood_transform function when considering more observations.\n", + "\n", + "def likelihood_transform(theta):\n", + "\n", + " Nq, epsilon, ns, d1 = theta \n", + " theta = np.array([epsilon, ns]) \n", + " n_min = 3 * theta[1] / Nq #n_min=3*ns/Nq\n", + " n_max = 0.16 * 8 * 3 / Nq #n_max=0.16*8*3/Nq\n", + " n_values = np.linspace(n_min, n_max, 100) # 100 points between n_min and n_max\n", + " energy_density_total, pressure_total = Strangeon_compute_EOS(n_values, theta)\n", + " \n", + " #1. This line is to compute MR likelihood from a Simulated MR measurement:\n", + " \n", + " probMRgaussian = MRlikihood_Gaussian(energy_density_total,pressure_total,(1.4,13,0.07,0.65),d1)\n", + " \n", + " #probMRgaussian = likelihood.MRlikihood_Gaussian(energy_density_total,pressure_total,(2.08,13,0.08,0.65),d2)\n", + " \n", + " #2. This is a block that constrain from given real MR measurement, say J0030:\n", + " \n", + " #J0030 = numpy.loadtxt('data/PST_equal_sampled_MR.txt', delimiter=' ')\n", + " #J30R_list, J30M_list = zip(*J0030)\n", + " #J30R_list = numpy.array(J30R_list).T \n", + " #J30M_list = numpy.array(J30M_list).T\n", + " #Rmin = J30R_list.min()\n", + " #Rmax = J30R_list.max()\n", + " #Mmin = J30M_list.min()\n", + " #Mmax = J30M_list.max()\n", + " #X3, Y3 = numpy.mgrid[Rmin:Rmax:500j, Mmin:Mmax:100j]\n", + " #positions = numpy.vstack([X3.ravel(), Y3.ravel()])\n", + " #values = numpy.vstack([J30R_list, J30M_list])\n", + " #kernel3 = stats.gaussian_kde(values)\n", + " #probMRJ0030 = likelihood.MRlikelihhood_kernel(eps_total,pres_total,kernel3,d1)\n", + " \n", + " #3. This is to compute the constraint from experiment of nuclearmatter\n", + " # 250" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, 1, figsize=(9, 6))\n", + "ax.plot(MR[1] / km, MR[0] / Msun, lw=2)\n", + "ax.set_ylabel(r\"M [$M_{\\odot}$]\", fontsize=16)\n", + "ax.set_xlabel(\"R [km]\", fontsize=16)\n", + "ax.set_xlim(8.0, 20.0)\n", + "ax.set_ylim(0, 3)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Illustrating the power of Numba accelerated EoS Generation\n", + "\n", + "We shall now run the same code but with the Numba accelerated version, comparing the times for EoS Generation.\n", + "\n", + "Keep in mind all previous definitions are still valid, all we need to change is a single line of code.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import EOSgenerators.fastRMF_EoS as FastRMF\n", + "import time\n", + "\n", + "Tolos_crust_out = np.loadtxt(\"Tolos_crust_out.txt\")\n", + "eps_crust_T_out = Tolos_crust_out[:, 3] * g_cm_3\n", + "pres_crust_T_out = Tolos_crust_out[:, 4] * dyn_cm_2\n", + "eps_com, pres_com = crust.PolyInterpolate(eps_crust_T_out, pres_crust_T_out)\n", + "\n", + "m_sig = 495.0 / 197.33\n", + "m_w = 3.96544\n", + "m_rho = 3.86662\n", + "\n", + "g_sigma = math.sqrt(107.5751)\n", + "g_omega = math.sqrt(182.3949)\n", + "g_rho = math.sqrt(206.4260)\n", + "\n", + "kappa = 3.09114168 / 197.33\n", + "lambda_0 = -0.00168015405\n", + "zeta = 0.024\n", + "Lambda_w = 0.045\n", + "theta = np.array(\n", + " [m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa, lambda_0, zeta, Lambda_w]\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Comparing the time it takes to generate the EoS\n", + "\n", + "The reason why we test the time it takes to generate the EoS here is due to the fact that Numba is compiling the code, and as such the first run will take considerably longer to complete, but all other runs will be greatly faster.\n", + "\n", + "Warning: Do not rerun this cell, as the compilation time will be gone.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--------------------------------------------------------------------------------------\n", + "| |\n", + "| Time Comparion Table |\n", + "| |\n", + "| Time for first run with RMF-Normal = 550 ms |\n", + "| Time for first run with RMF-Fast = 1027 ms |\n", + "| |\n", + "| Time for 20 runs with RMF-Normal = 10099 ms |\n", + "| Time for 20 runs with RMF-Fast = 287 ms |\n", + "| |\n", + "| Time for all runs with RMF-Normal = 10649 ms |\n", + "| Time for all runs with RMF-Fast = 1315 ms (Has Compilation) |\n", + "| |\n", + "| Time for 1 run with RMF-Normal = 505 ms |\n", + "| Time for 1 run with RMF-Fast = 14 ms |\n", + "| |\n", + "| |\n", + "| Total Speed Up = 35.15 x |\n", + "--------------------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "### Normal RMF ####\n", + "\n", + "first_run_time_normal = time.time()\n", + "eps_fast, pres_fast = RMF.compute_EOS(eps_com, pres_com, theta)\n", + "first_run_time_normal = time.time() - first_run_time_normal\n", + "\n", + "time_for_20_runs_normal = time.time()\n", + "for _ in range(20):\n", + " eps, pres = RMF.compute_EOS(eps_com, pres_com, theta)\n", + "time_for_20_runs_normal = time.time() - time_for_20_runs_normal\n", + "\n", + "\n", + "##### Fast RMF #####\n", + "\n", + "first_run_time = time.time()\n", + "eps_fast, pres_fast = FastRMF.compute_EOS(eps_com, pres_com, theta)\n", + "first_run_time = time.time() - first_run_time\n", + "\n", + "time_for_20_runs = time.time()\n", + "for _ in range(20):\n", + " eps_fast, pres_fast = FastRMF.compute_EOS(eps_com, pres_com, theta)\n", + "time_for_20_runs = time.time() - time_for_20_runs\n", + "\n", + "\n", + "print(f\"--------------------------------------------------------------------------------------\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*32 + \"Time Comparion Table\" + \" \"*32 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for first run with RMF-Normal = {first_run_time_normal*1000:6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for first run with RMF-Fast = {first_run_time*1000 :6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for 20 runs with RMF-Normal = {time_for_20_runs_normal*1000:6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for 20 runs with RMF-Fast = {time_for_20_runs*1000 :6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for all runs with RMF-Normal = {(first_run_time_normal + time_for_20_runs_normal)*1000:6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for all runs with RMF-Fast = {(first_run_time + time_for_20_runs )*1000:6.0f} ms (Has Compilation) \" + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for 1 run with RMF-Normal = {time_for_20_runs_normal*1000/20:6.0f} ms \" + \" \"*17 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for 1 run with RMF-Fast = {time_for_20_runs *1000/20:6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*30 + f\"Total Speed Up = {time_for_20_runs_normal/time_for_20_runs:.2f} x\" + \" \"*30 + \"|\" )\n", + "print(f\"--------------------------------------------------------------------------------------\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Ih3N5XKZAS8yMrK7hyN9mL+/PwDFxcXExMRc8AaS59IrN14REREREeloLc/gBQQEdPNIpD9o+TnrjGc/FfJERERERFrREk3pCp35c6aQJyIiIiIi0oco5ImIiIiISK80f/585syZ093D6HEU8kREREREern58+djsVhO+Tp8+HC7rpuRkYHFYjnrkRLvvPMONpuNo0ePnvb14cOH8/3vf79d4ziT//mf/2HlypWdcu3eTCFPRERERKQPuPbaaykoKGjzlZKS0un3/frXv05kZORpz7HeuHEjBw4cYMGCBRd83fPZkCQ0NJSwsLALvnZfp5AnIiIiItIHOBwOYmNj23zZbDZ+85vfMGbMGAIDA0lISOA73/kOJ0+eNPvl5uZy0003ER4eTmBgIKNGjeK9994jJyeHmTNnAhAeHo7FYmH+/Pmn3NfX15e77rqLlStX8tUjuF9//XUmTpzIuHHjqKys5IEHHiAmJoaQkBC+9rWvsXPnTrPtkiVLGD9+PK+//jqpqak4HA48Hg9vv/02Y8aMwd/fn8jISK666ipqamqAU5drNjQ08P3vf5+YmBj8/PyYNm0an332mfl6y8zkhx9+yKRJkwgICGDKlCkcOHCgI/4V9BgKeSIiIiIifZjVauX5559nz549rFq1io8++ogf//jH5uvf/e53aWhoYMOGDezevZtnnnmGoKAgEhISeOeddwA4cOAABQUF/M///M9p77FgwQKOHDnC+vXrzVpNTQ1r1qxhwYIFeDwebrjhBgoLC3nvvffYtm0bl1xyCbNmzaKsrMzsc/jwYdasWcM777zDjh07KCws5I477uDee+9l3759ZGRkcPPNN58SJlv8+Mc/5p133mHVqlVs376dwYMHM3v27Db3APjpT3/Kc889x+eff46Pjw/33nvvRf/59kQ6DF1ERERE5CxueiGTkuqGLr9vdLCD//vetPNu/+677xIUFGR+f9111/GXv/yFhx56yKylpKTw1FNPsWjRIn7/+98DcPToUW655RbGjBkDQGpqqtk+IiICgJiYmLMuixw5ciSXXXYZK1asYMaMGQCsWbMGl8vFHXfcwccff8zu3bspLi7G4XAA8F//9V/87W9/4+233+aBBx4AoLGxkTfeeIPo6GgAtm/fjtPp5OabbyYpKQnAHOdX1dTU8NJLL7Fy5Uquu+46AF599VU++OADXnvtNR555BGz7S9+8QvS09MB+M///E9uuOEG6uvr8fPzO8ufcO+hkCciIiIichYl1Q0UVtV39zDOaebMmbz00kvm94GBgQB8/PHH/PKXv2Tv3r1UVVXhdDqpr6+npqaGwMBAvv/977No0SLWrVvHVVddxS233MLYsWMv+P4LFizgoYce4sUXXyQ4OJjXX3+dm2++mbCwMLZt28bJkyeJjIxs06euro6srCzz+6SkJDPgAYwbN45Zs2YxZswYZs+ezTXXXMOtt95KeHj4KffPysqiqamJqVOnmjVfX18mT57Mvn372rRt/f7i4uIAKC4uJjEx8YLfd0+kkCciIiIichbRwY5ecd/AwEAGDx7cppabm8v111/PwoULeeqpp4iIiCAzM5MFCxaYG5vcd999zJ49m3/84x+sW7eOpUuX8txzz/G9733vgu4/d+5cHn74Yd566y1mzJhBZmYmP//5zwFwu93ExcWRkZFxSr/WM4QtwbSFzWbjgw8+YNOmTaxbt44XXniBn/70p2zduvWUTWValnB+9ZBxj8dzSs3X19f855bX3G73Bb3fnkwhT0RERETkLC5kyWRP8/nnn+N0OnnuueewWo3tONasWXNKu4SEBBYuXMjChQt59NFHefXVV/ne976H3W4HwOVynfNewcHBfOtb32LFihUcOXKE1NRUc+nmJZdcQmFhIT4+PiQnJ1/Qe7BYLEydOpWpU6fys5/9jKSkJP7617/ygx/8oE27wYMHY7fbyczM5M477wSMHTo///zzNktW+wOFPBERERGRPiotLQ2n08kLL7zATTfdxMaNG1m2bFmbNg899BDXXXcdQ4cOpby8nI8++ogRI0YAxvJJi8XCu+++y/XXX4+/v3+b5/6+asGCBUyfPp29e/fyox/9yJwlu+qqq7jiiiuYM2cOzzzzDMOGDSM/P5/33nuPOXPmMGnSpNNeb+vWrXz44Ydcc801xMTEsHXrVkpKSszxtRYYGMiiRYt45JFHiIiIIDExkWeffZba2tqLOsKhN9PumiIiIiIifdT48eP5zW9+wzPPPMPo0aP54x//yNKlS9u0cblcfPe732XEiBFce+21DBs2zNyUZeDAgTz55JP853/+JwMGDOD/+//+v7Peb9q0aQwbNoyqqiq+/e1vm3WLxcJ7773HlVdeyb333svQoUOZO3cuOTk5DBgw4IzXCwkJYcOGDVx//fUMHTqUxx9/nOeee87cWOWrfvWrX3HLLbdw1113cckll3D48GH+9a9/nfYZvr7M4jnT/qPS4aqqqggNDaWyspKQkJDuHo6IiIiItFJfX092djYpKSl9ZpdF6bnO9vPW3tygmTwREREREZE+RCFPRERERESkD1HIExERERER6UMU8kRERERERPoQhTwREREREZE+RCFPRERERESkD1HIExERERER6UMU8kRERERERPoQhTwREREREZE+RCFPRERERES6RUZGBhaLhYqKiu4eShs9dVznSyFPRERERKQ1jxsaqnvWl9t91iHPnz8fi8XCr371qzb1v/3tb1gsls780+o0jY2NREVF8fTTT5/29aVLlxIVFUVjY2OH33vKlCkUFBQQGhra4dfuCj7dPQARERERkR6lsRYKP+vuUbSVPA0cwWdt4ufnxzPPPMODDz5IeHh4h926sbERu93eYdc7X3a7nf/4j/9g5cqV/PSnPz0lrK5YsYK77rrrosbW1NSEr6/vWe8dGxt7wdftKTSTJyIiIiLSB1x11VXExsaydOnSs7Z75513GDVqFA6Hg+TkZJ577rk2rycnJ/P0008zf/58QkNDuf/++1m5ciVhYWG8++67DBs2jICAAG699VZqampYtWoVycnJhIeH873vfQ+Xy2Vea/Xq1UyaNIng4GBiY2O58847KS4uPu/3tGDBArKystiwYUOb+ieffMKhQ4dYsGABYAS+ESNG4Ofnx/Dhw/n9739vts3JycFisbBmzRpmzJiBn58fq1evJjc3l5tuuonw8HACAwMZNWoU7733HnD65Zrn8+f2y1/+knvvvZfg4GASExN55ZVXzvu9diSFPBERERGRPsBms/HLX/6SF154gby8vNO22bZtG7fddhtz585l9+7dLFmyhCeeeIKVK1e2affrX/+a0aNHs23bNp544gkAamtref755/nzn//M+++/T0ZGBjfffDPvvfce7733Hm+88QavvPIKb7/9tnmdxsZGnnrqKXbu3Mnf/vY3srOzmT9//nm/pzFjxnDppZeyYsWKNvXXX3+dyZMnM3r0aF599VV++tOf8otf/IJ9+/bxy1/+kieeeIJVq1a16fOTn/yE73//++zbt4/Zs2fz3e9+l4aGBjZs2MDu3bt55plnCAoKatef23PPPcekSZP44osv+M53vsOiRYvYv3//eb/fjqLlmiIiIiIifcQ3v/lNxo8fz+LFi3nttddOef03v/kNs2bNMoPb0KFD2bt3L7/+9a/bhK+vfe1r/OhHPzK/z8zMpKmpiZdeeom0tDQAbr31Vt544w2KiooICgpi5MiRzJw5k48//pjbb78dgHvvvde8RmpqKs8//zyTJ0/m5MmTZwxUX3Xvvffyox/9iBdffJGgoCBOnjzJX/7yF37zm98A8NRTT/Hcc89x8803A5CSksLevXt5+eWX+fa3v21e56GHHjLbABw9epRbbrmFMWPGmOM7k/P9c7v++uv5zne+Axih8r//+7/JyMhg+PDh5/VeO4pm8kRERERE+pBnnnmGVatWsXfv3lNe27dvH1OnTm1Tmzp1KocOHWqzzHLSpEmn9A0ICDADHsCAAQNITk5uE9YGDBjQZjnmF198wTe+8Q2SkpIIDg5mxowZgBGwztcdd9yB2+3mrbfeAuCtt97C4/Ewd+5cSkpKOHbsGAsWLCAoKMj8evrpp8nKympzna++p+9///s8/fTTTJ06lcWLF7Nr164zjuF8/9zGjh1r/rPFYiE2NvaClqd2FIU8EREREZE+5Morr2T27Nk89thjp7zm8XhO2cDE4/Gc0i4wMPCU2lc3KrFYLKetuZt3Aq2pqeGaa64hKCiI1atX89lnn/HXv/4V4IJ2xAwNDeXWW281l2yuWLGCW2+9lZCQEPNer776Kjt27DC/9uzZw5YtW876nu677z6OHDnCXXfdxe7du5k0aRIvvPDCacdwvn9uZ/vz6EparikiIiIi0sf86le/Yvz48QwdOrRNfeTIkWRmZrapbdq0iaFDh2Kz2Tp0DPv376e0tJRf/epXJCQkAPD5559f1LUWLFjAjBkzePfdd9m4cSO//OUvAWPmcODAgRw5coR58+Zd8HUTEhJYuHAhCxcu5NFHH+XVV1/le9/73intuvLPrSMo5ImIiIiI9DFjxoxh3rx5p8xM/fCHP+TSSy/lqaee4vbbb2fz5s28+OKLbXaj7CiJiYnY7XZeeOEFFi5cyJ49e3jqqacu6lrp6ekMHjyYu+++m8GDB3PllVeary1ZsoTvf//7hISEcN1119HQ0MDnn39OeXk5P/jBD854zYceeojrrruOoUOHUl5ezkcffcSIESNO27Yr/9w6gkKeiIiIiEhr9gDjXLqexPfU5ZPn8tRTT7FmzZo2tUsuuYQ1a9bws5/9jKeeeoq4uDh+/vOfX9COl+crOjqalStX8thjj/H8889zySWX8F//9V98/etfv6jr3XvvvTz22GM88sgjber33XcfAQEB/PrXv+bHP/4xgYGBjBkzhoceeuis13O5XHz3u98lLy+PkJAQrr32Wv77v//7tG278s+tI1g8p1tMKp2iqqqK0NBQKisrCQkJ6e7hiIiIiEgr9fX1ZGdnk5KSgp+fX3cPR/q4s/28tTc3aOMVERERERGRPkQhT0REREREpA9RyBMREREREelDFPJERERERET6EIU8ERERERGRPkQhT0RERESkFW0+L12hM3/OFPJERERERABfX18Aamtru3kk0h+0/Jy1/Nx1JB2GLiIiIiIC2Gw2wsLCKC4uBiAgIACLxdLNo5K+xuPxUFtbS3FxMWFhYdhstg6/h0KeiIiIiEiz2NhYADPoiXSWsLAw8+etoynkiYiIiIg0s1gsxMXFERMTQ1NTU3cPR/ooX1/fTpnBa6GQJyIiIiLyFTabrVM/hIt0pl678crq1at58MEHmTRpEg6HA4vFwsqVKy/oGjNmzMBisZz164033mjTJzk5+YxtFy5c2IHvUERERERE5ML12pm8xx9/nNzcXKKiooiLiyM3N/eCrzF//nxmzJhxSr2pqYmlS5ditVqZNWvWKa+Hhoby0EMPnVKfNGnSBY9BRERERESkI/XakLd8+XKGDBlCUlISv/rVr3j00Ucv+Brz588/bf2dd97B4/Fw/fXXEx8ff8rrYWFhLFmy5ILvJyIiIiIi0tl6bci76qqrOu3ay5cvB2DBggWddg8REREREZHO0GtDXmfJy8tj3bp1xMbGcsMNN5y2TUNDA6tWreL48eOEh4czZcoUxo0b18UjFREREREROZVC3lesWLECt9vN/Pnz8fE5/R9PYWHhKUs9r732Wt544w2ioqK6YJQiIiIiIiKn12t31+wMHo+HFStWAGdeqnnvvfeSkZFBSUkJVVVVbNmyheuuu47333+fr3/963g8nnPep6qqqs1XQ0NDh74PERERERHpPRoaGk7JCO2hkNfKRx99RHZ2Nunp6QwePPi0bX72s5+Rnp5OVFQUwcHBXHbZZbz77rtMmzaNzZs38957753zPgkJCYSGhppfS5cu7ei3IiIiIiIivcTSpUvb5IOEhIR2XU8hr5WWDVfuu+++C+pntVq55557ANi4ceM52x87dozKykrz62J2BhURERERkb7h0UcfbZMPjh071q7r6Zm8ZuXl5fz1r38lLCyMW2655YL7tzyLV1tbe862ISEhhISEXPA9RERERESk73E4HDgcjg67nmbymq1evZqGhgbmzZuHv7//BfffunUrAMnJyR08MhERERERkfPXL0JeaWkp+/fvp7S09IxtXnvtNeDsZ+Pt3buXioqKU+qZmZn85je/weFwcPPNN7d7vCIiIiIiIher1y7XXL58OZmZmQDs3r3brGVkZAAwZ84c5syZA8CLL77Ik08+yeLFi1myZMkp19q2bRs7d+7kkksuYcKECWe855o1a3j22WeZNWsWycnJOBwO9uzZw7p167BarSxbtozExMQOfZ8iIiIiIiIXoteGvMzMTFatWtWmtnHjRnPjk+TkZDPknUvLLN65NlyZOXMm+/btY/v27axfv576+noGDBjA7bffzsMPP8zkyZMv/I2IiIiIiIh0IIvnfA52kw5RVVVFaGgolZWV2nhFREREREROq725oV88kyciIiIiItJfKOSJiIiIiIj0IQp5IiIiIiLSfzkb4OhWqC7s7pF0mF678YqIiIiIiEi71JZBwQ4j6DVUgT0IHEHdPap200yeiIiIiIj0P2XZcOxTI+ABuJ2Q/wW4Xd07rg6gkCciIiIiIv2HywnHt0PJfsA4aKDR6TZeazwJhbu7b2wdRCFPRERERET6h4ZqOLoJThYB4HZ7+MeuAn7+7pfUNjqNNtUFUJ7bjYNsP4U8ERERERHp+6ryIXczNNYAUNPg5MWPD7P2izwKKutZsTEH8wjxkv1QV96Ng20fbbwiIiIiIiJ9l9tthLYK7+xc7okafp+RRelJ43k8iwUSIwLweIx/xuOG0kOQMLmbBt0+CnkiIiIiItI3NdVB/g6orzBLnxwqYfXWozhdxnN4QQ4f7p+eyuiBod5+QTEQO7Zrx9qBFPJERERERKTvqSk1jkdwNQHG5ip/3JpL5uFSs0lKVBCLZqQRGWhvrlggeihEpHb9eDuQQp6IiIiIiPQdHg+UHYHSg2appLqB3318mGPltWbta8NjuG1SAr625m1KbHaInwABEV094g6nkCciIiIiIn2DqwkKdkJNiVnacayC1zKPUNtonH9nt9n49pQkLk+N9Pbz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BATwy1/+kv/5n//xYlXiSc8++yx79uxh586draP5MjAtWrSImTNnkpKSgtVq5cCBAyxbtozNmzczb948tm3bhslk8naZ0oeKi4sBeP7557nyyivZtWsX48aNY/fu3Xz3u9/l+eefZ+TIkXz/+9/v0f20Jk9ExEucTieLFi3i448/5sEHH+Q73/mOt0sSD0pKSsLlcuFwOMjNzeWpp57iZz/7GXfccQcOh8Pb5Ukf27NnD8uXL+fHP/4xV155pbfLES9bsmQJM2fOJCYmhrCwMK655hr+/ve/M2PGDLZv3867777r7RKljzmdTgAsFgubNm3i6quvJjQ0lLS0NN58803MZjPPP/98j++nkNeHWkbwWkb0Oqqqqup2lE9EfJvL5eLBBx/ktdde45577uHFF1/0dkniJX5+fiQlJfHoo4+yfPly3nrrLV5++WVvlyV97N5772XkyJE8+eST3i5FLlNms5n77rsPgG3btnm5GulrLZlg6tSpJCYmup1LSUkhOTmZY8eOUVFR0aP7KeT1oZY1FV2tuysvL6e0tFTrLkQGIKfTyf3338/atWvJyMhg/fr1mM36dixtTblaGneJ79qzZw+HDh0iMDDQbePrV155BaB1S4VNmzZ5t1Dxqpa1eHV1dV6uRPramDFjAIiIiOjyfMvx+vr6Ht1Pa/L60MyZM1mxYgWZmZnMnz/f7VxmZmbrNSIycDidTh544AHWrVvHXXfdxauvvqp1eNLq5MmTgLqsDgT3339/l8c//vhjcnJymDdvHrGxsa37p8nAtHPnTgC9DwaA9PR0AA4ePNjpXFNTE0ePHiUkJITY2Nge3U9/i/ShWbNmkZyczOuvv87ixYtJTU0FjA1vn376afz9/bUZtsgA0jKCt379ev7jP/6D1157TQFvAPriiy8YMWJEp+n6ZWVlPP744wDccsst3ihNPGjNmjVdHl+4cCE5OTk89thj2gx9gDhw4ACJiYmdRnCys7P59a9/jdVq5fbbb/dOceIxI0eOZM6cOWRmZrJmzRoeeOCB1nO/+MUvqKio4J577unxDwEV8vqQv78/a9asYe7cuaSlpZGRkYHNZmPjxo3k5uayfPlyRo8e7e0yxQPWrFlDdnY2QOtm12vWrGmdknXbbbdx2223eak68ZSnnnqK9evXExoayujRo1m+fHmna2677bbWHwiJb1q/fj1r1qwhPT2d4cOHExISQn5+Pv/4xz+oqanhjjvu4O677/Z2mSLiIRs2bGDlypXMmjWLpKQkrFYr+/btIzMzE7PZzIsvvsiwYcO8XaZ4wO9//3uuu+46HnzwQTZt2sTYsWPZvXs3W7ZsYfjw4fzyl7/s8b0U8vpYeno62dnZLF26lA0bNtDY2EhKSgpPP/00CxYs8HZ54iHZ2dmt6yxabNu2rXUhdVJSkkLeAJCXlwdATU0NzzzzTJfXJCUlKeT5uDvvvJPKykp27NjBxx9/TF1dHVFRUcyYMYP//M//ZP78+WqVLjKApKenc/DgQT7//HO2bt1KQ0MD8fHx3HXXXTzyyCNMmzbN2yWKh4wcOZJ//etfLFmyhPfee4/MzEwSEhL4wQ9+wJIlS4iLi+vxvUwul8vVh7WKiIiIiIiIB6mdm4iIiIiIiA9RyBMREREREfEhCnkiIiIiIiI+RCFPRERERETEhyjkiYiIiIiI+BCFPBERERERER+ikCciIiIiIuJDFPJERERERER8iEKeiIiIiIiID1HIExERERER8SEKeSIiIgOYw+Fg0qRJmEwm3njjDW+XIyIivUAhT0REZAB74YUXKCkp8XYZIiLSixTyREREBqjCwkKWLVvGc8895+1SRESkFynkiYiInEdeXh4mk8nt9eSTT3Z7/bFjx1iwYAGDBw8mICAAk8nEo48+6rmCe+iHP/wh8+bN42tf+1q316Smprp93TfccIPnChQRkYvi7+0CRERE+gur1crUqVMBGDZsWJfXFBcXc/3111NUVERCQgJXX301ZrP5nEHKG9577z0yMzM5fPgwdru92+umTJlCaGgolZWV7Nu3z4MViojIxVLIExER6aGEhASys7PPec0LL7xAUVERd999N3/605/w8/PzUHU919DQwH/913+xdOlSBg0aRF5eXrfXrlu3DoCsrCzS09M9VKGIiFwKhTwREZFe9PbbbwPwox/9yCMBr7q6msLCwvNeN2jQIMLDwwF49tlnsVgsLF68uK/LExERL1DIExER6SXV1dUcOHCA4OBgpkyZ4pFn/uMf/yAjI+O8161bt46FCxeSn5/PypUr+fOf/0xtbS0AVVVVANTV1VFZWdkaBkVEpH9S4xUREfFpLpeLt99+m2984xskJSVhtVqJiYkhNTWVRYsWcfr06Ut+Rm5uLiaTCZvNhsvloq6uDj8/v9ZmJWVlZQBERka2/v7dd99l9uzZREZGEh0dTUZGhlstr7/+OjNmzMBmszF06FAWL15MXV1dp2fPnz8fl8t13tfChQtba7Xb7dx5551ERkYSGRnJ5MmTAbj//vuJj4+/5P8eIiLiXRrJExERn+V0OsnIyGDDhg0AJCcnk5qaSnl5OYcOHWLv3r2sWrXqkp9z5swZrr/+ek6ePElubi6JiYmMGDECgIiICKKiojh+/DgVFRUkJCTwq1/9ihUrVpCcnMzQoUPZv38/b7zxBsePHycrK4sFCxbw5ptvMnbsWAYPHsyhQ4f47W9/S3NzM7/73e8uqdbU1FQ++ugjt2OnT58mIyODJ554gptuuumS7i8iIt6nkCciIj7rT3/6Exs2bGDy5Mm8/vrrjB8/vvWc3W5n79692Gy2S37O1KlTyc7O5pFHHmHVqlX85Cc/4eGHH3a7Zs+ePYARCF955RW2bt3a2nHzww8/ZPbs2Xz66afMmzePgoIC9u7dy4QJEwBYu3Yt999/P+vWrWP16tWYTKaLrjUiIqLTNggtjVfGjx9/2XUBFRGRC6fpmiIi4rOysrIAWLJkiVvAA2M7hKuvvrpXn9cS5FqmP3Z1DuCdd95xC1OzZs1i4sSJAOzatYvNmze3BjyARYsWERoaSn19PUVFRb1as4iI+B6N5ImIiM9KTEwEYPXq1YwaNYoxY8ZgsVj67Hl79+4FYNKkSZ3OtYS8hx56iKuuuqrT+YCAAACeeOIJhgwZ0um82Wz8XDYoKKjX6m2RlJSEy+Xq9fuKiIh3aCRPRER81uOPP84999zDp59+yqRJk7BarZhMJj744INef1ZBQQFnzpxhyJAhREdHdzrfEgDvuuuuTudcLhc5OTmYTCbuvPPOTueLi4upqqoiJiZGnS9FROS8NJInIiI+6/Dhw62dLUeMGEFCQgJms7nLkbZLda6pmnV1dRw9ehSLxcK0adM6nc/NzaWqqork5OQuR/HOdW8REZGOFPJERMQnbd68mXnz5nHVVVfx+eefd1qT19vOFcS+/PJLnE4nKSkprdMy2/viiy8Ao/Plue7d3XkREZH2FPJERMQnLV68GIBNmzaRkJDQ58/rSdOV7kLa+UJey3mN5ImISE9oTZ6IiPic4uJijh49SlhYmEcCHpw75LWsxzvfSN2UKVPOeV4jeSIi0hMKeSIi4nNsNhv+/v6Ul5fz1FNPYbfb3c4fPHiQt99+u9eeV19fT05ODkFBQYwaNarT+fOtqTvXSJ7dbufQoUNYLBbGjh3bazWLiIjvUsgTERGfExgYyPe+9z0Ali5dSlxcHKmpqUyaNImYmBjGjx/Pp59+2mvPa1lzN3HixNatDtprGcnrKuSVl5dz/PhxoqOju2y6cuDAARwOR7fr+URERDrSmjwREfFJL7zwAikpKfz5z39m//797Nu3j4iICIYNG0ZGRgb33ntvrz2rZaSuq66dLZ0zk5KSiIiI6PZzzzeVU+vxRESkp0wu7X4qIiJyTnl5eYwYMYLhw4eTl5fn7XK8Iisri/T0dGbOnElWVpa3yxERkXPQSJ6IiEgPnT59mhkzZgCwaNEiFi1a5OWK+t59991HTk4OlZWV3i5FRER6SCFPRESkh+x2O9u2bQPgpptu8nI1nrF79+7WKaMiItI/aLqmiIiIiIiID1F3TRERERERER+ikCciIiIiIuJDFPJERERERER8iEKeiIiIiIiID1HIExERERER8SEKeSIiIiIiIj5EIU9ERERERMSHKOSJiIiIiIj4EIU8ERERERERH6KQJyIiIiIi4kMU8kRERERERHyIQp6IiIiIiIgP+X8Gv4UNNRwO7QAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "eps_total_fast = np.array([*eps_com, *eps_fast])\n", + "pres_total_fast = np.array([*pres_com, *pres_fast])\n", + "\n", + "compare_fig1, ax = plt.subplots(1, 1, figsize=(9,6))\n", + "\n", + "ax.plot(eps_total_fast, pres_total_fast, lw=2, label=\"Fast Version\")\n", + "ax.plot(eps_total, pres_total, lw=6, label=\"Normal Version\", alpha=0.3)\n", + "ax.set_ylabel(r\"P $[fm^{-4}]$\", fontsize=16)\n", + "ax.set_xlabel(r\"$\\epsilon$ $[fm^{-4}]$\", fontsize=16)\n", + "ax.set_xlim(0, 6)\n", + "ax.set_ylim(0, 2)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "plt.legend()\n", + "compare_fig1.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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LQ29buvWrTr//POVk5Mjj8ejoUOH6q233tKWLVs0btw4SVJOTo4Mw9CUKVPq3dfpdGry5MmaP3++6i61/cILL+gHP/iBjjvuOBUVFen6669Xp06dlJmZqTPOOEMrV64MnTtr1iyNGDFCL7zwgvr27Su32y3TNPX3v/9dw4cPV2pqqjp06KCzzjpLZWVlkup31/R6vbr55pvVqVMnpaSk6LTTTtMXX3wROl7TMvnBBx9o5MiRSktL06mnnqp169ZF4z9Bm0fIAwAAAJKAzWbT448/rm+//VYvvviiPvzwQ82YMSN0/Gc/+5m8Xq+WLl2qVatW6aGHHlJ6erp69uyp1157TZK0bt067d69W3/+858bvMfUqVO1adMmffTRR6F9ZWVlWrhwoaZOnSrTNHXeeedpz549euutt/TVV1/phBNO0JlnnqmDBw+GXrNhwwYtXLhQr732mlasWKE9e/boyiuv1LXXXqs1a9ZoyZIluuiii+qFyRozZszQa6+9phdffFFff/21+vfvr4kTJ0bcQ5LuvvtuPfroo/ryyy/lcDh07bXXHvH3N5GwGDoAAAAg6fwnlml/ibdV75mX4db/3XRai17zz3/+U+np6aHn55xzjl599VX98pe/DO3r06eP7r33Xk2fPl1PPfWUJGnbtm26+OKLNXz4cElS3759Q+fn5uZKkjp16tRkt8ghQ4bo5JNP1rx58zR27FhJ0sKFCxUIBHTllVdq8eLFWrVqlfbt2ye32y1J+sMf/qA333xTf//733X99ddLkqqqqvTSSy8pLy9PkvT111/L7/froosuUu/evSUpVGddZWVlevrppzV//nydc845kqQ5c+bo/fff1/PPP6/bb789dO7999+vMWPGSJLuuOMOnXfeeaqsrFRKSkoT3+HER8gDAAAAJO0v8WpPcWW8yziscePG6emnnw4993g8kqTFixfrgQce0OrVq1VcXCy/36/KykqVlZXJ4/Ho5ptv1vTp0/Xee+/prLPO0sUXX6xjjz22xfefOnWqfvnLX+rJJ59URkaGXnjhBV100UXKzs7WV199pdLSUnXo0CHiNRUVFdq4cWPoee/evUMBT5KOO+44nXnmmRo+fLgmTpyoCRMm6JJLLlFOTk69+2/cuFE+n0+jRo0K7XM6nTrppJO0Zs2aiHPD31/Xrl0lSfv27VOvXr1a/L4TCSEPAAAAkNWqlgj39Hg86t+/f8S+rVu36txzz9WNN96oe++9V7m5uVq2bJmmTp0amthk2rRpmjhxov71r3/pvffe04MPPqhHH31UN910U4vuf8UVV+hXv/qVXnnlFY0dO1bLli3T7373O0lSMBhU165dtWTJknqvC28hrAmmNex2u95//3198skneu+99/TEE0/o7rvv1ueff15vUpmaLpx1Fxk3TbPePqfTGdquORYMBlv0fhMRIQ8AAACQWtxtsi358ssv5ff79eijj8pms6bdWLhwYb3zevbsqRtvvFE33nij7rzzTs2ZM0c33XSTXC6XJCkQCBz2XhkZGbr00ks1b948bdq0SX379g113TzhhBO0Z88eORwO5efnt+g9GIahUaNGadSoUfrtb3+r3r1764033tAtt9wScV7//v3lcrm0bNkyXXXVVZKsGTq//PLLiC6r7RkhDwAAAEhw/fr1k9/v1xNPPKHzzz9fy5cv1zPPPBNxzi9/+Uudc845GjhwoA4dOqQPP/xQgwcPlmR1nzQMQ//85z917rnnKjU1NWLcX11Tp07V6NGjtXr1at12222hVrKzzjpLp5xyiiZNmqSHHnpIgwYN0q5du/TWW29p0qRJGjlyZIPX+/zzz/XBBx9owoQJ6tSpkz7//HPt378/VF84j8ej6dOn6/bbb1dubq569eqlhx9+WOXl5Ue0hEMyYnZNAAAAIMGNGDFCjz32mB566CENGzZMf/3rX/Xggw9GnBMIBPSzn/1MgwcP1tlnn61BgwaFJmXp3r27Zs+erTvuuEOdO3fWz3/+8ybvd9ppp2nQoEEqLi7Wj3/849B+wzD01ltv6fTTT9e1116rgQMH6oorrtCWLVvUuXPnRq+XmZmppUuX6txzz9XAgQN1zz336NFHHw1NrFLX73//e1188cWaPHmyTjjhBG3YsEHvvvtug2P42iPDbGxeUjSquLhYWVlZKioqUmZmZrzLAQAAQAtUVlZq8+bN6tOnT9LPsoj4a+rzFqtcQUseAAAAACQRQh4AAAAAJBFCHgAAAAAkEUIeAAAAACQRQh4AAAAAJBFCHgAAAAAkEUIeAAAAACQRQh4AAAAAJBFCHgAAAAAkEUIeAAAAgJhasmSJDMNQYWFhvEuJ0FbrOlqEPAAAALRPZlDylrSdRzB42JKnTJkiwzD0+9//PmL/m2++KcMwYvWdiqmqqip17NhR9913X4PHH3zwQXXs2FFVVVVRv/epp56q3bt3KysrK+rXjidHvAsAAAAA4qKqXNrzRbyrqJV/muTOOOxpKSkpeuihh3TDDTcoJycnarevqqqSy+WK2vWay+Vy6ZprrtH8+fN199131wur8+bN0+TJk4+oNp/PJ6fT2eS9u3Tp0uLrtnW05AEAAAAJ5KyzzlKXLl304IMPNnnea6+9pqFDh8rtdis/P1+PPvpoxPH8/Hzdd999mjJlirKysnTddddp/vz5ys7O1j//+U8NGjRIaWlpuuSSS1RWVqYXX3xR+fn5ysnJ0U033aRAIBC61oIFCzRy5EhlZGSoS5cuuuqqq7Rv375mv6epU6dq48aNWrp0acT+jz/+WOvXr9fUqVMlWYFv8ODBSklJ0THHHKOnnnoqdO6WLVtkGIYWLlyosWPHKiUlRQsWLNDWrVt1/vnnKycnRx6PR0OHDtVbb70lqeHums35vj3wwAO69tprlZGRoV69eum5555r9nttDYQ8AAAAIIHY7XY98MADeuKJJ7Rjx44Gz/nqq6902WWX6YorrtCqVas0a9Ys/eY3v9H8+fMjznvkkUc0bNgwffXVV/rNb34jSSovL9fjjz+u//mf/9E777yjJUuW6KKLLtJbb72lt956Sy+99JKee+45/f3vfw9dp6qqSvfee69WrlypN998U5s3b9aUKVOa/Z6GDx+uE088UfPmzYvY/8ILL+ikk07SsGHDNGfOHN199926//77tWbNGj3wwAP6zW9+oxdffDHiNb/+9a918803a82aNZo4caJ+9rOfyev1aunSpVq1apUeeughpaenH9X37dFHH9XIkSP1n//8Rz/96U81ffp0rV27ttnvN9borgkAAAAkmB/96EcaMWKEZs6cqeeff77e8ccee0xnnnlmKLgNHDhQq1ev1iOPPBIRvs444wzddtttoefLli2Tz+fT008/rX79+kmSLrnkEr300kvau3ev0tPTNWTIEI0bN06LFy/W5ZdfLkm69tprQ9fo27evHn/8cZ100kkqLS1tNFDVde211+q2227Tk08+qfT0dJWWlurVV1/VY489Jkm699579eijj+qiiy6SJPXp00erV6/Ws88+qx//+Meh6/zyl78MnSNJ27Zt08UXX6zhw4eH6mtMc79v5557rn76059KskLlH//4Ry1ZskTHHHNMs95rrNGSBwAAACSghx56SC+++KJWr15d79iaNWs0atSoiH2jRo3S+vXrI7pZjhw5st5r09LSQgFPkjp37qz8/PyIsNa5c+eI7pj/+c9/dOGFF6p3797KyMjQ2LFjJVkBq7muvPJKBYNBvfLKK5KkV155RaZp6oorrtD+/fu1fft2TZ06Venp6aHHfffdp40bN0Zcp+57uvnmm3Xfffdp1KhRmjlzpr755ptGa2ju9+3YY48NbRuGoS5durSoe2qsEfIAAACABHT66adr4sSJuuuuu+odM02z3gQmpmnWO8/j8dTbV3eiEsMwGtwXrJ4NtKysTBMmTFB6eroWLFigL774Qm+88YYktWhGzKysLF1yySWhLpvz5s3TJZdcoszMzNC95syZoxUrVoQe3377rT777LMm39O0adO0adMmTZ48WatWrdLIkSP1xBNPNFhDc79vTX0/2gK6awIAAAAJ6ve//71GjBihgQMHRuwfMmSIli1bFrHvk08+0cCBA2W326Naw9q1a1VQUKDf//736tmzpyTpyy+/PKJrTZ06VWPHjtU///lPLV++XA888IAkq+Wwe/fu2rRpk66++uoWX7dnz5668cYbdeONN+rOO+/UnDlzdNNNN9U7rzW/b7FEyAMAAAAS1PDhw3X11VfXa5m69dZbdeKJJ+ree+/V5Zdfrk8//VRPPvlkxGyU0dKrVy+5XC498cQTuvHGG/Xtt9/q3nvvPaJrjRkzRv3799d///d/q3///jr99NNDx2bNmqWbb75ZmZmZOuecc+T1evXll1/q0KFDuuWWWxq95i9/+Uudc845GjhwoA4dOqQPP/xQgwcPbvDc1vy+xRIhDwAAAO2TK81am66tcNbvOtkc9957rxYuXBix74QTTtDChQv129/+Vvfee6+6du2q3/3udy2a8bK58vLyNH/+fN111116/PHHdcIJJ+gPf/iDLrjggiO63rXXXqu77rpLt99+e8T+adOmKS0tTY888ohmzJghj8ej4cOH65e//GWT1wsEAvrZz36mHTt2KDMzU2effbb++Mc/Nnhua37fYskwG+pkiiYVFxcrKytLRUVFyszMjHc5AAAAaIHKykpt3rxZffr0UUpKSrzLQZJr6vMWq1zBxCsAAAAAkEQIeQAAAACQRAh5AAAAAJBECHkAAAAAkEQIeQAAAACQ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S8OGDVNFRYVKSkpiUSZawUUXXaTRo0fX2z969GiNGzdOBw8e1KpVqyTF5ndJQl4zDBgwQC6XS8uXL6/3P9tbb70lSTrjjDPiURragPXr12vXrl0aNWqUPB5PxLGUlBSdfvrp2rlzpzZs2BCnCtFWOJ1OSfwi194Eg0H95Cc/Ue/evev94432wzRNLVy4UB06dNAZZ5yhr776So899pj+8Ic/aNGiRQoGg/EuEa1s6NChMk2z3qzx27dv17fffqvhw4dHTByI5FH394FY/C7JbxrN0KFDB91///26/fbbNXjwYF1wwQXKyMjQqlWrtGjRIl1//fW66aab4l0m4uRwayuGr+/Y1PqLSH4vvPCCJGnChAlxrgSt6U9/+pM++eQTLVu2TG63O97lIE42b96sgwcP6sQTT9T06dP1zDPPRBw//vjj9Y9//EM9evSIU4Vobffee6+WLVumiy66SBdeeKH69++v/fv36/XXX1fv3r21cOHCeJeIGNi2bZsWLVqkLl26aPjw4ZJi87skIa+ZbrvtNnXr1k033HBDxOybp556qq655ppQIkf7U1RUJEnKyspq8HhNF9+a89A+Pffcc3r77bd1xhln6Nxzz413OWgl33//ve655x794he/0CmnnBLvchBHNcM6vv76a61Zs0bz5s3ThRdeqKKiIj3wwAOaM2eOLrnkEn322WdxrhStZciQIfrss8906aWX6u9//3tof05OTmjGTSQXn8+nyZMny+v16uGHH5bdbpcUm98l6a7ZTPfdd5+mTJmiO++8U9u3b1dpaamWLVsmv9+vcePG6fXXX493iQDaqH/961/6+c9/rt69e2vBggXxLgetJBgMasqUKerWrZvuu+++eJeDOKvpjhkIBHTvvfdqypQpysnJUX5+vp577jmdfPLJ+vzzz7Vs2bI4V4rW8uWXX+q0005Tbm6uvvrqK5WVlWnTpk2aOnWqbrnlFl166aXxLhFRFAwGde2112rp0qW67rrrNHny5Jjej5DXDB9++KF+85vf6Oc//7nuuusu9ejRQx6PR6NGjdI///lPpaam6le/+lW8y0Sc1PzVpbG/rtSsbdLYX2eQ3N59911dfPHF6ty5sz788EN17do13iWhlTz++OP67LPPNHfu3HoT8aD9Cf834IILLqh3/Pzzz5dk/eKP5Ofz+XT55ZfLMAy9+eabOuGE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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "MR_fast = main.OutputMR(\"\", eps_total_fast, pres_total_fast).T\n", + "\n", + "compare_fig2, ax = plt.subplots(1, 1, figsize=(9, 6))\n", + "\n", + "ax.plot(MR_fast[1] / km, MR_fast[0] / Msun, lw=2, label=\"Fast Version\")\n", + "ax.plot(MR[1] / km, MR[0] / Msun, lw=6, label=\"Normal Version\", alpha=0.3)\n", + "ax.set_ylabel(r\"M [$M_{\\odot}$]\", fontsize=16)\n", + "ax.set_xlabel(\"R [km]\", fontsize=16)\n", + "ax.set_xlim(8.0, 20.0)\n", + "ax.set_ylim(0, 3)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "plt.legend()\n", + "compare_fig2.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Polytrope EOS \n", + "\n", + "First import all the package that will be used." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import math\n", + "import TOVsolver.main as main\n", + "import matplotlib.pyplot as plt\n", + "from scipy.integrate import ode\n", + "import EOSgenerators.Polytrope_EOS as Polytrope\n", + "import EOSgenerators.Strangeon_EOS as Strangeon\n", + "import EOSgenerators.crust_EOS as crust\n", + "from TOVsolver.unit import km, Msun, MeV,fm,g_cm_3,dyn_cm_2, G,c " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The polytropic equation of state (Polytrope) is the most commonly used EOS in astrophysics, its advantage is assumed to be capable to simulate all EOS shape with given parameters. Here, we provide one of the computation for polytrope." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Connecting outer crust with polytropic part" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For polytrope, we first connecting it with crust as we did in RMF" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "Tolos_crust_out = np.loadtxt(\"Test_Case/Tolos_crust_out.txt\")\n", + "eps_crust_T_out = Tolos_crust_out[:, 3] * g_cm_3\n", + "pres_crust_T_out = Tolos_crust_out[:, 4] * dyn_cm_2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We define a set of parameters, first three in theta are the parameters control the slope of each polytrope, and the last two are transition point from one segment to another. Details see the documentation about polytrope" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "gammas = np.array([1.03, 2.62, 1.38])\n", + "rho_ts = np.array([8.087e13, 1.8078e15]) * g_cm_3\n", + "theta = np.append(gammas, rho_ts)\n", + "\n", + "eps_set = np.logspace(11.7, 15.6, 100, base=10) * g_cm_3\n", + "pres_out = Polytrope.compute_EOS(eps_set, theta, eps_crust_T_out[-1], pres_crust_T_out[-1])\n", + "\n", + "eps_total = np.hstack((eps_crust_T_out, eps_set))\n", + "pres_total = np.hstack((pres_crust_T_out, pres_out))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Solve TOV with this EOS\n", + "\n", + "Here below we use the strangeon matter EOS to compute the mass radius curve.\n", + "\n", + "The following code calculates the mass and radius of the strange stars for the given EOS of the polytrope using our main.OutputMR" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "MR = main.OutputMR('',eps_total, pres_total)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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PNwoKCjwdcnwkffff99ITU2ttD81NdUICQkx4uLiKvz79fbvkn7VXdMs6enpcrvd6tevn2ex9DIjR46UJB05csSM0uBDV155pZKTk895nmEYmjdvnho0aKA//vGPFY5NnTpVsbGxev31172+yCXqVk2fhxYtWmjSpEmKiIiosD8yMlIPP/ywJDHm18/V9Fkob+fOnZo6daqmTJminj17+qgymKE2z8NTTz0lp9OpV155RUlJSZWOBwf71aTnqEJtnofdu3fLZrPpqquuqrA/KSlJXbp00cmTJ5WTk+OLMlEHRo8erQEDBlTaP2DAAA0ZMkRZWVnauHGjJN/8LknIq4F27dopNDRUq1evrvQf26effipJGjp0qBmloR5IS0vTgQMH1K9fP0VGRlY4FhYWpoEDB2r//v3auXOnSRWivggJCZHEL3KBxu12684771RycnKl/3kjcBiGocWLF6tRo0YaOnSofvzxRz333HP661//qqVLl8rtdptdIupY586dZRhGpVnjMzIytGnTJnXt2rXCxIGwjjN/H/DF75L8plEDjRo10pNPPqnJkyerY8eOuu666xQVFaWNGzdq6dKluueee/TAAw+YXSZMcq61Fcuv73i29RdhfW+88YYkafjw4SZXgrr0wgsv6JtvvtGqVavkcDjMLgcm2bNnj7KystSnTx9NmjRJr7zySoXjPXv21Mcff6yWLVuaVCHq2p///GetWrVKo0eP1vXXX6+2bdvq6NGj+uCDD5ScnKzFixebXSJ8YN++fVq6dKmaNm2qrl27SvLN75KEvBp69NFH1bx5c917770VZt/s27evxo4d60nkCDzZ2dmSpJiYmCqPl3XxLTsPgem1117TZ599pqFDh+qaa64xuxzUkR07duiJJ57Qgw8+qMsvv9zscmCismEd69at09atWzV//nxdf/31ys7O1lNPPaW5c+fqhhtu0Jo1a0yuFHWlU6dOWrNmjW688Ub961//8uyPjY31zLgJaykuLta4ceNUWFioZ555Rna7XZJvfpeku2YNzZw5U+PHj9fUqVOVkZGh3NxcrVq1Si6XS0OGDNEHH3xgdokA6qlPPvlE999/v5KTk7Vw4UKzy0EdcbvdGj9+vJo3b66ZM2eaXQ5MVtYds6SkRH/+8581fvx4xcbGKiUlRa+99pouvfRSrV27VqtWrTK5UtSVH374Qf3791dcXJx+/PFH5eXlaffu3br77rv18MMP68YbbzS7RHiR2+3WXXfdpdTUVE2cOFHjxo3z6f0IeTWwbNky/eEPf9D999+vxx57TC1btlRkZKT69eun//73vwoPD9dDDz1kdpkwSdlfXar760rZ2ibV/XUG1rZkyRKNGTNGTZo00bJly9SsWTOzS0IdmT17ttasWaN58+ZVmogHgaf8/wOuu+66SsevvfZaSaW/+MP6iouLdfPNN8tms+mjjz5Sr169FBERoVatWunZZ5/VzTffrA8//FDLly83u1R4gWEYmjhxohYuXKixY8dW6q7ti98lCXk18Mknn0gqXUT9TAkJCeratav27dunzMzMui4N9UD5ftJVOVc/a1jX559/rlGjRik+Pl7Lly9X69atzS4JdWj9+vUyDENDhgyRzWbzvMr+X/Lqq6/KZrNp1KhR5haKOtG2bVtP16yGDRtWOl627+TJk3VYFcyybds27d69W5deemmVfwQqm9Dvxx9/rOvS4GVut1t333233njjDd16661asGCBgoIqRjBf/C7JmLwaKCoqkiQdPXq0yuNl+xlQH5jatWun5s2ba/Xq1crLy6swK1JBQYFSU1PVvHlztW3b1sQqUdfKAl5cXJyWL1/Ov/8ANGjQoCpnUj148KA+/fRTXXTRRerXrx9LKgQIh8Ohvn37auXKldqyZYv69+9f4fiWLVskSSkpKSZUh7rG75aBwe12a8KECZo/f75uvvlmvf32254/9pTni98lacmrgX79+kmSnnvuuUrNqG+++aZ27typ3r17KyoqyozyYDKbzaYJEyYoNzdXf/rTnyocmzVrlo4fP64JEybIZrOZVCHqWlnAi42N1fLly2nFDVB33nmn5s2bV+k1efJkSaUhcN68efrNb35jcqWoK5MmTZIkTZ8+XYWFhZ7927Zt04IFCxQVFVVpzTRYU5cuXRQTE6PVq1dXWkLhwIEDeumllyRJgwcPNqE6eENZC978+fN14403auHChVUGPMk3v0vaDFZoPqeSkhJdeeWVWrFihRISEnTdddcpNjZWGzZs0JdffimHw6GlS5dW+qsc/Nu8efM8A+A3btyodevWqV+/fp6/oowaNcrTzSovL0/9+/fX+vXrNWzYMPXu3VsbNmzQZ599ph49emjVqlWV1j2Bf6np87Bt2zb16NFDhYWFuuWW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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, 1, figsize=(9, 6))\n", + "ax.plot(MR[:,1]/km , MR[:,0]/Msun, lw=2)\n", + "# ax.scatter(R /km, M / Msun, c='r')\n", + "ax.set_ylabel(r\"M [$M_{\\odot}$]\", fontsize=16)\n", + "ax.set_xlabel(\"R [km]\", fontsize=16)\n", + "ax.set_xlim(8.0, 20.0)\n", + "ax.set_ylim(0, 3)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Strangeon matter EOS \n", + "\n", + "First import all the package that will be used." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import math\n", + "import TOVsolver.main as main\n", + "import matplotlib.pyplot as plt\n", + "from scipy.integrate import ode\n", + "from EOSgenerators import Strangeon_EOS as Strangeon\n", + "\n", + "from TOVsolver.unit import km, Msun, MeV,fm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The strangeon matter EOS describes the strongly interacting matter in the solid state, and the compact star can be a self-bound quark star composed of strangeon matter. Therefore, in the following we present the bare quark star EOS without a crust.\n", + "\n", + "Note that the strangeon matter parameters we input are in the natural unit system. The quentity returned by the Strangeon_compute_EOS function is in the Geometric Unit System. Thus, here, the parameter epsilon and ns are in the units of $MeV/fm^{-3}$. So follow the unite conversion rule, if we are using this unit, we just time this unit to do compute" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Defining the EOS parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define the strangeon matter EOS that we will use to calculate the energy densities and pressures of the system.\n", + "The following is an example of how to define the theta and Nq.\n", + "For example, theta=[50, 0.24] means the example values for epsilon and ns:\n", + "epsilon in units of MeV, ns in units of $fm^-3$.\n", + "Nq is an integer, e.g. Nq=9, 12, 15, 18, 21, 24, 27\n", + "\n", + "For the definition of parameter n, the minimum value is 3*ns/Nq, the maximum value is about 0.16*8*3/Nq.\n", + "Then we can generate,for example, 1000 points for the input of the srangeon matter EOS. Special note: If you are using this EOS, need a very fine grid for the EOS. From our test, 1000 points for this EOS is the minimum requirement\n", + "\n", + "Once we define the EOS parameters already, we can use the Strangeon_compute_EOS function to calcute the energy_density and pressure." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "n values: [0.04 0.04008671 0.04017342 ... 0.21315991 0.21324662 0.21333333]\n", + "Energy densities: [ 204.61935484 205.0631334 205.50734538 ... 46616.1606005\n", + " 46711.98281964 46807.96367981]\n", + "Pressures: [0.00000000e+00 1.98864796e-01 4.00749542e-01 ... 1.88749504e+05\n", + " 1.89139331e+05 1.89529799e+05]\n" + ] + } + ], + "source": [ + "Nq=18\n", + "epsilon=50\n", + "ns=0.24\n", + "theta = np.array([Nq, epsilon, ns])\n", + "n_min = 3 * theta[2] / theta[0] \n", + "n_max = 0.16 * 8 * 3 / theta[0] \n", + "n_values = np.linspace(n_min, n_max, 2000) \n", + "\n", + "energy_densities, pressures = Strangeon.compute_EOS(n_values, theta)\n", + "print(\"n values:\", n_values)\n", + "print(\"Energy densities:\", energy_densities)\n", + "print(\"Pressures:\", pressures) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Solve TOV with this EOS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here below we use the strangeon matter EOS to compute the mass radius curve.\n", + "\n", + "The following code calculates the mass and radius of the strange stars for the given EOS of the strange matter EOS. Since our energy_density and pressure are all in same unit $MeV/fm^{-3}$ so all we need is to time this unit\n", + "\n", + "Input a given central pressure and central energy density, you will obtain the radius where the pressure is zero and the mass at that radius." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Solve the TOV equations using each central pressure and energy density" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "MR= main.OutputMR('',energy_densities* MeV/fm**3 , pressures* MeV/fm**3)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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X9WAAQPUoEEDBQQEKCoqSrfddps2btxYrnM5HA7NnDlT7dq1U1BQkCIjIzV06FAlJiZWeN0AAADwbs/+b4cz4MXUtempgS1NrgierEIWQx85cqR2796tl156SYZh6IknnlDLli314YcfVsTpnV577TU99thj2r9/v/r3768nnnhCN9xwg7766it169ZNCxcuLPO5HnroIY0bN052u13jxo3TzTffrK+//lqdO3fWjh07KrRuAAAAeK9F247rw02HJUlB/r6aMbyjrH4sOwbXuarhmqVJS0vTc889p9dee015eXkaOXKk3nvvvQo59+eff67IyEj16NGjWPuaNWvUr18/hYaG6tixY7JaL/3w6sqVK9W3b1/16NFDS5cudR6/fPly9e/fXz169NCqVasu+nqGawIAAKAsjqWe003/XaO0c4Wj3F64ra3u7NzA5KpQVbgqV1TIiotHjhzRjh07tH37du3YsUM7duyQr6+vDMNQcnJyRVxCknTrrbeW2t6jRw/16dNHS5Ys0datW9WpU6dLnqdo8pdp06YVC4T9+vVTXFycFi1apD179qhFixYVVjsAAAC8i91h6K8fb3EGvEFt62hop2iTq4I3KFfIO3z4cLEgt337du3cuVOZmZmSCtf9kCQfHx81a9ZMbdu21aBBgyq+6lL4+/tLkvz8Lv+W4uPjFRwcrO7du5fYVxTyVq1aRcgDAADAFXt95V5tOnBGklSvepCev7VtsbWkAVcpV8hr1KiR8w9mUaCrXbu2unTporZt26pt27Zq166d2rRpo8DAwIqv9iIOHz6sZcuWKSoqSm3btr3ksVlZWTp+/LhiY2Pl61tyLHTz5s0lqUwTsKSnpxfbtlqtlx0qCgAAAM/386GzenV54c+TPhbpv8M6KCzI3+SqYLbc3Fzl5uY6t3+fJyrKFQ3XbN26tUaNGqURI0aoQQNzxxTn5+dr9OjRys3N1YsvvlhqcLtQWlqaJF10mYeisbBFx11KdHTx7vbJkydrypQpZagaAAAAnio9J1+PfvSL7I7CTpFH+jVXp0bhJleFqmD69OmaOnWqy69T7pBnGIZ27typiRMn6h//+IdatGihdu3aqX379s6vunXruqLWEhwOh+69916tXr1aY8eO1ejRoyvlukWSkpKKPSBJLx4AAIB3MwxDE7/YpiNnz0mSOjWsob/0aWZyVagq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1axZU0FBQWrcuLGGDx+upKQks0vzWIZh6PPPP1efPn1Up04dVatWTS1bttSDDz6o/fv3m12e25s/f74efPBBderUSVarVRaLRfPmzbvo8enp6Xr88cfVsGFDWa1WNWzYUI8//jgzEZZTWe97fn6+PvvsM40ZM0atW7dWcHCwQkND1aVLF73++uuy2+2VX7wbK++f9wsdOHBAISEhslgseuihh1xbqIe5kvt+4MABjR071vlvTe3atdWnTx998skn5b4+Syi4qfj4eMXFxSkgIEDDhg1TWFiYPv/8c40cOVIHDx7U008/bXaJHue1117TCy+8oKZNm6p///6qVauWEhMT9eWXX+rLL7/Uhx9+qKFDh5pdpsfbuXOnnnnmGQUHBysrK8vscjyaYRh66KGH9Pbbb6tp06YaNmyYQkNDdezYMa1atUqHDh1ipmEXefLJJ/XKK6+oTp06GjJkiGw2mxISEjRr1ix9+OGH+uGHHxQbG2t2mW5r0qRJOnTokCIiIlSnTh0dOnToosdmZWWpV69e2rJli/r376/hw4crISFB//nPf7Ry5UqtXbtWwcHBlVi9+yrrfd+3b59uv/12hYaGqm/fvho8eLDS0tL0zTff6M9//rMWLVqkr776isnvyqg8f94vZBiG7rnnHhdX57nKe9+XLl2qIUOGSJJuueUWNWnSRGfPntWvv/6qZcuW6Y477ihfAQbcTn5+vtG0aVPDarUamzdvdranp6cbMTExhp+fn7Fnzx4TK/RMn332mbF69eoS7atXrzb8/f2N8PBwIycnx4TKvEdBQYHRuXNn47rrrjNGjRplSDLWr19vdlke67///a8hyfjzn/9sFBQUlNifn59vQlWe7/jx44aPj4/RqFEjIy0trdi+//znP4Yk45577jGpOs+wdOlS4+DBg4ZhGMb06dMNScbcuXNLPfaZZ54xJBlPPfVUqe3PPPOMq8v1GGW970eOHDFef/11Iysrq1h7Zmam0alTJ0OSsXDhwsoo2SOU58/7hf773/8afn5+xiuvvGJIMh588EEXV+pZynPfDx8+bNhsNqN58+bGoUOHSuy/ks9bhmu6oRUrVmjfvn0aMWKEOnbs6GwPDQ3VP/7xDxUUFGju3LkmVuiZbr31VvXo0aNEe48ePdSnTx+dOXNGW7duNaEy7/HCCy8oISFBc+bMka+vr9nleLRz585p6tSpatKkiV599dVS77efH4NBXOHgwYNyOBzq3r27bDZbsX2DBg2SJJ08edKM0jzGjTfeqIYNG172OMMwNHv2bIWEhOiZZ54ptm/ChAmqUaOG3nnnnQpfxNhTlfW+16tXTw8//LCqVatWrD04OFiPP/64JGnVqlUuqdETlfW+X2jv3r2aMGGCnnrqqWI/a6LsynPfn3/+eaWnp+vNN99UgwYNSuy/ks9bPqHdUHx8vCRpwIABJfYVtfGPX+Xy9/eXxA+9rrRt2zZNnTpVkyZNUkxMjNnleLylS5fqzJkzGjNmjOx2u77++mvt2bNH1atX14033qhmzZqZXaLHat68uQICArRu3TplZGQoNDTUue+7776TJPXt29es8rxKYmKijh07pri4uBJDMgMDA9WzZ0999dVX2rt3r5o3b25Sld6Fz1vXczgcuueee9SwYUM988wzWr9+vdkleTTDMLRw4ULVrFlTffv21c8//6xVq1bJ4XCoQ4cO6tu37xWtn8ffEDeUmJgoSaV+oNSoUUMRERHOY+B6hw8f1rJlyxQVFaW2bduaXY5HKigocD6A//e//93scrzCTz/9JKnwB6n27dtr9+7dzn0+Pj567LHH9O9//9us8jxazZo19dxzz2n8+PFq3bq1Bg8erNDQUG3dulXLli3TAw88oHHjxpldple41Ofthe2JiYmEvEoyZ84cSaX/ohsV49VXX9UPP/ygtWvXymq1ml2Oxztw4IDOnDmjzp076+GHH9abb75ZbH/Hjh319ddfq379+uU6L8M13VBaWpokKSwsrNT9NpvNeQxcKz8/X6NHj1Zubq5efPFFhhC6yPPPP+8cpln0W1y4VtFwwJdfflk2m02bNm1SRkaGVq9erRYtWujll1/WG2+8YXKVnuvJJ5/UBx98oLS0NL3xxht68cUX9f3336tz584aNWoUfw8qSVk+by88Dq719ttv6/vvv1ffvn118803m12OR9qzZ48mTZqkRx99VNdff73Z5XiFos/bzZs3a/78+Zo7d67OnDnjnGnzl19+0e23317u8xLygCvkcDh07733avXq1Ro7dqxGjx5tdkkeKSEhQdOmTdOTTz6pa665xuxyvIbD4ZAkBQQE6Msvv1Tnzp0VEhKiHj166NNPP5WPj49efvllk6v0XNOmTdOYMWM0YcIEJSUlKTMzU2vXrlVB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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, 1, figsize=(9, 6))\n", + "ax.plot(MR[:,1]/km , MR[:,0]/Msun, lw=2)\n", + "\n", + "ax.set_ylabel(r\"M [$M_{\\odot}$]\", fontsize=16)\n", + "ax.set_xlabel(\"R [km]\", fontsize=16)\n", + "# ax.set_xlim(8.0, 20.0)\n", + "# ax.set_ylim(0, 3)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Speed of sound EOS \n", + "\n", + "First import all the package that will be used." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import TOVsolver.main as main\n", + "import matplotlib.pyplot as plt\n", + "from EOSgenerators import SpeedofSound_EOS\n", + "import EOSgenerators.crust_EOS as crust\n", + "from TOVsolver.unit import g_cm_3, dyn_cm_2, km, Msun" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Speed of sound EOS describes the core EOS of a compact star, \n", + "so it should be connected with the crust EOS to form a full EOS.\n", + "See https://arxiv.org/abs/1812.08188 for details." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "Tolos_crust_out = np.loadtxt(\"Test_Case/Tolos_crust_out.txt\")\n", + "eps_crust_T_out = Tolos_crust_out[:, 3] * g_cm_3\n", + "pres_crust_T_out = Tolos_crust_out[:, 4] * dyn_cm_2\n", + "eps_com, pres_com = crust.PolyInterpolate(eps_crust_T_out, pres_crust_T_out)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Defining the EOS parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To construct the Speed of sound EOS, we need to specify the outer crust EOS and \n", + "the interface EOS, and then connect them with the core EOS." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "x_last = eps_com[-1]\n", + "y_last = pres_com[-1]\n", + "dydx_last = (pres_com[-1] - pres_com[-2]) / (eps_com[-1] - eps_com[-2])\n", + "CS_EOS = SpeedofSound_EOS.compute_EOS(x_last, y_last, dydx_last)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to generate the parameters of the Speed of sound EOS, we need a list\n", + "of 5 uniform random numbers between 0 and 1.\n", + "\n", + "After generate the parameters, we use function `check_a` to check if the parameters\n", + "are valid." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n" + ] + } + ], + "source": [ + "cs_a = CS_EOS.gen_a((0.2, 0.2, 0.3, 0.4, 0.5))\n", + "print(CS_EOS.check_a(cs_a))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Solve TOV with this EOS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here below we use the speed of sound EOS to compute the mass radius curve.\n", + "\n", + "First we calculate the core EOS." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "core_e_min = x_last\n", + "core_e_max = 2e16 * g_cm_3\n", + "n_core_e = 1000\n", + "core_e = np.geomspace(core_e_min, core_e_max, n_core_e)\n", + "core_p = CS_EOS.cal_core_p(core_e, cs_a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we concat the core EOS with the crust EOS." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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xgMDA9W2bVutWrXKFa3bCA4OVlhYmFavXn1V18XExGj48OHKysqSv7+/Jk6cqJ49eyo7O1sLFizQJ598on379ql///6KioqSv7//Ze+Zn5+v++67T7m5uZo2bdplw565c+fKarXqgQceKPZgCACAssxqNTRn8x+a9sM+5RVY7erhwZX1aPdGujmsprw8TDsIFgAA4JqZdlqZ1WrVs88+qx9//FGNGzfW888/r1atWqlixYo6fvy4tm7dqmXLlmnbtm021508eVI//vijy/qcPHlyUbBVs2ZNHTp0SA0bNryqe4wdO1ZZWVny8PDQ6tWr1blz56Jar1691KRJE02YMEHx8fGaPn26Jk+efMn7Wa1WPfjgg9qwYYMefvhh3XfffZedP3fuXFksFj344INX1TsAAOXZkbPZev6bGP1y8JRdzcPNonG9Q/VYj8Zyd2OlEAAAKL1c8liZIzNnztS4ceMUERGh9evXX/SkraioKD399NPaunWr/P39dddddyk+Pl7r1693ccd/+ms4dCWPlUVFRSkiIkKS9Oijj+rjjz+2m2O1WtWyZUvt3btXVapU0YkTJ4r2ErqQYRh66KGHNGfOHN1777367LPP5OZ26Z9S/vDDD7r11lt18803a82aNVfwLq8ej5UBAMoSwzC0NPqIJn+3W+k5BXb1JjX89f6IcLWsW8mE7gAAQHnmjM/fpq19/vTTT2WxWDRx4sRLHsHesWNHbdq0SaNGjVJGRoYOHjxoWjB0LZYuXVr0+oEHHnA4x83NTaNGjZIknTlzRuvWrXM4z2q1asyYMZozZ47uuusuzZs377LBkMRG1AAAXI0zmXl68sudGrcwxmEwNKZrQy1/qivBEAAAKDNMC4cOHjwoSapXr95l57q7u2v27Nlq06aNfv75Z3311VfObq/YbNy4UZLk5+en9u3bX3Rejx49il5v2rTJrm61WvXQQw9p7ty5GjFihL744osr2jvo1KlT+u6771S1alXdcccd1/AOAAAoP9btS1HfGRsUGXfMrlanko++fOgGvTyguXw82b8PAACUHabtOeTv76+cnBwlJSWpbdu2l53v4eGhp556Sg899JC++uor3XXXXS7o8vrt3btXkhQSEnLJ4+abNWtmd81551cMzZs3T8OGDdP8+fOveFPpL774Qnl5ebr33nsvuULrcpKTky9ZP3bM/pto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8803ysnJUWBgoG666Saz47iFr6+vIiMj9b//+7968cUX9emnn+qdd94xOxYAAB6FcggAAFjO3r179cQTT6hLly6qUaOG/P39Va9ePbVr10733HOPZs2aZXbEcjEMQ++//75uueUW1atXTyEhIerYsaNmz56twsJC5eTkyMfHRzabTTNnziz1dYqvN9S7d28FBweXui41NVXTp09XXFycGjRooICAADVs2FDXX3+9pk2bpt27d7s8Z//+/Y4LXX/wwQeSpKVLl6pfv34KDw9XaGioOnfurAULFsgwDMfz8vLyNH/+fN1www2qW7eugoKCdO211+qzzz4r999T3759Jf1+ZzIAAPBfXHMIAABYyvTp0/WXv/xFRUVFTuNpaWlKS0vTrl27tGHDBj3++OMmJSyf1NRUDRw4UOvXr3ca3759uyZNmqSvvvpKL730kqNw6dixY4mvYxiGVq5cKenSp5S9+uqreu6555STk+M0fuLECZ04cULr16/XqlWr9PPPPzvNb9261fG4cePG6tevn9MFt4vXjBkzRseOHdPUqVO1d+9eDRs2zOm5kvTLL79o4MCBWrp0qYYMGVJq1osdP35ckkq81T0AAFbGT0YAAGAZc+fO1ZQpUyRJnTp10ujRo9WhQwdVr15dp06d0tGjR7VhwwbVqlXL5KRlk5mZqRtvvFG7d++WzWbTPffco+HDh6tRo0Y6ePCgXn75Zf3rX/9Sbm6u4zmdOnUq8bU2bdrkKE8GDBhQ4pqxY8cqISFBktSkSRONHTtW3bt3V61atfTbb79pzZo1SkxMVNeuXV2eu23bNsfjJ598Utu3b9fEiRN1++23Kzg42FFi5efn6+WXX9bgwYPVp08f5efn64UXXlDv3r1VVFSkDz/8UHPmzJEk/eUvf3Eph7Zu3armzZurRo0aTuNnzpxx/Nv379//Un+tAABYDuUQAACwjJdeekmSdPfdd2vp0qXy8XE9w/7BBx+s7FhXbPz48dq9e7f8/Pz0ySefOB3x06VLF/Xr109t27bV999/L0mqX7++IiIiSnyt4ruUderUSY0bN3aZf/nllx3F0MiRI/XOO+8oICDAaU2/fv307LPP6siRIy7Pv/Don/3792v9+vVORVW3bt2Ul5enl19+WXl5eerevbsiIiL0zTffqFGjRo51N9xwg06cOKFPP/1Ue/bsUVpamurWreuYT0xMVEJCguLi4tSsWTOFhITo8OHDWrlypTIzM3X33Xfr3nvvLe2vFAAAS+KaQwAAwBLOnTuno0ePSpJuueWWEoshb7J27Vq99957kqRp06aVeCpYSEiIHnvsMcfHpR01JP33ekMlvc6vv/6qqVOnSvq9AEpMTHQphooFBwerbdu2LuMXHjmUkJBQYpY+ffo4Hufm5mrp0qVOxVCxCy+WnZGR4TQ3ePBgDRkyRPv379fixYs1a9Ysff/99+rRo4fef/99ffTRR17/bw8AgLtx5BAAALCE0NBQ1alTR6dPn9YLL7yg2rVrq1evXqpTp45sNpvZ8crthRdekCQ1bdpUTz/9dKnr2rVr53hc2vWGUlJStHnzZkkll0OTJ09WUVGRQkNDtWjRonKXK2fOnHEq5u66664S1/n6+joe/+lPf1L79u1LXGe32x2PLz59rEePHurRo0e58gEAYHX8twkAALAEHx8fJSYmKjg4WMeOHdPgwYNVr149x128lixZYnbEMjtx4oS++eYbSdJDDz10yQssX1ielHbkUPFRQxEREYqOjnaaO3nypP71r39JkiZMmKD69euXO++FRw0NGzas1HX79u0r07r9+/dLksLCwpxOKQMAAFeGcggAAFhG37599fbbb5dYKHTo0MGERFemuKyRpFtvvfWSa8+cOeN4XNqRQ8XXG7rttttcjqJasWKF405n5bkz2IUuvN7QpfIWl0j16tVTTEzMZdd5078ZAACejNPKAACAJWzevFkjR47Url271KdPH91///1q3ry5atasKUmKiooyN2A5FJctAQEBpZ56VWznzp2SpMDAwBKvBZSTk6PvvvtOUsmnlO3YsUOS5O/v73JUUVkVlzkNGzZUeHh4qeu2bNki6dLXRrrw9S63DgAAlA3lEAAAqPIOHz6sPn36KD09XW+88YYefvhhsyP9ISdPnpT0+xE2l/P1119L+v3aQxde06fYN998o5ycHAUGBjpd6PnizxUeHn7F12YqLrM6d+5c6hrDMMpU+hw5ckRnz5697DoAAFB2nFYGAACqvOnTpys9PV3XXnut1xdDkpSXlyfp9zuwXUpycrLjNvalFSnFp5T17t1bISEhLvO5ubmSpPz8/CvKWlBQoN27d18yg/T7dYQyMzMlXbpEuvAUNcohAADcg3IIAABUeWvWrJEktWrVyuQk7lF8Uehz58457gJ2MbvdrkceecRxvaCSrjdkGIZWrlwpqeRTyqTfTwWTpNTUVB05cqTcWXft2uUoli5V+hSfUiZduvQpLof8/Px0zTXXlDsPAABwRTkEAACqvOzsbEnS999/r7S0tFLX5ebmOo7K8WTdunVzPJ4+fbrLfFFRkR555BHHHc2kkguXTZs26fjx45KkAQMGlPi54uLiHI///Oc/O8qmixUUFDjdbazYhXcqK8sRQUFBQWrTpk2p64pfr23btgoICCh1HQAAKDuuOQQAAKq866+/XocPH9bx48d17bXX6tFHH1V0dLRCQkL022+/6fjx4/rhhx+0fPlyHT161ONLhyFDhuipp57S2bNn9dZbb6mgoED33nuvQkNDtWvXLr355pvauHGjmjZt6jjap6Q7exXfwr5Tp05q3LhxiZ9r0KBBatu2rZKTk7VkyRIdO3ZMY8eO1VVXXSXDMHTo0CGtWbNGy5Yt0+TJkzVx4kSn5xeXPjVq1FDz5s1L/ZqKjxzq0KFDiddGuvj1OKUMAAD3oRwCAABV3vTp07V+/XodOnRIBw4ccCkwirVu3VrVq1ev3HBXICwsTAkJCRo2bJgKCwuVkJCghIQEx7yvr6+mTJmi7OxszZ49W1FRUapRo4bL6xRfb6i0U8qk30/f+uyzz9S/f38dOHBAq1ev1urVq0tcW1Jhc+FFpi91QeuylD7nzp3TwYMHL7sOAACUD+UQAACo8po1a6YdO3Zo3rx5WrFihX799VedPXtW1apVU3h4uFq0aKEePXqof//+Zkcts0GDBmnNmjV68cUX9dNPPyk3N1eNGjVSnz599NBDD6ljx47q2rWrJOmGG25weX5KSorjaJ1LlUOS1KZNG23dulXz5s3T8uXL9euvv+r8+fOqU6eOGjZsqG7duun2229Xjx49XJ5bljuQ/fbbb467ol1q3fbt2x2ntVEOAQDgPjajtBPHAQAAUOni4+O1aNEiNWvWTIcOHbri19m5c6fat28v6ffb1ffp08dpfu7cuRo/frwiIiJ0/PjxK75NfVVV/Pfx3HPPadq0aeaGAQCggnHkEAAAgAcqKCjQzp07HR9fddVV8vf3L9Nz7Xa7Jk2aJOn3o3569+7tsqb4ekO33XYbxZCkrKwsxylrAABYDeUQAACABzp+/LjjyB9JOnjwoCIjIyVJ//nPf9SyZcsSn5ebm6uHHnrIcaey1157rcTyp2fPnuratavuvPNO94f3QklJSU53ZgMAwEoohwAAALzMkCFDFBAQoOHDh6tTp06qUaOGzp49q59//lnvvPOO4wiYxx9/vNTrCU2ePLkyIwMAAA/GNYcAAAC8SGFhoUJDQ5WXl1fqGj8/P02bNk1TpkzhlDEAAHBZlEMAAABepLCwUMuWLdPnn3+uLVu26NSpU8rIyFBYWJhatWqlPn36aPz48WratKnZUQEAgJegHAIAAAAAALAwH7MDAAAAAAAAwDyUQwAAAAAAABZGOQQAAAAAAGBhlEMAAAAAAAAWRjkEAAAAAABgYZRDAAAAAAAAFkY5BAAAAAAAYGGUQwAAAAAAABZGOQQAAAAAAGBhlEMAAAAAAAAWRjkEAAAAAABgYZRDAAAAAAAAFkY5BAAAAAAAYGGUQwAAAAAAABZGOQQAAAAAAGBhlEMAAAAAAAAWRjkEAAAAAABgYZRDAAAAAAAAFkY5BAAAAAAAYGGUQwAAAAAAABZGOQQAAAAAAGBh/x95MQdU8vZ5DQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "full_e = np.concatenate((eps_com, core_e[1:]))\n", + "full_p = np.concatenate((pres_com, core_p[1:]))\n", + "plt.figure(dpi=200)\n", + "plt.plot(full_e / g_cm_3, full_p / dyn_cm_2)\n", + "plt.xscale(\"log\")\n", + "plt.yscale(\"log\")\n", + "plt.xlabel(r\"$\\epsilon\\quad [g/cm^3]$\")\n", + "plt.ylabel(r\"$P\\quad [dyn/cm^2]$\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally we compute the mass radius curve." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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//33MpvNni4VKJDdbs8W/tx+++166aWX1LBhQyUkJGjjxo16//33lZSUpMmTJysiIkKvvPKKh6tGRRcZGalGjRpp1apVRb729ddfd4Y/d911l0aOHKn69evryJEjevfdd7Vjxw59+umnCgsL01tvvVXapQNuFeeZvnLlijP8ad26tbp06aJmzZqpWrVqOnfunBYsWKAZM2YoISFBffv2VaVKlfTwww+X1VsAnEryMzqnHTt2aMqUKfLz85PZbHYbeAJlqSTPs81mU48ePbRixQpJUtu2bfXkk0+qUaNGMplMOn78uHbt2qX58+eXdtkoKgfgxv79+x2+vr4OSY62bds6Ll26lGdbq9V6HSsDiufbb791SHJIcrRq1cpht9tztdm2bZvDbDY7JDmqVq3qSEtL80ClqOjGjBnj+P777x1//fWXw+FwOI4dO+Z8dvv371+oPg4fPuwwmUwOSY5mzZo5kpOTs51PSkpyNGvWzCHJYTKZHH/88Udpvw3AqaTP9C+//OLo3bu3Y9++fXm2WbRokcNgMDgkOerXr+/IyMgorfKBbErjZ3ROdrvd0bRpU4ckx5tvvumoXbu2Q5Kjdu3apVc44EZpPc9vvPGG87pJkybl29Zms5WkZJQQawDBreHDh8tqtSo0NFQLFixQ5cqV82xrsViuY2VA8fzyyy/O41dffVU+Pj652jRt2lRdunSRlDmt4ODBg9etPiDLuHHj1KVLlxINy548ebLsdrsk6cMPP5S/v3+28wEBAfrwww8lZY6OmzJlSrHvBRSkpM/03//+d3399de69dZb82zTvXt39ezZU5J05MgR7dy5s1j3AgpSGj+jc5o6daq2b9+uhg0batSoUaXWL1CQ0niejx49qgkTJkiSBgwYoJdffjnf9swe8SwCIORy8OBBrVmzRpL03HPPKTQ01MMVASVns9mcx/Xq1cuzXf369Z3HVqu1TGsCyoLD4dDixYslSbfccotatmzptl3Lli3VsGFDSdKiRYtyzdcHypv77rvPeXzkyBEPVgIU3vHjxzVmzBhJ0rRp0/jDKsqdTz/9VGlpaTIYDM5nGTcuAiDk4jo3s1evXs7jixcv6vDhw7kWhAbKg6ioKOfx0aNH82yX9aHBYDCoQYMGZV4XUNqOHTumkydPSpLat2+fb9us83Fxcfrzzz/LujSgTLmG9kYjv+KifBg2bJiSkpLUr1+/bCEmUF5kfXZs1qyZ6tatK0nKyMhQXFycjh07ppSUFE+Whxz4vyNyydoGu3LlymrUqJG+/PJL3XHHHQoJCVFUVJRCQ0NVr149jRs3TomJiR6uFiicPn36KDg4WJI0ceJEpaen52qzY8cOLVu2TJL02GOPOdsD5cmBAwecx7fccku+bV3Pu14HlEfr1q1zHhf07AM3gnnz5mn58uWqWrWqJk2a5OlygCI7d+6c8w+rrVq10pUrV/TCCy8oNDRUkZGRqlevnoKDg9W+fXvn79jwLAIg5LJ//35JUp06dTR8+HA98cQT2r17d7Y2x44dU3R0tFq1aqVTp055okygSMLCwjR79mz5+/vrl19+0T333KM5c+YoJiZGq1ev1rhx49S+fXvZbDbdeeed+uCDDzxdMlAssbGxzuNatWrl2zYyMtLtdUB5s2vXLueHi9tuuy3f9YKAG8HFixf1wgsvSJImTJig8PBwzxYEFEPW50ZJ8vf31913362pU6fq4sWLztftdrvWr1+vLl266KWXXvJEmXBBAIRcLly4IClzLaD//ve/qlKliqZPn66zZ88qNTVVW7dudW6vunfvXvXq1UsZGRmeLBkolB49emjbtm0aNGiQdu7cqf79+6tVq1bq0KGDoqOjFRAQoA8++EAbN25UjRo1PF0uUCyuWwcHBQXl2zYwMNB5zIhOlFdWq1WDBw92jux8++23PVwRULBXXnlFZ86cUatWrfT00097uhygWLI+N0rSlClTdOTIEf3973/XunXrlJycrAsXLujLL79URESEpMxNKqZPn+6pciECILiRlJQkKfMXKh8fH61YsUJDhgxRWFiYfH191axZMy1dutQZAm3atEkLFizwZMlAoaSlpemrr77S999/73bB2zNnzmju3Llau3bt9S8OKCWpqanO44IWE/X19XUeM0cf5dVzzz2nbdu2SZL69++vbt26ebgiIH/r16/X//73P5lMJk2fPl0Gg8HTJQHFkvW5Ucr87Ni0aVOtWbNG7dq1k7+/v6pWraq+fftq3bp1zj86jRkzht85PIgACLn4+fk5j3v16uV2Bxmj0aj33nvP+f3cuXOvS21AcSUlJemBBx7Q+PHjdf78eY0cOVIHDhyQ1WrV5cuXtWrVKrVp00Zbt25V165dNXXqVE+XDBSL689w193v3HFdNDfnVvFA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6tVLcXFxevXVV/XQQw8pICBAGzdu1NixY3XlyhUNGjRIzZo1U5cuXZSSkqLx48erffv2MpvNWrlypcaPHy+r1aqBAwfq8OHDslgs1/HdAgDgOQRAAADAK0yaNMl5/Oijj7ptM3jwYI0dOzbXzk533323unfvruHDh6tly5Y6efKk3n77bX3++ee5+nj22Wdlt9tlNpu1atUqtWvXznmuefPm6tmzp1q2bKldu3aV0jsrnm+//VYZGRkKDAzU5s2bVb169Wzn27Rpo4EDB+ry5csKCAjwSI3z5s3Tk08+qbS0NN1zzz1asWKFqlWrlu81O3fu1Lp169SiRQvna82aNVNUVJQ6d+6shIQEtWjRQg6HQ1u2bFH9+vWd7Zo3b67Q0FA9++yzOnHihJYtW5bvSC8AALwJawABAIBy6/z589q4caM6deqkuXPnSpJatWqlxx57zG37OnXq5Lutd61atfTKK69Iktu1cbZs2aLt27dLkoYMGZIt/Mly00036f333y/W+ylNf/31lyQpKioqV/jjqnLlyjIar/+vhNOmTdPjjz+utLQ03X///frpp58KDH8k6YUXXsgW/mTp1KmTateuLUk6d+6c3nrrrWzhT5aBAwfKz89PkrRhw4YSvgsAAMoPAiAAAFBujBs3zrkYsMFgUGhoqNq2basVK1bIZDLpiSee0MqVK/MNeVxduXJFx44d0759+7R3717t3bvXORom65yr1atXO48HDhyYZ789evRQlSpViv4GS1FERISkzKlxW7Zs8WgtOY0fP17Dhg1TRkaGHnnkES1fvrzQaxDlFe5J0u233y4pc4Ht3r17u23j7+/vXF/o6NGjRawcAIDyiwAIAAB4haioKI0cOVLBwcH5tjt+/LiGDx+uOnXqqHLlyqpXr54aN26sJk2aqEmTJnrmmWecbePj47Ndu2fPHkmZ285nhQ3umM1m3XXXXSV4NyXXp08fmc1mWa1WtW7dWl27dtX06dO1b98+j+769dJLL+n111+XJA0YMEDffvutfH19C319VFRUnueyQrfQ0FBVrVq1wHYJCQmFvi8AAOUdARAAACg3hg4dqj179mjPnj3asWOHli1bpiFDhshsNmv//v269957dejQoTyvX7FihW699VZ99NFHOn78eIH3S0lJyfb9xYsXJUkhISF57jSWJb9pV9fDLbfcorlz56pq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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "MR = main.OutputMR(\"\", full_e, full_p)\n", + "plt.figure(dpi=200)\n", + "plt.plot(MR[:, 1] / km, MR[:, 0] / Msun)\n", + "plt.xlim(6, 17)\n", + "plt.ylim(0, 2)\n", + "plt.xlabel(\"Radius [km]\")\n", + "plt.ylabel(\"Mass [Msun]\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## MIT bag model EOS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The MIT bag model, which has commonly been applied to strange quark stars, relates pressure to energy density with the simple equation of state $p=\\frac{\\epsilon}{3}-\\frac{4B}{3}$. There is only one parameter, the \"bag constant\" $B$. This represents the vacuum energy density, which creates a \"bag\" in which quarks are confined. See [Chodos et al. (1974)](https://doi.org/10.1103/PhysRevD.9.3471)." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from EOSgenerators import MITbag_EOS\n", + "from TOVsolver.unit import MeV, fm, g_cm_3, dyn_cm_2, km, Msun" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Defining the parameter" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A \"typical\" value of 57 $MeVfm^{-3}$ for the bag constant is taken from [Alcock (1986)](http://dx.doi.org/10.1086/164679)." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "energy density range: 1.1554421785237932 to 2.888605446309483\n", + "pressure range: 0.0 to 0.5777210892618965\n" + ] + } + ], + "source": [ + "B = 57\n", + "\n", + "epsilon,p = MITbag_EOS.MITbag_compute_EOS(B)\n", + "\n", + "print('energy density range:',epsilon[0],'to',epsilon[-1])\n", + "print('pressure range:',p[0],'to',p[-1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Computing the mass-radius relation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can compute a mass-radius relation for this EOS by solving the TOV equation." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import TOVsolver.main as main\n", + "import TOVsolver.EoS_import as EoS_import\n", + "from itertools import repeat" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "MR = main.OutputMR('',epsilon,p).T" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAAJOCAYAAAAK+M50AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACBfklEQVR4nOzdd3hUVf7H8c+kTXpICJ1A6CX0ptIjAgqKWOmKIoq7uiu2XUQFVhTLVhc7CgiLgAr+XFYRAQMGAamhdxJCqKEkISGTZHJ/f2CGDAmQkHIzk/frefKYe277DkNwPjnnnmMxDMMQAAAAAMAteJhdAAAAAACg9BDyAAAAAMCNEPIAAAAAwI0Q8gAAAADAjRDyAAAAAMCNEPIAAAAAwI0Q8gAAAADAjRDyAAAAAMCNeJldQGWQm5urY8eOKSgoSBaLxexyAAAAALggwzCUlpam2rVry8Pj6v11hLxycOzYMUVERJhdBgAAAAA3kJiYqLp16151PyGvHAQFBUm69GYEBwebXI2UmpqqiIiIClMPyg/vfeXFe1958d5XXrz3lRfvvfvKe2/z8sXVEPLKQd4QzeDg4Ar1g1bR6kH54b2vvHjvKy/e+8qL977y4r13X9d7BIyJVwAAAADAjRDyAAAAAMCNEPIqIavVqkmTJslqtZpdCsoZ733lxXtfefHeV16895UX7z0shmEYZhfh7lJTUxUSEqKUlJRrjou22+3Kzs4ux8qAisnb21uenp5mlwEAAFChFDVXMPFKBWAYhk6cOKHz58+bXQpQYVSpUkU1a9ZkbUkAAIBiIuRVAHkBr3r16vL39+dDLSo1wzCUkZGhU6dOSZJq1aplckUAAACuhZBnMrvd7gh4VatWNbscoELw8/OTJJ06dUrVq1dn6CYAAEAxMPGKyfKewfP39ze5EqBiyfuZ4DlVAACA4iHkVRAM0QSc8TMBAABwY1wq5CUlJemf//yn+vXrp3r16snHx0c1a9bUfffdp/Xr1xfrWrm5uZo+fbratGkjPz8/VatWTQ8++KD2799/1XM2bNigAQMGKDQ0VAEBAerSpYvmzZtX0pcFAAAAAKXGpULev//9b40fP16HDh1S37599dxzz6l79+76v//7P3Xt2lULFy4s8rXGjRunp59+Wna7XU8//bQGDBigb7/9Vp07d9auXbsKHB8TE6Pu3bvr559/1v33368nn3xSycnJGjFihN54443SfJlAmXnvvfcUGRkpLy8vvfDCC2aXAwAAgLJguJCvv/7aWL16dYH21atXG97e3kZYWJiRmZl53eusXLnSkGT06NHD6fjly5cbFovF6Nmzp9Px2dnZRqNGjQyr1Wps3rzZ0Z6ammpERUUZXl5exr59+656v5SUFEOSkZKSUmDfxYsXjV27dhkXL168bt0VzcMPP2xIcnyFhYUZ/fv3N+Li4srsnpMmTXK6pySjRo0ajv3169cvsF+S8bvf/e66137vvfeMyMhIw2q1Gh06dCjwd+16+wuT92f0xBNPFNj35JNPGpKMhx9++Pov3DCMO++80+jTp0+h+3755RdDkrFp06arnr99+3bDy8vLWLJkiXHs2DEjPT29SPe9mg4dOhhRUVEFvpKSkgoc+/777xutW7c2goKCjKCgIOPmm282vvvuu2te35V/NgAAAMrCtXJFfi7Vk3fvvfeqR48eBdp79Oih6OhonT17Vtu3b7/udT755BNJ0tSpU2W1Wh3tffr0Uf/+/bV69Wrt27fP0b5y5UodPHhQw4cPV/v27R3tQUFBeuWVV5STk6OZM2eW5KW5rNtvv13Hjx/X8ePHtWLFCnl5eenOO+8s03tGRUU57nn8+HGn93zDhg1O+3788UdJ0gMPPHDNay5YsEDPPPOMJk6cqC1btqhHjx664447dOTIkSLtv5aIiAjNnz9fFy9edLRlZmbqiy++UL169Yr8useMGaOVK1cqISGhwL7PPvtM7dq1U4cOHa56/rfffquOHTtq4MCBqlWrVokn+9m0aZN27NhR4Kt27doFjq1bt67efPNNbdy4URs3btStt96qu+++Wzt37ixRDQAAACjIpULetXh7e0uSvLyuvypETEyMAgIC1K1btwL7+vfvL0latWqV0/GS1K9fvwLH57XlP74ysVqtqlmzpmrWrKl27drpT3/6kxITE3X69Okyu6eXl5fjnjVr1lS1atUc+6pVq+a0b8mSJWrUqJF69ep1zWv+/e9/15gxY/TYY4+pRYsW+uc//6mIiAh98MEHRdp/LR06dFC9evW0aNEiR9uiRYsUERHh9EsD6dIacW+//bYaNmwoPz8/tW3bVl999ZUk6c4771T16tU1a9Ysp3MyMjK0YMECjRkz5qo1NGrUSBMnTtT69etlsVg0atQoxcfHy2KxaNGiRerZs6f8/PzUsWNHxcfHKyYmRl26dJG/v7/jFyglcdddd2nAgAFq2rSpmjZtqtdff12BgYFat25dia4LAACAgtwi5B05ckTLly9XzZo11bp162sem56eruPHj6tBgwaFrr3VpEkTSXKagCXv+7x9+YWGhio8PPyaE7bkSU1Ndfqy2WzXPceVXLhwQf/5z3/UuHHjq67598YbbygwMPCaXz///PM177N//37Vrl1bDRo00NChQ3Xo0KFCj8vKytLcuXP16KOPXnOmxqysLG3atKlAiO/Xr59++eWX6+4vikceecSpt/ezzz7To48+WuC4l19+WTNnztQHH3ygnTt3avz48Ro5cqRWrVolLy8vPfTQQ5o1a5YMw3Cc8+WXXyorK0sjRoy46v3Xrl2rhg0b6p133tHx48f1/vvva+vWrZKk999/X2+88YbWrl2rM2fOaNSoUXrrrbf03nvvKSYmRtu3b9enn35apNdZFHa7XfPnz1d6erpuueWWUrsuAACAu7HZbAUyRFG4/GLo2dnZGjVqlGw2m95+++3rLpqckpIiSQoJCSl0f3BwsNNxRT3n6NGj1601IiLCaXvSpEn685//fN3zKrIlS5YoMDBQ0qUAXatWLS1ZskQeHoX//mDcuHF68MEHr3nNOnXqXHXfTTfdpM8//1xNmzbVyZMnNXXqVHXt2lU7d+4sECy/+eYbnT9/XqNHj77m/ZKTk2W321WjRg2n9ho1aujEiRPX3V8Uo0aN0oQJExy9Z2vWrNH8+fMdvcTSpT+/v//971q5cqUj/DRs2FCxsbH66KOP1KtXLz366KN65513FBMTo+joaEmXAuO9996r0NDQq94/MDBQ8fHx6t69u2rWrClJiouLU2hoqObPn6/w8HBJUnR0tFauXKldu3YpICBAktS5c+civ85r2b59u2655RZlZmYqMDBQixcvVsuWLUt8XQAAAHc1bdo0TZkypdjnuXTIy83N1aOPPqrVq1dr7NixGjVqlNklXVNiYqIjREqXhjrm75HJc9e/Y3U6rfx7+aoFWfXfp7sX65zo6GjHkMWzZ8/q/fff1x133KFff/1V9evXL3B8WFiYwsLCbrjGO+64w/F969atdcstt6hRo0aaPXu2nn32WadjP/30U91xxx2FPiNWmCt7+wzDcGq73v5rCQ8P18CBAzV79mwZhqGBAwc6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psC+H374ocB1Suu+AAAAAFDWXG4x9GbNmikpKUnr1q1Tu3btJDkvSr5z507H0gfJyclKTk5WeHi4wsPDHdfJvxj68uXL5ePjI+nai6EX575XcufF0AEAAACUj6LmCpfqyfPy8tKMGTOUm5urHj166PHHH9fzzz+vtm3baufOnZo8ebJT0Jo+fbpatGih6dOnO10nOjpajz32mH7++We1b99eL774oh5++GENHDhQwcHB+uCDD0p0XwAAAAAwi0uFPOlSQIuNjVX37t21cOFCvf/++6patarmzp2riRMnFvk6H330kd59911ZLBa9++67+t///qe77rpLv/76q1q2bFlm9wUAAACAsuRSwzVdFcM1AQAAAJSUWw7XBAAAAABcGyEPAAAAANwIIQ8AAAAA3AghDwAAAADcCCEPAAAAANwIIQ8AAAAA3AghDwAAAADcCCEPAAAAANwIIQ8AAAAA3AghDwAAAADcCCGvErLZbJo8ebJsNpvZpaCc8d5XXrz3lRfvfeXFe1958d7DYhiGYXYR7i41NVUhISFKSUlRcHCw2eVUuHpQfnjvKy/e+8qL977y4r2vvHjv3VdR31t68gAAAADAjRDyAAAAAMCNeJldQGWQNyI2NTXV5EouyaujotSD8sN7X3nx3ldevPeVF+995cV7777y3tPrPXHHM3nl4OjRo4qIiDC7DAAAAABuIDExUXXr1r3qfkJeOcjNzdWxY8cUFBQki8VidjkAAAAAXJBhGEpLS1Pt2rXl4XH1J+8IeQAAAADgRph4BQAAAADcCCEPAAAAANwIIa8S2bBhgwYMGKDQ0FAFBASoS5cumjdvntlloQwlJSXpn//8p/r166d69erJx8dHNWvW1H333af169ebXR7K2dtvvy2LxSKLxaJ169aZXQ7KweLFi9W3b19VrVpVfn5+atCggYYNG6bExESzS0MZMQxDixYtUnR0tGrVqiV/f381a9ZMTzzxhA4dOmR2eSgFc+fO1RNPPKFOnTrJarXKYrFo1qxZVz0+NTVVzz77rOrXry+r1ar69evr2WefZeZNN8czeZVETEyM+vfvLx8fHw0dOlQhISFatGiRDh8+rNdff10vvfSS2SWiDPz5z3/WW2+9pUaNGqlXr16qXr269u/fr2+++UaGYeiLL77Qgw8+aHaZKAe7d+9W+/bt5eXlpfT0dK1du1Y333yz2WWhjBiGoXHjxunjjz9Wo0aN1L9/fwUFBenYsWNatWqV/vOf/6h79+5ml4ky8Nxzz+nvf/+7atWqpbvvvlvBwcGKi4vTsmXLFBgYqF9++UWtWrUyu0yUQGRkpBISEhQeHq6AgAAlJCRo5syZGj16dIFj09PT1b17d23dulV9+/ZVhw4dFBcXp6VLl6pdu3aKjY1VQEBA+b8IlD0Dbi87O9to1KiRYbVajc2bNzvaU1NTjaioKMPLy8vYt2+fiRWirHz99dfG6tWrC7SvXr3a8Pb2NsLCwozMzEwTKkN5ysnJMTp37mx06dLFGDlypCHJWLt2rdlloQz961//MiQZv//9742cnJwC+7Ozs02oCmXt+PHjhoeHhxEZGWmkpKQ47fvHP/5hSDIeeeQRk6pDafnxxx+N+Ph4wzAMY9q0aYYkY+bMmYUe++qrrxqSjBdffLHQ9ldffbWsy4VJGK5ZCaxcuVIHDx7U8OHD1b59e0d7UFCQXnnlFeXk5GjmzJkmVoiycu+996pHjx4F2nv06KHo6GidPXtW27dvN6EylKe33npLcXFx+uyzz+Tp6Wl2OShjFy9e1JQpU9SwYUP985//LPQ99/LyMqEylLX4+Hjl5uaqW7duCg4Odto3cOBASdKpU6fMKA2l6LbbblP9+vWve5xhGJoxY4YCAwP16quvOu2bMGGCQkND9emnn153UW24JkJeJRATEyNJ6tevX4F9eW2rVq0qz5JQAXh7e0viw56727Fjh6ZMmaKXX35ZUVFRZpeDcvDjjz/q7NmzGjx4sOx2uxYtWqQ333xTH374oQ4cOGB2eShDTZo0kY+Pj9asWaO0tDSnfd99950k6dZbbzWjNJhg//79OnbsmLp161ZgSKavr6969uyppKQk/l1wU3y6qwT2798v6dI//lcKDQ1VeHi44xhUDkeOHNHy5ctVs2ZNtW7d2uxyUEZycnI0evRotWjRQn/+85/NLgflZOPGjZIu/QKnbdu22rt3r2Ofh4eHxo8fr7/+9a9mlYcyVLVqVb3++ut64YUX1KJFCw0aNEhBQUHavn27li9frscff1xPP/202WWinFzr81/+9v3791/1GLguQl4lkJKSIkkKCQkpdH9wcLCOHj1aniXBRNnZ2Ro1apRsNpvefvtthu+5sTfeeENxcXFav369o+cW7i9vON7f/vY3dejQQb/++qtatGihLVu26PHHH9ff/vY3NWrUSE8++aTJlaIsPP/886pdu7aeeOIJffDBB472rl27auTIkfxbUIkU5fNf/uPgXhiuCVQiubm5evTRR7V69WqNHTtWo0aNMrsklJG4uDhNnTpVzz//vDp06GB2OShHubm5kiQfHx9988036ty5swIDA9WjRw999dVX8vDw0N/+9jeTq0RZmTp1qkaPHq0JEyYoMTFRFy5cUGxsrHJychQdHa1FixaZXSKAckDIqwTyfoNztd/UpKamXvW3PHAfhmFo7Nixmjt3rkaOHKkPP/zQ7JJQhh5++GE1atRIkydPNrsUlLO8f887deqk2rVrO+2LiopSw4YNdfDgQZ0/f96E6lCWVq5cqVdeeUVPPfWUXnrpJdWtW1cBAQHq1q2blixZIj8/P40fP97sMlFOivL5L/9xcC+EvEog/5jrK507d07JycmMxXZzubm5GjNmjD777DMNGzZMs2bNkocHP/7uLC4uTnv27JGvr69jAXSLxaLZs2dLkm655RZZLBZ988035haKUtesWTNJUpUqVQrdn9d+8eLFcqoI5eV///ufJCk6OrrAvmrVqql169Y6cuSIkpOTy7s0mOBan//yt/MZ0D3xTF4l0KtXL02bNk3Lli3T0KFDnfYtW7bMcQzcU25urh577DHNnDlTQ4YM0Zw5c3gOrxIYM2ZMoe2rV6/W/v37NWjQIFWrVk2RkZHlWxjKXN4H/N27dxfYl52drQMHDiggIEDVqlUr79JQxrKysiRJp0+fLnR/XrvVai23mmCeJk2aqHbt2lqzZo3S09OdZtjMzMzU6tWrVbt2bTVu3NjEKlFmTF6nD+UgOzvbaNiwoWG1Wo0tW7Y42vMvhr53717zCkSZsdvtxujRow1JxgMPPMACyDAefvhhFkOvBPr162dIMj755BOn9r/85S+GJGPkyJEmVYay9MUXXxiSjKioKOP8+fNO+2bNmmVIMjp27GhSdSgLLIaOq7EYBisgVgY//fST+vfvL6vVqmHDhik4OFiLFi3S4cOHNXXqVE2cONHsElEGJk+erClTpigwMFB//OMfC10Tb/DgwWrXrl35FwdTjB49WrNnz9batWt18803m10OysjBgwfVtWtXnTp1SgMHDlTz5s21ZcsWrVy5UvXr19e6detUs2ZNs8tEKbPb7brtttsUExOj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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + "ax.plot(MR[1]/km, MR[0]/Msun,lw=2,label=f'B = {B:.2f} MeV $fm^{-3}$')\n", + "ax.set_ylabel(r'M [$M_{\\odot}$]', fontsize=16)\n", + "ax.set_xlabel('R [km]', fontsize=16)\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/.doctrees/nbsphinx/test_EOSgenerators_11_0.png b/.doctrees/nbsphinx/test_EOSgenerators_11_0.png new file mode 100644 index 0000000..2f02446 Binary files /dev/null and b/.doctrees/nbsphinx/test_EOSgenerators_11_0.png differ diff --git a/.doctrees/nbsphinx/test_EOSgenerators_16_0.png b/.doctrees/nbsphinx/test_EOSgenerators_16_0.png new file mode 100644 index 0000000..1c688c9 Binary files /dev/null and b/.doctrees/nbsphinx/test_EOSgenerators_16_0.png differ diff --git a/.doctrees/nbsphinx/test_EOSgenerators_17_0.png b/.doctrees/nbsphinx/test_EOSgenerators_17_0.png new file mode 100644 index 0000000..217aa10 Binary files /dev/null and b/.doctrees/nbsphinx/test_EOSgenerators_17_0.png differ diff --git a/.doctrees/nbsphinx/test_EOSgenerators_28_0.png b/.doctrees/nbsphinx/test_EOSgenerators_28_0.png new file mode 100644 index 0000000..3341c5c Binary files /dev/null and b/.doctrees/nbsphinx/test_EOSgenerators_28_0.png differ diff --git a/.doctrees/nbsphinx/test_EOSgenerators_39_0.png b/.doctrees/nbsphinx/test_EOSgenerators_39_0.png new file mode 100644 index 0000000..fa01f68 Binary files /dev/null and b/.doctrees/nbsphinx/test_EOSgenerators_39_0.png differ diff --git a/.doctrees/nbsphinx/test_EOSgenerators_53_0.png b/.doctrees/nbsphinx/test_EOSgenerators_53_0.png new file mode 100644 index 0000000..43c7bb5 Binary files /dev/null and b/.doctrees/nbsphinx/test_EOSgenerators_53_0.png differ diff --git a/.doctrees/nbsphinx/test_EOSgenerators_55_0.png b/.doctrees/nbsphinx/test_EOSgenerators_55_0.png new file mode 100644 index 0000000..b8ef9ae Binary files /dev/null and b/.doctrees/nbsphinx/test_EOSgenerators_55_0.png differ diff --git a/.doctrees/nbsphinx/test_EOSgenerators_66_0.png b/.doctrees/nbsphinx/test_EOSgenerators_66_0.png new file mode 100644 index 0000000..13acd76 Binary files /dev/null and b/.doctrees/nbsphinx/test_EOSgenerators_66_0.png differ diff --git a/.doctrees/nbsphinx/test_Inference.ipynb b/.doctrees/nbsphinx/test_Inference.ipynb new file mode 100644 index 0000000..12b2412 --- /dev/null +++ b/.doctrees/nbsphinx/test_Inference.ipynb @@ -0,0 +1,425 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## RMF EOS inference pipeline\n", + "\n", + "This is an example notebook about how to use our tools to analysis a observation/nuclear constraint on neutron star equation of stat. \n", + "\n", + "Here in this notebook, we are using a RMF EoS model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#Package we need:\n", + "import InferenceWorkflow.BayesianSampler as sampler\n", + "import InferenceWorkflow.Likelihood as likelihood\n", + "import InferenceWorkflow.prior as prior\n", + "import math\n", + "import numpy as np\n", + "\n", + "from TOVsolver.constant import oneoverfm_MeV, m_rho, m_w,G,c\n", + "import TOVsolver.main as main\n", + "import EOSgenerators.crust_EOS as crust\n", + "import EOSgenerators.fastRMF_EoS as RMF" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We need to define the crust, this crust and interface is unversial for all the equation of state here, we just change the core part of equation of state and that is come from the RMF computation. Crust as below, \"Tolos_crust_out.txt\" is BPS crust model. Then as in README, since that file energy_density and presurssure all in MeV/fm3, so we need some conversion. then just call \n", + "\n", + " ```sh\n", + " crust.PolyInterpolate\n", + " ```\n", + "\n", + "To finish the interface and make it ready to connect with core part" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#Tolos_crust_out = np.loadtxt('Tolos_crust_out.txt', delimiter=' ')\n", + "Tolos_crust_out = np.loadtxt('Tolos_crust_out.txt', delimiter=None, comments='#', usecols=(0, 1, 2, 3, 4))\n", + "eps_crust_out = Tolos_crust_out[:,3] * G / c**2\n", + "pres_crust_out = Tolos_crust_out[:,4] * G / c**4\n", + "\n", + "eps_crust, pres_crust = crust.PolyInterpolate(eps_crust_out, pres_crust_out)\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Set up prior\n", + "\n", + "Next step, we need to set up the prior, first use parameters array to specify the variable name, should consistent with what you need to call them.\n", + "\n", + "Define a prior transform function to define prior. Cube are set of random number from 0 to 1. This prior setting is standard set-up of UltraNest package, since we are using UltraNest to do nest-sampling. We provided \n", + "\n", + "\"normal_Prior\" and \"flat_prior\"\n", + "\n", + "two options call from prior. Here then the Parameters prior should all set\n", + "\n", + "------------------\n", + "\n", + "However, since we are doing Equation of state Inference from mass radius of neutron star measurement. The center density of the star should be also sampled. Otherwise will be a partially-defined prior, did not span all parameters space, and proved to be different with full-scope inference.\n", + "\n", + "This request as randomly generate a density from a EoS range, however, this process is not that trivial, since we need to determine the upper limit of the central density of neutron star --- different equation of state will predict different upper bound, so here we need to use the prior-setting EoS parameters computing the EOS by\n", + "\n", + "```sh\n", + "RMF.compute_EOS\n", + "```\n", + "\n", + "Compute out EOS, put into\n", + "\n", + "```sh\n", + "main.OutputMR\n", + "```\n", + "\n", + "find out Mass Radius of this equation of state, find out the last stable point of this equation of state.(first mass points that give the direvative to be negative)\n", + "\n", + "found out that index by len() function, then reset this max_d to be upper limit of this density range." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "parameters = ['g_sigma', 'g_omega','g_rho', 'kappa', 'lambda_0', 'zeta', 'Lambda_w','d1']\n", + "# for two or more MR measurements, define d2 or more depend on complexity.\n", + "# parameters = ['g_sigma', 'g_omega','g_rho', 'kappa', 'lambda_0', 'zeta', 'Lambda_w','d1', 'd2']\n", + "\n", + "def prior_transform(cube):\n", + " params = cube.copy()\n", + " params[0] = math.sqrt(prior.normal_Prior(107.5, 7.5,cube[0]))\n", + " params[2] = math.sqrt(prior.flat_prior(75,210,cube[2]))\n", + " params[1] = math.sqrt(prior.flat_prior(150,210,cube[1]))\n", + " params[3] = prior.normal_Prior(2.525/oneoverfm_MeV, 1.525/oneoverfm_MeV,cube[3])\n", + " params[4] = prior.normal_Prior(0.0045, 0.0205,cube[4])\n", + " params[5] = prior.flat_prior(0,0.04,cube[5])\n", + " params[6] = prior.flat_prior(0,0.045,cube[6])\n", + " \n", + " g_sigma = params[0]\n", + " g_omega = params[1]\n", + " g_rho = params[2]\n", + "\n", + " kappa = params[3]\n", + " lambda_0 = params[4]\n", + " zeta = params[5]\n", + " Lambda_w = params[6]\n", + " m_sig = 495 / oneoverfm_MeV\n", + "\n", + " theta = np.array([m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa,\n", + " lambda_0, zeta, Lambda_w])\n", + " \n", + " ep, pr = RMF.compute_EOS(eps_crust, pres_crust, theta)\n", + "\n", + " eps_total = np.hstack((eps_crust,ep))\n", + " \n", + " pres_total = np.hstack((pres_crust,pr))\n", + " \n", + " RFSU2R = []\n", + " MFSU2R = []\n", + " density = np.logspace(14.3, 15.6, 50)\n", + " if all(x 20 and MR[1][i] - MR[1][i-1]< 0:\n", + " break\n", + " if len(MFSU2R)==False:\n", + " params[7] = 0\n", + " # params[8] = 0\n", + " # this line for showing how to add one more observation\n", + " else:\n", + " max_index = len(MFSU2R)\n", + " max_d = np.log10(density[max_index-1])\n", + " params[7] = 14.3 + (max_d - 14.3) * cube[7]\n", + " # params[8] = 14.3 + (max_d - 14.3) * cube[8]\n", + " # this line for showing how to add one more observation\n", + " return params" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Set up likelihood\n", + "\n", + "We need to set up a likelihood, Using standard definition way of UltraNest, that is below.\n", + "\n", + "Here the likelihood is generated from a simulated mass radius measurement, which is $M = 1.4 M_{\\odot}$ and $R = 13$ km, With a 5% Mass radius measurement uncertainty, so here \n", + "\n", + " ```sh\n", + " likelihood.MRlikihood_Gaussian\n", + " ```\n", + "function will be use for our likelihood, please check [likelihood.MRlikihood_Gaussian](https://github.com/ChunHuangPhy/EoS_inference/blob/main/InferenceWorkflow/Likelihood.py) to see the original code, and more choice of likelihood.\n", + "eg:\n", + "1. If we have some real mass-radius measurements, say PSR J0030 or PSR J0740, come from NICER, a KDE kernel could be trained to feed into \n", + "\n", + " ```sh\n", + " likelihood.MRlikihood_kernel(eps_total,pres_total,x,d1)\n", + " ```\n", + "set the KDE kernel as a input for this function\n", + "\n", + "2. If we gain measurement from radio-timing, say only measure the neutron star mass, then\n", + "\n", + " ```sh\n", + " likelihood.Masslikihood_Gaussian(eps_total,pres_total,x,d1)\n", + " ```\n", + "Which will give the likelihood from single mass measurement, x is the parameters of that measurement, you should specify where this measurement mass is located and what is the sigma width of this mass measurement\n", + "\n", + "3. If we have nuclear measurements, and want to constrain this RMF model by nuclear properties like K(The Incompressibility of nuclear matter),J ( the symmetry energy at saturation density) and L( the slope of symmetry energy at saturation density). You can choose:\n", + "\n", + " ```sh\n", + " likelihood.Kliklihood(theta,K_low,K_up)\n", + " likelihood.Jliklihood(theta,K_low,K_up)\n", + " likelihood.Lliklihood(theta,K_low,K_up)\n", + " ```\n", + "We are defaulting a hard-cut flat constrain, so if you don't like this default hard cut, also could define the likelihood by youself with similiar style.\n", + "\n", + "4. If we have a Tidal measurements from Gravitational wave detector, we can use it to do constraint:\n", + "\n", + " ```sh\n", + " likelihood.TidalLikihood_kernel(eps_total,pres_total,x,d1)\n", + " ```\n", + "Where x is sampled distribution from real measurements, the standard is \n", + "\n", + "kernel, chrip = x, \n", + "\n", + "where the kernel is a whole set sampling from GW event, that is [chrip mass, M2/M1, tidal of M1, tidal of M2] four quantities. Chrip is the single smapling that comes only the chrip mass sampling.\n", + "\n", + "\n", + "\n", + "5. To calculate the log-likelihood for the pure neutron matter (PNM) equation of state (EoS) using chiral effective field theory (chiEFT) constraints, the function\n", + " \n", + " `likelihood.chiEFT_PNM(EoS_PNM, type=\"Gaussian\", contraint_quantity=\"e\", enlargement=0)`\n", + "\n", + "EoS_PNM is a 3D array of number density (rho), energy density (e) and pressure (p) with unit fm^-3, MeV.fm^-3 and MeV.fm^-3. \n", + "\n", + "compares PNM EoS data with chiEFT-derived constraints for either energy per neutron \\( E/N \\) or pressure \\( p \\),\n", + "depending on the specified `contraint_quantity` parameter (\"e\" for energy or \"p\" for pressure). \n", + "\n", + "The likelihood model can be either \"Gaussian\" or \"Super Gaussian\" with an optional `enlargement` factor for the Super Gaussian to flatten its peak. e.g., 0.05 for 5% enlargement. \n", + "\n", + "The function calculates the sum of log-likelihoods over densities of 0.08, 0.12, and 0.16 fm\\(^-3\\), utilizing energy constraints from Huth et al. (Nature, 2022) and pressure constraints from Hebeler et al. (ApJ, 2013). This enables a statistical comparison of the PNM EoS data against chiEFT-derived reference values." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import scipy.stats as stats\n", + "def likelihood_transform(theta):\n", + " # This is a demonstration code for only introduce one constraint from one mass-radius observation.\n", + " # Could be very easy to implement more constraint from nuclear quantity, since that do not need to\n", + " # sample more central density of real neutron star. If user want to expand to two mass radius measurement \n", + " # the code could be:\n", + " \n", + " # g_sigma, g_omega,g_rho, kappa, lambda_0, zeta, Lambda_w, d1, d2 = theta\n", + " g_sigma, g_omega,g_rho, kappa, lambda_0, zeta, Lambda_w, d1 = theta # comment this line if you need two measuremnts.\n", + " \n", + " ####################################################################################################################\n", + " ############ This is the block to compute out all the EoS you need based on your parameters#########################\n", + " m_sig = 495 / oneoverfm_MeV\n", + " m_w = 3.96544\n", + " m_rho = 3.86662\n", + " theta1 = np.array([m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa, lambda_0, zeta, Lambda_w])\n", + " ep, pr = RMF.compute_EOS(eps_crust, pres_crust, theta1)\n", + "\n", + " eps_total = np.hstack((eps_crust,ep))\n", + " pres_total = np.hstack((pres_crust,pr))\n", + " ####################################################################################################################\n", + " \n", + " # probMRgaussian1 = likelihood.MRlikihood_Gaussian(eps_total,pres_total,(1.4,13,0.07,0.65),d1)\n", + " # probMRgaussian2 = likelihood.MRlikihood_Gaussian(eps_total,pres_total,(2.0,12,0.1,0.6),d2)\n", + " # probMR = probMRgaussian1 + probMRgaussian2\n", + " \n", + " # Same could be extended to more distributions. Notice the prior definition should be change accordingly\n", + " # by define more density parameters like here d2.\n", + " \n", + " #1. This line is to compute MR likelihood from a Simulated MR measurement:\n", + " \n", + " \n", + " probMRgaussian = likelihood.MRlikihood_Gaussian(eps_total,pres_total,(1.4,13,0.07,0.65),d1)\n", + " \n", + " #2. This is a block that constrain from given real MR measurement, say J0030:\n", + " #J0030 = numpy.loadtxt('data/PST_equal_sampled_MR.txt', delimiter=' ')\n", + " #J30R_list, J30M_list = zip(*J0030)\n", + " #J30R_list = numpy.array(J30R_list).T \n", + " #J30M_list = numpy.array(J30M_list).T\n", + " #Rmin = J30R_list.min()\n", + " #Rmax = J30R_list.max()\n", + " #Mmin = J30M_list.min()\n", + " #Mmax = J30M_list.max()\n", + " #X3, Y3 = numpy.mgrid[Rmin:Rmax:500j, Mmin:Mmax:100j]\n", + " #positions = numpy.vstack([X3.ravel(), Y3.ravel()])\n", + " #values = numpy.vstack([J30R_list, J30M_list])\n", + " #kernel3 = stats.gaussian_kde(values)\n", + " #probMRJ0030 = likelihood.MRlikelihhood_kernel(eps_total,pres_total,kernel3,d1)\n", + " \n", + " #3. This is to compute the constraint from experiment of nuclearmatter\n", + " # 250" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import corner\n", + "\n", + "figure = corner.corner(samples,labels=[ r\"$g_{\\sigma}$\", r\"$g_{\\omega}$\",r\"$g_{\\rho}$\",r\"$\\kappa$\", r\"$\\lambda_0$\",r\"$\\zeta$\",r\"$\\Lambda_w$\",\"d1\",\"d2\"],\n", + " smooth=0.9,\n", + " label_kwargs=dict(fontsize=22),\n", + " title_kwargs=dict(fontsize=22),\n", + " quantiles=[0.16, 0.84],\n", + " levels=(1 - np.exp(-0.5), 1 - np.exp(-2), 1 - np.exp(-9 / 2.)),\n", + " plot_density=False,\n", + " plot_datapoints=False,\n", + " fill_contours=True,\n", + " show_titles=True,\n", + " max_n_ticks=3,\n", + " title_fmt= '.2f')\n", + " #,range=[(10,80),(0.56,0.64),(0.10, 0.2),(150,600),(40,80),(50,75)])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + }, + "vscode": { + "interpreter": { + "hash": "e4481115b400f107b26d360e6549f546bb0e8bc1af70e4e66085bfa77a017a39" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/.doctrees/nbsphinx/test_Inference_11_0.png b/.doctrees/nbsphinx/test_Inference_11_0.png new file mode 100644 index 0000000..ad4ba2e Binary files /dev/null and b/.doctrees/nbsphinx/test_Inference_11_0.png differ diff --git a/.doctrees/nbsphinx/test_TOVsolver.ipynb b/.doctrees/nbsphinx/test_TOVsolver.ipynb new file mode 100644 index 0000000..6a479e3 --- /dev/null +++ b/.doctrees/nbsphinx/test_TOVsolver.ipynb @@ -0,0 +1,260 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## TOVsolver module guide\n", + "\n", + "TOV solver part we have multiple function, we can generate a Mass radius function from 'Test_EOS.csv' file here easily" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mass Radius file will be generated and stored as 2-d array. The first column is Radius, second one is mass\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "data": { + "image/png": "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R49KEwfCOk79fSAQv0vym0YNNG3aVE888YQeeughdenSRVdffbViYmK0ceNGLVq0SBMmTNB9991ndpkwydnWVqy4vuOZ1l+E9b322muSpOHDh5tcCerTs88+q6+++korV66U0+k0uxyYZPfu3crJyVHfvn01ceJEvfTSS5X29+nTRx999JHatGljUoWob3/+85+1cuVKXXfddbrmmmvUsWNHZWVl6b333lNKSooWLFhgdokIgH379mnRokVq0aKFevToISkwv0sS8mrowQcfVKtWrXT33XdXmn2zX79+GjNmjC+Ro/HJzc2VJMXFxVW7v7yLb/lxaJxeeeUVffbZZxoyZIiuvPJKs8tBPdm+fbsee+wx/e53v9Oll15qdjkwUfmwjnXr1mnLli2aM2eOrrnmGuXm5uovf/mLZs2apRtuuEGrV682uVLUl65du2r16tW68cYb9e9//9u3PT4+3jfjJqyltLRUY8eOlcvl0lNPPSW73S4pML9L0l2zhqZPn67bb79dkydPVmZmpgoKCrRy5Uq53W4NHjxY7733ntklAmigPvnkE917771KSUnRvHnzzC4H9cTr9er2229Xq1atNH36dLPLgcnKu2N6PB79+c9/1u233674+HilpqbqlVde0cUXX6w1a9Zo5cqVJleK+vLdd99pwIABSkhI0Nq1a1VYWKhdu3bprrvu0v33368bb7zR7BLhR16vV3feeaeWL1+u8ePHa+zYsQG9HiGvBr788kv98Y9/1L333qtHHnlEbdq0UVRUlPr376///Oc/ioiI0O9//3uzy4RJyv/qcrq/rpSvbXK6v87A2hYuXKjrr79ezZs315dffqmWLVuaXRLqyXPPPafVq1dr9uzZVSbiQeNT8Tvg6quvrrL/qquuklT2iz+sr7S0VKNHj5bNZtMHH3yg888/X5GRkWrXrp2efvppjR49Wu+//76WLFlidqnwA8MwNH78eM2bN09jxoyp0l07EL9LEvJq4JNPPpFUtoj6qZKSktSjRw/t27dP2dnZ9V0aGoCK/aSrc7Z+1rCuzz//XKNGjVJiYqKWLFmi9u3bm10S6tH69etlGIYGDx4sm83me5R/l7z88suy2WwaNWqUuYWiXnTs2NHXNatJkyZV9pdvO3HiRD1WBbNs3bpVu3bt0sUXX1ztH4HKJ/Rbu3ZtfZcGP/N6vbrrrrv0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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import TOVsolver.main as main\n", + "import TOVsolver.EoS_import as EoS_import\n", + "from matplotlib import pyplot\n", + "import matplotlib.pyplot as plt\n", + "import TOVsolver.constant\n", + "from itertools import repeat\n", + "import numpy\n", + "# Main has two functions\n", + "# Output.MRT() returns the mass, radius, tidal\n", + "# OutputC_s() returns the speed of sound\n", + "# Using the main functions with either arrays of density and pressure or a .csv with density and pressure columns\n", + "# Function argument is either (filename = ) OR (density = , pressure = )\n", + "# Example: main.OutputMR(filename = 'file.csv') OR main.OutputMR(density = array1, pressure = array2)\n", + "MR = main.OutputMR(\"Test_EOS.csv\").T\n", + "# Plot the Mass-Radius curve\n", + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + "ax.plot(MR[0], MR[1],lw=2)\n", + "ax.set_ylabel(r'M [$M_{\\odot}$]', fontsize=16)\n", + "ax.set_xlabel('R [km]', fontsize=16)\n", + "ax.set_xlim(8., 20.)\n", + "ax.set_ylim(0,3)\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()\n", + "\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can generate the tidal property from it also,like tidal deformability" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mass Radius and tidal will be generated as the 3-d array. The first column is Radius, second one is mass,last is tidal\n" + ] + }, + { + "data": { + "image/png": "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4/rrrzd+97vfGePHjzfi4+MNSca0adPat/NoE7/73e8MSUafPn2Mu+++23jkkUeMG264wQgPDzfCwsKMv//97x7t2/r3QkKen33zzTdGWFiYkZKSYpSUlHicmz9/viHJGD9+fIB6h7b2/vvvG7t27TIMwzBmz57d4j/qU6ZMMSQZOTk5TR6fMmWKv7sLP/D2Hti3b5/x1FNPGeXl5R7Hy8rKjIsvvtiQZLz66qvt0WW0MV/+HXD3pz/9ybBarca8efMIeUHOl3tgz549RlxcnJGammrs3r270fna2lp/dhV+4ss98POf/9yQZLz99tsex3fv3m3ExcUZUVFRRlVVlb+7jDb2+uuvG+vWrWt0fN26dYbNZjO6dOni8b9rW/9eyHBNP9u1a5ccDofS09MVFxfnce7qq6+WJB06dCgQXYMf/OxnP1NycnKr7QzD0OLFixUbG6spU6Z4nMvNzVVCQoKWLFnS5htjwv+8vQfOOOMM3XfffYqOjvY4HhMTo+zsbEnS2rVr/dJH+Je394C74uJi5ebmKicnRxdeeKGfeob24ss9MGvWLJWWlurpp59W7969G523WlkIPRj5cg/s3LlTFotFV155pcfx3r1769xzz1VlZaWOHTvmj27Cj66//noNHTq00fGhQ4dq+PDhOnz4sLZu3SrJP78XEvL8LDU1VRERESooKGj0f9B3331XkjRixIhAdA0BVFRUpAMHDig9PV0xMTEe5yIjI3X55Zdr//79Ki4uDlAPEUg2m00Sv9x1FA6HQ+PHj1dycnKjD3eENsMw9Oqrr6pr164aMWKEPv74Y82bN09//OMftWrVKjkcjkB3Ee1g4MCBMgyj0arte/fu1WeffabzzjtPp512WoB6B3/48ee8P34v5DcIP+vatatmzpyp3/72txowYICuueYaderUSVu3btWqVat077336sEHHwx0N9HOioqKJJ3Yc/HH3PdibK4NQtezzz4rSRo1alSAe4L2sGDBAv373//W+vXrZbfbA90dtKOvv/5ahw8f1iWXXKL77rtPTz/9tMf5Cy+8UO+884569uwZoB6iPfz3f/+31q9fr+uvv17XXnut+vbtq++++05vvPGGkpOT9eqrrwa6i2hDe/bs0apVq5SYmKjzzjtPkn9+LyTktYOHH35YSUlJmjhxohYuXOg6PmTIEN1xxx2uNI+Oo6Sk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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# try solve tidal property\n", + "MRT = main.OutputMRT(\"Test_EOS.csv\").T\n", + "# Plot the Radius and Tidal curve\n", + "\n", + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + " \n", + "ax.plot(MRT[0], MRT[2],lw=2)\n", + "ax.set_ylabel(r'$\\Lambda$', fontsize=16)\n", + "ax.set_xlabel('R [km]', fontsize=16)\n", + "ax.set_xlim(8., 20.)\n", + "ax.set_ylim(0,1000)\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot out Tidal with mass" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot the Mass and Tidal curve\n", + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + "ax.plot(MRT[1], MRT[2],lw=2)\n", + "ax.set_ylabel(r'$\\Lambda$', fontsize=16)\n", + "ax.set_xlabel(r'M [$M_{\\odot}$]', fontsize=16)\n", + "ax.set_xlim(0., 3.)\n", + "ax.set_ylim(0,1000)\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Can generate the speed of sound from the given equation of state. This do not need to solve TOV equation, the speed of sound is defined by the derivative of P(rho) curve, this quantity is very of interest, since whether there is a upper limit of this speed of sound (except for the casaulity limit c_s < 1 ) is a very interesting and hot topic" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "from TOVsolver.constant import c,G \n", + "# here we plotting out speed of sound with Test_EOS, the density is in g/cm3\n", + "C_s,rho = main.OutputC_s(\"Test_EOS.csv\")\n", + "\n", + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + "ax.plot(rho, C_s,lw=2)\n", + "ax.set_xlabel(r'$\\epsilon$', fontsize=16)\n", + "ax.set_ylabel(r'C_s', fontsize=16)\n", + "plt.xscale(\"log\")\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This package can easily integrated into a Baysian inference flow, to do bayesian inference, Here, we generated several (50) EoSs from RMF model, and try to use a loop to compute out all of their MRT property. That could be a in-between step of doing bayesian inference of neutron star EoS. Remember these EoS could also be polytrope, or anything that generate from your own EoS computation code. Next step for us will be integrate our EoS computation into this package and also the Bayesian analysis." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + }, + "vscode": { + "interpreter": { + "hash": "e4481115b400f107b26d360e6549f546bb0e8bc1af70e4e66085bfa77a017a39" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/.doctrees/nbsphinx/test_TOVsolver_1_2.png b/.doctrees/nbsphinx/test_TOVsolver_1_2.png new file mode 100644 index 0000000..921dc92 Binary files /dev/null and b/.doctrees/nbsphinx/test_TOVsolver_1_2.png differ diff --git a/.doctrees/nbsphinx/test_TOVsolver_3_2.png b/.doctrees/nbsphinx/test_TOVsolver_3_2.png new file mode 100644 index 0000000..6f23414 Binary files /dev/null and b/.doctrees/nbsphinx/test_TOVsolver_3_2.png differ diff --git a/.doctrees/nbsphinx/test_TOVsolver_5_1.png b/.doctrees/nbsphinx/test_TOVsolver_5_1.png new file mode 100644 index 0000000..f8f0634 Binary files /dev/null and b/.doctrees/nbsphinx/test_TOVsolver_5_1.png differ diff --git a/.doctrees/nbsphinx/test_TOVsolver_7_1.png b/.doctrees/nbsphinx/test_TOVsolver_7_1.png new file mode 100644 index 0000000..5779fe8 Binary files /dev/null and b/.doctrees/nbsphinx/test_TOVsolver_7_1.png differ diff --git a/.doctrees/prior.doctree b/.doctrees/prior.doctree new file mode 100644 index 0000000..f6a4b7d Binary files /dev/null and b/.doctrees/prior.doctree differ diff --git a/.doctrees/publications.doctree b/.doctrees/publications.doctree new file mode 100644 index 0000000..edff874 Binary files /dev/null and b/.doctrees/publications.doctree differ diff --git a/.doctrees/speed_of_sound.doctree b/.doctrees/speed_of_sound.doctree new file mode 100644 index 0000000..4b534b3 Binary files /dev/null and b/.doctrees/speed_of_sound.doctree differ diff --git a/.doctrees/starthere.doctree b/.doctrees/starthere.doctree new file mode 100644 index 0000000..4cb19e2 Binary files /dev/null and b/.doctrees/starthere.doctree differ diff --git a/.doctrees/test_Bayesian_inference_MITbag_EOS.doctree b/.doctrees/test_Bayesian_inference_MITbag_EOS.doctree new file mode 100644 index 0000000..cf684fa Binary files /dev/null and b/.doctrees/test_Bayesian_inference_MITbag_EOS.doctree differ diff --git a/.doctrees/test_Bayesian_inference_Strangeon_EOS.doctree b/.doctrees/test_Bayesian_inference_Strangeon_EOS.doctree new file mode 100644 index 0000000..b7d75c1 Binary files /dev/null and b/.doctrees/test_Bayesian_inference_Strangeon_EOS.doctree differ diff --git a/.doctrees/test_EOSgenerators.doctree b/.doctrees/test_EOSgenerators.doctree new file mode 100644 index 0000000..0042f8e Binary files /dev/null and b/.doctrees/test_EOSgenerators.doctree differ diff --git a/.doctrees/test_Inference.doctree b/.doctrees/test_Inference.doctree new file mode 100644 index 0000000..f9c9d57 Binary files /dev/null and b/.doctrees/test_Inference.doctree differ diff --git a/.doctrees/test_TOVsolver.doctree b/.doctrees/test_TOVsolver.doctree new file mode 100644 index 0000000..b57044d Binary files /dev/null and b/.doctrees/test_TOVsolver.doctree differ diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 0000000..e69de29 diff --git a/BayesianSampler.html b/BayesianSampler.html new file mode 100644 index 0000000..fb462bf --- /dev/null +++ b/BayesianSampler.html @@ -0,0 +1,213 @@ + + + + + + + + + Bayesian Inference smapler setup module — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Bayesian Inference smapler setup module

+

Functions to start run Bayesian inference by calling UltraNest package

+
+
+InferenceWorkflow.BayesianSampler.UltranestSampler(parameters, likelihood, prior, step, live_points, max_calls)[source]
+

UltraNest based nested sampler by given likelihood prior, and parameters.

+
+
Parameters:
+
    +
  • parameters (array) – parameters array that want to be constrained.

  • +
  • likelihood (array) – theta as input. likelihood function defined by user.

  • +
  • prior (array) – cube as input, prior function defined by user. please check our test_inference.ipynb

  • +
  • prior. (to check how to define likelihood and)

  • +
  • step (int) – as a step sampler, define this inference want to devided to how many steps.

  • +
  • live_points (int) – define how many live points will be used to explore the whole

  • +
  • space. (parameters)

  • +
  • max_ncalls (int) – define after how many steps the sampler will stop work.

  • +
+
+
Returns:
+

equal weighted samples of whole posteior parameter space, +this run will generate a dirctory as ‘output’, please check the run# folder, and the +chain dirctory, there is a ‘equal_weighted_samples’ file, that is same with flat_samples here. +It will be easier to check if you are using clusters to do this inference.

+
+
Return type:
+

flat_samples (array)

+
+
+
+ +
+
+InferenceWorkflow.BayesianSampler.UltranestSamplerResume(parameters, likelihood, prior, nsteps, live_points, max_calls)[source]
+

UltraNest based nested sampler by given likelihood prior, and parameters. (resume true verion +could restart you run from your previous stopped results)

+
+
Parameters:
+
    +
  • parameters (array) – parameters array that want to be constrained.

  • +
  • likelihood (array) – theta as input. likelihood function defined by user.

  • +
  • prior (array) – cube as input, prior function defined by user. please check our test_inference.ipynb

  • +
  • prior. (to check how to define likelihood and)

  • +
  • step (int) – as a step sampler, define this inference want to devided to how many steps.

  • +
  • live_points (int) – define how many live points will be used to explore the whole

  • +
  • space. (parameters)

  • +
  • max_ncalls (int) – define after how many steps the sampler will stop work.

  • +
+
+
Returns:
+

equal weighted samples of whole posteior parameter space, +this run will generate a dirctory as ‘output’, please check the run# folder, and the +chain dirctory, there is a ‘equal_weighted_samples’ file, that is same with flat_samples here. +It will be easier to check if you are using clusters to do this inference.

+
+
Return type:
+

flat_samples (array)

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/Contributor.html b/Contributor.html new file mode 100644 index 0000000..6f1175b --- /dev/null +++ b/Contributor.html @@ -0,0 +1,226 @@ + + + + + + + + + Call for Contributions — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Call for Contributions

+
+

Introduction

+

If you are interested in contributing to the CompactObject project, please send an email to chun.h@wustl.edu to request collaboration. You can also open an issue on our GitHub repository at Issue page so that the community can track the status of collaborations.

+

We are always eager to expand our scope to include the most equation of state (EOS) computations currently available in the community, as well as the most relevant constraints. If you have your own EOS and wish to contribute, please follow the steps outlined below.

+
+
+

Contributing an Equation of State (EOS)

+
    +
  1. Open an Issue +Visit our GitHub issues page at Issue page and open a new issue to suggest the EOS you would like to contribute.

  2. +
  3. Request Collaboration +Send an email to chun.h@wustl.edu to request collaborator access to the repository.

  4. +
  5. Commit the EOS Script +- Create a .py script that computes the EOS. The script should:

    +
    +
      +
    • Input the EOS parameter values.

    • +
    • Output the pressure and density in CGS units.

    • +
    +
    +
      +
    • For unit conventions, please refer to the UnitConventionForDeveloper.

    • +
    • Name the main compute function as compute_EOS.

    • +
    • Name the file as (YourEOSName)_EOS.py.

    • +
    +
  6. +
  7. Create a Demonstration Notebook +Develop a Jupyter notebook that demonstrates: +- How to compute the EOS. +- Defining your EOS parameters. +- Integrating your EOS with our default TOV solver (main.outputMR). +- Ensuring the TOV solver correctly solves the EOS and outputs a mass-radius curve plot.

  8. +
+
+
+

Contributing Inference Components

+

If you have developed your own likelihood, prior, sampler, or any component related to inference that is suitable for addition to our functionalities, we highly recommend contacting us. Follow these steps to contribute:

+
    +
  1. Open an Issue +Visit our GitHub issues page at Issue page and open a new issue to suggest changes to the inference components.

  2. +
  3. Request Collaboration +Send an email to chun.h@wustl.edu to request collaborator access to the repository.

  4. +
  5. Commit the Inference Script +- Create a .py script within the InferenceWorkflow directory. +- Name the script after the function you are contributing.

  6. +
  7. Create a Demonstration Notebook +Develop a Jupyter notebook that demonstrates: +- How to use your prior, likelihood, or sampler. +- Include sampling outputs to ensure compatibility with the current structure of the package.

  8. +
+
+
+

Guidelines for Key Functions and Permissions

+

The TOVsolver module is fundamental to all inference and computation within CompactObject. Modifying this module requires careful consideration, as changes may necessitate significant code restructuring.

+
    +
  • Permissions: +Only original contributors have permission to modify the TOVsolver code. All commits related to the TOVsolver module require detailed reviews by the original members of the package.

  • +
  • Local Changes: +If you clone the repository locally and need to make changes to the TOVsolver, proceed with caution to avoid extensive code rebuilding.

  • +
+
+
+

Acknowledgements

+

We welcome feedback and contributions to expand the functionalities of CompactObject. Your support helps enhance the tool for the entire research community.

+
+
+

Contact

+

For inquiries, contributions, or to be featured in our publications list, please contact us at chun.h@wustl.edu.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/Cornerplot.html b/Cornerplot.html new file mode 100644 index 0000000..154df0f --- /dev/null +++ b/Cornerplot.html @@ -0,0 +1,148 @@ + + + + + + + + + Postprocessing module: Cornerplot — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Postprocessing module: Cornerplot

+

Function to plot overlapping corner plots with input as two or three 2d posterior arrays

+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/DownloadCompose.html b/DownloadCompose.html new file mode 100644 index 0000000..fb8c600 --- /dev/null +++ b/DownloadCompose.html @@ -0,0 +1,559 @@ + + + + + + + + + Usage of download_compose Module — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Usage of download_compose Module

+

Tianzhe Zhou 2024/11/9

+

CompOSE(CompStar Online Supernovae Equations of State) is a database that provides data tables for different state of the art equations of state (EoS) ready for further usage in astrophysical applications, nuclear physics and beyond.

+

In this notebook, we will demonstrate how to use the download_compose module to download the data from the CompOSE database.

+
+
[1]:
+
+
+
# First, import the class that we need to use
+from EOSgenerators.download_compose import DownloadCompose
+
+# Then, create an instance of the class
+# This will automatically fetch the latest version of all available
+# EOS names and their corresponding download links
+dc = DownloadCompose()
+
+
+
+
+
+
+
+
+DownloadCompose: Fetching data from https://compose.obspm.fr/table
+...
+DownloadCompose: Find 308 EOS data on website https://compose.obspm.fr/table
+
+
+
+
[2]:
+
+
+
# Now, we can print the list of available EOS names.
+# Each EOS name is related to a specific identifier,
+# which we can use later to actually download the EOS data file.
+dc.print_eos_list()
+
+
+
+
+
+
+
+
+id =   1, name = HS(DD2) neutron matter (no electrons)
+id =   2, name = HS(DD2) neutron matter (with electrons)
+id =   3, name = HS(FSG) neutron matter (no electrons)
+id =   4, name = HS(FSG) neutron matter (with electrons)
+id =   5, name = HS(IUF) neutron matter (no electrons)
+id =   6, name = HS(IUF) neutron matter (with electrons)
+id =   7, name = HS(NL3) neutron matter (no electrons)
+id =   8, name = HS(NL3) neutron matter (with electrons)
+id =   9, name = HS(TM1) neutron matter  (no electrons)
+id =  10, name = HS(TM1) neutron matter (with electrons)
+id =  11, name = HS(TMA) neutron matter (no electrons)
+id =  12, name = HS(TMA) neutron matter (with electrons)
+id =  13, name = SFH(SFHo) neutron matter (no electrons)
+id =  14, name = SFH(SFHo) neutron matter (with electrons)
+id =  15, name = SFH(SFHx) neutron matter (no electrons)
+id =  16, name = SFH(SFHx) neutron matter (with electrons)
+id =  17, name = HS(DD2) (no electrons)
+id =  18, name = HS(DD2) (with electrons)
+id =  19, name = HS(FSG) (no electrons)
+id =  20, name = HS(FSG) (with electrons)
+id =  21, name = HS(IUF) (no electrons)
+id =  22, name = HS(IUF) (with electrons)
+id =  23, name = HS(NL3) (no electrons)
+id =  24, name = HS(NL3) (with electrons)
+id =  25, name = HS(TM1) (no electrons)
+id =  26, name = HS(TM1) (with electrons)
+id =  27, name = HS(TMA) (no electrons)
+id =  28, name = HS(TMA) (with electrons)
+id =  29, name = GROM(LS220L) (with Lambdas, no low densities)
+id =  30, name = GROM(LS220L) (with Lambdas, with low densities)
+id =  31, name = LS(LS220) (no low densities)
+id =  32, name = LS(LS220) (with low densities)
+id =  33, name = SFH(SFHo) (no electrons)
+id =  34, name = SFH(SFHo) (with electrons)
+id =  35, name = SFH(SFHx) (no electrons)
+id =  36, name = SFH(SFHx) (with electrons)
+id =  37, name = SHO(FSU1) (no electrons)
+id =  38, name = SHO(FSU1) (with electrons)
+id =  39, name = SHO(FSU2) (with electrons)
+id =  40, name = SHO(FSU2) (no electrons)
+id =  41, name = SHT(NL3) (no electrons)
+id =  42, name = SHT(NL3) (with electrons)
+id =  43, name = BHB(DD2L) (no electrons)
+id =  44, name = BHB(DD2L) (with electrons)
+id =  45, name = BHB(DD2Lphi) (with electrons)
+id =  46, name = BHB(DD2Lphi) (no electrons)
+id =  47, name = SHO(FSU1) (no electrons)
+id =  48, name = SHO(FSU1) (with electrons)
+id =  49, name = SHO(FSU2) (no electrons)
+id =  50, name = SHO(FSU2) (with electrons)
+id =  51, name = SHT(NL3) (no electrons)
+id =  52, name = SHT(NL3) (with electrons)
+id =  53, name = GDTB(DDHdelta)
+id =  54, name = GM(GM1)
+id =  55, name = OPGR(GM1Y4) (with hyperons)
+id =  56, name = STOS(TM1) neutron matter (original version)
+id =  57, name = STOS(TM1) neutron matter (new version)
+id =  58, name = STOS(TM1L) neutron and Lambda matter
+id =  59, name = STOS(TM1) zero temperature (new version)
+id =  60, name = STOS(TM1) zero temperature (original version)
+id =  61, name = STOS(TM1) with Lambda zero temperature
+id =  62, name = STOS(TM1L) with Lambda hyperons
+id =  63, name = STOS(TM1) (new version)
+id =  64, name = STOS(TM1) (original version)
+id =  65, name = OPGR(GM1Y5) (with hyperons)
+id =  66, name = OPGR(GM1Y6) (with hyperons)
+id =  67, name = OPGR(DDHdeltaY4) (with hyperons)
+id =  68, name = APR(APR)
+id =  69, name = BBB(BHF-BBB2)
+id =  70, name = SFHPST(TM1B145), with electrons
+id =  71, name = STOS(TM1) (new version) with electrons
+id =  72, name = STOS(TM1L) with Lambda hyperons and electrons
+id =  73, name = SFHPST(TM1B139) with electrons
+id =  74, name = SFHPST(TM1B155) with electrons
+id =  75, name = SFHPST(TM1B165) with electrons (B165)
+id =  76, name = IOTSY(TM1Y30) Sigma potential 30 MeV
+id =  77, name = IOTSY(TM1Y30pi) with pions, Sigma potential 30 MeV
+id =  78, name = IOTSY(TM1Y90pi) with pions, Sigma potential 90 MeV
+id =  79, name = IOTSY(TM1Y0pi) with pions, Sigma potential 0 MeV
+id =  80, name = IOTSY(TM1Y-30pi) with pions, Sigma potential -30 MeV
+id =  81, name = IOTSY(TM1Y90) , Sigma potential 90 MeV)
+id =  82, name = IOTSY(TM1Y0), Sigma potential 0 MeV
+id =  83, name = IOTSY(TM1Y-30), Sigma potential -30 MeV
+id =  84, name = RG(SLY230a)
+id =  85, name = RG(SLY2)
+id =  86, name = RG(SLY9)
+id =  87, name = RG(SKI2)
+id =  88, name = RG(SkI3)
+id =  89, name = RG(SkI4)
+id =  90, name = RG(SkI5)
+id =  91, name = RG(SkI6)
+id =  92, name = RG(KDE0v1)
+id =  93, name = RG(KDE0v)
+id =  94, name = RG(SK255)
+id =  95, name = RG(SK272)
+id =  96, name = RG(SKa)
+id =  97, name = RG(SKb)
+id =  98, name = RG(SkMp)
+id =  99, name = RG(SkOp)
+id = 100, name = RG(Rs)
+id = 101, name = NL3
+id = 104, name = OMHN(DD2Y)
+id = 105, name = TNTYST(KOST2) variational EoS (with electrons)
+id = 106, name = TNTYST(KOST2) variational EoS (without electrons)
+id = 107, name = TNTYST(KOST2) variational EoS at zero temperature (with electrons)
+id = 108, name = TNTYST(KOST2) variational EoS at zero temperature (no electrons)
+id = 109, name = TNTYST(KOST2) neutron matter (zero temperature)
+id = 110, name = TNTYST(KOST2) neutron matter
+id = 111, name = FYSS(TM1) (no electrons)
+id = 112, name = FTNS(KOST2) variational EoS (no electrons)
+id = 113, name = FYSS(TM1) (with electrons)
+id = 114, name = FTNS(KOST2) variational EoS (with electrons)
+id = 115, name = DNS(CMF) Hadronic (with electrons)
+id = 116, name = DNS(CMF) Hadronic (cold neutron stars)
+id = 117, name = DNS(CMF) Hadronic (no electrons)
+id = 118, name = FOP(SFHoY) (with electrons)
+id = 119, name = FOP(SFHoY) (no electrons)
+id = 120, name = BL(chiral)
+id = 121, name = BL(chiral) with crust
+id = 123, name = RG(SLY4)
+id = 134, name = RG(SLY4)
+id = 136, name = PT(GRDF1_DD2)
+id = 137, name = PT(GRDF2_DD2) old version
+id = 138, name = DNS(CMF) hadronic  (cold neutron stars) with crust
+id = 139, name = BHK(QHC18)
+id = 140, name = BFH(QHC19-B)
+id = 141, name = SRO(SLy4) SNA version
+id = 142, name = OOS(DD2_FRG) (2+1 flavors)
+id = 143, name = OOS(DD2_FRG) (2 flavors)
+id = 144, name = SNSH(TM1e)
+id = 145, name = SNSH(TM1e) zero temperature
+id = 146, name = SNSH(TM1e) neutron matter
+id = 147, name = RG(SLy4) with neutrino opacities
+id = 148, name = RG(SLY4) with neutrino opacities, extended version
+id = 149, name = SRO(APR) SNA version
+id = 150, name = BFH(QHC19-A)
+id = 151, name = BFH(QHC19-C)
+id = 152, name = BFH(QHC19-D)
+id = 154, name = MBB(DD2K ) (no electrons)
+id = 155, name = BBKF(DD2F-SF) quark-hadron model  RDF 1.1 without leptons
+id = 156, name = BBKF(DD2F-SF) quark-hadron model RDF 1.2 without leptons
+id = 157, name = BBKF(DD2F-SF) quark-hadron model RDF 1.3 without leptons
+id = 158, name = BBKF(DD2F-SF) quark-hadron model RDF 1.4 without leptons
+id = 159, name = BBKF(DD2F-SF) quark-hadron model RDF 1.5 without leptons
+id = 160, name = BBKF(DD2F-SF) quark-hadron model  RDF 1.6 without leptons
+id = 161, name = BBKF(DD2F-SF) quark-hadron model RDF 1.7 without leptons
+id = 162, name = BBKF(DD2-SF) quark-hadron model  RDF 1.8 without leptons
+id = 163, name = BBKF(DD2-SF) quark-hadron model  RDF 1.9 without leptons
+id = 164, name = BBKF(DD2F-SF) quark-hadron model  RDF 1.1
+id = 165, name = BBKF(DD2F-SF) quark-hadron model  RDF 1.2
+id = 166, name = BBKF(DD2F-SF) quark-hadron model  RDF 1.3
+id = 167, name = BBKF(DD2F-SF) quark-hadron model  RDF 1.4
+id = 168, name = BBKF(DD2F-SF) quark-hadron model  RDF 1.5
+id = 169, name = BBKF(DD2F-SF) quark-hadron model  RDF 1.6
+id = 170, name = BBKF(DD2F-SF) quark-hadron model  RDF 1.7
+id = 171, name = BBKF(DD2-SF) quark-hadron model  RDF 1.8
+id = 172, name = BBKF(DD2-SF) quark-hadron model  RDF 1.9
+id = 173, name = SRO(NRAPR) NSE version
+id = 174, name = SRO(SkAPR) SNA version
+id = 175, name = SRO(KDE0v1) SNA version
+id = 176, name = SRO(LS220*) SNA version
+id = 177, name = SRO(LNS) SNA version
+id = 178, name = SRO(LS220) SNA version
+id = 180, name = DS(CMF)-1
+id = 181, name = DS(CMF)-2
+id = 182, name = DS(CMF)-3
+id = 183, name = DS(CMF)-4
+id = 184, name = DS(CMF)-5
+id = 185, name = DS(CMF)-6
+id = 186, name = DS(CMF)-7
+id = 187, name = DS(CMF)-8
+id = 188, name = DS(CMF)-1 with crust
+id = 189, name = DS(CMF)-2 with crust
+id = 190, name = DS(CMF)-3 with crust
+id = 191, name = DS(CMF)-4 with crust
+id = 192, name = DS(CMF)-5 with crust
+id = 193, name = DS(CMF)-6 with crust
+id = 194, name = DS(CMF)-7 with crust
+id = 195, name = DS(CMF)-8 with crust
+id = 196, name = OOS(DD2-FRG) with vector interactions(2 flavors)
+id = 197, name = OOS(DD2-FRG) with vector interactions(2+1 flavors)
+id = 198, name = JJ(VQCD(APR)), intermediate
+id = 199, name = JJ(VQCD(APR)), stiff
+id = 200, name = JJ(VQCD(APR)), soft
+id = 201, name = MBB(HSDD2K) with electrons
+id = 202, name = MBB(BHBLphiK) with electrons
+id = 203, name = GPPVA(FSU2R) NS crust
+id = 204, name = GPPVA(NL3wrL55) NS crust
+id = 205, name = SDGTT(QMC-A), no leptons
+id = 206, name = SDGTT(QMC-A) with leptons
+id = 207, name = GPPVA(TM1e) NS crust
+id = 208, name = GPPVA(FSU2H) NS crust
+id = 209, name = GPPVA(FSU2) NS crust
+id = 210, name = GPPVA(DD2) NS crust
+id = 211, name = GPPVA(DDME2) NS crust
+id = 212, name = GPPVA(TW) NS crust
+id = 213, name = GPPVA(FSU2H) NS unified inner crust-core
+id = 214, name = GPPVA(FSU2R) NS unified inner crust-core
+id = 215, name = GPPVA(FSU2) NS unified inner crust-core
+id = 216, name = GMSR(SLy5)
+id = 217, name = GPPVA(DD2) NS unified inner crust-core
+id = 218, name = GPPVA(DDME2) NS unified inner crust-core
+id = 219, name = GPPVA(TW) NS unified inner crust-core
+id = 220, name = GPPVA(NL3wrL55) NS unified inner crust-core
+id = 221, name = GPPVA(TM1e) NS unified inner crust-core
+id = 222, name = GMSR(LNS5)
+id = 223, name = GMSR(BSK16)
+id = 224, name = GMSR(BSK14)
+id = 225, name = GMSR(RATP)
+id = 227, name = GMSR(F0)
+id = 228, name = GMSR(H1)
+id = 229, name = GMSR(H2)
+id = 230, name = GMSR(H3)
+id = 231, name = GMSR(H4)
+id = 232, name = GMSR(H5)
+id = 233, name = GMSR(H7)
+id = 234, name = GMSR(DHSL59)
+id = 235, name = GMSR(DHSL69)
+id = 236, name = KBH(QHC21_AT)
+id = 237, name = KBH(QHC21_BT)
+id = 238, name = KBH(QHC21_CT)
+id = 239, name = KBH(QHC21_DT)
+id = 240, name = KBH(QHC21_A)
+id = 241, name = KBH(QHC21_B)
+id = 242, name = KBH(QHC21_C)
+id = 243, name = KBH(QHC21_D)
+id = 244, name = R(DD2YDelta) 1.1-1.1 (no electrons)
+id = 245, name = R(DD2YDelta) 1.1-1.1 (with electrons)
+id = 246, name = R(DD2YDelta) 1.2-1.1 (with electrons)
+id = 247, name = R(DD2YDelta) 1.2-1.1 (no electrons)
+id = 248, name = R(DD2YDelta) 1.2-1.3 (with electrons)
+id = 249, name = R(DD2YDelta) 1.2-1.3 (no electrons)
+id = 250, name = R(DD2YDelta) 1.1-1.1 (cold NS)
+id = 251, name = R(DD2YDelta) 1.2-1.3 (cold NS)
+id = 252, name = R(DD2YDelta) 1.2-1.1 (cold NS)
+id = 253, name = PCP(BSK24)
+id = 254, name = VGBCMR(D1MStar)
+id = 255, name = VGBCMR(D1M)
+id = 256, name = PCP(BSK22)
+id = 257, name = PCP(BSK25)
+id = 258, name = PCP(BSK26)
+id = 259, name = DS(CMF)-1 Hybrid
+id = 260, name = DS(CMF)-2 Hybrid
+id = 261, name = DS(CMF)-3 Hybrid
+id = 262, name = DS(CMF)-4 Hybrid
+id = 263, name = DS(CMF)-5 Hybrid
+id = 264, name = DS(CMF)-6 Hybrid
+id = 265, name = DS(CMF)-7 Hybrid
+id = 266, name = DS(CMF)-8 Hybrid
+id = 267, name = DS(CMF)-1 Hybrid with crust
+id = 268, name = DS(CMF)-2 Hybrid with crust
+id = 269, name = DS (CMF)-3 Hybrid with crust
+id = 270, name = DS (CMF)-4 Hybrid with crust
+id = 271, name = DS (CMF)-5 Hybrid with crust
+id = 272, name = DS (CMF)-6 Hybrid with crust
+id = 273, name = DS (CMF)-7 Hybrid with crust
+id = 274, name = DS(CMF)-8 Hybrid with crust
+id = 275, name = ABHT(QMC-RMF1)
+id = 276, name = ABHT(QMC-RMF2)
+id = 277, name = ABHT(QMC-RMF3)
+id = 278, name = ABHT(QMC-RMF4)
+id = 279, name = XMLSLZ(DDME2)
+id = 280, name = XMLSLZ(DD-LZ1)
+id = 281, name = XMLSLZ(DDME-X)
+id = 282, name = XMLSLZ(GM1)
+id = 283, name = XMLSLZ(MTVTC)
+id = 284, name = XMLSLZ(NL3)
+id = 285, name = XMLSLZ(PK1)
+id = 286, name = XMLSLZ(PKDD)
+id = 287, name = XMLSLZ(TM1)
+id = 288, name = XMLSLZ(TW99)
+id = 289, name = DEJ(DD2-VQCD) intermediate
+id = 290, name = DEJ(DD2-VQCD) soft
+id = 291, name = DEJ(DD2-VQCD) stiff
+id = 292, name = PCGS(PCSB0)
+id = 293, name = LPB(chiral) with electrons
+id = 294, name = LPB(chiral)
+id = 295, name = PCGS(PCSB1)
+id = 296, name = PCGS(PCSB2)
+id = 297, name = ABHT(QMC-RMF1)
+id = 298, name = ABHT(QMC-RMF2)
+id = 299, name = ABHT(QMC-RMF3)
+id = 300, name = ABHT(QMC-RMF4)
+id = 301, name = PT(GRDF2-DD2) new version
+id = 302, name = PT(GRDF2-DD2) cold NS
+id = 303, name = HJJSTV(VQCD)-intermediate
+id = 304, name = HJJSTV(VQCD) soft
+id = 305, name = HJJSTV(VQCD) stiff
+id = 306, name = BL(chiral) with unified crust
+id = 307, name = CMGO(GDFM-I)
+id = 308, name = CMGO (GDFM-II)
+id = 309, name = KRT(FSU2H*)
+id = 310, name = SPG(M1) unified NS EoS
+id = 311, name = SPG(M1) Crust NS EoS
+id = 312, name = SPG(M2) unified NS EoS
+id = 313, name = SPG(M3) unified NS EoS
+id = 314, name = SPG(M4) unified NS EoS
+id = 315, name = SPG(M5) unified NS EoS
+id = 316, name = SPG(M2) Crust NS EoS
+id = 317, name = SPG(M3) Crust NS EoS
+id = 318, name = SPG(M4) Crust NS EoS
+id = 319, name = SPG(M5) Crust NS EoS
+id = 320, name = TSO(DDLS(30)-Y)
+id = 321, name = TSO(DDLS(70)-Y)
+id = 322, name = TSO(DDLS(70)-N)
+id = 323, name = TSO(DDLS(50)-Y)
+id = 324, name = TSO(DDLS(50)-N)
+id = 325, name = TSO(DDLS(30)-N)
+
+
+
+
[3]:
+
+
+
# Now we pick the EOS with identifier 316 and download it.
+id = 316
+eosdir = dc.download_id(id)
+
+
+
+
+
+
+
+
+downloads\compose\316\eos.t already exists, skip download https://compose.obspm.fr/download/1D/Crust/M2/eos.t
+downloads\compose\316\eos.nb already exists, skip download https://compose.obspm.fr/download/1D/Crust/M2/eos.nb
+downloads\compose\316\eos.thermo already exists, skip download https://compose.obspm.fr/download/1D/Crust/M2/eos.thermo
+
+
+
+
[4]:
+
+
+
# We use Compose_eos function to extract the EOS data from the downloaded file
+from EOSgenerators import Compose_eos
+import matplotlib.pyplot as plt
+
+eosdir = dc.eos_download_dir(id).as_posix()
+eps, p, name = Compose_eos.read_compose(eosdir=eosdir, eosname=dc.eos_name(id))
+
+# Finally, we can plot the EOS data using matplotlib,
+# to ensure that all the previous steps were successful.
+plt.figure(dpi=100)
+plt.plot(eps, p)
+plt.xscale("log")
+plt.yscale("log")
+plt.xlabel("Energy density [$g/cm^3$]")
+plt.ylabel("Pressure [$dyn/cm^2$]")
+plt.title(name)
+plt.show()
+
+
+
+
+
+
+
+
+         Nucleon masses used within the CompOSE tables :         m_n = 938.90000 MeV and m_p = 938.90000 MeV
+
+
+
+
+
+
+_images/DownloadCompose_5_1.png +
+
+
+ + +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/DownloadCompose.ipynb b/DownloadCompose.ipynb new file mode 100644 index 0000000..39097d4 --- /dev/null +++ b/DownloadCompose.ipynb @@ -0,0 +1,459 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Usage of download_compose Module\n", + "Tianzhe Zhou 2024/11/9" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[CompOSE](https://compose.obspm.fr/table)(CompStar Online Supernovae Equations of State)\n", + "is a database that provides data tables for different state of the art equations of state (EoS) ready for further usage in astrophysical applications, nuclear physics and beyond.\n", + "\n", + "In this notebook, we will demonstrate how to use the `download_compose` module to download the data from the CompOSE database." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DownloadCompose: Fetching data from https://compose.obspm.fr/table \n", + "...\n", + "DownloadCompose: Find 308 EOS data on website https://compose.obspm.fr/table\n" + ] + } + ], + "source": [ + "# First, import the class that we need to use\n", + "from EOSgenerators.download_compose import DownloadCompose\n", + "\n", + "# Then, create an instance of the class\n", + "# This will automatically fetch the latest version of all available\n", + "# EOS names and their corresponding download links\n", + "dc = DownloadCompose()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "id = 1, name = HS(DD2) neutron matter (no electrons)\n", + "id = 2, name = HS(DD2) neutron matter (with electrons)\n", + "id = 3, name = HS(FSG) neutron matter (no electrons)\n", + "id = 4, name = HS(FSG) neutron matter (with electrons)\n", + "id = 5, name = HS(IUF) neutron matter (no electrons)\n", + "id = 6, name = HS(IUF) neutron matter (with electrons)\n", + "id = 7, name = HS(NL3) neutron matter (no electrons)\n", + "id = 8, name = HS(NL3) neutron matter (with electrons)\n", + "id = 9, name = HS(TM1) neutron matter (no electrons)\n", + "id = 10, name = HS(TM1) neutron matter (with electrons)\n", + "id = 11, name = HS(TMA) neutron matter (no electrons)\n", + "id = 12, name = HS(TMA) neutron matter (with electrons)\n", + "id = 13, name = SFH(SFHo) neutron matter (no electrons)\n", + "id = 14, name = SFH(SFHo) neutron matter (with electrons)\n", + "id = 15, name = SFH(SFHx) neutron matter (no electrons)\n", + "id = 16, name = SFH(SFHx) neutron matter (with electrons)\n", + "id = 17, name = HS(DD2) (no electrons)\n", + "id = 18, name = HS(DD2) (with electrons)\n", + "id = 19, name = HS(FSG) (no electrons)\n", + "id = 20, name = HS(FSG) (with electrons)\n", + "id = 21, name = HS(IUF) (no electrons)\n", + "id = 22, name = HS(IUF) (with electrons)\n", + "id = 23, name = HS(NL3) (no electrons)\n", + "id = 24, name = HS(NL3) (with electrons)\n", + "id = 25, name = HS(TM1) (no electrons)\n", + "id = 26, name = HS(TM1) (with electrons)\n", + "id = 27, name = HS(TMA) (no electrons)\n", + "id = 28, name = HS(TMA) (with electrons)\n", + "id = 29, name = GROM(LS220L) (with Lambdas, no low densities)\n", + "id = 30, name = GROM(LS220L) (with Lambdas, with low densities)\n", + "id = 31, name = LS(LS220) (no low densities)\n", + "id = 32, name = LS(LS220) (with low densities)\n", + "id = 33, name = SFH(SFHo) (no electrons)\n", + "id = 34, name = SFH(SFHo) (with electrons)\n", + "id = 35, name = SFH(SFHx) (no electrons)\n", + "id = 36, name = SFH(SFHx) (with electrons)\n", + "id = 37, name = SHO(FSU1) (no electrons)\n", + "id = 38, name = SHO(FSU1) (with electrons)\n", + "id = 39, name = SHO(FSU2) (with electrons)\n", + "id = 40, name = SHO(FSU2) (no electrons)\n", + "id = 41, name = SHT(NL3) (no electrons)\n", + "id = 42, name = SHT(NL3) (with electrons)\n", + "id = 43, name = BHB(DD2L) (no electrons)\n", + "id = 44, name = BHB(DD2L) (with electrons)\n", + "id = 45, name = BHB(DD2Lphi) (with electrons)\n", + "id = 46, name = BHB(DD2Lphi) (no electrons)\n", + "id = 47, name = SHO(FSU1) (no electrons)\n", + "id = 48, name = SHO(FSU1) (with electrons)\n", + "id = 49, name = SHO(FSU2) (no electrons)\n", + "id = 50, name = SHO(FSU2) (with electrons)\n", + "id = 51, name = SHT(NL3) (no electrons)\n", + "id = 52, name = SHT(NL3) (with electrons)\n", + "id = 53, name = GDTB(DDHdelta)\n", + "id = 54, name = GM(GM1)\n", + "id = 55, name = OPGR(GM1Y4) (with hyperons)\n", + "id = 56, name = STOS(TM1) neutron matter (original version)\n", + "id = 57, name = STOS(TM1) neutron matter (new version)\n", + "id = 58, name = STOS(TM1L) neutron and Lambda matter\n", + "id = 59, name = STOS(TM1) zero temperature (new version)\n", + "id = 60, name = STOS(TM1) zero temperature (original version)\n", + "id = 61, name = STOS(TM1) with Lambda zero temperature\n", + "id = 62, name = STOS(TM1L) with Lambda hyperons\n", + "id = 63, name = STOS(TM1) (new version)\n", + "id = 64, name = STOS(TM1) (original version)\n", + "id = 65, name = OPGR(GM1Y5) (with hyperons)\n", + "id = 66, name = OPGR(GM1Y6) (with hyperons)\n", + "id = 67, name = OPGR(DDHdeltaY4) (with hyperons)\n", + "id = 68, name = APR(APR)\n", + "id = 69, name = BBB(BHF-BBB2)\n", + "id = 70, name = SFHPST(TM1B145), with electrons\n", + "id = 71, name = STOS(TM1) (new version) with electrons\n", + "id = 72, name = STOS(TM1L) with Lambda hyperons and electrons\n", + "id = 73, name = SFHPST(TM1B139) with electrons\n", + "id = 74, name = SFHPST(TM1B155) with electrons\n", + "id = 75, name = SFHPST(TM1B165) with electrons (B165)\n", + "id = 76, name = IOTSY(TM1Y30) Sigma potential 30 MeV\n", + "id = 77, name = IOTSY(TM1Y30pi) with pions, Sigma potential 30 MeV\n", + "id = 78, name = IOTSY(TM1Y90pi) with pions, Sigma potential 90 MeV\n", + "id = 79, name = IOTSY(TM1Y0pi) with pions, Sigma potential 0 MeV\n", + "id = 80, name = IOTSY(TM1Y-30pi) with pions, Sigma potential -30 MeV\n", + "id = 81, name = IOTSY(TM1Y90) , Sigma potential 90 MeV)\n", + "id = 82, name = IOTSY(TM1Y0), Sigma potential 0 MeV\n", + "id = 83, name = IOTSY(TM1Y-30), Sigma potential -30 MeV\n", + "id = 84, name = RG(SLY230a)\n", + "id = 85, name = RG(SLY2)\n", + "id = 86, name = RG(SLY9)\n", + "id = 87, name = RG(SKI2)\n", + "id = 88, name = RG(SkI3)\n", + "id = 89, name = RG(SkI4)\n", + "id = 90, name = RG(SkI5)\n", + "id = 91, name = RG(SkI6)\n", + "id = 92, name = RG(KDE0v1)\n", + "id = 93, name = RG(KDE0v)\n", + "id = 94, name = RG(SK255)\n", + "id = 95, name = RG(SK272)\n", + "id = 96, name = RG(SKa)\n", + "id = 97, name = RG(SKb)\n", + "id = 98, name = RG(SkMp)\n", + "id = 99, name = RG(SkOp)\n", + "id = 100, name = RG(Rs)\n", + "id = 101, name = NL3\n", + "id = 104, name = OMHN(DD2Y)\n", + "id = 105, name = TNTYST(KOST2) variational EoS (with electrons)\n", + "id = 106, name = TNTYST(KOST2) variational EoS (without electrons)\n", + "id = 107, name = TNTYST(KOST2) variational EoS at zero temperature (with electrons)\n", + "id = 108, name = TNTYST(KOST2) variational EoS at zero temperature (no electrons)\n", + "id = 109, name = TNTYST(KOST2) neutron matter (zero temperature)\n", + "id = 110, name = TNTYST(KOST2) neutron matter\n", + "id = 111, name = FYSS(TM1) (no electrons)\n", + "id = 112, name = FTNS(KOST2) variational EoS (no electrons)\n", + "id = 113, name = FYSS(TM1) (with electrons)\n", + "id = 114, name = FTNS(KOST2) variational EoS (with electrons)\n", + "id = 115, name = DNS(CMF) Hadronic (with electrons)\n", + "id = 116, name = DNS(CMF) Hadronic (cold neutron stars)\n", + "id = 117, name = DNS(CMF) Hadronic (no electrons)\n", + "id = 118, name = FOP(SFHoY) (with electrons)\n", + "id = 119, name = FOP(SFHoY) (no electrons)\n", + "id = 120, name = BL(chiral)\n", + "id = 121, name = BL(chiral) with crust\n", + "id = 123, name = RG(SLY4)\n", + "id = 134, name = RG(SLY4)\n", + "id = 136, name = PT(GRDF1_DD2)\n", + "id = 137, name = PT(GRDF2_DD2) old version\n", + "id = 138, name = DNS(CMF) hadronic (cold neutron stars) with crust\n", + "id = 139, name = BHK(QHC18)\n", + "id = 140, name = BFH(QHC19-B)\n", + "id = 141, name = SRO(SLy4) SNA version\n", + "id = 142, name = OOS(DD2_FRG) (2+1 flavors)\n", + "id = 143, name = OOS(DD2_FRG) (2 flavors)\n", + "id = 144, name = SNSH(TM1e)\n", + "id = 145, name = SNSH(TM1e) zero temperature\n", + "id = 146, name = SNSH(TM1e) neutron matter\n", + "id = 147, name = RG(SLy4) with neutrino opacities\n", + "id = 148, name = RG(SLY4) with neutrino opacities, extended version\n", + "id = 149, name = SRO(APR) SNA version\n", + "id = 150, name = BFH(QHC19-A)\n", + "id = 151, name = BFH(QHC19-C)\n", + "id = 152, name = BFH(QHC19-D)\n", + "id = 154, name = MBB(DD2K ) (no electrons)\n", + "id = 155, name = BBKF(DD2F-SF) quark-hadron model RDF 1.1 without leptons\n", + "id = 156, name = BBKF(DD2F-SF) quark-hadron model RDF 1.2 without leptons\n", + "id = 157, name = BBKF(DD2F-SF) quark-hadron model RDF 1.3 without leptons\n", + "id = 158, name = BBKF(DD2F-SF) quark-hadron model RDF 1.4 without leptons\n", + "id = 159, name = BBKF(DD2F-SF) quark-hadron model RDF 1.5 without leptons\n", + "id = 160, name = BBKF(DD2F-SF) quark-hadron model RDF 1.6 without leptons\n", + "id = 161, name = BBKF(DD2F-SF) quark-hadron model RDF 1.7 without leptons\n", + "id = 162, name = BBKF(DD2-SF) quark-hadron model RDF 1.8 without leptons\n", + "id = 163, name = BBKF(DD2-SF) quark-hadron model RDF 1.9 without leptons\n", + "id = 164, name = BBKF(DD2F-SF) quark-hadron model RDF 1.1\n", + "id = 165, name = BBKF(DD2F-SF) quark-hadron model RDF 1.2\n", + "id = 166, name = BBKF(DD2F-SF) quark-hadron model RDF 1.3\n", + "id = 167, name = BBKF(DD2F-SF) quark-hadron model RDF 1.4\n", + "id = 168, name = BBKF(DD2F-SF) quark-hadron model RDF 1.5\n", + "id = 169, name = BBKF(DD2F-SF) quark-hadron model RDF 1.6\n", + "id = 170, name = BBKF(DD2F-SF) quark-hadron model RDF 1.7\n", + "id = 171, name = BBKF(DD2-SF) quark-hadron model RDF 1.8\n", + "id = 172, name = BBKF(DD2-SF) quark-hadron model RDF 1.9\n", + "id = 173, name = SRO(NRAPR) NSE version\n", + "id = 174, name = SRO(SkAPR) SNA version\n", + "id = 175, name = SRO(KDE0v1) SNA version\n", + "id = 176, name = SRO(LS220*) SNA version\n", + "id = 177, name = SRO(LNS) SNA version\n", + "id = 178, name = SRO(LS220) SNA version\n", + "id = 180, name = DS(CMF)-1\n", + "id = 181, name = DS(CMF)-2\n", + "id = 182, name = DS(CMF)-3\n", + "id = 183, name = DS(CMF)-4\n", + "id = 184, name = DS(CMF)-5\n", + "id = 185, name = DS(CMF)-6\n", + "id = 186, name = DS(CMF)-7\n", + "id = 187, name = DS(CMF)-8\n", + "id = 188, name = DS(CMF)-1 with crust\n", + "id = 189, name = DS(CMF)-2 with crust\n", + "id = 190, name = DS(CMF)-3 with crust\n", + "id = 191, name = DS(CMF)-4 with crust\n", + "id = 192, name = DS(CMF)-5 with crust\n", + "id = 193, name = DS(CMF)-6 with crust\n", + "id = 194, name = DS(CMF)-7 with crust\n", + "id = 195, name = DS(CMF)-8 with crust\n", + "id = 196, name = OOS(DD2-FRG) with vector interactions(2 flavors)\n", + "id = 197, name = OOS(DD2-FRG) with vector interactions(2+1 flavors)\n", + "id = 198, name = JJ(VQCD(APR)), intermediate\n", + "id = 199, name = JJ(VQCD(APR)), stiff\n", + "id = 200, name = JJ(VQCD(APR)), soft\n", + "id = 201, name = MBB(HSDD2K) with electrons\n", + "id = 202, name = MBB(BHBLphiK) with electrons\n", + "id = 203, name = GPPVA(FSU2R) NS crust\n", + "id = 204, name = GPPVA(NL3wrL55) NS crust\n", + "id = 205, name = SDGTT(QMC-A), no leptons\n", + "id = 206, name = SDGTT(QMC-A) with leptons\n", + "id = 207, name = GPPVA(TM1e) NS crust\n", + "id = 208, name = GPPVA(FSU2H) NS crust\n", + "id = 209, name = GPPVA(FSU2) NS crust\n", + "id = 210, name = GPPVA(DD2) NS crust\n", + "id = 211, name = GPPVA(DDME2) NS crust\n", + "id = 212, name = GPPVA(TW) NS crust\n", + "id = 213, name = GPPVA(FSU2H) NS unified inner crust-core\n", + "id = 214, name = GPPVA(FSU2R) NS unified inner crust-core\n", + "id = 215, name = GPPVA(FSU2) NS unified inner crust-core\n", + "id = 216, name = GMSR(SLy5)\n", + "id = 217, name = GPPVA(DD2) NS unified inner crust-core\n", + "id = 218, name = GPPVA(DDME2) NS unified inner crust-core\n", + "id = 219, name = GPPVA(TW) NS unified inner crust-core\n", + "id = 220, name = GPPVA(NL3wrL55) NS unified inner crust-core\n", + "id = 221, name = GPPVA(TM1e) NS unified inner crust-core\n", + "id = 222, name = GMSR(LNS5)\n", + "id = 223, name = GMSR(BSK16)\n", + "id = 224, name = GMSR(BSK14)\n", + "id = 225, name = GMSR(RATP)\n", + "id = 227, name = GMSR(F0)\n", + "id = 228, name = GMSR(H1)\n", + "id = 229, name = GMSR(H2)\n", + "id = 230, name = GMSR(H3)\n", + "id = 231, name = GMSR(H4)\n", + "id = 232, name = GMSR(H5)\n", + "id = 233, name = GMSR(H7)\n", + "id = 234, name = GMSR(DHSL59)\n", + "id = 235, name = GMSR(DHSL69)\n", + "id = 236, name = KBH(QHC21_AT)\n", + "id = 237, name = KBH(QHC21_BT)\n", + "id = 238, name = KBH(QHC21_CT)\n", + "id = 239, name = KBH(QHC21_DT)\n", + "id = 240, name = KBH(QHC21_A)\n", + "id = 241, name = KBH(QHC21_B)\n", + "id = 242, name = KBH(QHC21_C)\n", + "id = 243, name = KBH(QHC21_D)\n", + "id = 244, name = R(DD2YDelta) 1.1-1.1 (no electrons)\n", + "id = 245, name = R(DD2YDelta) 1.1-1.1 (with electrons)\n", + "id = 246, name = R(DD2YDelta) 1.2-1.1 (with electrons)\n", + "id = 247, name = R(DD2YDelta) 1.2-1.1 (no electrons)\n", + "id = 248, name = R(DD2YDelta) 1.2-1.3 (with electrons)\n", + "id = 249, name = R(DD2YDelta) 1.2-1.3 (no electrons)\n", + "id = 250, name = R(DD2YDelta) 1.1-1.1 (cold NS)\n", + "id = 251, name = R(DD2YDelta) 1.2-1.3 (cold NS)\n", + "id = 252, name = R(DD2YDelta) 1.2-1.1 (cold NS)\n", + "id = 253, name = PCP(BSK24)\n", + "id = 254, name = VGBCMR(D1MStar)\n", + "id = 255, name = VGBCMR(D1M)\n", + "id = 256, name = PCP(BSK22)\n", + "id = 257, name = PCP(BSK25)\n", + "id = 258, name = PCP(BSK26)\n", + "id = 259, name = DS(CMF)-1 Hybrid\n", + "id = 260, name = DS(CMF)-2 Hybrid\n", + "id = 261, name = DS(CMF)-3 Hybrid\n", + "id = 262, name = DS(CMF)-4 Hybrid\n", + "id = 263, name = DS(CMF)-5 Hybrid\n", + "id = 264, name = DS(CMF)-6 Hybrid\n", + "id = 265, name = DS(CMF)-7 Hybrid\n", + "id = 266, name = DS(CMF)-8 Hybrid\n", + "id = 267, name = DS(CMF)-1 Hybrid with crust\n", + "id = 268, name = DS(CMF)-2 Hybrid with crust\n", + "id = 269, name = DS (CMF)-3 Hybrid with crust\n", + "id = 270, name = DS (CMF)-4 Hybrid with crust\n", + "id = 271, name = DS (CMF)-5 Hybrid with crust\n", + "id = 272, name = DS (CMF)-6 Hybrid with crust\n", + "id = 273, name = DS (CMF)-7 Hybrid with crust\n", + "id = 274, name = DS(CMF)-8 Hybrid with crust\n", + "id = 275, name = ABHT(QMC-RMF1)\n", + "id = 276, name = ABHT(QMC-RMF2)\n", + "id = 277, name = ABHT(QMC-RMF3)\n", + "id = 278, name = ABHT(QMC-RMF4)\n", + "id = 279, name = XMLSLZ(DDME2)\n", + "id = 280, name = XMLSLZ(DD-LZ1)\n", + "id = 281, name = XMLSLZ(DDME-X)\n", + "id = 282, name = XMLSLZ(GM1)\n", + "id = 283, name = XMLSLZ(MTVTC)\n", + "id = 284, name = XMLSLZ(NL3)\n", + "id = 285, name = XMLSLZ(PK1)\n", + "id = 286, name = XMLSLZ(PKDD)\n", + "id = 287, name = XMLSLZ(TM1)\n", + "id = 288, name = XMLSLZ(TW99)\n", + "id = 289, name = DEJ(DD2-VQCD) intermediate\n", + "id = 290, name = DEJ(DD2-VQCD) soft\n", + "id = 291, name = DEJ(DD2-VQCD) stiff\n", + "id = 292, name = PCGS(PCSB0)\n", + "id = 293, name = LPB(chiral) with electrons\n", + "id = 294, name = LPB(chiral)\n", + "id = 295, name = PCGS(PCSB1)\n", + "id = 296, name = PCGS(PCSB2)\n", + "id = 297, name = ABHT(QMC-RMF1)\n", + "id = 298, name = ABHT(QMC-RMF2)\n", + "id = 299, name = ABHT(QMC-RMF3)\n", + "id = 300, name = ABHT(QMC-RMF4)\n", + "id = 301, name = PT(GRDF2-DD2) new version\n", + "id = 302, name = PT(GRDF2-DD2) cold NS\n", + "id = 303, name = HJJSTV(VQCD)-intermediate\n", + "id = 304, name = HJJSTV(VQCD) soft\n", + "id = 305, name = HJJSTV(VQCD) stiff\n", + "id = 306, name = BL(chiral) with unified crust\n", + "id = 307, name = CMGO(GDFM-I)\n", + "id = 308, name = CMGO (GDFM-II)\n", + "id = 309, name = KRT(FSU2H*)\n", + "id = 310, name = SPG(M1) unified NS EoS\n", + "id = 311, name = SPG(M1) Crust NS EoS\n", + "id = 312, name = SPG(M2) unified NS EoS\n", + "id = 313, name = SPG(M3) unified NS EoS\n", + "id = 314, name = SPG(M4) unified NS EoS\n", + "id = 315, name = SPG(M5) unified NS EoS\n", + "id = 316, name = SPG(M2) Crust NS EoS\n", + "id = 317, name = SPG(M3) Crust NS EoS\n", + "id = 318, name = SPG(M4) Crust NS EoS\n", + "id = 319, name = SPG(M5) Crust NS EoS\n", + "id = 320, name = TSO(DDLS(30)-Y)\n", + "id = 321, name = TSO(DDLS(70)-Y)\n", + "id = 322, name = TSO(DDLS(70)-N)\n", + "id = 323, name = TSO(DDLS(50)-Y)\n", + "id = 324, name = TSO(DDLS(50)-N)\n", + "id = 325, name = TSO(DDLS(30)-N)\n" + ] + } + ], + "source": [ + "# Now, we can print the list of available EOS names.\n", + "# Each EOS name is related to a specific identifier,\n", + "# which we can use later to actually download the EOS data file.\n", + "dc.print_eos_list()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "downloads\\compose\\316\\eos.t already exists, skip download https://compose.obspm.fr/download/1D/Crust/M2/eos.t\n", + "downloads\\compose\\316\\eos.nb already exists, skip download https://compose.obspm.fr/download/1D/Crust/M2/eos.nb\n", + "downloads\\compose\\316\\eos.thermo already exists, skip download https://compose.obspm.fr/download/1D/Crust/M2/eos.thermo\n" + ] + } + ], + "source": [ + "# Now we pick the EOS with identifier 316 and download it.\n", + "id = 316\n", + "eosdir = dc.download_id(id)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\t Nucleon masses used within the CompOSE tables :\t m_n = 938.90000 MeV and m_p = 938.90000 MeV\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# We use Compose_eos function to extract the EOS data from the downloaded file\n", + "from EOSgenerators import Compose_eos\n", + "import matplotlib.pyplot as plt\n", + "\n", + "eosdir = dc.eos_download_dir(id).as_posix()\n", + "eps, p, name = Compose_eos.read_compose(eosdir=eosdir, eosname=dc.eos_name(id))\n", + "\n", + "# Finally, we can plot the EOS data using matplotlib,\n", + "# to ensure that all the previous steps were successful.\n", + "plt.figure(dpi=100)\n", + "plt.plot(eps, p)\n", + "plt.xscale(\"log\")\n", + "plt.yscale(\"log\")\n", + "plt.xlabel(\"Energy density [$g/cm^3$]\")\n", + "plt.ylabel(\"Pressure [$dyn/cm^2$]\")\n", + "plt.title(name)\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.15" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/EOS.html b/EOS.html new file mode 100644 index 0000000..2a566f2 --- /dev/null +++ b/EOS.html @@ -0,0 +1,150 @@ + + + + + + + + + EOS solver — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

EOS solver

+

Functions to compute multiple Equation of state from given parameters, like polytrope, speed of sound, RMF etc.

+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/EoS_import.html b/EoS_import.html new file mode 100644 index 0000000..e2f164d --- /dev/null +++ b/EoS_import.html @@ -0,0 +1,215 @@ + + + + + + + + + Import Equation of State — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Import Equation of State

+

Function to import equation of state given by user.

+
+
+TOVsolver.EoS_import.EOS_check(density, pressure)[source]
+

file_read

+

Checks that the derivative (drho/dp) is positive.

+
+
Parameters:
+
    +
  • density (array) – numpy 1Darray. Density array to be checked.

  • +
  • pressure (array) – numpy 1Darray. Pressure array to be checked.

  • +
+
+
Returns:
+

two arrays, one corresponding to density and one corresponding to pressure or ends the function and prints +invalid equation of state.

+
+
Return type:
+

array

+
+
+
+ +
+
+TOVsolver.EoS_import.EOS_import(file_name='', density=0, pressure=0)[source]
+

Imports density and pressure from csv or array, checks them, and returns them.

+
+
Parameters:
+
    +
  • file_name (string, optional) – string. CSV file to be opened.

  • +
  • density (array, optional) – numpy 1Darray. Passed into a check function and returned if valid.

  • +
  • pressure (array, optional) – numpy 1Darray. Passed into a check function and returned if valid.

  • +
+
+
Returns:
+

checked density and pressure.

+
+
Return type:
+

array

+
+
+
+ +
+
+TOVsolver.EoS_import.file_read(input_file)[source]
+

Reads a csv file of denisty and pressure given by the user.

+
+
Parameters:
+

input_file (string) – string. File to be opened and parsed.

+
+
Returns:
+

two 1Darray numpy arrays, one corresponding to density and one corresponding to pressrure.

+
+
Return type:
+

array

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/Likelihood.html b/Likelihood.html new file mode 100644 index 0000000..874943e --- /dev/null +++ b/Likelihood.html @@ -0,0 +1,329 @@ + + + + + + + + + Likelihood function definition module — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Likelihood function definition module

+

Functions to define Likelihood functions from Astro observation and nuclear experiments

+
+
+InferenceWorkflow.Likelihood.Jliklihood(theta, J_low, J_up)[source]
+

Computing likelihood from a hard cut constraint of J.

+
+
Parameters:
+
    +
  • theta (array) – An array representing the parameters used to determine a RMF model in the

  • +
  • case (Lagrangian. In this)

  • +
  • parameters. (the RMF model is defined by 7)

  • +
  • K_low (float) – lower bound of this J constraint.

  • +
  • K_up (float) – upper bound of this J constraint.

  • +
+
+
Returns:
+

likelihood feed back for this given paramter set-up.

+
+
Return type:
+

likelihood (float)

+
+
+
+ +
+
+InferenceWorkflow.Likelihood.Kliklihood(theta, K_low, K_up)[source]
+

Computing likelihood from a hard cut constraint of K.

+
+
Parameters:
+
    +
  • theta (array) – An array representing the parameters used to determine a RMF model in the

  • +
  • case (Lagrangian. In this)

  • +
  • parameters. (the RMF model is defined by 7)

  • +
  • K_low (float) – lower bound of this K constraint.

  • +
  • K_up (float) – upper bound of this K constraint.

  • +
+
+
Returns:
+

likelihood feed back for this given paramter set-up.

+
+
Return type:
+

likelihood (float)

+
+
+
+ +
+
+InferenceWorkflow.Likelihood.Lliklihood(theta, L_low, L_up)[source]
+

Computing likelihood from a hard cut constraint of L.

+
+
Parameters:
+
    +
  • theta (array) – An array representing the parameters used to determine a RMF model in the

  • +
  • case (Lagrangian. In this)

  • +
  • parameters. (the RMF model is defined by 7)

  • +
  • K_low (float) – lower bound of this L constraint.

  • +
  • K_up (float) – upper bound of this L constraint.

  • +
+
+
Returns:
+

likelihood feed back for this given paramter set-up.

+
+
Return type:
+

likelihood (float)

+
+
+
+ +
+
+InferenceWorkflow.Likelihood.MRlikihood_Gaussian(eps_total, pres_total, x, d1)[source]
+

Computing likelihood from a simulation gaussian distribution of MR measurement

+
+
Parameters:
+
    +
  • eps_total (array) – the energy density of full EoS in MeV/fm3, times a G/c**2 factor

  • +
  • pres_total (array) – the pressure from full EoS model in MeV/fm3, times a G/c**4 factor

  • +
  • x (float array) – [Mvalue, Rvalue, Mwidth, Rwidth], Mvalue is the Mass center value of this

  • +
  • measurement (this Mass)

  • +
  • it (Rvalue is the Radius center of)

  • +
  • of (Mwidth is the 1-sigma width)

  • +
  • measurement

  • +
  • measurement. (Rwidth is the 1-sigma width of this radius)

  • +
  • d1 (float) – the sampled density of this measurement

  • +
+
+
Returns:
+

likelihood feed back for this given paramter set-up.

+
+
Return type:
+

likelihood (float)

+
+
+
+ +
+
+InferenceWorkflow.Likelihood.MRlikihood_kernel(eps_total, pres_total, x, d1)[source]
+

Computing likelihood from a distribution of MR measurement

+
+
Parameters:
+
    +
  • eps_total (array) – the energy density of full EoS in MeV/fm3, times a G/c**2 factor

  • +
  • pres_total (array) – the pressure from full EoS model in MeV/fm3, times a G/c**4 factor

  • +
  • x (kde.kernel) – the distribution kernel of MR measurement.

  • +
  • d1 (float) – the sampled density of this measurement

  • +
+
+
Returns:
+

likelihood feed back for this given paramter set-up.

+
+
Return type:
+

likelihood (float)

+
+
+
+ +
+
+InferenceWorkflow.Likelihood.Masslikihood_Gaussian(eps_total, pres_total, x, d1)[source]
+

Computing likelihood from a simulation gaussian distribution of Mass measurement

+
+
Parameters:
+
    +
  • eps_total (array) – the energy density of full EoS in MeV/fm3, times a G/c**2 factor

  • +
  • pres_total (array) – the pressure from full EoS model in MeV/fm3, times a G/c**4 factor

  • +
  • x (float array) – [Mvalue, Mwidth], Mvalue is the Mass center value of this

  • +
  • measurement (simulated)

  • +
  • measurement. (Mwidth is the 1-sigma width of this Mass)

  • +
  • d1 (float) – the sampled density of this measurement

  • +
+
+
Returns:
+

likelihood feed back for this given paramter set-up.

+
+
Return type:
+

likelihood (float)

+
+
+
+ +
+
+InferenceWorkflow.Likelihood.TidalLikihood_kernel(eps_total, pres_total, x, d1)[source]
+

Computing likelihood from a distribution of Gravitational wave measurement

+
+
Parameters:
+
    +
  • eps_total (array) – the energy density of full EoS in MeV/fm3, times a G/c**2 factor

  • +
  • pres_total (array) – the pressure from full EoS model in MeV/fm3, times a G/c**4 factor

  • +
  • x (kde.kernel) – containing kernelGW and chirp, kernelGW is the distribution kde.kernel

  • +
  • measurement (sampled from full GW)

  • +
  • mass (in [chrip)

  • +
  • M2/M1

  • +
  • M1 (tidal of)

  • +
  • sequence. (tidal of M2])

  • +
  • solely. (chrip mass is the sampling from chrip mass term in GW events)

  • +
  • d1 (float) – the sampled density of this measurement

  • +
+
+
Returns:
+

likelihood feed back for this given paramter set-up.

+
+
Return type:
+

likelihood (float)

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/RMF_EOS.html b/RMF_EOS.html new file mode 100644 index 0000000..16f2003 --- /dev/null +++ b/RMF_EOS.html @@ -0,0 +1,244 @@ + + + + + + + + + RMF EOS solver — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

RMF EOS solver

+

Functions to compute RMF Equation of state from given parameters.

+
+
+EOSgenerators.RMF_EOS.Energy_density_Pressure(x, rho, theta)[source]
+

Generate pressure and energy density two EOS ingredient from given RMF term and given parameters,

+
+
Parameters:
+
    +
  • x (array) – An array that consists of the initial values of sigma, omega, rho, and chemical

  • +
  • function. (potential obtained from the initial_values)

  • +
  • rho (float) – The central density from which the computation of the equation of state begins.

  • +
  • theta (array) – An array representing the parameters used to determine a RMF model in the

  • +
  • case (Lagrangian. In this)

  • +
  • parameters. (the RMF model is defined by 10)

  • +
+
+
Returns:
+

EOS ingredient, energy density in g/cm3 +pressure (float): EOS ingredient, pressure in dyn/cm3

+
+
Return type:
+

energy_density (float)

+
+
+
+ +
+
+EOSgenerators.RMF_EOS.compute_EOS(eps_crust, pres_crust, theta)[source]
+

Generate core part equation of state, main function, from RMF model,

+
+
Parameters:
+
    +
  • eps_crust (array) – the energy density of crust EoS in MeV/fm3, times a G/c**2 factor

  • +
  • pres_crust (array) – the pressure from crust EoS model in MeV/fm3, times a G/c**4 factor

  • +
  • theta (array) – An array representing the parameters used to determine a RMF model in the

  • +
  • case (Lagrangian. In this)

  • +
  • parameters. (the RMF model is defined by 10)

  • +
+
+
Returns:
+

EOS ingredient, energy density in g/cm3 +pressure (float): EOS ingredient, pressure in dyn/cm3

+
+
Return type:
+

energy_density (float)

+
+
+
+ +
+
+EOSgenerators.RMF_EOS.functie(x, args)[source]
+

iterate the the sigma, omega, rho term and chemical potential of electron and neutron at +any given density

+
+
Parameters:
+
    +
  • x (array) – initial sigma omega rho and chemical potential from initial_values function

  • +
  • args (array) – paramters of determine a RMF model in lagrangian, here we have 10 parameters.

  • +
+
+
Returns:
+

sigma term in lagrangian +omega (float): omega term in lagrangian +rho_03 (float): rho term in lagrangian +mu_n (float): chemical potential of neutron matter +mu_e (float): chemical potential of electron portion

+
+
Return type:
+

sigma (float)

+
+
+
+ +
+
+EOSgenerators.RMF_EOS.initial_values(rho, theta)[source]
+

Outputs the the sigma, omega, rho term and chemical potential of electron and neutron at +given initial density

+
+
Parameters:
+
    +
  • rho (float) – given nuclear density

  • +
  • theta (array) – paramters of determine a RMF model in lagrangian, here we have 10 parameters.

  • +
+
+
Returns:
+

sigma term in lagrangian +omega (float): omega term in lagrangian +rho_03 (float): rho term in lagrangian +mu_n (float): chemical potential of neutron matter +mu_e (float): chemical potential of electron portion

+
+
Return type:
+

sigma (float)

+
+
+
+ +
+ + +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/TOV_solver.html b/TOV_solver.html new file mode 100644 index 0000000..79135fd --- /dev/null +++ b/TOV_solver.html @@ -0,0 +1,300 @@ + + + + + + + + + Solve TOV Equation — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Solve TOV Equation

+

Function to solve the TOV equation from EOS equation of state given by user.

+
+
+TOVsolver.solver_code.TOV_def(r, y, inveos, ad_index)[source]
+

a function that packing the whole TOV equations set

+
+
Parameters:
+
    +
  • r (float) – raius as integrate varible

  • +
  • y (psudo-varible) – containing pressure, mass, h and b as intergarte varibles

  • +
  • equation (to solve out the TOV)

  • +
  • inveos – the invert of the eos, pressure and energy density relation to integrate

  • +
  • interpolate. (and)

  • +
+
+
Returns:
+

The array that contains all the Stars’ masses, in M_sun as a +Units. +Radius (array): The array that contains all the Stars’s radius, in km. +Tidal Deformability (array): The array that contains correpsonding Tidal property, +These are dimension-less.

+
+
Return type:
+

Mass (array)

+
+
+
+ +
+
+TOVsolver.solver_code.m1_from_mc_m2(mc, m2)[source]
+

a function that feed back the companion star mass from GW event measurement.

+
+
Parameters:
+
    +
  • mc (float) – chrip mass of a GW event, unit in solar mass.

  • +
  • m2 (float or numpy array) – the determined mass for one of the star, this

  • +
  • EoS. (is computed from sampling of)

  • +
+
+
Returns:
+

the companion star mass in solar mass.

+
+
Return type:
+

m1 (float or numpy array)

+
+
+
+ +
+
+TOVsolver.solver_code.solveTOV(center_rho, energy_density, pressure)[source]
+

Solve TOV equation from given Equation of state in the neutron star +core density range

+
+
Parameters:
+
    +
  • center_rho (array) – This is the energy density here is fixed in main

  • +
  • np.logspace (that is)

  • +
  • energy_density (array) – Desity array of the neutron star EoS, in MeV/fm^{-3}

  • +
  • simiplicity (Notice here for)

  • +
  • magnitude (we omitted G/c**4)

  • +
  • so

  • +
  • MeV/fm^{-3})*G/c**4 ((value in)

  • +
  • are (could convert to the energy density we)

  • +
  • using

  • +
  • magnitude. (please check the Test_EOS.csv to double check the order of)

  • +
  • pressure (array) – Pressure array of neutron star EoS, also in nautral unit

  • +
  • MeV/fm^{-3} (with)

  • +
  • Test_EOS.csv (still please check the)

  • +
  • is (the conversion)

  • +
  • dyn/cm3)*G/c**4. ((value in)

  • +
+
+
Returns:
+

The array that contains all the Stars’ masses, in M_sun as a +Units. +Radius (array): The array that contains all the Stars’s radius, in km.

+
+
Return type:
+

Mass (array)

+
+
+
+ +
+
+TOVsolver.solver_code.solveTOV_tidal(center_rho, energy_density, pressure)[source]
+

Solve TOV equation from given Equation of state in the neutron star +core density range

+
+
Parameters:
+
    +
  • center_rho (array) – This is the energy density here is fixed in main

  • +
  • np.logspace (that is)

  • +
  • energy_density (array) – Desity array of the neutron star EoS, in MeV/fm^{-3}

  • +
  • simiplicity (Notice here for)

  • +
  • magnitude (we omitted G/c**4)

  • +
  • so

  • +
  • MeV/fm^{-3})*G/c**4 ((value in)

  • +
  • are (could convert to the energy density we)

  • +
  • using

  • +
  • magnitude. (please check the Test_EOS.csv to double check the order of)

  • +
  • pressure (array) – Pressure array of neutron star EoS, also in nautral unit

  • +
  • MeV/fm^{-3} (with)

  • +
  • Test_EOS.csv (still please check the)

  • +
  • is (the conversion)

  • +
  • dyn/cm3)*G/c**4. ((value in)

  • +
+
+
Returns:
+

The array that contains all the Stars’ masses, in M_sun as a +Units. +Radius (array): The array that contains all the Stars’s radius, in km. +Tidal Deformability (array): The array that contains correpsonding Tidal property, +These are dimension-less.

+
+
Return type:
+

Mass (array)

+
+
+
+ +
+
+TOVsolver.solver_code.tidal_deformability(y2, Mns, Rns)[source]
+

Compute Tidal deformability from y2, neutron star mass and raius

+
+
Parameters:
+
    +
  • y2 (array) – midiate varrible that computing tidal

  • +
  • Mns (array) – neutron star mass in g/cm3

  • +
  • Rns (array) – neutron star radius in cm.

  • +
+
+
Returns:
+

neutron star tidal deformability with unit-less.

+
+
Return type:
+

tidal_def (array)

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/UnitConventionForDeveloper.html b/UnitConventionForDeveloper.html new file mode 100644 index 0000000..85f25e7 --- /dev/null +++ b/UnitConventionForDeveloper.html @@ -0,0 +1,360 @@ + + + + + + + + + Unit Convention for Developer — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Unit Convention for Developer

+

Tianzhe Zhou 2024/11/1

+

To set up a solid foundation for the development of the project, we need to establish a unit convention for the project. The unit convention is a set of rules that define the units of the physical quantities used in the project. The unit convention is important because it ensures that all developers use the same units for the same physical quantities, which helps to avoid errors and inconsistencies throughout the whole project.

+
+
[1]:
+
+
+
fm = 1
+hbarc = 0.197327053
+c = 1  # speed of light
+hbar = 1  # reduced Planck constant
+
+GeV = 1 / hbarc  # Giga-electronvolt
+MeV = 1e-3 * GeV  # Mega-electronvolt
+
+g = 5.625e26 * MeV  # gram
+kg = 1e3 * g  # kilogram
+cm = 1e13 * fm  # centimeter
+m = 100 * cm  # meter
+km = 1e5 * cm  # kilometer
+s = 3e10 * cm  # second
+
+dyn = g * cm / s**2  # dyne
+dyn_cm_2 = dyn / cm**2  # dyne / cm^2
+g_cm_3 = g / cm**3  # gram / cm^3
+erg = dyn * cm  # ἐργον energy unit
+
+m_n = 939.565 * MeV  # mass of neutron
+n0 = 0.16 / fm**3  # saturation density
+
+e0 = m_n * n0  # saturation energy density
+G = 6.6743e-8 * dyn * cm**2 / g**2  # gravitational constant
+Msun = 1.989e33 * g  # mass of sun
+
+
+
+

The first 4 lines come from a widely used unit convention in High Energy Physics (HEP), which is called Natural Unit System. You should be awared that we will NEVER using the Natural Unit System explicity, as long as you obey the following rules. 1. Whenever you define a literal physical quantity, you should always multiply the unit of that quantity.

+
# example of rule 1:
+m_n = 939.565 * MeV  # GOOD
+m_n = 939.565        # BAD
+m_n = 1.67e-27 * kg  # GOOD
+
+
+
    +
  1. Whenever you want a physical quantity in cgs unit(or others unit system), you should always divide the corresponding unit.

  2. +
+
+
[2]:
+
+
+
# example of rule 2:
+m_n = 939.565 * MeV  # mass of neutron
+# if I want to know m_n in terms of gram, I need to
+print(m_n / g)
+
+
+
+
+
+
+
+
+1.670337777777778e-24
+
+
+
    +
  1. When you need to plot, devide the unit of your axis. See the example below.

  2. +
+
    +
  1. When you use physic formula, you leave the whole form as it was, no additional constants.

  2. +
+
# example of rule 4:
+E = m * c**2     # GOOD
+F = G*M*m / r**2 # GOOD
+
+
+

Now we present a full procedure of how to use the unit convention in calculating MR relation. See https://arxiv.org/pdf/astro-ph/0506417v1 Page 15 for more details.

+image.png +
+
[3]:
+
+
+
import numpy as np
+from numpy import pi
+
+K_nrel = hbar**2 / (15 * pi**2 * m_n) * (3 * pi**2 / (m_n * c**2)) ** (5 / 3)  # Rule 1
+print(K_nrel / (cm**2 / erg ** (2 / 3)))  # Rule 2
+
+
+
+
+
+
+
+
+6.433772787333139e-26
+
+
+
+
[4]:
+
+
+
def EOS_P(e):
+    return K_nrel * e ** (5 / 3)  # Rule 4
+
+
+e_min = 1e4 * g_cm_3  # Rule 1
+e_max = 1e18 * g_cm_3  # Rule 1
+e_grid = np.geomspace(e_min, e_max, 10000)
+p_grid = EOS_P(e_grid)
+
+
+def EofP(P, e_grid, p_grid):
+    return np.interp(P, p_grid, e_grid)
+
+
+def PofE(E, e_grid, p_grid):
+    return np.interp(E, e_grid, p_grid)
+
+
+
+
+
[5]:
+
+
+
from scipy.integrate import ode
+
+
+# working with rescaled quantities
+def TOV1(r, y, grids):
+    p, m = y
+    e_grid = grids[0]
+    p_grid = grids[1]
+
+    e = EofP(p, e_grid, p_grid)
+
+    dpdr = -(e + p) * (m + 4 * pi * r**3 * p)  # Rule 4
+    dpdr = dpdr / (r * (r - 2 * m))  # Rule 4
+    dmdr = 4 * pi * r**2 * e  # Rule 4
+
+    return np.array([dpdr, dmdr])
+
+
+def solveTOV1(rho_c, e_grid, p_grid):
+    # Notice that we only rescale quantities inside this function
+    rho_c = rho_c * G / c**2
+    e_grid = e_grid * G / c**2
+    p_grid = p_grid * G / c**4
+
+    Pmin = p_grid[0]
+
+    r = 4.441e-16 * cm  # Rule 1
+    dr = 10.0 * cm  # Rule 1
+
+    p_c = PofE(rho_c, e_grid, p_grid)
+
+    P0 = p_c - (4 * pi / 3) * (p_c + rho_c) * (3 * p_c + rho_c) * r**2  # Rule 4
+    m0 = 4 / 3 * pi * rho_c * r**3  # Rule 4
+
+    param = (e_grid, p_grid)
+
+    stateTOV = np.array((P0, m0))
+    sy = ode(TOV1).set_integrator("dop853")
+    sy.set_initial_value(stateTOV, r).set_f_params(param)
+    while sy.successful() and stateTOV[0] > Pmin:
+        stateTOV = sy.integrate(sy.t + dr)
+        dpdr, dmdr = TOV1(sy.t + dr, stateTOV, param)
+        dr = 0.46 / (dmdr / stateTOV[1] - dpdr / stateTOV[0])
+    # at the end of this function, we rescale the quantities back
+    return stateTOV[1] * c**2 / G, sy.t
+
+
+def compute_tov_properties(rho_c, e_grid, p_grid):
+    M = np.zeros_like(rho_c)
+    R = np.zeros_like(rho_c)
+    for i in range(len(rho_c)):
+        M[i], R[i] = solveTOV1(rho_c[i], e_grid, p_grid)
+    return M, R
+
+
+def cal_MR():
+    density = np.geomspace(1e14 * g_cm_3, e_max, 100)  # Rule 1
+    return compute_tov_properties(density, e_grid, p_grid)
+
+
+
+
+
[6]:
+
+
+
import matplotlib.pyplot as plt
+
+M, R = cal_MR()
+
+plt.figure(dpi=400)
+plt.plot(R / km, M / Msun, "ro-", ms=2)  # Rule 3
+plt.xlabel("Radius [km]")
+plt.ylabel("Mass [Msun]")
+plt.show()
+
+
+
+
+
+
+
+_images/UnitConventionForDeveloper_13_0.png +
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/UnitConventionForDeveloper.ipynb b/UnitConventionForDeveloper.ipynb new file mode 100644 index 0000000..9f238b7 --- /dev/null +++ b/UnitConventionForDeveloper.ipynb @@ -0,0 +1,301 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Unit Convention for Developer\n", + "Tianzhe Zhou 2024/11/1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To set up a solid foundation for the development of the project, \n", + "we need to establish a unit convention for the project. \n", + "The unit convention is a set of rules that define the units of the physical quantities used in the project. \n", + "The unit convention is important because it ensures that all developers use the same units for the same physical quantities, which helps to avoid errors and inconsistencies throughout the whole project." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "fm = 1\n", + "hbarc = 0.197327053\n", + "c = 1 # speed of light\n", + "hbar = 1 # reduced Planck constant\n", + "\n", + "GeV = 1 / hbarc # Giga-electronvolt\n", + "MeV = 1e-3 * GeV # Mega-electronvolt\n", + "\n", + "g = 5.625e26 * MeV # gram\n", + "kg = 1e3 * g # kilogram\n", + "cm = 1e13 * fm # centimeter\n", + "m = 100 * cm # meter\n", + "km = 1e5 * cm # kilometer\n", + "s = 3e10 * cm # second\n", + "\n", + "dyn = g * cm / s**2 # dyne\n", + "dyn_cm_2 = dyn / cm**2 # dyne / cm^2\n", + "g_cm_3 = g / cm**3 # gram / cm^3\n", + "erg = dyn * cm # ἐργον energy unit\n", + "\n", + "m_n = 939.565 * MeV # mass of neutron\n", + "n0 = 0.16 / fm**3 # saturation density\n", + "\n", + "e0 = m_n * n0 # saturation energy density\n", + "G = 6.6743e-8 * dyn * cm**2 / g**2 # gravitational constant\n", + "Msun = 1.989e33 * g # mass of sun\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first 4 lines come from a widely used unit convention in High Energy Physics (HEP),\n", + "which is called [Natural Unit System](https://en.wikipedia.org/wiki/Natural_units).\n", + "You should be awared that we will NEVER using the Natural Unit System explicity,\n", + "as long as you obey the following rules.\n", + "1. Whenever you define a [literal](https://www.ituonline.com/tech-definitions/what-is-literal-programming/) \n", + "physical quantity, you should always *multiply* the unit of that quantity.\n", + "```python\n", + "# example of rule 1:\n", + "m_n = 939.565 * MeV # GOOD\n", + "m_n = 939.565 # BAD\n", + "m_n = 1.67e-27 * kg # GOOD\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. Whenever you want a physical quantity in cgs unit(or others unit system), \n", + "you should always *divide* the corresponding unit." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.670337777777778e-24\n" + ] + } + ], + "source": [ + "# example of rule 2:\n", + "m_n = 939.565 * MeV # mass of neutron\n", + "# if I want to know m_n in terms of gram, I need to\n", + "print(m_n / g)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. When you need to plot, *devide* the unit of your axis. See the example below." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. When you use physic formula, you leave the whole form as it was, no additional constants.\n", + "```python\n", + "# example of rule 4:\n", + "E = m * c**2 # GOOD\n", + "F = G*M*m / r**2 # GOOD\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we present a full procedure of how to use the unit convention in calculating MR relation.\n", + "See https://arxiv.org/pdf/astro-ph/0506417v1 Page 15 for more details." + ] + }, + { + "attachments": { + "image.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![image.png](attachment:image.png)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6.433772787333139e-26\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "from numpy import pi\n", + "\n", + "K_nrel = hbar**2 / (15 * pi**2 * m_n) * (3 * pi**2 / (m_n * c**2)) ** (5 / 3) # Rule 1\n", + "print(K_nrel / (cm**2 / erg ** (2 / 3))) # Rule 2" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def EOS_P(e):\n", + " return K_nrel * e ** (5 / 3) # Rule 4\n", + "\n", + "\n", + "e_min = 1e4 * g_cm_3 # Rule 1\n", + "e_max = 1e18 * g_cm_3 # Rule 1\n", + "e_grid = np.geomspace(e_min, e_max, 10000)\n", + "p_grid = EOS_P(e_grid)\n", + "\n", + "\n", + "def EofP(P, e_grid, p_grid):\n", + " return np.interp(P, p_grid, e_grid)\n", + "\n", + "\n", + "def PofE(E, e_grid, p_grid):\n", + " return np.interp(E, e_grid, p_grid)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from scipy.integrate import ode\n", + "\n", + "\n", + "# working with rescaled quantities\n", + "def TOV1(r, y, grids):\n", + " p, m = y\n", + " e_grid = grids[0]\n", + " p_grid = grids[1]\n", + "\n", + " e = EofP(p, e_grid, p_grid)\n", + "\n", + " dpdr = -(e + p) * (m + 4 * pi * r**3 * p) # Rule 4\n", + " dpdr = dpdr / (r * (r - 2 * m)) # Rule 4\n", + " dmdr = 4 * pi * r**2 * e # Rule 4\n", + "\n", + " return np.array([dpdr, dmdr])\n", + "\n", + "\n", + "def solveTOV1(rho_c, e_grid, p_grid):\n", + " # Notice that we only rescale quantities inside this function\n", + " rho_c = rho_c * G / c**2\n", + " e_grid = e_grid * G / c**2\n", + " p_grid = p_grid * G / c**4\n", + "\n", + " Pmin = p_grid[0]\n", + "\n", + " r = 4.441e-16 * cm # Rule 1\n", + " dr = 10.0 * cm # Rule 1\n", + "\n", + " p_c = PofE(rho_c, e_grid, p_grid)\n", + "\n", + " P0 = p_c - (4 * pi / 3) * (p_c + rho_c) * (3 * p_c + rho_c) * r**2 # Rule 4\n", + " m0 = 4 / 3 * pi * rho_c * r**3 # Rule 4\n", + "\n", + " param = (e_grid, p_grid)\n", + "\n", + " stateTOV = np.array((P0, m0))\n", + " sy = ode(TOV1).set_integrator(\"dop853\")\n", + " sy.set_initial_value(stateTOV, r).set_f_params(param)\n", + " while sy.successful() and stateTOV[0] > Pmin:\n", + " stateTOV = sy.integrate(sy.t + dr)\n", + " dpdr, dmdr = TOV1(sy.t + dr, stateTOV, param)\n", + " dr = 0.46 / (dmdr / stateTOV[1] - dpdr / stateTOV[0])\n", + " # at the end of this function, we rescale the quantities back\n", + " return stateTOV[1] * c**2 / G, sy.t\n", + "\n", + "\n", + "def compute_tov_properties(rho_c, e_grid, p_grid):\n", + " M = np.zeros_like(rho_c)\n", + " R = np.zeros_like(rho_c)\n", + " for i in range(len(rho_c)):\n", + " M[i], R[i] = solveTOV1(rho_c[i], e_grid, p_grid)\n", + " return M, R\n", + "\n", + "\n", + "def cal_MR():\n", + " density = np.geomspace(1e14 * g_cm_3, e_max, 100) # Rule 1\n", + " return compute_tov_properties(density, e_grid, p_grid)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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V5csXJjMmFG5TAAMfWPGFKfSnHtuMrICf81ua0tmzkxaWsqfBQAAAABUnGukAIChobExOfro0tZOmpSMH5+0tiYTJhSn2Mya5coOAHpvxIjkuOOSrbcurjNcsqS8eW1tyezZxfVSAAAAAMCAomwDAAx+//xncuCBydKl3a99+9uTX/+6OIUAACrt3e8uCjL77Zc88EB5sxobk6amZMqUymQDAAAAACrCNVIAwOD24ovJAQckjz7a/dottkjmz1e0AaC63vzm5JZbkunTy581b175MwAAAACAilK2AQAGr/b25Kijiu/6784aayS//GWy3nrVzwUA66+f3Hhj8bYcLS2VyQMAAAAAVIyyDQAweJ11VnLJJaWt/fGPk0mTqpsHAF5p7Nhkww3Lm9HaWpksAAAAAEDFKNsAAIPTtdcmn/1saWtPP724agoA+tr48eXtnzChMjkAAAAAgIoZ3d8BAABK0tSUXHRRcZ3GE08k999fXCPVnYMPTk4+uerxAKBTtbVJQ0Pv96+2WuWyAAAAAAAV4WQbAGBga25O6uqSXXZJ5s4tvmD5178mK1Z0v3fHHYuCzogRVY8JAJ2aNau8/TfdVJzQVkrBFAAAAADoE8o2AMDAtWBBMn160tjY870TJya//GWyxhqVzwUApZoyJZk6tbwZp56aHHdcaUVTAAAAAKDqlG0AgIGpuTmZOTNpa+v53tGjkyuuSDbfvPK5AKCn5sxJamrKmzF3bnLooclLL1UmEwAAAADQa6P7OwADx913353Fixfn4YcfznPPPZeampqsv/762W677bLzzjtnzJgx/R2xZE8++WSampry2GOP5fHHH09bW1vGjx+fzTbbLG95y1uyxRZb9HdEALpTX9+7ok1SfFHzbW+rbB4A6K3Jk5P583tfIn3Zz36WPPlkcuWVyfjxlcsHAAAAAPSIss0w99BDD+U73/lOLrnkkjz88MOrXDd+/Pjst99+Of7447PLLrv0YcLStba2Zs6cObnyyivT0tKSlStXrnLtFltskcMPPzzHHntsNt544z5MCUBJbrutd1dHvWzy5MplAYBKmDEjWbgwmT27vD/jfvObZM89k2uvTTbYoGLxAAAAAIDSuUZqmFq5cmXOOOOMbLvttjnzzDO7LNokyZIlS3LppZdm1113zQc/+ME8++yzfZS0eytXrsxZZ52VLbbYIieddFKampq6LNokyQMPPJAvf/nLeeMb35ivf/3r3a4HoI/Nm9e/+wGgGmprk4aGolRaX59Mm5bssEPxdo89Sp/T0pK89a3JAw9ULysAAAAAsEpOthmG2traMnPmzCxYsKBX+y+++OLccsst+fWvf503vOENlQ3XQ88991wOO+yw/OpXv+rV/ueffz6f//znc/PNN+eKK67IuHHjKpwQgF5paenf/QBQTVOmFK/Xuvzy5LDDkqVLu5/xv/9blHR+/evkLW+pfEYAAAAAYJWcbDPMrFixIgcffPAqizZjxozJjjvumL333ju77rpr1lxzzU7X3Xvvvdlrr73y6KOPVjNul1544YXsscceXRZtXv/612fq1Kl529velm233TYjR3b+U/66667Lvvvum6Wl/KM2ANW3ZEl5+1tbK5MDAPrSwQcX10ONH1/a+kcfTd72tuT3v69uLgAAAADgVZRthpnTTjstV199dYfna6+9dr75zW/m8ccfzx133JEbb7wxt9xyS5566qlcfvnl2WabbTrseeCBB3LooYf22xVMH/3oR9PSyckFY8aMyQknnJC//OUv+fvf/56GhobcfPPNueeee/Loo4/m3HPPzcSJEzvsu+mmm3Lcccf1RXQAulPqFxlXZcKEyuQAgL62117JTTclG2xQ2vpnn03e+c7kF7+oZioAAAAA4BWUbYaRO++8M1/72tc6PN98883T1NSUT37yk1lrrbVe9b4xY8bkoIMOSktLS/7zP/+zw97f/e53+d73vle1zKsyb968/OQnP+nwfIMNNsgtt9ySs88+u9OC0Prrr5/jjjsu99xzT3bbbbcO7z///PNzww03VCUzAD0waVJ5+2trK5MDAPpDbW2ycGGyxRalrX/ppeSgg5Lvf7+6uQAAAACAJMo2w8qnPvWprFix4lXP1lhjjVx77bXZaqututy7xhpr5Oc//3ne/OY3d3jfKaeckueff76iWbuyfPnynH766R2e19TU5MYbb8zOO+/c7Yz11lsvN9xwQ6eFnE984hP9dloPAP/nX/8qb/+sWRWJAQD9Zuuti8LNjjuWtn7lyuSoo5KvfS1pb69uNgAAAAAY5pRthomWlpZOT2w55ZRTst1225U0Y9y4cbngggs6PH/yySdz/vnnl52xVJdddlnuv//+Ds+/9KUvZVIPTkIYP358Lrroog7P77nnnlxxxRXlRASgHJddlvzyl73fP3VqMnly5fIAQH/ZeOPk5puTPfYofc9JJyXHH1+UbwAAAACAqlC2GSY6u+pp3XXXzXHHHdejOXV1dZ1eJ9WXZZtf/OIXHZ5NmDAhs2fP7vGsurq67Lnnnh2en3feeb1IBkDZ7r8/Ofro3u+vqUnmzq1cHgDob2utlVx3XXLggaXvOffc5LDDkqVLq5cLAAAAAIYxZZthYPny5Zk/f36H54cffnjGjRvX43lHHXVUh2f33HNPbr/99l7l64n29vbcdNNNHZ4feOCBWXPNNXs184Mf/GCHZzfddFP+8Y9/9GoeAL20dGny/vcnS5b0bn9NTTJ/flJbW9lcANDfXv4zrpO/i63SZZcl++2XPPdc9XIBAAAAwDClbDMM3HLLLXn66ac7PD/ooIN6NW/ffffN6quv3uH5tdde26t5PfHXv/41Tz75ZIfn06ZN6/XMurq6Ds/a29v75McDwCucdFJy222921tXlyxcmMyYUdlMADBQjBqVfO97ycknl77n+uuT3XZLPvKRZNq0ZNKk4m19fdLcXL2sAAAAADDEKdsMA7/97W87PBs3blynJZNS1NTUdFpu6ezjVNq//vWvTp9vv/32vZ657bbbZtSoUR2e33jjjb2eCUAPXXttctZZ3a9bbbVk8uRkhx3+/cXCpqZk0SIn2gAw9I0YkXz5y8U1USNGlLbn7ruTH/wgaWhIFi8u3s6dm0yZUpRVlW4AAAAAoMeUbYaBpqamDs922mmnjBkzptczd9111w7PmvvgH2mfeOKJTp+vvfbavZ45YsSIrLXWWh2ed/bfDYAqePjhpJMr/Tp1ySVFueauu4qTbL7znaJ8AwDDyXHHJT/5SVLG3+mSJI2NyfTpyYIFlckFAAAAAMOEss0w8Mc//rHDs0mTJpU1s7P9zzzzTP7+97+XNbc7L774YqfPx44dW9bcmpqaDs/uv//+tLa2ljUXgG6sWJEccUSyijLlq3zsY8nBB1c/EwAMBoccklx9dbLGGuXNaWtLZs5MWloqkwsAAAAAhgFlmyFu2bJleeihhzo833rrrcuau6r99913X1lzu7OqE2yeffbZsuY+88wznT6v9o8HYNj7+teTUq4h3GGH5JvfrH4eABhM/uM/kptuSiZOLG9OW1sye3ZFIgEAAADAcDC6vwNQXQ899FBWrlzZ4fmmm25a1txV7X/wwQfLmtud9dZbr9Pnjz76aK9nLlmyJC+88EKn73vwwQez884793p2KRoaGsraf9ddd1UoCUAfW7gwOfXU7tetvnpy2WXFWwDg1aZMKf5Mfec7k7/9rfdzGhuLqxqnTKlcNgAAAAAYopRthrjHHnus0+cbbrhhWXNXtf/xxx8va253Nttss06f33rrrZkxY0avZt56662rfN+q/vtV0rRp06r+MQAGnKeeSg49tLhGqjvnnpu8+c3VzwQAg9U22ySLFiWTJhV/xvbWvHnKNgAAAABQAtdIDXFPreIfWtdaa62y5o4aNSrjxo3r8PzJJ58sa253Nt5442y11VYdnl9//fW9ntnV3mr/eACGpfb25KMfTf7+9+7XHnJI8pGPVD8TAAx2m2ySdPJ3pR5paalMFgAAAAAY4pRthrjnnnuu0+drrrlm2bM7m/H888+XPbc7e+65Z4dnt9xyS1p68Q/DbW1t+cEPfrDK9/fFjwdg2DnvvOTKK7tft8UWyfe+l4wYUf1MADAUvPhieftbWyuTAwAAAACGOGWbIW7ZsmWdPh89uvwbxMaMGdPh2dKlS8ue250jjjii0+fHHXdcVq5c2aNZp556ap544olVvr8vfjwAw0JTU1Jfn+y4Y/G2O6NHJ5ddlpR5EhsADCvjx5e3f8KEyuQAAAAAgCGu/MYFA9qKFSs6fT5q1KiyZ3c2Y/ny5WXP7c4ee+yRurq6NDQ0vOr5okWLcsIJJ+Rb3/pWSXPmz5+fs88+u8s1PS3v9MaiRYvK2n/XXXflmGOOqVAagAprbi7KNY2NPdt3xhnJrrtWJxMADFW1tclr/p7UI33w9x8AAAAAGAqUbYa4VZ1gU4lSTGczOjvtphrOOOOM7LXXXh3KMN/+9rfzr3/9K9/61rey4YYbdrr3pZdeyllnnZVTTz11lWWkl9XU1FQs86rU1dVV/WMA9IsFC5KZM5O2tp7te9e7khNOqE4mABjKZs1K5s7t/f7GxuRLX0pOPdU1jgAAAADQBWWbIW7s2LGdPl/V9VI90dkVS6v6eJW2xx575PTTT8/JJ5/c4X2XXXZZFixYkP333z/veMc7summm2bMmDH517/+lUWLFuWKK67IP//5z1ft2WabbfLPf/4zzz///Kuejxs3rqo/DoAhq7m5d0Wb9dZL5s1LRrrpEgB6bMqUZOrUnp8o90qnnZa89FLyta8p3AAAAADAKijbDHHjx4/v9Hlra2vZs5csWdLh2YQJE8qeW6ovfOELefDBB/P973+/w/uee+65XHLJJbnkkku6nbP++uvnpz/9aXbeeecO79tggw0qkhVg2Kmv73nRJkk22KB4AQC9M2dOMn167/4cftnXv54sXZqcdZbCDQAAAAB0wreND3Hrrbdep8+feeaZsua+9NJLeemll0r+eNUwYsSIXHDBBTnrrLMyatSoXs3Yeuutc9NNN2Wttdbq9P0bb7xxOREBhqfbbuv9d9T/+c9JU1Nl8wDAcDJ5cjJ/flLulbjf/GbyiU8kr7m6FwAAAABQthnyNtpoo06f/+tf/ypr7iOPPNKjj1dNJ554Yu666668733vy4gSv+uypqYmJ5xwQlpaWrL99tt3uFbqZdtss00lowIMD/Pm9e9+ABjuZsxIFi4srpQqx5w5ybHHKtwAAAAAwGu4RmqI22STTTJ27NgOp9D8/e9/L2vuQw891OnzLbbYoqy5vbXddtvlpz/9ac4888z8+te/zg033JA///nPeeKJJ/LUU09l5MiR2WijjTJp0qS8853vzPvf//5MnDjx/9/f3NzcYebqq6+erbfeui9/GABDQ0tL/+4HAJLa2qShoTgxbt684s/X1tZkwoTidcMNyYoV3c85//ziSqnvfz/p5YmiAAAAADDUKNsMcSNGjMhWW22Vu++++1XP77333rLmrmp/f5dTNttssxx11FE56qijerSvoaGhw7PddtstI0c6/Amgx5YsKW9/a2tlcgAAyZQpxeu1fvGL5H3vS5Yt637GRRcVhZt585LR/hkBAAAAADQJhoGdd965w7M77rijrJmd7X/d6173qtNiBpNFixZ1eLbXXnv1QxKAIWD8+PL2T5hQmRwAwKodcEBy5ZXJ2LGlrb/00uTQQ0sr5wAAAADAEKdsMwzstttuHZ7dfffdaS3j5IBVnQQzGP3+97/v9Fqsgw46qB/SAAwBm21W3v7a2srkAAC6tu++ya9+ldTUlLZ+/vziNJylS6ubCwAAAAAGOGWbYeAd73hHh2crVqzIjTfe2Kt5jz/+eG6//faSPs5gcOGFF3Z4tvPOO2f77bfvhzQAg9yyZUmZp6dl1qxKJAEASvHOdyZXX52MG1fa+l/8Innve5O2tqrGAgAAAICBTNlmGNhuu+2y1VZbdXj+05/+tFfz5s+fn5UrV77q2YgRI7Lvvvv2al5/uv/++/Ozn/2sw/Pjjz++78MADAXf+Ebyl7/0fv/UqcnkyZXLAwB0b6+9kuuuS9Zcs7T1V1+d7L9/8uKL1c0FAAAAAAOUss0wcfjhh3d4duWVV+af//xnj+a0t7dn7ty5HZ7vueeeef3rX9/rfP3l2GOPTdtrviNzq622ygc+8IF+SgQwiN11V3L66b3fX1OTdPJnDADQB3bfPbn++mTChNLWX399cQ3V889XNxcAAAAADEDKNsPE0UcfndVWW+1Vz5YtW5aTTz65R3PmzZuXu+++u8Pz+vr6kmfMmjUrI0aM6PB68MEHe5SlXF/72tdy/fXXd3h+zjnnZMyYMX2aBWDQW7asuP5p2bLe7a+pSebPT2prKxoLAOiBurrkN79J1l67tPW/+13y7ncnS5ZUNRYAAAAADDTKNsPEJptskg9/+MMdnl900UWZP39+STP++te/dnq90g477JADDjigzIQ999xzz/VqX3t7e0477bScdNJJHd53xBFHZL/99is3GsDw81//lbS09G5vXV2ycGEyY0ZlMwEAPTdlSlGiWW+90tb/z/8k//mfybPPVjcXAAAAAAwgyjbDyJe//OWsu+66HZ4fccQR+clPftLl3jvuuCN77713nu3kH1DPPffcjBzZ9z+V9ttvvxx00EG55ppr8tJLL5W0Z9GiRdltt93ypS99qcP7dthhh06vyAKgG4sXJ6ed1v26ddZJpk5NdtghmTYtqa9PmpqSRYucaAMAA8lOOyU33ZRssEFp6xsakne8I3n66WqmAgAAAIABY3R/B6DvTJw4MRdeeGEOPPDAVz1/6aWXcuihh+ZHP/pRjjnmmNTV1WXixIlZsmRJ/vjHP+aSSy7JRRddlGWdXA3yyU9+Mm9/+9v76ofwKsuWLcvPf/7z/PznP88aa6yRPfbYIzvttFO23377rLfeellzzTXz9NNP57HHHsvixYtz1VVX5b777ut01hve8IZcd911GT9+fB//KAAGuVKvjxo5Mrn22mS33fokFgBQph12KAo3e++dPPJI9+ubmpK99kpuuCGZOLHq8QAAAACgPynbDDMHHHBAvva1r+ULX/hCh/ddd911ue6660qeNWPGjHzjG9+oZLxee/7553PNNdfkmmuu6fHenXbaKddcc0023njjKiQDGOLO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okWLstFGG1U7dqcefvjhvP3tb8999923yjXjx4/PG9/4xqy99tp58cUX8+ijj+aBBx7odO3SpUvz4Q9/OCNHjswRRxxRrdhAX1ixIvnv/+5+3ezZ1c8CAAB0NGtWade+rspTT1UsCgAAAEBPOdlmmDnttNM6Ldqsvfba+eY3v5nHH388d9xxR2688cbccssteeqpp3L55Zdnm2226bDngQceyKGHHlrSlU3VcNRRR62yaHPYYYelsbExzzzzTJqbm/Ob3/wmixYtyv3335/HH3883/72t7Ppppt22Ldy5cocc8wxqyzkAIPE1Vcnf/tb12v22ivZfvu+yQMAALzalCnJ1Km933/ZZckPflC5PAAAAAA9oGwzjNx555352te+1uH55ptvnqampnzyk5/MWmut9ar3jRkzJgcddFBaWlryn//5nx32/u53v8v3vve9qmVelauvvjrXXHNNh+c1NTW56qqr8uMf/zi77bZbRo7s+FN84sSJ+cQnPpG77ror//Ef/9Hh/S+++GJOPPHEquQG+kBTU1Jf3/26UtYAAADVM2dOUlPT+/3HHps0NlYuDwAAAECJlG2GkU996lNZsWLFq56tscYaufbaa7PVVlt1uXeNNdbIz3/+87z5zW/u8L5TTjklzz//fEWzdueiiy7q9PkFF1yQGTNmlDRjnXXWyZVXXpntttuuw/uuuuqqPP300+VEBPpac3NSV5fsskvy0ENdr33965P99uubXAAAQOcmT07mz+994Wbp0uS9700efriyuQAAAAC6oWwzTLS0tOSGG27o8PyUU07ptGzSmXHjxuWCCy7o8PzJJ5/M+eefX3bGUi1btizXXntth+c777xzDj/88B7NWmONNfLVr361w/Ply5d3+jGAAWrBgmT69NK/q/Xtb09Gj65uJgAAoHszZiQLF/b+SqlHHkkOPDBpa6tsLgAAAIAuKNsME51d9bTuuuvmuOOO69Gcurq6Tq+T6suyzSOPPNLpSToHHXRQr+bts88+GTduXIfn9913X6/mAX2suTmZObNn/7j+s58lLS3VywQAAJSutjZpaEhuu6247nXatGSHHZKddkrGjOl+/623Jh/7WNLeXvWoAAAAAImyzbCwfPnyzJ8/v8Pzww8/vNOSSXeOOuqoDs/uueee3H777b3K11P/+te/On2+/fbb92re2LFjs+WWW3Z4/sgjj/RqHtDH6ut7/l2sbW3J7NnVyQMAAPTOlCnJd75TnHRz113J7bcX10yVYt685Nxzq5sPAAAA4P8o2wwDt9xyS55++ukOz3t7Esy+++6b1VdfvcPzvrp2qX0V36m25ppr9nrmhAkTOjwbNWpUr+cBfeS220q/Ouq1GhuTpqbK5gEAACpr//2T008vbe2JJya/+U118wAAAABE2WZY+O1vf9vh2bhx41JXV9ereTU1NZk2bVpJH6caNtxww06fP/nkk72e+cQTT5T8cYABZN68/t0PAABU30knJaV8w9CKFcn73pfcf3/1MwEAAADDmrLNMNDUyckNO+20U8aUcu/5Kuy6664dnjU3N/d6Xk9svvnmnRZhbr311l7Ne/LJJ/O///u/HZ5PnTq1V/OAPtTS0r/7AQCA6hs5MrnoomTSpO7XPvVUcRrOc89VPRYAAAAwfCnbDAN//OMfOzybVMo/UHWhs/3PPPNM/v73v5c1t1Tvfe97Ozz76U9/mhdffLHHsy666KKsXLnyVc822GCD7L777r3OB/SRJUvK29/aWpkcAABAda25ZvKLXyTrrtv92sWLk1mzktf8XR8AAACgUpRthrhly5bloYce6vB86623Lmvuqvbfd999Zc0t1fHHH5/VVlvtVc8efvjhfOELX+jRnHvvvTdf+cpXOjw/8cQTM3bs2LIyAn1g/Pjy9k+YUJkcAABA9W25ZfKznyWjRnW/9oorkq9+tfqZAAAAgGFpdH8HoLoeeuihDqe2JMmmm25a1txV7X/wwQfLmluqbbbZJqeffno+97nPver5t771rSTJN77xjQ5lnNf6wx/+kA984AN55plnXvV86tSpOeGEEyoZt0sNDQ1l7b/rrrsqlAQGodrapJxfQ7W1lcsCAABU3957J2efnRx/fPdrv/jF5C1vKa6VAgAAAKggZZsh7rHHHuv0+YYbbljW3FXtf/zxx8ua2xOf/exn889//jPf+c53XvX8W9/6Vq644oocddRR2WuvvbLttttm7bXXTltbWx599NHceuut+clPfpJrrrmmQxFp5513ztVXX53Ro/vul8a0adP67GPBkDNrVjJ3bnn7AQCAweUTn0huvz2ZN6/7tYcfntxyS7L99tXPBQAAAAwbrpEa4p566qlOn6+11lplzR01alTGjRvX4fmTTz5Z1tyeOvfcc3PhhRdm7bXXftXzhx56KF/84hczffr0rL/++hkzZkzGjx+fN77xjTnssMOyYMGCVxVtRo8eneOOOy4LFy7MuqXc/w4MDFOmJBMn9m7v1KnJ5MmVzQMAAFTfiBHJd7+b7Lpr92ufe6442ebpp6ufCwAAABg2lG2GuOeee67T52uuuWbZszub8fzzz5c9t6c+/OEP58EHH8wZZ5yRHXfcsUd7t9hii3zmM5/Jvffem3PPPTerr756lVICVfH000lra8/31dSUdyIOAADQv2pqkiuvTDbeuPu1//u/yfvfnyxfXv1cAAAAwLCgbDPELVu2rNPnlbgmacyYMR2eLV26tOy5vbX66qtn7bXXzsiRpf+0fuyxx/LXv/41d911V9rb26uYDqiKH/846envOzU1yfz5SW1tdTIBAAB9Y5NNkp//PFltte7XXn998vnPVz8TAAAAMCyU37hgQFuxYkWnz0eNGlX27M5mLO/j7xJbuXJlzjzzzJxxxhl59tlne7z/+eefz5VXXpkrr7wyb3nLW3LhhRdmypQpVUi6aosWLSpr/1133ZVjjjmmQmlgEGlvT84/v2d76uqSOXMUbQAAYKiYOrW4UurDH+5+7VlnJTvtlBx2WNVjAQAAAEObss0Qt6oTbCpRiulsRmen3VRLa2tr3vOe9+Tmm2/u8L7Ro0fn3e9+d/bcc89stdVWWXfddfPiiy/msccey6233pqrr746999//6v23HnnnZk2bVrOO++8fOQjH+mrH0bq6ur67GPBkHLLLcnixV2vWWONZMcdi3LNrFnJ5Ml9Eg0AAOhDRx6Z3H578p3vdL/2ox9N3vQmfzcAAAAAyqJsM8SNHTu20+erul6qJzq7MmpVH6/SXnrppbzrXe9KQ0NDh/cdcsghOfPMM/P617++072HH354vvWtb+VnP/tZ6uvr8+STT/7/71u2bFmOOuqojBs3Lh/4wAeqlh+ogAsu6H7N+ecnhx5a/SwAAED/Ovvsooz/u991va6tLTnggKSpKdlwwz6JBgAAAAw9I/s7ANU1fvz4Tp+3traWPXvJkiUdnk2YMKHsuaU46aSTOi3afPnLX85ll122yqLNy0aOHJn3v//9uf322/OGN7zhVe9rb2/PMccck7/97W+VjAxUUmtrctllXa9Zd93kve/tmzwAAED/GjMm+dnPktf8Hb9T//hHctBBSSffRAQAAABQCmWbIW699dbr9PkzzzxT1tyXXnopL730Uskfr5L+9re/5Vvf+laH5+9///tz8skn92jW61//+vzqV7/qcN3WkiVL8qUvfamMlEBVXXpp8sILXa/54AeTmpq+yQMAAPS/iROTX/wiGTeu+7ULFyaf+ETVIwEAAABDk7LNELfRRht1+vxf//pXWXMfeeSRHn28Svrud7+bFStWvOrZmDFj8vWvf71X8yZNmpRZs2Z1eH7ppZfm6aef7tVMoMpKuULqqKOqnwMAABhYdtwxueii0tZ+73vJd79b1TgAAADA0KRsM8RtsskmGTt2bIfnf//738ua+9BDD3X6fIsttihrbimuv/76Ds/e+ta3ZvPNN+/1zMMOO6zDs6VLl+b3v/99r2cCVdLcnLS0dL1m2rRk++37Jg8AADCwzJyZnHRSaWuPOy7xd38AAACgh5RthrgRI0Zkq6226vD83nvvLWvuqvZvvfXWZc3tzooVK/LHP/6xw/Pp06eXNXfatGkZMWJEh+e33357WXOBKijlVJujj65+DgAAYOA6/fRkv/26X7d8eXLwwUmZ35QEAAAADC/KNsPAzjvv3OHZHXfcUdbMzva/7nWvy8SJE8ua252nn366wxVSSbLhhhuWNXe11VbLOuus0+H5E088UdZcoMKeey659NKu16y1VvGdrAAAwPA1cmTy4x8nb3pT92sffzw54IDkhReqHgsAAAAYGpRthoHddtutw7O77747ra3/H3t3Hmd1Xe8P/HVYZARBXHMpzbTM6w5IgJi5VJaYJlJqLmhmC9TVX93balm2XrvVTeimZkrmFrhUWJqamSGjMLibS+aC+y64DCKc3x/nQuLgnDMz58yZOfN8Ph7n8eN8zvv9Pa/pV9zHfHl/P59Fnb7m3LlzK/qeanv11VdXuz5w4MAuX3t111i+fHmXrwtU0W9+kyxe3H7Nxz6WDB7cPXkAAICea9iw5Le/LQ3kl3Pjjcnmmyfbb186lnbq1NIRtgAAAACrYdimD9h7773brC1btixXXnllp6735JNPrvZ4pdV9T7Wtt956q13v6g40xWIxTz/9dJv1DTbYoEvXBarstNPK1zhCCgAAWOEd70jOPz9ZzdHRbTz1VHLbbcncucn06cmoUcnYsYZuAAAAgDYM2/QB22yzTbbccss26xdccEGnrjdz5sw2O74UCoXsu+++nbpeRwwcOHC1xz3Nnz+/S9e98cYbV7trjmEb6EFuvTW5/vr2a3bZJdlxx+7JAwAA9A777JN8//ud621uTsaPT2bPrm4mAAAAoFczbNNHHHbYYW3WLr744jz88MMduk6xWMz06dPbrL/nPe/JW97ylk7n64iRI0e2Wbvqqqu6dCzWxRdfvNr1XXbZpdPXBKrs9NPL13ziE7XPAQAA9D7/8R/JIYd0rre1NZk0KVmwoLqZAAAAgF7LsE0fceyxx2aNNdZYZW3p0qX52te+1qHrzJgxI3fccUeb9alTp1Z8jcmTJ6dQKLR53X///RX177PPPm3WFi9enP/+7/+uOMNrPfHEE/npT3/aZn3dddc1bAM9xcsvJ2ef3X7NWmslBx/cPXkAAIDepVBIfvGLZOedO9ff2ppMmVLdTAAAAECvZdimj9hkk01y9NFHt1k/66yzMnPmzIqucc899+S4445rs77ddtvlgAMO6GLCyk2cODEDBw5ss/7d7343l19+eYeutWTJkkycOHG1u+J85CMfSb9+/icCPcKsWclzz7Vfc8ghydCh3RIHAADohQYPTr75zc73NzcnXTzGGgAAAGgMJgn6kJNOOinrrrtum/XDDz885513Xru9N910U/baa688//zzbT776U9/2q1DKW9961vzyU9+ss36q6++mv333z+nnHJKli9fXvY699xzT3bdddf87W9/a/PZ4MGDc8IJJ1QlL9BF8+cnX/xi+TpHSAEAAOV08CGdNmbMqE4OAAAAoFczbNOHrL/++jnjjDParC9ZsiSHHnpoPvCBD+SSSy7J448/nmXLluW5557LNddck2OPPTajR4/OwoUL2/Qef/zx2WOPPboj/iq+8Y1vZPPNN2+zvmTJknzuc5/L1ltvne9///uZO3dunnjiiSxdujSLFy/Ovffem/POOy8HH3xwttlmm7S0tKz2+ieddFI22WSTWv8YQHtaWpKxY5NddkkefbT92h13TEaN6p5cAABA77VgQX37AQAAgIYwoN4B6F4HHHBAvvvd7+YrX/lKm88uu+yyXHbZZRVfa8KECfnBD35QzXgVW3/99XP55Zdn/Pjxeeqpp9p8/o9//CNf/vKXO3Xtz33uc/l//+//dTUi0BWzZyeTJiWtrZXVjx2bFAq1zQQAAPR+ixd3rX81x1ADAAAAfY+dbfqgL3/5y/nxj3+c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kgf8AAAA+rKGG7ap1a41vXVXm6R0bNLrLVu2LFdeeWWnrvfkk0/mxhtvrOh76uXWW2/NvHnz2qwfccQRWWONNeqQCDph9uxk/Pikubl8baGQ3H577TMBAAAA7Zs2LWlq6lzvBRckP/1pdfMAAABQdQPqHaCavvGNb3T5GkuXLs3TTz+dhx9+OHPnzs3TTz+dpLRbTrFYzJAhQzJlypSsueaaXf6u7rLNNttkyy23zL333rvK+gUXXJADDzyww9ebOXNmli9fvspaoVDIvvvu26Wc1XT66aevdt0RUvQaLS3JpElJa2tl9cViqX7OHOe7AwAAQD2NHJnMnNmx3+tf6wtfKO2Qs+uu1c8GAABAVRi2KePaa6/Nf//3f+d3v/tdCoVCXnrppVx66aW59NJLs9lmm1X9+2rlsMMOyze/+c1V1i6++OI8/PDD2XTTTSu+TrFYzPTp09usv+c978lb3vKWLueshiVLluScc85psz5u3Lhss802dUgEnTB1asdvyLW2JlOmJKs55g0AAADoRhMmlB6ImTKlsh1rX+vVV5OPfCRZsCB505tqkw8AAIAuabhjpKptt912yyWXXJLf/OY3GTp0aJLk9ttvz2677ZYHH3ywzukqd+yxx7Y5Pmnp0qX52te+1qHrzJgxI3fccUeb9alTp1Z8jcmTJ6dQKLR53X///R3K8kYuuuiiPPPMM23W7WpDrzFvXsdvxK3Q3JzMn1/dPAAAAEDHjRhReiBm3rzSQzXjxiXbbpv83z3Gdj3ySHLwwaXBGwAAAHocwzYVOuigg/Lb3/42AwcOTKFQyMKFC7PffvtlyZIl9Y5WkU022SRHH310m/WzzjorM2fOrOga99xzT4477rg269ttt10OOOCALiasnjPOOKPN2tChQ/ORj3ykDmmgE2bMqG8/AAAAUD2jRiWnnFLa6ea225K//z3ZcMPyfX/5S/KVr9Q8HgAAAB1n2KYDdt9995x44okpFospFAq57bbb8q1vfavesSp20kknZd11122zfvjhh+e8885rt/emm27KXnvtleeff77NZz/96U/Tr1/P+K/Sfffdlz//+c9t1g855JAMGTKkDomgExYsqG8/AAAAUDubbpqcf35Syf20k09OLrqo9pkAAADokJ4xIdGLHHfccXnT/52VXCwW89Of/jTPPvtsnVNVZv3111/tri9LlizJ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AAAA9A4775z87GeV1f7zn8lttyVz5ybTpyejRpWOszZ0AwAA0CkD6h2gp3rooYfyt7/9LY899liWLVuWTTfdNKNGjcpWW21V72hAo5g3r7Kjo1anuTmZP790cwwAAADom446KrnuuuQXv+h4b3Nz6VjrmTOTCROqnw0AAKCBGbZ5nXnz5uU///M/89e//nW1n++yyy45+eSTs9tuu3VzMqDhzJjR9X7DNgAAANC3nXJKcuONndulprW1dFz1nDnJiBHVzwYAANCgGuoYqSVLluTf/u3f8ra3vW3la+rUqRX3n3vuudltt93y17/+NcVicbWvG264IXvssUe+9a1v1fAnAfqEBQvq2w8AAAD0fk1NyaxZybrrdq7fcdUAAAAd1lDDNpdffnnuvPPOPPDAA7n//vvzwAMP5MADD6yod968eTnqqKPyyiuvpFgsplAovOFr+fLl+eY3v5n/+Z//qfFPBDS0xYu71r9oUXVyAAAAAL3bW9+afP3rne9fcVw1AAAAFWmoYZvf//73q7zfYostsueee1bUe8wxx2Tp0qUrB2pWeO2uNisUCoUUi8X853/+Z+66667qhAf6nqFDu9Y/bFh1cgAAAAC93z33dK2/q8ddAwAA9CENNWwzd+7clYMwhUIhEyZMqKjvoosuyq233tpmyGbQoEHZe++9c/DBB2eXXXZZZeAmSZYuXZrjjz++qj8D0Id09Sx0Z6kDAAAAKziuGgAAoNs0zLDNCy+8kL///e+rrH3wgx+sqPe0005b+ecVAzVjxozJP/7xj/zpT3/Kueeem+uvvz7XXnttNtxwwyRZOZhz+eWX57777qvGjwD0NZMn17cfAAAAaByOqwYAAOg2DTNsc++997bZeWbnnXcu2/fEE0/kqquuWmVXm6FDh+biiy/OJptsskrtrrvumvPPP7/N95x77rldSA70WaNGJWPGdK53zJhk5Mjq5gEAAAB6L8dVAwAAdJuGGba5//77V3m/wQYbZIMNNijb96c//SnLli1LkpXHTx199NF505vetNr63XffPe973/tW1ibJNddc07XwQN81bVoyYEDHepqakunTa5MHAAAA6J0cVw0AANBtGmbY5rHHHlvl/cYbb1xR39VXX91m7cgjj2y356CDDlr552KxmJtvvrmi7wJoY+TIju1Q09SUzJzpBhgAAACwqq4eN73//lWJ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BwAAoIdq2GGbF154Ieeff35++ctf5vrrr0+SVY6Iev2QTb9+/fLe9743Rx99dA444ICsscYa3Z4ZaBCTJyfTp3etHwAAAKA3GzWq9FqhWEwOOSS54IL2+5YsSQ48MGlpSdZfv7YZAQAAOqnhhm2uueaa/PKXv8yFF16Yl19+OUn7u9i87W1vy+TJkzN58uS8+c1v7v7AQOMZNaq0XXJzc8d7x4zx5BYAAADQeAqF5Be/SG67Lbn99vZrH3ywNJhz2WVJ//7dkw8AAKADGmLYZuHChZkxY0bOOuus3HfffUlWv4vNirXBgwdn4sSJOfroo7P77rt3f2Cg8U2bVhqcefXVynuamrq2Iw4AAABAT7bWWsnFF5ceVFq0qP3aK69Mvva15Hvf655sAAAAHdBrh21eeeWVXHTRRTnzzDNz1VVXpVgstntMVJK8613vytFHH52DDz44Q4cO7fbMQB8ycmTpjPIbbqisvqkpmTmz1AMAAADQqN7+9uTXv04+9KHytd//frLLLqVjpQAAAHqQXjds09LSkjPPPDPnnXdennvuuSTtHxP1pje9KYcffniOPvrovPOd7+z2vEAf9sQTldWNHVvaCcegDQAAANAX7LdfcsIJyUknla898sjk3/4tcW8XAADoQXrFsM3TTz+ds88+O2eeeWZuu+22JKs/JmrF+oABA/LBD34wRx99dPbdd9/0d64v0N2efz65//72a9797uRHPyrtggMAAADQl3zjG8m8eclll7Vf98ILyYc/XNo92G7lAABAD9Erhm022WSTvPrqq2WPifq3f/u3HHXUUTn88MOz4YYbdntOgJVuvbV8zbe/bdAGAAAA6Jv690/OOScZNSq57772a++8MznqqNIR3K+5LwwAAFAv/eodoBJLly5d+edCoZBCoZBisZhisZihQ4fmE5/4RObOnZvbbrstn//85w3aAPV3883la3bYofY5AAAAAHqqdddNLr44WXPN8rUXXpicfHLtMwEAAFSgV+xss8KKIZtCoZDddtstRx99dCZOnJjBgwcnSZYvX16XXP369YqZJaA73XJL+59vvnmy9trdkwUAAACgp9pxx+S005LDDy9f++UvJyNGJHvvXftcAAAA7ehVwzYrjosqFov529/+lr/97W85+uij65qpUCjk1VdfrWsGoAcqN2yz447dkwMAAACgpzvssOSG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SUMN2yTJvvvum5/+9Kcrd51JSgM1r32tUCwWs/HGG2fmzJkVX3/GjBmrvF9jjTWy6667dj040DONGFHffgAAAAAawxFHJP/+75XVfvzjjicHAIAerOGGbZJkypQpmT17djbffPM2u9q89vXe9743N9xwQ9785jdXdN2bb745V1111cqBnUKhkN133z2DBw+u5Y8D1NPkyfXtBwAAAKBx/PCHyZ57lq9rbU0+/OHkiSdqnwkAAOiwAfUOUCsf/OAHc/fdd+fPf/5zLr/88ixcuDDPP/98hg8fnm233Tb77rtvRo4c2aFrnnbaaVl77bVXWfvwhz9czdhATzNqVDJmTNLc3PHeMWOSDv49AwAAAEADGzAgueCCZJddkvvvb7/2wQeTSZOSK69MBg7slngAAEBlCsXXnrcE9Dpz587NuHHjVlm77rrrMnbs2DolakAtLcn48aUniirV1FQ6k9sxUgAAAAC83s03J+PGJS+9VL52ypRk2rTaZwIAgB6gt/z7d0MeIwVQVSNHJjNnJv37V1bf1FSqN2gDAAAAwOrsuGNy5pmV1U6fnpxxRm3zAAAAHWLYBqASEyaUjpQqZ+zY0o42EybUPhMAAAAAvddHPpJ8+cuV1X7mM5075hwAAKgJwzYAlSq3re9hhyXXXWdHGwAAAAAqc9JJyQc/WL7ulVeSAw9MHnmk9pkAAICyDNsAVOqxx9r/fIcduicHAAAAAI2hf//k3HOTd7yjfO2jj5YGblpba58LAABol2Gbdjz22GO56aab0tLSksfK/SM70NhefTV58sn2azbaqHuyAAAAANA41l47+e1vk6FDy9def30yZUpSLNY+FwAA8IYM27zO4sWL881vfjNbbbVVNt1004wcOTKjR4/Opptums022yxf+tKX8vTTT9c7JtCdWlqSMWPK1y1aVPssAAAAADSed74zOeecpFAoX/vLXybTp9c+EwAA8IYG1DtAtX3mM59J62u20dx+++1z/PHHV9R7++23Z999983ChQtTXM2TAQ899FBOPvnkzJgxI7/61a/y3ve+t2q5gR5q9uxk0qTKtuf9/OeTzTdPJkyofS4AAAAAGst++yXf+lZywgnla487Ltluu+Q976l1KgAAYDUaathm7ty5+fnPf57Ca6b/zzzzzIp6H3/88ey99955/PHHk2SVa7xWsVjM448/nv333z+XX355dtttt64H7yHuuOOO3HbbbXnkkUfywgsvpKmpKRtssEG22Wab7Lzzzhk4cGC9I3bKq6++mttvvz133XVXHn300bzwwgvp379/1lprrWy88cbZcsst8853vjNNTU31jkpP09JS+aBNkixZUqqfMycZMaK22QAAAABoPF/9anLTTcmFF7Zft2xZ6T7U/Pmlh78AAIBu1VDDNhdffPHKPxeLxay33no55JBDKur91Kc+lccff/wNh2xWWPF5a2trJk6cmLvuuivrrLNO50PX2cKFC3PKKafknHPOySOPPPKGdUOHDs1+++2X4447Lrvssks3JuycZcuW5Q9/+EPOOuusXHnllVlU5nifgQMHZvvtt8+73/3u7Lvvvnn3u9+dNdZYo5vS0mNNnVr5oM0Kra2lc7Pnzq1NJgAAAAAaV6GQnHVWctddyW23tV/71FPJAQeUHvwaPLg70gEAAP+nX70DVNPf/va3JKVBm0KhkH322aei3Vjmz5+f3/72t20GbYrFYgYNGpQ3velN6devX5ujpZ5++umcUMmWnj3Q8uXL873vfS9bb711Tj755HYHbZJk8eLFOffcczN69OgcccQRef7557spacddeuml2WGHHfKhD30oF110UdlBmyRZunRpFixYkJ/85Cd573vfm3PPPbcbktKjzZuXNDd3rre5ufRUEQAAAAB01FprJZdcklTykOdNNyUf/3jyunvXAABAbTXMsM3SpUtz4403rjIwM2HChIp6TznllFXeF4vFrL/++pk1a1YWL16cRx55JM8880y+/e1vp3///klKO9wUi8WcccYZee6556r2c3SH1tbW7L///vnKV76Sl19+ucP9Z599dkaPHp3777+/+uG64OWXX87HP/7xTJgwIXfccUe949DbzZhR334AAAAA+q4tt0x+85ukXwW38M8/Pzn55NpnAgAAVmqYYZt//vOfWbJkySpro0ePLtv38ssv5+KLL145pFMsFtO/f//Mnj07Bx544MrhmqFDh+YrX/lKfvKTn6yyw80rr7ySmTNnVvEnqa1ly5bloIMOyuzZs1f7+cCBA7Pjjjtmr732yujRo7PWWmuttu7uu+/Onnvumccee6yWcSv27LPPZu+9984vf/nLN6wZPHhwttxyy4wbNy7vec97suOOO2a99dbrxpT0KgsW1LcfAAAAgL5t770rH6L5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koMs8/tjfnrFGZwzc86ZM8vz+XicB8xnPp/3eY3Z7TK85vPdaKOi5i7v/DPPPFPU3ELUNfOHv759+2aLLbZ47+MFCxbk8ssvz4477pgVV1wxG264YYYOHZpNNtkk//Vf/5W+fftmm222ydlnn91sGQne8/DDyWmnffieqqpkxoz2yQMAAAAA7zr66ORrX2v7+fr6ZPTo0uUBAIBuolelA5TS4YcfnvPOOy///ve/kzQWYd5+++1897vfzXe/+9339r1bsHm/U089taD3mDt3bn7/+9+/d3tOVVVVtt5665J9DaU2c+bMJo/LSpJ1Cnme74dY3vnnnnuuqLmF+Nvf/tZk7eMf/3j69OmTJPnVr36V008/Pa+++upyZyxZsiS1tbWpra3Neeedl/333z/nnntuNtlkk7LlXp5p06YVdf7xxx8vURKamDy58ad7mrlJaRkNDY3X7k6alBR4QxYAAAAAlMSPf5xMnZpMn96287W1jWdrakqbCwAAurAuVbbp169ffvrTn2afffZ5b+3dUsz7vb9oU1VVla222iqHH354Qe9x22235Z133llmxjbbbFNk8vJZXuFkzTXXLGru8s6/9tprRc0tRHOPqho8eHCWLFmSE044IVdffXWrZ95888256667ctVVVxX870KpDB8+vF3fjwI9/HBhRZt3vXvt7tSpSXV1ebMBAAAAwLt69Uo237ztZZskmTBB2QYAAFqhSz1GKkn22muvXHrppcsUbKqqqpZ5vauhoSFrr712Jk2aVPD8CRMmLPNxnz598tnPfrb44GUye/bsZtdXXnnloub27Nkz/fv3b7L+xhtvFDW3EC+99FKTtcGDB2fUqFFtKtq8q76+Pl/4whdywQUXFBOPrmLMmMKLNu9y7S4AAAAAlfD3vxd3vq6uNDkAAKCb6HJlmyQZPXp0Jk+enPXXXz8NDQ3Lfe2yyy75y1/+knXXXbeguX/961/zu9/97r3CTlVVVT73uc81WzrpKObPn9/s+korrVT07OZmLFiwoOi5LZkzZ06TtXvuuSfXXHPNMmsDBgzIqaeemvvvvz8vvfRSFi5cmJdeein3339/TjvttAwcOLDZ+WeeeWbuvvvuckSns3joocbrc9vi3Wt3AQAAAKC9zJtX3Pm5c0uTAwAAuoku9Rip99tzzz3z9NNP57777ss999yTmTNn5q233sqgQYOyySabZK+99srQoUNbNfOKK65ociPM/vvvX8rYJbdo0aJm13v1Kv4/+t69ezdZe+edd4qe25KFCxc2WfvgbTe77bZbJkyY0ORxV2uttVbWWmutbLfddjnttNNyzDHH5K677lpmz9KlS/OFL3whTz31VFZfffXSfwF0fB+4wapN5127CwAAAEB7GTCguPPL+cFEAACgeV22bJM0Fkp23XXX7LrrriWZN27cuIwbN64ks9rLkiVLml3v2bNn0bObm7F48eKi57akpffYc889c8sttzRbBnq/NddcM7feemsOOOCA3H777ct8bvbs2bnkkkty7rnnFp23JQ8++GBR5x9//PGceOKJJUpDkuKvzXXtLgAAAADtqbo6mTatuPMAAEDBunTZhuXfYFOKUkxzM1oquJTCh73Hf/3Xf2XChAkF5+jdu3euvvrqbLrppnn55ZeX+dzYsWPzzW9+sySP3Pow22yzTVnn0wau3QUAAACgMxk1KinmB0UPPLBkUQAAoDvoUekAlFffvn2bXV/e46Vao7lHRi3v/UqpT58+y/3c17/+9VY/+mm11VbL17/+9Sbrc+bMyR/+8IfWxqMrcO0uAAAAAJ1JTU0ybFjbz194YbKcW9IBAICmlG26uAHLKQ3MLcHNG/Oauf1jYDuUDAYNGtTseo8ePXLssce2aeZxxx3X7GOxlG26qWKvzXXtLgAAAADtbezYpF+/tp29447kW98qbR4AAOjClG26uNVWW63Z9Tlz5hQ1d+HChVm4cGHB71dKy7u5ZsiQIVljjTXaNHPVVVfNJpts0mS9tra2TfPo5EaNqux5AAAAAGitoUOTSZPaXrj50Y+Sa68tbSYAAOiilG26uLXWWqvZ9VdeeaWouS+99FKr3q+U1llnnWbXt9hii6LmfvrTn26yVuw/JzqpYq7dHTas8RsbAAAAANDeRo5Mpk5t+/e2jjsueeih0mYCAIAuSNmmixs8eHD69u3bZP35558vau7MmTObXd9ggw2KmluI5b3HqquuWtTc5m7leeONN4qaSSfWlmt3+/VLxo0rTx4AAAAAKER1dTJtWmNpZsyYZPjwZJNNkgEDWj67cGGy337JrFlljwkAAJ2Zsk0XV1VVlQ033LDJ+tNPP13U3OWd32ijjYqaW4ghQ4Y0u96/f/+i5q644opN1ubPn1/UTDqx1l67269f4/7q6vLmAgAAAIBC1NQkP/1p4003TzyR/OMfyXrrtXxu1qxk//2Tt98uf0YAAOikukXZpqGhIX/84x/zox/9KPvvv38233zzfOQjH8nAgQPTs2fPol+XXXZZpb/ED7Xllls2WXv00UeLmtnc+XXXXTerr756UXMLMXQ5j+iZO3duUXPfeuutJmurrLJKUTPp5EaOTO6+u+V9Q4Y0ftNi5MjyZwIAAACAtlhzzeTWW5MVVmh571/+knzxi0lDQ/lzAQBAJ9Sr0gHKaf78+bn88sszbty4ZR6b1FDCPyBUVVWVbFa5bL311rn22muXWZsxY0bmzp2bgQMHtmnmtGnTmn2f9rDxxhtnjTXWyGuvvbbM+quvvlrU3ObOt0d5iA6ukJ/g6dHDNx4AAAAA6Pi23DKZMCE5+OCW915zTbL55snpp5c/FwAAdDJd9mabhx9+OFtssUW++c1v5t///ncaGhreeyWNJZliX53Fzjvv3GRtyZIlmTJlSpvmvfbaa3nkkUcKep9yqKqqyq677tpk/aGHHipqbnPn119//aJm0slNntz4jOqW/O1vyYgRjfsBAAAAoCM76KDkO98pbO83v5nccUd58wAAQCfUJcs2d9xxRz772c/m2WefTUNDw4cWZd5fwFmeDxZ13tVZCjdDhgzJhhtu2GT9+uuvb9O8SZMmZenSpcusVVVVZa+99mrTvLY44IADmqw9//zzeeqpp9o075///GeeffbZJus77LBDm+bRBTz8cOM3HhYuLGx/fX3j/rq68uYCAAAAgGKdc06y//4t72toSA47LPn738ufCQAAOpEuV7Z58skn84UvfCHvvPNOkv8rxLy/MNNceebDPv/+gs6HzejIjjjiiCZrN998c1588cVWzWloaMi4ceOarG+//fZZb7312pyvtUaOHJk11lijyfrPfvazNs277LLLml1vr9t66IDGjGks0LRGfX0yenR58gAAAABAqfTokfzqV42PiWrJvHnJPvsks2eXPxcAAHQSXa5sc9xxx2Xu3LlNbq/Zb7/9csstt2TWrFlZtGhRkv8r4lRVVaW2tjaLFi3Kq6++mr///e+55ppr8qUvfSmDBg1aplDTq1evfOc738nixYuzdOnSLF26NF/5ylfa94tsgy9+8Yvp06fPMmuLFi3Kt7/97VbNmTBhQmbMmNFkfcyYMQXPGDVqVLO3DT333HMFz+jdu3e++tWvNlm//PLL88QTTxQ8J0lmzJjRbEln6NCh2XLLLVs1iy7ioYeS2tq2na2tTaZPL20eAAAAACi1lVZKbr01WX31lvf+85/JIYckixeXPxcAAHQCXapsc//992fatGnL3ELTp0+f3Hjjjbnpppuyzz77ZK211krPnj2bPd+zZ8+svvrq+cQnPpHDDz88l112WV544YVcfPHFWXHFFVNVVZUlS5bk3HPPzb777pv61t56UUGDBw/Oscce22R9/PjxmTRpUkEz/vGPf+Tkk09usr7ppptmv/32KzJh65100klZc801l1lbuHBhDj744Lz88ssFzXjllVdy8MEHN/uf5TnnnFOSnHRCEyZU9jwAAAAAtIePfjT57W+TXr1a3jtlSnLqqWWPBAAAnUGXKtuMHTv2vd83NDSkqqoql19+eT7/+c+3eeYKK6yQk046KY888kg++clPvvfoqDvvvDOHHXZYKWK3m3PPPTerrrpqk/Ujjzwy11133YeeffTRR7PTTjvlrbfeavK5Sy+9ND16tP+/SiuvvHIuvvjiJut///vfM2LEiPzhD3/40PP3339/RowYkb/97W9NPrfrrrtm7733LlFSOp26usqeBwAAAID2st12ybhxhe299NLkyivLmwcAADqBLlW2uf/++1NVVfVe0WbEiBE5+uijSzJ7ww03zJQpU7LBBhu89x633XZbLr300pLMbw+rr756rrrqqibrCxcuzOGHH5499tgjt9xyS1555ZUsWbIkc+bMyf33358vfvGL2WqrrTJz5swmZ0855ZTssMMO7RG/WYceemhOPPHEJuvPPPNMdthhh2y77ba58MILc9ttt+WBBx7IbbfdlgsvvDDbbbddtt9++/zzn/9scvZjH/tYi+Ujurh584o7P3duaXIAAAAAQHv44heT0aML2/uVryR/+lN58wAAQAdXwN2QncPf//73vP766+89QipJvvKVr5T0PdZee+1ceeWV2Wmnnd4r3HznO9/JMccckwEDBpT0vcplv/32y/nnn5+zzjqryefuvvvu3H333QXPGjlyZH70ox+VMl6bjB07Nm+88UZuvPHGJp/705/+lD+14g9+G2ywQe64445mbwCiGyn2v88DB5YmBwAAAAC0l4suSv7+9+S++z5836JFyec/nzz0ULL++u2TDQAAOpguc7PNU0891WRt9913L/j8okWLCtq3ww47ZLfddktDQ0OSZN68eZk4cWLB79MRnHnmmbnooovSs2fPNs844ogjcuONN6Z3794lTNY2vXr1ym9+85ucccYZy5StWmvHHXfMQw89lE9+8pMlTEenVF1d2fMAAAAA0N56905uuCH52Mda3vvaa8m++yYLFpQ/FwAAdEBdpmwze/bsZT5ef/31s/LKKxd8vr6+vuC9Bx10UJK8V+y49dZbCz7bUZx88smZOnVqhg4d2qpza6+9diZOnJiJEyemb9++ZUrXej179swPf/jD1NbWtvqxVptvvnl++9vfZsqUKVlttdXKlJBOZdSoyp4HAAAAgEpYbbXkttsKu/n5r39Njj46Wbq0/LkAAKCD6ZJlm6qqqqy55pofuv+DRZHWlG223Xbb937f0NCQ2trags92JFtvvXWmT5+ee++9N0cffXTWWWedZvcNGjQoe++9dyZMmJBnn302RxxxRFHvO378+DQ0NDR5ffSjHy1qbpJstdVWue+++/K3v/0tP/jBD7L77rtngw02yIorrpiePXtmtdVWyyc+8YnsvPPO+cEPfpA///nPefTRR/P5z3++qFtx6GJqapJhw9p2dtiwpJUlNgAAAADoMDbZJLn22qSQ75f+9rfJeeeVPxMAAHQwvSodoFQWL168zMcDBw780P0DBgzIG2+88d7Hr7zySsHvtdZaay3z8fz58/Pyyy83We8sdt555+y8885Jkjlz5mTWrFlZsGBB+vXrl9VXXz1rr712hRO23qc+9al86lOfqnQMOrOxY5MRI5JWFPHSr18yblz5MgEAAABAe9h77+T885Mzz2x57znnNBZ0Djig/LkAAKCD6DI32wz4wLWW//nPfz50/wfLODNnziz4vfr169dk7f3Fnc5s0KBB+dSnPpXPfOYz2WyzzTpl0QZKYujQZNKkxmdVF6Jfv8b91dXlzQUAAAAA7eGb30wOO6ywvUcd1fhYKQAA6Ca6TNlmlVVWee/3DQ0Neeuttz50/1prrZWGhob3Pp4xY0bB7/X66683WVu4cGHB54FOYuTI5LjjWt630krJlVc27gcAAACArqCqKrnqqsZHrrfkP/9J9tknefXV8ucCAIAOoMuUbTbaaKNlPn7ppZc+dP9mm22WJKmqqkpDQ0OmTp1a8Hs99NBDTdYGDRpU8Hmgk5g8ufEbCi2Z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853v5Nhjj83KK6/83vqiRYty22235ayzzsrTTz+9zJlnn302hx9+eKZMmZIePTpGb+umm27K2muv3ebza6yxRgnTAAAAAABANzVvXnHn584tTQ4AgDJQtulGHnvssZx//vlN1tdff/387ne/y4Ybbtjkc717984BBxyQ3XffPQcccEDuueeeZT7/+9//Pj//+c/z5S9/uWy5W2PLLbfMRz/60UrHAAAAAACA7m3AgOLODxxYmhwAAGXQMa4joV2cdtppWbJkyTJrK664Yu66665mizYf3HfTTTdlk002afK5s88+OwsWLChpVgAAAAAAoBOrri7u/KabliYHAEAZKNt0E3V1dbn33nubrJ999tkZMmRIQTP69++fX/ziF03W33jjjVxxxRVFZwQAAAAAALqIUaOKO19Xl9TXlyQKAECpKdt0Ez//+c+brK266qr56le/2qo522yzTXbbbbcm68o2AAAAAADAe2pqkmHD2n5++vTksMOSxYtLlwkAoESUbbqBxYsXZ9KkSU3WjzjiiPTv37/V80444YQma08++WQeeeSRNuUDAAAAAAC6oLFjk3792n7+lluSL34xaWgoWSQAgFJQtukG/vznP+fNN99ssn7AAQe0ad5ee+2VFVZYocn6XXfd1aZ5AAAAAABAFzR0aDJpUnGFm6uvTr7xDYUbAKBDUbbpBu67774ma/37988222zTpnn9+vXL8OHDC3ofAAAAAACgGxs5Mpk6tbhHSv34x8kFF5QuEwBAkZRtuoHp06c3Wdtiiy3Su3fvNs/caqutmqw9/PDDbZ4HAAAAAAB0UdXVybRpyUMPJWPGJMOHJ5tumtTUJAMHFjbjjDOSX/yivDkBAArUq9IBKL+//vWvTdY222yzomY2d37OnDl5/vnn85GPfKSo2aXwzjvv5LXXXsvrr7+eHj16ZNVVV82qq67a7OOvAAAAAACAdlBT0/h6v3/9K/nsZ5OXX275/Je+lKy6anLAAeXJBwBQIGWbLm7RokWZOXNmk/WNNtqoqLnLO//MM89UtGzzve99L3/729/yyCOPZPHixU0+v9Zaa+Wzn/1sRowYkQMOOCDrrbdeBVICAAAAAABJko99LLnnnuRzn0vmzPnwvUuXJocfntxxR7Lzzu0SDwCgOco2XdzMmTOzdOnSJuvrrLNOUXOXd/65554ram6xxo8f/6Gf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vFQhHnss+exnk3/9q7y5ACiKsg0AAAAAAABAuRx8cONjovr3L2z/v/7VWLh57LHy5gKgzZRtAAAAAAAAAMpp112T++5LVl21sP0vv5xst13jo6UA6HCUbQAAAAAAAADKbeutkwceSNZZp7D9b72V7LJLcscd5c0FQKsp2wAAAAAAAAC0h099Kpk6Ndl448L219cn++6bTJxY3lwAtIqyDQAAAAAAAEB7WX/9xsdDDR1a2P4lS5KjjkouvrissQAoXK9KBwAAAAAAAADoVtZYI/n975P99kvuu6+wM6eckjz2WLLCCskjjyTz5iUDBiTV1ckxxxRe3gGgaMo2vGfGjBl54oknMmvWrMyfPz/9+vXLGmuskSFDhmTLLbdM7969Kx0RAAAAAAAAuoYBA5I77ki+8IXkppsKO3P11U3Xpk1Lxo1Lhg1Lxo5VugFoB8o23dzMmTPz05/+NNdee21mzZq13H0DBgzI3nvvnZNPPjmf+cxn2jFhaR155JG55pprmv3c0UcfnfHjx7dvIAAAAAAAALqvfv2SG25IvvSl5Mori5tVW5uMGJFMmpSMHFmafAA0q0elA1AZS5cuzQ9/+MN84hOfyIUXXvihRZskmTdvXn79619nq622ylFHHZW33nqrnZKWzl133bXcog0AAAAAAABURM+eyRVXJGeeWfys+vrkoIOSurriZwGwXMo23VB9fX323XffnHXWWXn77bdbfX7ixInZaqut8txzz5U+XJnMmzcvX/rSlyodAwAAAAAAAJqqqkrOPz/58Y+Ln1Vfn4weXfwcAJZL2aabWbJkSQ488MBMnjy52c/37t07n/70p7PTTjtlq622ykorrdTsvqeffjo77rhjXn755XLGLZkzzjgjzz//fKVjAAAAAAAAwPKdemoyfnzjbTfFqK1Npk8vSSQAmlK26Wa+973v5Y477miyPmjQoPzkJz/Ja6+9lkcffTRTpkzJn//858yePTs33nhjNt544yZnnn322Rx++OFZunRpe0Rvsz/96U/52c9+tsxajx7+1QcAAAAAAKADOvro5Oabiy/cTJhQmjwANKFx0I089thjOf/885usr7/++pk+fXpOOeWUrLzyyst8rnfv3jnggANSV1eX3XbbrcnZ3//+9/n5z39etszFqq+vz/HHH5+Ghob31vbcc8+st956FUwFAAAAAAAAH2LvvZNPfrK4GXV1pckCQBPKNt3IaaedliVLliyztuKKK+auu+7Khhtu+KFnV1xxxdx0003ZZJNNmnzu7LPPzoIFC0qatVS+973v5amnnnrv4xVXXDGXXXZZBRMBAAAAAABAAaqqijs/d25pcgDQhLJNN1FXV5d77723yfrZZ5+dIUOGFDSjf//++cUvftFk/Y033sgVV1xRdMZSe+SRR/LjH/94mbXvf//7WX/99SuUCAAAAAAAAAo0YEBx5wcOLE0OAJpQtukmmnvU06qrrpqvfvWrrZqzzTbbNPs4qY5Wtlm8eHGOO+64LF68+L216urqfO1rX6tgKgAAAAAAAChQdXVx5+fOTd73d2UAlI6yTTewePHiTJo0qcn6EUcckf79+7d63gknnNBk7cknn8wjjzzSpnzlcOGFFy6Tp2fPnvnFL36Rnj17VjAVAAAAAAAAFGjUqOLOP/FEcsAByX/+U5I4APwfZZtu4M9//nPefPPNJusHHHBAm+bttddeWWGFFZqs33XXXW2aV2pPP/10vv/97y+z9rWvfS3VxbZ/AQAAAAAAoL3U1CTDhhU347bbkp12Sl5/vTSZAEiibNMt3HfffU3W+vfvn2222aZN8/r165fhw4cX9D7traGhIccff3zq6+vfW1t//fWblG8AAAAAAACgwxs7NunXr7gZtbXJ8OHJM8+UJhMAyjbdwfTp05usbbHFFundu3ebZ2611VZN1h5++OE2zyuVyy67LA888MAyaz/72c+y4oorVigRAAAAAAAAtNHQocmkScUXbv7xj8bCzUMPlSYXQDenbNMN/PWvf22yttlmmxU1s7nzc+bMyfPPP1/U3GLMnDkzZ5555jJrhx56aPbYY48KJQIAAAAAAIAijRyZTJ1a/COlXn012X775M47SxILoDtTtuniFi1alJkzZzZZ32ijjYqau7zzz1Tw+rkTTzwx8+bNe+/jVVZZJRdffHHF8gAAAAAAAEBJVFcn06Y13kwzZkzjLTWbbtr46377JYU+5eE//0n22Se56qqyxgXo6npVOgDlNXPmzCxdurTJ+jrrrFPU3OWdf+6554qa21YTJ07MXXfdtczaBRdckDXXXLMieVpj2rRpRZ1//PHHS5QEAAAAAACADq2mpvH1QY8/nuyxR/Liiy3PWLIkOf74ZObM5Jxzkqqq0ucE6OKUbbq4V199tdn1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+da+fcT48RGffBLRr19Et24R++678d9+/SKefz6iRYvU840bF9GxY8TkySVXM1BuVct0AQAAAAAAAABQLDp23PiTzJFHRpxyysZGmlQsWBDRvXvEgAERvXoVX41AuWdlGwAAAAAAAAAqvu22ixg1KqJv39THrF0bceaZEbfcEpGfX3K1AeWKZhsAAAAAAAAAKoeaNSOefjri0UcjqlZNfdy9925cFWfVqpKrDSg3NNsAAAAAAAAAUHlkZUVceWXEW29FNGqU+rh//Suia9eIr78uudqAckGzDQAAAAAAAACVz5FHRnz8ccTee6c+Zvr0iE6dNm5HBVRamm0AAAAAAAAAqJx22y1iwoSInj1TH/PTTxFHHx3x+OMRBQUlVxtQZmm2AQAAAAAAAKDyys6O+Oc/I37729TH5OVF9OsXcemlERs2lFhpQNmk2QYAAAAAAACAyq1q1Yj77osYPDiiVq3Uxz39dMQRR0T88EPJ1QaUOZptAAAAAAAAACAi4qyzIj74IKJ589THfPhhRKdOEZ9+WmJlAWWLZhsAAAAAAAAA+EXHjhGffBLRpUvqY779NuLAAyNefrnk6gLKDM02AAAAAAAAAPCftt8+YsyYiD59Uh+zZk3E6adH3H57RH5+SVUGlAGabQAAAAAAAADgv9WsGfHssxF/+lNElUJ8tH7XXRGnnRbx888lVxuQUZptAAAAAAAAACCZrKyIa66JGD48omHD1Me9+mpEt24Rc+eWWGlA5lTLdAEAAAAAAAAAUKYdfXTERx9FnHhixJdfpjZm6tSITp0i7r134/89eXLEqlUR9etHtG8fccEFER06lGzdQInQbAMAAAAAAAAAW7PHHhsbbs4+O+LNN1Mbs3RpxGWXJcbHj494/PGILl0iHntM0w2UM7aRAgAAAAAAAIBUNGgQMWxYxA03FE++CRMiunePeP314skHlArNNgAAAAAAAACQqqpVIx54IOK55yJq1kw/37p1EaefvnGbKaBc0GwDAAAAAAAAAIV1zjkR778fscMO6edaty7iiivSzwOUCs02AAAAAAAAAFAUnTtHfPLJxn/TNWFCxMSJ6ecBSpxmGwAAAAAAAAAoqh12iHjvvYhzz00/16BB6ecASpxmGwAAAAAAAABIR61aGxtlWrZML8/kycVTD1CiNNsAAAAAAAAAQLqysiLq108vx8qVxVML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Ly9pvGrVqmnnTpYjNzc37bylberUqXHxxRdH+/btY/LkyZkuBwAAAAAAAAAow2wjVcFtbgWb4miKSZYj2Wo3pWngwIExcODATWLr16+P5cuXx4IFC+KTTz6JN954I4YPH57QiDRjxow46KCD4vXXX4/DDjus1GoeN25cWuOnTp0al156aTFVAwAAAAAAAABsiWabCq5mzZpJ45vbXqowkm0ZtbnzZVLNmjVju+22i+222y46dOgQl112WcydOzcuv/zyePvttzd57Jo1a+KEE06Izz77LHbddddSqa9r166lch4AAAAAAAAAIH22karg6tevnzS+cuXKtHOvWrUqIZadnZ123tLQqlWreOutt+Lqq69OOLZ69eq46KKLSr8oAAAAAAAAAKDM02xTwW2zzTZJ48uXL08r7/r162P9+vUpn6+seuihh+KYY45JiI8ZMyY++uijDFQEAAAAAAAAAJRlmm0quGbNmiWNL168OK2833//faHOV5Y99NBDSeMvvvhiKVcCAAAAAAAAAJR1mm0quB122CFq1qyZEP/222/Tyjt//vyk8VatWqWVNxP22muvaNu2bUL8ww8/zEA1AAAAAAAAAEBZptmmgsvKyopdd901IT5r1qy08m5u/G677ZZW3kzp2LFjQizdhiQAAAAAAAAAoOLRbFMJtGvXLiH26aefppUz2fgdd9wxmjRpklbeTGnatGlCbNmyZRmoBAAAAAAAAAAoyzTbVAIHHHBAQmzGjBmxcuXKIuccP358SucpL1avXp0Qq1GjRgYqAQAAAAAAAADKMs02lcCRRx6ZEMvLy4uRI0cWKd+SJUtiypQpKZ2nvFiwYEFCbLvttstAJQAAAAAAAABAWabZphLYe++9Y9ddd02Iv/TSS0XKN2TIkMjPz98klpWVFccff3yR8mVaTk5OjBo1KiHeunXrDFQDAAAAAAAAAJRlmm0qiXPOOSch9uqrr8bChQsLlaegoCAef/zxhPihhx4aLVq0KHJ9mfTiiy/GihUrEuKHHXZYBqoBAAAAAAAAAMoyzTaVxCWXXBI1atTYJJaTkxO33HJLofIMGjQoZsyYkRDv169fyjn69OkTWVlZCT/z5s0rVC3F4fvvv48bbrghIV6lSpXo1atXqdcDAAAAAAAAAJRtmm0qiR122CEuvPDChPjAgQNjyJAhKeWYPXt2XH311QnxfffdN371q1+lWWHq7r777hg4cGDk5uamlefrr7+OQw45JBYvXpxw7Nxzz40dd9wxrfwAAAAAAAAAQMWj2aYSufvuu6Nx48YJ8XPPPTdefPHFLY799NNP44gjjki63dKjjz4aVaqU3v+U5syZExdccEHssccecdttt8Xnn39eqPHff/993HHHHbHvvvvG7NmzE443adIkHnjggeIqFwAAAAAAAACoQKplugBKT5MmTaJ///5x8sknbxJfv359nH322fG3v/0tLr300ujatWs0adIkVq1aFZ999lm88MILMXDgwMjJyUnIec0118Rhhx1WWk9hE3Pnzo2777477r777mjRokW0b98+9t9//9hll12iYcOG0aBBg8jKyoqVK1fGjz/+GNOmTYuJEyfGBx98EPn5+Ulz1qxZM4YOHRrbbbddKT8bAAAAAAAAAKA80GxTyfzqV7+K++67L2666aaEY2+99Va89dZbKefq2bNnmVkBZv78+TF//vz417/+VeQcTZo0iaFDh8bBBx9cjJUBAAAAAAAAABWJbaQqod/+9rfx0EMPRdWqVYuc45xzzomXX345qlevXoyVZc75558fM2fO1GgDAAAAAAAAAGyRZptK6uqrr46xY8dGhw4dCjVu++23j+eeey6ee+65qFmzZglVt2W//e1v4957740DDzwwrYahhg0bxqWXXhqffPJJDBw4MLbZZptirBIAAAAAAAAAqIiyCgoKCjJdBJk1cuTIeP7552PkyJGxcOHChOMNGzaMgw46KE477bTo1atXxppsklm9enVMmjQpPv7445g+fXrMmzcvvvnmm1ixYkWsXr068vLyon79+tGgQYNo2LBh7LnnntGuXbvo0KFDdO/ePWrVqpXpp5C28ePHR7du3TaJjRs3Lrp27ZqhigAAAAAAAACg8MrL59/VMl0AmXfkkUfGkUceGRERy5cvj++++y5Wr14dtWrViiZNmsT222+f4Qo3r27dunHwwQfb/gkAAAAAAAAAKBWabdhEw4YNo2HDhpkuAwAAAAAAAACgTNJsA+Xc6tWrE2JTp07NQCUAAAAAAAAAUHTJPutO9pl4pmm2gXLu66+/TohdeumlGagEAAAAAAAAAIpXss/EM61KpgsAAAAAAAAAAIDyQrMNAAAAAAAAAACkSLMNAAAAAAAAAACkKKugoKAg00UARffdd9/F66+/vklsl112ibp162aoIsisqVOnxqWXXrpJ7Mknn4z99tsvQxUBZZFrBZAK1wogFa4VQCpcK4CtcZ0AUuFaQWWwevXq+PrrrzeJ9ezZM3bYYYcMVZRctUwXAKRnhx12iEsuuSTTZUCZtt9++0XXrl0zXQZQxrlWAKlwrQBS4VoBpMK1Atga1wkgFa4VkBm2kQIAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRlFRQUFGS6CAAAAAAAAAAAKA+sbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACmqlukCAKC8mTNnTnz++efx7bffxs8//xw1atSIxo0bx5577hkdOnSI2rVrZ7pEAGAzlixZElOmTImvvvoqVq5cGQUFBdGgQYPYbbfdol27dtG0adNMl1hoK1asiMmTJ8esWbNi+fLlkZeXF9nZ2dGqVavYf//9o3nz5pkuEcqF/Pz8mDt3bsyYMSMWL14cy5cvjw0bNkTDhg2jUaNG0aJFC/N9oMIzrwCgoluzZk188cUXMXv27Pjpp59ixYoVUb169WjUqFE0atQoWrduHXvuuWdkZWWVWk3uVUD5pNkGgLSVxKTz9ttvjzvuuKPY8xbV0qVL44knnogBAwbE119/vdnH1apVK44++ui48sor48gjjyzFCqHsuuOOO+LOO+8s8fOU9nVj5513jm+++aZYc55//vkxcODAYs0JmTR37tyYOHFiTJo06d8/y5YtS3jc6NGj49BDDy2xOnJycuL555+PJ598Mj7++OMoKChI+risrKzo3LlzXHbZZdG7d++oXr16idWUroKCgnjllVfiL3/5S7z//vuRm5u72cfut99+cdFFF0Xfvn2jbt26pVglpCZT14qcnJwYN25cjB49OkaNGhWTJk2KNWvWbHFMtWrVom3bttGrV6+48MILY5tttim2etJVUnOuzV0zobRl4lrRp0+fGDRoULHk+kXLli1j3rx5xZozXeYVVBSleZ2YN29etGrVKq0cqcjENcOcgormhx9++Pec/7333ovZs2dHfn7+Fsc0atQoDjrooLjooovi+OOPjypVin+zGPcqzCko/zTbAMBW9O/fP66//vqkf5z/t3Xr1sWwYcNi2LBhcdxxx8VTTz2lQxuASiHVG9ulbdy4cdG3b9+YOXPmVh9bUFAQH330UXz00Ufx4IMPxjPPPBPdunUrhSoLZ8aMGXHhhRfGRx99lNLjp06dGldddVX8/ve/j7/85S9xwgknlHCFsHmZvlbk5OTEO++8E0OGDIl//vOfsXz58kKNz83N/Xfdt912W1xxxRVxzz33RK1atUqmYKikMn2tqEzMKyivXCeALfnhhx/i5ZdfjiFDhsT777+/1eaa/7Zs2bJ/3+ffeeed49FHHy3W9zz3KswpqBg02wDAZuTn58fll18eTz31VJHGv/nmm9GxY8d44403on379sVcHfDfdt9990yXAJVau3btYsWKFZkuYxMDBgyISy+9NHJycgo99osvvohDDz00nnrqqejTp0/xF1dEb731VpxxxhmxatWqQo9dsGBBnHTSSXH33XfHzTffXALVwdZl+lrx0UcfxfHHH18sudatWxd//OMf4/XXX49//OMf0aZNm2LJC2T+WlFZmFdQnlWW64R7HVA0N910U/Tv379Ycs2bNy9OPPHE6NOnT/z1r3+NmjVrppXPvYpNmVNQnmm2AYDNuOKKKzbbaFOlSpXYa6+9olmzZrFu3br44osvkn57ZtGiRXH00UfHBx98EHvvvXdJlwyVVsOGDePUU0/NdBlAGfLiiy9G3759N7sM80477RStWrWKgoKCmDt3bsyfPz/hMTk5OdG3b9+oVatWnHnmmSVd8laNGTMmTj755Fi3bl3S482aNYvdd989qlWrFt9++23MmTMn4TEFBQVxyy23RPXq1eOGG24o6ZKhXKpZs2Y0a9YsmjZtGtnZ2bFs2bKYM2dOrFy5Munjv/zyyzjiiCNi9OjRse+++5ZytQBFY14B5UPfvn0zXQJUWA0bNoztttsutt1224iIWLJkScyaNWuzq+AMHDgwli5dGkOHDi3yVk7uVZhTULFotgGgRIwfPz6t8TvuuGMxVVI0zz77bPz1r39NiNesWTNuvPHGuOKKK/49CY/YuArOu+++GzfffHN88sknm4xZunRpnHrqqfHJJ5/Ye5RK6aKLLopjjjmmWHJ9/vnncemllybEe/fuXSa2b3jllVdi++23L/L4pk2bFmM1UHlNmzZtszevzjrrrLjllluidevWm8SnT58e9957b7z44oubxPPz86Nv376x3377xT777FOidW/J999/H7169Up68+roo4+Ou+++Ozp37rxJfN68efHHP/4x/vKXvyTcLPztb38b7du3jyOPPLJE64byomvXrtGzZ884+OCDo3PnzlGjRo1Njufl5cXEiRPjscceixdffDHy8vI2Of7jjz/GUUcdFdOnT4/GjRuXZulb1Ldv37jooosyXQZUKLfccktaK2Sl+2344mBeAenbfvvt077/+Z/OOOOMhA/Vt9lmmzj55JOL7RzpMKegIqhTp0786le/isMPPzwOPvjgpCtHrVixIt5444148MEH47PPPks4/tprr23xS7pb4l7FRuYUVCgFAJCmiEj4Kc++//77guzs7ITn1KhRo4JPPvlki2NzcnIK+vTpk/R3csMNN5TSM4CK64orrkj6+poyZUqp19KyZcuEOubOnVvqdUBZ0aBBg4TXxE477VRw8sknF9x7770Fb731VsHEiROTvoZHjx5dbHXk5+cXHHDAAQnnyMrKKnj66ae3Ov6pp54qyMrKShjfpUuXgvz8/GKrs7BOP/30pL+7W2+9datjX3/99YKaNWsmjN15550L1qxZUwrVw//J9LXigw8++He+pk2bFtx4440FM2fOLFSO999/v2D77bdPWuMll1ySdo1FdfvttyfUc/vtt2esHkhHpq8Vvzj//PMT8g8YMKDY8meKeQUVQVm5ThSHTz75JGmdV111VUbqMaegIujbt++///d7wAEHFDzzzDMFK1euTHl8bm5uwW233Zb0tZmVlVUwduzYQtXjXkUicwoq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VlaRc2ZlZcUuu+wSM2bM2Oq5SkKy89SrVy+aNWuWVt7ddtstZs2atdVzAVv21ltvxaJFixLiPXv2zEA1yb377rsxceLEGDduXCxbtizheK1ataJTp05x4IEHRo8ePeLQQw8t/SKhnPnHP/4RL7zwQkyYMCF+/vnnhOP16tWLLl26RPfu3eP444+Pjh07ZqDKROYVULb0798/IVazZs0499xzM1DN1plTUJkNGDAgIVa9evU4+uijtzrWvYrUmVNQHlnZBoAS8cQTT8TUqVOTNtpERHzzzTcxePDguPzyy2OnnXaKSy+9NOnepaUlJycn6TY16WwhFRHRtGnTpPu5JltuHkg0cODApE0rZfWbXgMHDoxPPvkkac0RG5uHhg4dGtdcc03ssssucdZZZ8WUKVNKuUqomL755puEWLrv45vLUVrv48me0w477JB23kw+J6goCgoK4s4770yIV61aNU488cQMVJTchx9+GG+88UbSD8UiItatWxcffPBB3H///XHYYYdF27ZtY+DAgZv9Ow6IGD58eIwcOTJpo01ExM8//xwjR46MO+64Izp16hTdu3ePf/7zn6VbZBLmFVB2LFy4MN56662E+K9+9avYZpttMlDR1plTUFlNnTo1XnnllYT4EUccEQ0aNNjqePcqUmdOQXmk2QaAjFu7dm089dRT0bZt23jqqacyUsPSpUuT/vG33XbbpZ072eobyfZ4BRI9++yzCbGddtoppW+OlHW5ubnx97//PTp37hx33323G1CQph9++CEhVhzv48lylNb7eEV8TlBRPPnkk/Hxxx8nxM8666xiuXmeKZ9//nlccMEFccQRR8SCBQsyXQ5UCGPHjo2TTz45Tj/99Fi+fHnG6jCvgLJjwIABkZeXlxAvq18sKgpzCiqC/Pz8uOyyy5K+Xq+77rqUclTE99+K+JygqDTbAFBmrFmzJi699NI477zzSn2f359++ilpPJXu9K3Jzs5OiC1dujTtvFDRvffeezF79uyE+AUXXBBVqlScaWxubm7cdttt0aNHj1i3bl2my4FyK9l7eXl/Hy/N57R27dpYu3Zt2rmhMpg5c2bSm+t16tSJe++9NwMVFb8xY8ZE27ZtkzYUAUXz8ssvR9u2bePrr7/OyPnNK6BsKCgoSLolTatWreKII47IQEUly5yC8uy+++6LcePGJcR79uyZ8uvVvYrUmVNQHlXLdAEAVBw1atSIbt26xRFHHBH77rtv7L333tGkSZPIzs6O9evXx7Jly2LOnDkxduzYGDp06Ga3TnnuueeicePG8fDDD5da7Ztb/rlevXpp506WY/Xq1WnnhYrumWeeSYhVqVIlLrzwwgxUs3lVqlSJTp06xZFHHhlt27aN1q1bx7bbbhsNGjSI3NzcWLZsWXzzzTcxbty4eO211+L9999PmmfkyJHRu3fvGDJkSIVqJoLSkuy9vLy/j5fmc4rY+Lxq166ddn6oyFatWhWnnnpq0uvA/fffHzvttFMGqkrUokWLOProo+OAAw6I1q1bR6tWrSI7Oztq1aoVy5YtiyVLlsTEiRNjzJgx8dJLL8WaNWsScvz000/Rs2fPGDt2bOy+++4ZeBZQtuy+++7Ro0eP6NChQ+yzzz7RokWLqF+/ftSoUSN++umnWLx4cXz00UcxcuTIePXVVyMnJychx7fffhvHHHNMjB07Npo2bVqq9ZtXQNkwatSopE13F154YWRlZWWgoi0zp6Cyeuedd+L2229PiDdo0CAef/zxlPO4V5E6cwrKI802AKSta9eu0bdv3+jVq9dmJ0TVq1ePevXqRYsWLeLQQw+Nm2++OcaMGROXX355zJw5M+HxjzzySLRv3z7OO++8ki4/IiLpTbCIiGrV0n+rrF69ekJsw4YNaeeFimzFihUxdOjQhPhRRx1VZj7EatOmTVxzzTVxzjnnbHZP9Ro1akSdOnWiefPm0a1bt7juuutiypQpccUVV8T48eMTHv/KK6/EPffcE7fddltJlw8VTrL38vL+Pl6azynC/AS2Ji8vL3r16hUzZsxIOHbcccdFv379MlDV/2nUqFH8z//8T1x00UXRrl27zT6uadOm0bRp02jdunWcd9558cc//jEeeOCB+P3vf5+wreWSJUvihBNOiKlTp2722gEV2fbbbx833nhjXHjhhbHHHnts9nHbbbddbLfddtGmTZu4+OKL47vvvotbb7016ba4s2fPjl69esWoUaNKsvQE5hVQNvTv3z8hVrVq1bjgggsyUE1y5hRUdl988UWcccYZSbd8f/LJJwt1b9K9itSZU1Ae+cosAGkbN25c9O3bt9Ddy4ceemhMnjw5TjvttKTHb7rppqTfhigJyfZdjdj4x266kuXIzc1NOy9UZC+88ELSJULL0v7lw4YNi6uuumqzjTab065du/jggw/iyiuvTHr8wQcfjO+//744SoRKJdl7eXl/Hy/N5xRhfgJbc/nll8fw4cMT4q1atYrnn38+499Gv+qqq+Lxxx/f4odiyTRq1Cjuv//+GDlyZNStWzfh+JdffhlPPPFEcZUJ5crvfve7uP/++7fYaJPMDjvsEP3794/Bgwcnfd8dPXp0DBs2rLjKTIl5BWTesmXL4tVXX02IH3PMMdG8efMMVJScOQWV2XfffRfHHntsLF++POHY1VdfHb169SpUPvcqUmdOQXmk2QaAjKpdu3a88MILcdhhhyUcW7hwYaGWZEzH5jqvi2MilyyHb3DAliXbQqpp06Zx0kknZaCa4le1atV45JFHonfv3gnHVq9eHffcc08GqoLyLdl7eXl/Hy/N5xRhfgJbcuONN8bTTz+dEN92221j+PDh0ahRowxUVbwOO+ywGDp0aNLtLO+6665Yt25dBqqC8u2ss87a7AfLN910U6nWYl4Bmffcc88lfT8tS18sKg7mFJRXP/74Yxx11FHxzTffJBw75ZRT4g9/+EOhc7pXkTpzCsojzTYAZFyNGjXiqaeeSjppSraNTEmoWbNm0vjmtpcqjGTLHG7ufEDEp59+GlOmTEmIn3vuuRXqj6usrKz485//HI0bN0449sorr0RBQUEGqoLyK9l7a3l/Hy/N57S58wEbPxR68MEHE+KNGjWKESNGxJ577pmBqkpGjx494vzzz0+IL126NMaMGVP6BUEFcPHFFyf9gtH06dOTbqtdUswrIPOSbSG13XbbRc+ePTNQTckyp6C8WbFiRfTo0SPplrHHHHNMvPjii0VavcW9itSZU1AeabYBoEzYbbfd4qyzzkqIf/LJJ/Hjjz+W+Pnr16+fNL5y5cq0c69atSohlp2dnXZeqKiSfWs8ouJ90yti44d0/fr1S4gvWrQoacMRsHnJ3svL+/t4aT6nzZ0PKrsHH3wwbr/99oR4dnZ2vP3229G2bdsMVFWybr311qTxN998s5QrgYqjLLyuzCsgsz755JP4/PPPE+Lnn3/+ZlfcLu/KwrUPUrFq1aro0aNHTJ48OeHYYYcdFq+88krUqFGjSLndq0idOQXlkWYbAMqME044ISGWn58fkyZNKvFzb7PNNknjyfZmLawVK1akfD6o7NatWxeDBw9OiHfr1i323nvvDFRU8pJd+yI23ogDUpfsvbW8v4+X5nPKzs6uUKuHQXF45JFH4sYbb0yI16tXL4YPHx6dOnXKQFUlr1WrVrHPPvskxM1NoOgOOuigaNiwYUK8NF9X5hWQWclWtYmI6Nu3bylXUnrMKSgPVq9eHccdd1x89NFHCce6d+8er732WtSuXbvI+d2rSJ05BeWRZhsAyowOHTokjS9evLjEz92oUaOk3enpnjs/Pz+WLFmSEG/WrFlaeaGievnll5P+cVYRV7X5Rbt27SIrKyshXhrXPqhIkr23Fsfr6Pvvv0/pXCWhIj4nKC8ef/zxuPrqqxPiderUiddffz26detW+kWVomR/m5mbQNFVq1Yt2rRpkxAvzdeVeQVkzpo1a+LFF19MiB988MGxxx57ZKCi0mNOQVm2Zs2aOP744+PDDz9MONalS5d48803o27dummdoyK+/1bE5wRFpdkGgDJj2223TRr/4YcfSvzcVapUiZYtWybEv/3227TyLly4MPLy8hLirVq1SisvVFTPPPNMQqx+/fpxxhlnZKCa0lG1atWk3wgpjWsfVCTJ3lvTfR+PiJg/f35K5yoJyc6zublFYWTyOUF58OSTT8aVV16ZEK9Vq1YMGzYsDjnkkAxUVbqS/W1mbgLpyfTryrwCMucf//hH0i1WKvIXi36R6WsfbM7atWvjhBNOiPfeey/hWMeOHeOtt94qlu2L3KtInTkF5ZFmGwDKvJycnFI5z+67754QmzVrVlo5Nzc+2bmgsvvqq6/i/fffT4ifddZZaX+LpKwrKChIiJXWtQ8qimTvrfPmzYsNGzYUOeeGDRvim2++SelcJSHZeTZXU2Ekm5+Ym8BG/fv3j8svvzzhvblmzZrxz3/+M4444ogMVVa6zE2g+GX6dWVeAZmTbAuphg0bxmmnnZaBakpXpq99kMy6devipJNOilGjRiUca9euXYwYMSIaNGhQLOdyryJ15hSUR5ptACgzNvethuLoIE9Fu3btEmKff/550j8KU/Xpp58mxKpVqxb77rtvkXNCRdW/f/+kr7eK/k2vvLy8+OmnnxLipXXtg4oi2ft4Xl5eTJs2rcg5p06dmvSbWfvvv3+RcxZGsucUkXx+kaqlS5fGggULEuKl9ZygLBswYEBcfPHFCfORGjVqxNChQ6NHjx4Zqqz0JdsK19wE0pPp15V5BWTGl19+mXSLmrPPPjtq166dgYpKV6avffDf1q9fHyeffHK88847CcfatGkT77zzTjRq1KjYzudeRWrMKSivNNsAUGZMmjQpaXynnXYqlfMfcMABCbEVK1bEjBkzipxz/PjxCbG2bdtGzZo1i5wTKqK8vLwYNGhQQrxNmzbRqVOnDFRUeqZMmZK0yai0rn1QUXTs2DGqVEn8EzfZe3Gqko2tWrVqdOjQocg5C2PXXXdNus1ccT+niOTzIKhMnnvuubjooosS3pOrV68eQ4YMieOPPz5DlWVGsr/NzE2g6HJzc+Pzzz9PiJfm68q8AjIj2ao2ERX/i0W/MKegLNmwYUOccsop8dZbbyUc22effWLkyJFJ3yvT4V5FaswpKK802wBQZrz22mtJ46XVvXzooYdGtWrVEuJvv/12kfLl5uYmXYryyCOPLFI+qMjeeOON+P777xPileHm0+aufZv7lgiQXMOGDaNjx44J8aK+j29ubMeOHaNhw4ZFzlkYWVlZSbesKe7n1KxZM6vuUakNHjw4+vTpE/n5+ZvEq1WrFn//+9/jxBNPzFBlmTF37tyYPn16QtzcBIrugw8+iOXLlyfES/N1ZV4BpS8nJyf+9re/JcTbt29fKd5XzSkoS3JycuL000+PN998M+HY3nvvHaNGjYqmTZsW+3ndq0iNOQXllWYbAMqEOXPmxN///veE+O67715q33aoX79+HHLIIQnxl156qUj5RowYEcuWLUuIV7ab9ZCKZ555JiFWq1atOOecczJQTelZvnx5PPbYYwnx+vXrR+fOnTNQEZRvJ5xwQkJsxIgRST/c2pply5bFiBEjEuKl/T6e7DlNnTo1vvjii0LnysvLi6FDh6Z0Dqgs/vGPf8R5552X0GhTtWrVGDx4cJxyyikZqixz7r777qTxZDfUgdTcc889SeOl/boyr4DS9dprr8XixYsT4pXhi0UR5hSUHbm5udGrV68YNmxYwrE999wzRo0aFdtuu22Jnd+9ii0zp6A802wDQMZt2LAhLr744tiwYUPCsdL+oD3Z+T7++OP4+OOPC50r2QforVq1im7duhWpNqiovv/++xg+fHhC/JRTTinWPZLLoiuvvDJ++umnhPhpp51muzkogt69e0dWVtYmsfXr18dTTz1V6FxPP/10wtwkKysrzj777LRqLKyTTz456tatmxD/85//XOhcQ4cOTbqKWEVvbITNeeWVV6J3796Rl5e3Sbxq1arx/PPPx+mnn56hyjLn7bffTrq1Z/369X1pAIromWeeSbrq7S677BJdu3Yt1VrMK6B0JdtCqnbt2qX+N0UmmFNQVuTl5cXZZ58dr776asKx3XffPUaNGhXNmjUr0Rrcq9gycwrKM802ABTZ8OHDY+nSpWnlWLt2bfTu3TtGjx6dcKx+/fpxxRVXpJyrT58+kZWVlfAzb968lHP06tUr6XKRv/nNb1LOERExZsyYpM0D/fr1K1QeqAwGDhwYubm5CfGS+qZXuteKMWPGxIIFC9KqIS8vL6666qp4/vnnE45VrVo1rr/++rTyQ2XVqlWrOO644xLiDz74YNLGts1ZunRpPPDAAwnxnj17xs4775xynjFjxiS93txxxx0p56hbt2706dMnId6/f/+YNWtWynk2bNgQt956a0K8TZs2cfDBB6ecByqK1157Lc4888yEOUiVKlVi0KBBceaZZ5ZaLeleK77//vt49913065j9OjRceqppyas8hOx8e+YevXqpX0OKC9mzpwZEydOTDvPiy++GJdddlnSYzfeeGPCB29bYl4B5cvChQuTboty+umnR4MGDUrknOYUsKn8/Pw477zzYsiQIQnHdt111xg1alTssMMOJV6HexWbZ05BeafZBoAie/LJJ2OnnXaKfv36xYQJE6KgoKBQ4997773o0KFDvPzyy0mP33fffbHNNtsUR6kpq127dvz6179OiI8ePTr+8Ic/pJTjxx9/TDrR3HbbbeOSSy5Jt0SocJ599tmE2K677hqHHnpo6ReTgn/+85+xyy67xHnnnRejRo1K2ii0JZ9++mkcfPDB8eijjyY9fvXVV8fee+9dHKVCpXTLLbckxJYuXRoXXHBB0pu9/y0/Pz8uuOCChBteWVlZcfPNNxdbnYVx/fXXJ6x2tWHDhujdu3esXbs2pRzXXHNN0hteyX5fUNG99dZbcdppp0VOTs4m8SpVqsSAAQOid+/eGaqsaBYvXhxHHnlkdOjQIZ599tlCfyFi+fLl8dvf/jaOPPLIWL16dcLxli1bxk033VRc5UK5MHPmzOjUqVMcdthh8dJLL8WqVasKNf7777+Piy66KM4+++yE1bMiIjp16hR9+/YtrnILxbwCSseAAQOSvv7L8hZS5hRUJAUFBdG3b98YPHhwwrFWrVrF6NGjY8cddyy1etyrSM6cgvKuWqYLAKB8W7NmTTz++OPx+OOPxw477BA9evSI/fffP9q0aRMtW7aM7OzsyM7OjpycnFi2bFl89dVXMXbs2Hj55ZdjypQpm83bq1evjK0Cc/XVV0f//v1j9uzZm8RvuOGGyMrKStqM84t58+bFiSeeGN98803CsQceeMA3N+C/jBkzJr766quEeN++fQv1Lc/SlpOTE88991w899xz0bhx4+jRo0e0b98+2rRpE7vuumtkZ2dHgwYNIj8/P5YtWxbffPNNjB07Nl577bV47733Npu3e/fucd9995XiM4GKp0uXLnHeeefF3/72t03iw4YNi969e0f//v2jTp06SceuWbMmLrzwwnjttdcSjp133nlxwAEHlEjNW9OyZcu48cYb46677tokPnHixDj++OPjH//4RzRp0iTp2Nzc3Lj++uvjL3/5S8KxQw45pFJuk0Pl9uGHH8bJJ5+cdAvbSy65JPbYY4+YMGFC2udp3bp1ZGdnp52nMCZPnhx9+/aNSy65JLp37x4HHnhgtGnTJlq3bh3bbLNNNGjQIGrWrBkrVqyIJUuWxMSJE2P06NHx0ksvJf1ALCKiTp06MXToUH/HUGmNGTMmxowZEzVr1ozDDz88OnfuHG3atIm99947GjVqFNnZ2VG9evVYvnx5LFq0KD766KMYOXJkvPLKKwkNfb/YdtttY8iQIVG1atVSfjYbmVdAySsoKEj6xaI999wzDjrooAxUVDjmFFQEV155ZQwcODAhXqdOnfjd734XCxcujIULF6Z1jpo1a0a7du1Seqx7FZsyp6DCKACAIjrppJMKIqLYf84444yCDRs2FLqe888/P2m+uXPnFjrXxx9/XFCjRo2k+bp06VLwwgsvFMyfP78gJyenYNWqVQUTJkwouO666wrq1q2bdMwpp5xS6BqgMujdu3fC66VatWoF3333XYmdM91rxVVXXVUi175DDjmkYMWKFSX2vKGkzZ07t0ReG7/8jB49OuVali1bVtCqVaukeXbaaaeChx56qOCLL74oWLduXcG6desKZsyYUfCnP/2poEWLFknHtGrVqmDZsmWF/p2MHj06ab7bb7+90LnWr19f0Llz56T5ttlmm4K77rqr4LPPPitYs2ZNwYYNGwrmzJlT8OSTTxbsvffeScc0atSoSHMkSFemrxW33357iZ6/KNesdK8VU6ZMKZHn0LBhw4IxY8ak/DygOGX6WvHqq6+WyHl33HHHgmnTphXpd2JeAZvK9HViS955552kOR988MHi+wUkYU4B/6dly5Yleo2IiIKWLVsWqib3KswpqHisbANAmZGdnR1/+tOfMraU8n/q1KlT9O/fP84///yEZRwnTJhQqG+7durUKQYMGFDcJUK5t3z58njllVcS4scdd1xsv/32GagoM2rUqBF33HFH3HDDDRn7ditUNA0bNoxhw4bFoYcemrD0+bfffhvXXHNNXHPNNSnl2mabbWLYsGHRsGHDEqg0dTVq1IhXXnklDjrooJg7d+4mx5YuXRq33XZb3HbbbSnlql27dgwdOrRQe7oDlUuPHj3imWeeKdWl9aGi6927dzz22GMZn1NEmFdASevfv39CrHr16nH++ednoJrMMqeA/+NexZaZU1AeVcl0AQCUXx06dNjsMoCF0bhx47jmmmti2rRpZaLR5hfnnHNODB48eLPLN6biqKOOihEjRpT6EvJQHrzwwgtJ9+8ty/uXR0Tsu+++0bx587Tz1K1bNy666KL49NNP47e//a1GGyhm++67b4wePTpatWpV5By/7OO+7777FmNlRde8efN47733Ul6mOpkmTZrE8OHD47DDDivGyoBMatSoUbRv3z6qVEn/Nt9BBx0UL730Urz11ls+FKNSa968ebRu3TrtPFWqVInjjjsu3n777Xj++ecz/oHYfzKvgJLx008/xauvvpoQP+GEE2LbbbfNQEWpM6eAkudeRXLmFJRXVrYBoMhuvfXWuOWWW2LatGkxfvz4mDJlSnz22WcxZ86cWLJkSRQUFCQdV7NmzWjbtm107tw5unfvHieddFLUqlWrlKtPTa9evaJt27Zx5ZVXxsiRI1Me16BBg7jjjjviyiuv9AE6bMY333wTPXr02CRWp06dOO644zJUUWouuuiiuOiii2L27NkxduzYf1/7Zs+eHYsWLUpYDesX1apVi3322Sc6d+4c3bp1i1NOOUUjHpSw/fbbLyZNmhQ33XRTPP3005GXl5fSuKpVq8Yll1wS9913X5n6UCwiokWLFjFu3Li455574o9//GOsW7cupXFZWVlx+umnx5/+9KdiaRgEyo6WLVvGpEmTYsWKFfHhhx/GxIkT49NPP40ZM2bE/PnzkzY3/6J58+bRuXPn6Ny5c5x44onF0lwAFUGnTp1i+vTpsWTJkvjggw9i0qRJ8emnn8YXX3wRCxcujA0bNmx27C677BKdO3eOAw44IE4++eRo2bJlKVZeOOYVUPwmTZoUhx56aEL8qquuKv1iCsmcAkqHexX/x5yC8i6rYHOfhAJAGjZs2BCLFi2Kn3/+OdauXRtVq1aNhg0bRoMGDaJBgwbF8g2J0vbRRx/FoEGDYsSIEfH1118nNBPVrVs3unbtGieffHKce+65Ub9+/QxVCmRKbm5uLFq0KFatWhVr1qyJKlWqRIMGDf59/dN8R0W2fv36mDJlSonlb926dVoNat9++230798/3njjjfjss88iNzd3k+PVqlWLtm3bxvHHHx99+/aNnXbaKd2SS9ySJUtiwIABMWzYsJg4cWKsX79+k+NVqlSJvffeO4455pjo27dv7L333hmqFP5PWb9WVERLly6Nn376KdasWRM5OTlRr169aNiwYTRs2LDMfukByvK1oqCgIJYsWRLLly+PNWvWRG5ubmRnZ//7dVWjRo1irrZ0mFdQ3pTl60RFZU4Bxc+9CnMKyjfNNgBQBD///HMsWLAgfv7556hevXo0btw4dtxxx8jKysp0aQDAVuTk5MS3334bK1asiIiNK9LttNNOUb169QxXVnR5eXkxf/78WL58eeTl5UV2dna0aNHCTW8AoNDMKwCg9LlXAeWPZhsAAAAAAAAAAEhR+dvDAwAAAAAAAAAAMkSzDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAJBg4cGFlZWZv89OnTJ6Wx8+bNSxi78847l2i9bGrMmDEJ/w229DNmzJiU8qbzvwu2bOedd075v5ffOQAAQGZptgEAAAAAAAAAgBRptgEAAADKjTvuuKNQq3VkZWVFnTp1olmzZrHnnnvGEUccEdddd10MHjw4li5dmumnAwAAAEA5VC3TBQAAAACUpLVr18batWtj8eLFMWvWrBg1alRERNSoUSNOPPHE+PWvfx1dunTJcJUAAAAAlBeabQAAAIBKacOGDfHyyy/HK6+8Ev369Yvf/e53UadOnUyXBSWmXbt28Ze//CXpsdatW5dyNfy3V199NdavX58Qf+ONN+Kee+7JQEUAAABsjmYbAAAAoFLLz8+PRx99NKZPnx5vvvlm1KhRI9MlQYnIzs62ilMZ1q5du6TxmTNnlnIlAAAAbI1mGwAAAKDcGz9+/GaPrVmzJpYtWxbTpk2LMWPGxJgxY5I+7t13342+ffvGc889V0JVVh4777xzFBQUZLoMAAAAgBKh2QYAAAAo91JZrePUU0+N22+/PWbMmBF9+/aNCRMmJDzm+eefj8svvzy6detWEmUCAAAAUAFUyXQBAAAAAKWpdevW8f7778cRRxyR9Pjtt99eyhUBAAAAUJ5otgEAAAAqnerVq8fgwYOjTp06CcfGjBkTK1euzEBVAAAAAJQHmm0AAACASmnbbbeNc889NyGem5sbY8aMKf2CAAAAACgXqmW6AAAAAIBMOfLII+PJJ59MiH/55Zdp587JyYk5c+bEzJkzY/HixbFq1arYsGFDNGzYMBo3bhzNmzePjh07Ru3atdM+19asXbs2JkyYEF9++WX89NNPUbVq1WjUqFHsscce0bFjx6hXr16J11CRFBQUxNy5c+Pzzz+PH374IVauXBnr1q2L2rVrR506daJp06ax8847x6677hqNGjXKdLmV2vTp0+Pzzz+P77//PtasWRPZ2dnRqlWr6NKlSzRt2rRQudauXRtTpkyJGTNmxE8//RQREdttt13stttu0aVLl6hatWpJPAUAAADKIM02AAAAQKXVqlWrpPEff/yx0Lny8/Pjww8/jBEjRsSYMWPi448/jpycnC2OqV69enTs2DHOPPPMuPjii4u98ebTTz+NBx54IF599dVYv3590sfUrFkzjjnmmLj++uvjwAMPLJbzzps3L+F327Jly5g3b16Jjt2cPn36xKBBgzaJDRgwIPr06VOoPGPHjo0BAwbE0KFDY/ny5SmN2XXXXaNLly5x3HHHxQknnBD169cv1DkrsmnTpsVxxx0X8+fP3yRes2bNGDhwYJx55pkJY8aMGROHHXbYJrFDDjlkk9Wofvrpp3jkkUeif//+sXDhwqTnrlq1ahx77LFx1113Rbt27bZY5/Tp0+P++++Pf/7zn/Hzzz8nfcw222wT5513Xtx+++3RoEGDLeYDAACg/LONFAAAAFBpZWdnJ43/smpFKgoKCuLqq6+OFi1axCGHHBL33ntvjB07dquNNhEbV78ZP358XHXVVdGyZct4+umnUz7vlmzYsCGuvfba6NChQ/z973/fbKNNRMT69evjX//6V3Tv3j0uvPDCWLt2bbHUUJEsWLAgTjnllOjevXv0798/5UabiIg5c+bECy+8EL179y70SioV2ciRI+PAAw9MaLRp3LhxvPPOO0kbbVIxbNiw2GuvveKuu+7abKNNREReXl68/vrr0alTp7j//vuTPiYnJyduuOGGaNOmTTz//PObbbSJiFi6dGk89NBDsddee8WECROKVDsAAADlh2YbAAAAoNJasWJF0nidOnVSzpGXlxePPPJIfPfdd2nVsmTJkrjkkkvisssuS6lRZ3N+/vnnOOaYY+Khhx6K/Pz8Qo0dMGBAHHHEEVtsKqhsZs2aFV27do1XX3017VxbanqqTAYMGBDHHXdcrFy5cpP4LrvsEuPGjYuDDjqoSHn/+te/xsknnxxLlixJeUxeXl789re/jTvuuGOT+Nq1a6Nnz57x+9//vlCvo0WLFkWPHj1i4sSJKY8BAACg/LGNFAAAAFBpzZkzJ2l82223LZb8NWrUiJYtW0aDBg0iOzs7NmzYEMuXL4/Zs2dvtvHiySefjFq1asXDDz9c6PPl5ubGqaeeGqNHj97sY5o3bx477rhj1KhRI7777ruYO3fuJs0E48ePj969e8fJJ59c6PNXNGvWrIkePXrEggULkh6vUqVKNG/ePJo3bx5169aNnJycWLlyZfzwww9pN19VVLfddlvcfffdCfHOnTvHa6+9VuTX3r/+9a+44oorEhpjdtlll2jWrFlUq1YtFi5cuNnX/J133hkHHnhgHHXUUVFQUBBnnHFGjBgxYpPH1K5dO3bZZZdo2rRprFmzJr766qukq2CtXLkyevfuHZ9//nnUrFmzSM8HAACAsk2zDQAAAFBp/feH6b9o165dkfLVrVs3jjrqqDjxxBOjU6dOsddee0W1aom3X3JycmLSpEkxaNCgePbZZ2PDhg2bHH/kkUfiiCOOiBNOOKFQ5//DH/6Q9DlVrVo1+vXrF5dcckm0bt16k2Pff/99DB48OO6+++5/r/QzbNiwQm2VVFHde++9MW/evIR4ly5d4tprr42jjz46GjRokHTsTz/9FJ999lm8/fbb8frrr8f06dNLuNqybcOGDdG3b994/vnnE4796le/isGDB0ft2rWLlHvx4sVx4YUX/rvRpnHjxnHTTTfFmWeeGc2bN9/ksXPnzo177rknnn322YQ8//u//xvTp0+P3/3ud/H666//O96lS5e4+eab44gjjtikxry8vBg1alRcc801Cf99Z82aFX/4wx/i5ptvLtJzAgAAoGyzjRQAAABQKX333XcxePDghHjt2rWje/fuhcq15557xhNPPBFLliyJV199NS644ILYd999kzbaRERUr149unTpEk888UR89tlnse+++yY85je/+U2hapg1a1bceeedCfEmTZrEuHHj4uGHH05otImI2H777ePXv/51TJ8+PTp27Pjv+Pvvv1+o81c0BQUFMXDgwIT4lVdeGWPHjo3TTz99s402ERsbPg477LC4//77Y9q0afHRRx/F2WefXYIVl13Lly+PHj16JG20+d///d8YOnRokRttIiJmzpz57xVmunXrFrNmzYpf//rXCY02ERGtWrWK/v37x+9///ukeR566KF/r7yTlZUV999/f4wfPz569uyZUGPVqlXjqKOOivHjx0enTp0S8v31r38t9FZuAAAAlA+abQAAAIBKZ8OGDXHWWWfFunXrEo716tUrsrOzU85VrVq1+OKLL+Kyyy4rUsPAXnvtFaNGjYpWrVptEp8xY0aMHDky5Ty/+c1vEp5P3bp146233orOnTtvdXzz5s1j+PDhseeee6Z8zops6tSpCVtB7bLLLvHQQw9FlSqFv6XWuXPneOGFF4qrvHJj3rx50a1btxgzZswm8SpVqsRDDz0UjzzySJF+n8m0a9cuRo4cGdtss81WH3vdddfFwQcfnDT+yxZvDzzwQNx4441bzVW/fv0YNGhQQnPdggULYtSoUSlWDwAAQHmi2QYAAACoVKZOnRoHHnhg0pVb6tSpE3fddVehc2ZlZaVVU9OmTeOhhx5KiCdbCSSZ7777Ll577bWE+G233RYdOnRIuY4mTZrEM888k/LjK7L58+cnxI499tioWrVqBqopnz755JPo0qVLfPHFF5vEa9euHS+//HJcffXVxXau6tWrF3orqi2d/9BDD43rrrsu5Vx77713HHvssQnxDz74IOUcAAAAlB/J1zIGAAAAKEcmTJiw2WNr166NZcuWxbRp0+Ldd9/d7PZIWVlZMWjQoGjRokVJlblFPXv2jCZNmsSPP/7479j48eNTGvvss89Gbm7uJrEWLVoUqZmhe/fucdppp8XLL79c6LEVyYoVKxJi9evXz0Al5dOwYcPirLPOijVr1mwSb9q0abz22mtxwAEHFOv5zjjjjNhrr70KNebYY4+N6tWrR05OTsKxW2+9tdBNdCeddFJC09vkyZMLlQMAAIDyQbMNAAAAUO517do1rfF16tSJZ599Nk477bRiqqjwqlatGu3bt48RI0b8OzZ79uz46aefonHjxlsc++abbybEzjnnnKhRo0aRaunbt2+lb7Zp2LBhQmxLTV38n0cffTSuueaayM/P3yS+xx57xPDhw2OXXXYp9nNeeOGFhR5Tq1at2H333WPGjBmbxHfaaac4/PDDC52vTZs2CbFZs2YVOg8AAABln22kAAAAgEqrWrVqceaZZ8a0adOiV69emS4ntt12203+/4KCgvj666+3OCYnJyemTJmSED/99NOLXMdRRx2VtNmkMtlnn30SYmPGjIn+/ftnoJryIT8/P6655pq46qqrEhptunfvHuPHjy+RRptq1apFly5dijR25513Toh179692HIlWyEJAACA8s/KNgAAAEClVKdOnXjmmWfirLPOKvbcP//8cwwfPjwmT54cU6dOjTlz5sSKFSti1apVsXr16igoKEg51/Lly7d4/PPPP49169ZtEqtZs2bst99+RSk9IjausrP//vvHmDFjipyjvGvZsmXss88+MX369E3iF110Ubz55ptx7bXXxoEHHpih6sqetWvXRu/evePVV19NONarV68YNGhQ1KxZs0TO3bJly6hTp06RxibbGmzvvfcutlyabQAAAComzTYAAABApbRmzZo4++yzY8SIEfHkk08Wecul/zRt2rS49957Y9iwYbFmzZpiqHLrzTbz5s1LiLVu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fHKsW7cuA5UBAABA0Wm2AQAAACq9/fffP0444YSE+AsvvBCzZs1KOqZx48axzz77JMRvvvnmQp3717/+dbz55puFGvPfqlSpEtdee21C/MMPP4zLLrss5TzPPvts/P73v0+rluJw2mmnJcTmzp271a29/tM//vGPQv+3+E9PPfVUPP/885Gbm1vkHHPmzInXXnstId6xY8ci5yyP6tatG2+88UbSLbXeeOONOO644+Lnn3/OQGUAAABQNJptAAAAACLi9ttvT4jl5eXFXXfdtdkxybafevXVV+PKK6/c6vY4ixcvjjPPPHOTbY6qVq2aesH/5corr0zaxPHMM8/EiSeeGN9///1mx65bty5uuOGGuPjii/8dq1OnTpFrSdc+++wTXbp0SYjfc889cffdd2+xAWb58uVx/fXXx5lnnvnv/wZFeS4zZsyIc889N3bZZZe46667YubMmYUaP3Xq1Dj22GMTVm3Zbrvt4ogjjih0PeVdrVq14pVXXolevXolHBs9enQcddRRsXz58tIvDAAAAIpAsw0AAABARLRv3z7pyhsvvvjiZreGuvrqq6N+/foJ8cceeyzatGkTf/7zn2P69OmxevXq2LBhQ8yfPz9GjBgR/fr1iz322CNeeumlf4/Zc88949RTTy1y/VWrVo3+/ftHrVq1Eo699tprseuuu8YZZ5wR/fv3j7fffjtGjRoVzz//fPzP//xP7LTTTvH73/8+8vPzIyIiOzs7fvOb3xS5luJw//33J2ztFbFxy6/WrVvHrbfeGv/85z/jgw8+iDfffDOefvrpOPvss2PnnXeOP/zhD1FQUBAREYcffnhav9f58+fH7bffHnvvvXfst99+0a9fvxgwYEBMnjw5FixYEKtXr468vLxYsWJFTJs2LZ5//vk47bTTol27djF79uyEfA8++GBaTVXlWfXq1WPw4MFx4YUXJhybMGFCHHbYYbFkyZIMVAYAAACFUy3TBQAAAACUFbfddlu8/vrrm8Ty8/PjrrvuihdffDHh8U2aNImHHnooLrroooRjM2fOjP/93/9N6bwNGzaMoUOHpr2FU5s2beL555+PM888M2H1l7Vr18aQIUNiyJAhW8xRpUqVeOGFF+LHH39Mq5Z0HXLIIdGvX7/485//nHBs9uzZcc8992w1x7777htDhgxJusVWUUybNi2mTZtW5PHnn39+nHfeecVSS3lVpUqVeOaZZ6JevXrx6KOPbnLs008/jYMPPjhGjhwZzZs3z1CFAAAAsHVWtgEAAAD4/zp16hTHHntsQvwf//hHTJ8+PemYvn37xi233FLkczZr1ixGjBgR++yzT5Fz/KdTTz01Xn311cjOzi702Fq1asVLL72UdIWfTHj44Yejb9++RRp70EEHxejRo6Nx48bFXFXhZWVlxTXXXBMDBgzIdCllQlZWVjzyyCNx8803JxybOXNmHHTQQTF37twMVAYAAACp0WwDAAAA8B9uv/32hFh+fn7ceeedmx1z9913x4svvhjbbLNNoc516qmnxqRJk6JTp06FrnNLevbsGZ9++mn86le/SnnMoYceGpMmTYrTTjutWGtJxy+roDz11FPRrFmzlMY0atQoHnzwwRg9enQ0adKkyOc+++yz48ILL0z5vJvTuXPn+PDDD+NPf/pT0m2xKrN77rkn7r///oT43Llz46CDDoqZM2dmoCoAAADYuqyCXzawBgAAACjjFixYEAsWLEiId+nSpVjPM2nSpMjJydkkVqVKlejcufMWx61evTqefvrp+Oc//xkTJkyI9evXb3K8atWqsddee8XRRx8dF1xwQey3336bHH/33Xfjiy++2CR25JFHxl577VXk5/LFF1/ECy+8EO+99158+eWXsXz58qhSpUo0bNgw9thjjzjwwAPjtNNOiw4dOhT5HKVh9erVMWzYsBg+fHhMmjQplixZEsuWLYuaNWtG8+bNo23btnHsscfG6aefHvXq1Su28xYUFMRnn30W48aNi3HjxsXUqVPj66+/jp9//jnp4xs0aBBt2rSJAw88MM4666xo06ZNsdVSGGPGjInDDjtsk9ghhxwSY8aMyUg9FN3AgQPjggsu2CR2/vnnx8CBAzNTEAAAAJptAAAAAErChg0bYvHixbF06dIoKCiI7OzsaNGiRdSoUSPTpVEMlixZEsuXL49Vq1ZFRER2dnY0aNAgmjZtmuHKNtJsU3FotgEAACh7qmW6AAAAAICKqEaNGtGiRYto0aJFpkuhBDRt2rTMNNYAAAAApUuzDQAAAABUAitXrowJEyYkPda6devIzs4u5Yr4T1OmTEnYei4iYs6cORmoBgAAgC3RbAMAAAAAlcCUKVOia9euSY+NHj06Dj300NItiE2cfPLJ8c0332S6DAAAAFJQJdMFAAAAAAAAAABAeaHZBgAAAAAAAAAAUqTZBgAAAAAAAAAAUpRVUFBQkOkiAAAAAAAAAACgPLCyDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAwP9r1w4EAAAAAAT5W68wQHEEAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAFPV6ibS1C939gAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "M, R = cal_MR()\n", + "\n", + "plt.figure(dpi=400)\n", + "plt.plot(R / km, M / Msun, \"ro-\", ms=2) # Rule 3\n", + "plt.xlabel(\"Radius [km]\")\n", + "plt.ylabel(\"Mass [Msun]\")\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.15" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/_images/DownloadCompose_5_1.png b/_images/DownloadCompose_5_1.png new file mode 100644 index 0000000..244f4fb Binary files /dev/null and b/_images/DownloadCompose_5_1.png differ diff --git a/_images/UnitConventionForDeveloper_13_0.png b/_images/UnitConventionForDeveloper_13_0.png new file mode 100644 index 0000000..5958e6c Binary files /dev/null and b/_images/UnitConventionForDeveloper_13_0.png differ diff --git a/_images/free_para.png b/_images/free_para.png new file mode 100644 index 0000000..3b27aeb Binary files /dev/null and b/_images/free_para.png differ diff --git a/_images/lagrangian.png b/_images/lagrangian.png new file mode 100644 index 0000000..4936e85 Binary files /dev/null and b/_images/lagrangian.png differ diff --git a/_images/test_EOSgenerators_11_0.png b/_images/test_EOSgenerators_11_0.png new file mode 100644 index 0000000..2f02446 Binary files /dev/null and b/_images/test_EOSgenerators_11_0.png differ diff --git a/_images/test_EOSgenerators_16_0.png b/_images/test_EOSgenerators_16_0.png new file mode 100644 index 0000000..1c688c9 Binary files /dev/null and b/_images/test_EOSgenerators_16_0.png differ diff --git a/_images/test_EOSgenerators_17_0.png b/_images/test_EOSgenerators_17_0.png new file mode 100644 index 0000000..217aa10 Binary files /dev/null and b/_images/test_EOSgenerators_17_0.png differ diff --git a/_images/test_EOSgenerators_28_0.png b/_images/test_EOSgenerators_28_0.png new file mode 100644 index 0000000..3341c5c Binary files /dev/null and b/_images/test_EOSgenerators_28_0.png differ diff --git a/_images/test_EOSgenerators_39_0.png b/_images/test_EOSgenerators_39_0.png new file mode 100644 index 0000000..fa01f68 Binary files /dev/null and b/_images/test_EOSgenerators_39_0.png differ diff --git a/_images/test_EOSgenerators_53_0.png b/_images/test_EOSgenerators_53_0.png new file mode 100644 index 0000000..43c7bb5 Binary files /dev/null and b/_images/test_EOSgenerators_53_0.png differ diff --git a/_images/test_EOSgenerators_55_0.png b/_images/test_EOSgenerators_55_0.png new file mode 100644 index 0000000..b8ef9ae Binary files /dev/null and b/_images/test_EOSgenerators_55_0.png differ diff --git a/_images/test_EOSgenerators_66_0.png b/_images/test_EOSgenerators_66_0.png new file mode 100644 index 0000000..13acd76 Binary files /dev/null and b/_images/test_EOSgenerators_66_0.png differ diff --git a/_images/test_Inference_11_0.png b/_images/test_Inference_11_0.png new file mode 100644 index 0000000..ad4ba2e Binary files /dev/null and b/_images/test_Inference_11_0.png differ diff --git a/_images/test_TOVsolver_1_2.png b/_images/test_TOVsolver_1_2.png new file mode 100644 index 0000000..921dc92 Binary files /dev/null and b/_images/test_TOVsolver_1_2.png differ diff --git a/_images/test_TOVsolver_3_2.png b/_images/test_TOVsolver_3_2.png new file mode 100644 index 0000000..6f23414 Binary files /dev/null and b/_images/test_TOVsolver_3_2.png differ diff --git a/_images/test_TOVsolver_5_1.png b/_images/test_TOVsolver_5_1.png new file mode 100644 index 0000000..f8f0634 Binary files /dev/null and b/_images/test_TOVsolver_5_1.png differ diff --git a/_images/test_TOVsolver_7_1.png b/_images/test_TOVsolver_7_1.png new file mode 100644 index 0000000..5779fe8 Binary files /dev/null and b/_images/test_TOVsolver_7_1.png differ diff --git a/_images/workflow.png b/_images/workflow.png new file mode 100644 index 0000000..1b12216 Binary files /dev/null and b/_images/workflow.png differ diff --git a/_modules/EOSgenerators/RMF_EOS.html b/_modules/EOSgenerators/RMF_EOS.html new file mode 100644 index 0000000..ae4dcf7 --- /dev/null +++ b/_modules/EOSgenerators/RMF_EOS.html @@ -0,0 +1,464 @@ + + + + + + + + EOSgenerators.RMF_EOS — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for EOSgenerators.RMF_EOS

+import numpy as np
+import math
+from scipy import optimize
+c = 3e10
+G = 6.67428e-8
+Msun = 1.989e33
+
+dyncm2_to_MeVfm3 = 1./(1.6022e33)
+gcm3_to_MeVfm3 = 1./(1.7827e12)
+oneoverfm_MeV = 197.33
+
+m_e = 2.5896 * 10**-3
+m_mu = 0.53544
+m_n = 4.7583690772
+m_p = 4.7583690772
+
+J_B = 1/2.
+b_B = 1
+
+m_l = [m_e, m_mu]
+m_b = [m_p, m_n]
+
+Matrix_b = np.array([[1., 1., 1/2., 1., 1., 1.],[1., 0., -1/2., 1., 1., 1.]])
+
+Matrix_l = np.array([[0., -1., 1/2.],[0., -1., 1/2.]])
+
+
+[docs] +def initial_values(rho, theta): + """Outputs the the sigma, omega, rho term and chemical potential of electron and neutron at + given initial density + + Args: + rho (float): given nuclear density + theta (array): paramters of determine a RMF model in lagrangian, here we have 10 parameters. + + Returns: + sigma (float): sigma term in lagrangian + omega (float): omega term in lagrangian + rho_03 (float): rho term in lagrangian + mu_n (float): chemical potential of neutron matter + mu_e (float): chemical potential of electron portion + + """ + m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa, lambda_0, zeta, Lambda_w = theta + + m_e = 2.5896 * 10**-3 + m_mu = 0.53544 + m_n = 4.7583690772 + m_p = 4.7583690772 + + rho_0 = 0.1505 + + sigma = g_sigma*rho/(m_sig**2) + rho_03 = -g_rho*rho/(2.*(m_rho**2)) + omega = rho*((((m_w**2)/g_omega)+\ + (2.*Lambda_w*((g_rho*rho_03)**2)*g_omega))**(-1.)) + m_eff = m_n-(g_sigma*sigma) + mu_n = m_eff + g_omega*omega + g_rho*rho_03*Matrix_b[1, 2] + mu_e = 0.12*m_e*(rho/rho_0)**(2/3.) + + return sigma, omega, rho_03, mu_n, mu_e
+ + + +
+[docs] +def functie(x, args): + """iterate the the sigma, omega, rho term and chemical potential of electron and neutron at + any given density + + Args: + x (array): initial sigma omega rho and chemical potential from initial_values function + args (array): paramters of determine a RMF model in lagrangian, here we have 10 parameters. + + Returns: + sigma (float): sigma term in lagrangian + omega (float): omega term in lagrangian + rho_03 (float): rho term in lagrangian + mu_n (float): chemical potential of neutron matter + mu_e (float): chemical potential of electron portion + + """ + m_sig = args[0] + m_w = args[1] + m_rho = args[2] + g_sigma = args[3] + g_omega = args[4] + g_rho = args[5] + kappa = args[6] + lambda_0 = args[7] + zeta = args[8] + Lambda_w = args[9] + rho = args[10] + + m_e = 2.5896 * 10**-3 + m_mu = 0.53544 + m_n = 4.7583690772 + m_p = 4.7583690772 + + J_B = 1/2. + b_B = 1 + + m_l = np.array([m_e, m_mu]) + m_b = np.array([m_p, m_n]) + + Matrix_b = np.array([[1., 1., 1/2., 1., 1., 1.],[1., 0., -1/2., 1., 1., 1.]]) + + Matrix_l = np.array([[0., -1., 1/2.],[0., -1., 1/2.]]) + + sigma = x[0] + omega=x[1] + rho_03 = x[2] + mu_n = x[3] + mu_e = x[4] + + + rho_B_list = [] + rho_SB_list = [] + q_list = [] + + + m_eff = m_n - (g_sigma*sigma) + #i = 0 + #j = 0 + for i in range(len(Matrix_b)): + #while i < len(Matrix_b): + + mu_b = Matrix_b[i,0]*mu_n - Matrix_b[i, 1]*mu_e + + E_fb = mu_b - g_omega*omega - g_rho*rho_03*Matrix_b[i,2] + + k_fb_sq = E_fb**2 - m_eff**2 + if k_fb_sq < 0: + k_fb_sq = np.clip(k_fb_sq, a_min=0.0, a_max=None) + E_fb = m_eff + + k_fb = math.sqrt(k_fb_sq) + + rho_B = ((2*J_B) + 1)*b_B*k_fb**3 / (6.*math.pi**2) + rho_SB = (m_eff/(2.*math.pi**2))*(E_fb*k_fb - \ + (m_eff**(2))*np.log((E_fb + k_fb)/m_eff)) + + rho_B_list.append(rho_B) + rho_SB_list.append(rho_SB) + + Q_B = ((2.*J_B) + 1.)*Matrix_b[i,1]*k_fb**3 / (6.*math.pi**2) + q_list.append(Q_B) + #i += 1 + + for j in range(len(Matrix_l)): + #while j < len(Matrix_l): + + mu_l = Matrix_l[j,0]*mu_n - Matrix_l[i,1]*mu_e + E_fl = mu_l + + k_fl_sq = E_fl**2 - m_l[j]**2 + k_fl_sq = np.clip(k_fl_sq, a_min = 0.0, a_max = None) + k_fl = math.sqrt(k_fl_sq) + + Q_L = ((2.*J_B) + 1.)*Matrix_l[i,1]*(k_fl**3) / (6.*(math.pi**2)) + q_list.append(Q_L) + + #rho_l = k_fl**3 / (3.*(math.pi**2)) + #rho_list.append(rho_l) + + + f = [(sigma*(m_sig**2)/g_sigma - sum(np.array(rho_SB_list)*Matrix_b[:,3]) + +(kappa*(g_sigma*sigma)**2)/2. + (lambda_0*(g_sigma*sigma)**3)/6.)**2, + + (omega*(m_w**2)/g_omega - sum(np.array(rho_B_list)*Matrix_b[:,4]) + (zeta*(g_omega*omega)**3)/6.\ + +2.*Lambda_w*g_omega*omega*(rho_03*g_rho)**2)**2, + + (rho_03*(m_rho**2)/g_rho - sum(np.array(rho_B_list)*Matrix_b[:,5]*Matrix_b[:,2])+2.*Lambda_w*g_rho*rho_03*(omega*g_omega)**2)**2, + + (rho - sum(rho_B_list))**2, + + (sum(q_list))**2] + + return f
+ + + +
+[docs] +def Energy_density_Pressure(x, rho, theta): + """Generate pressure and energy density two EOS ingredient from given RMF term and given parameters, + + Args: + x (array): An array that consists of the initial values of sigma, omega, rho, and chemical + potential obtained from the initial_values function. + rho (float): The central density from which the computation of the equation of state begins. + theta (array): An array representing the parameters used to determine a RMF model in the + Lagrangian. In this case, the RMF model is defined by 10 parameters. + + + Returns: + energy_density (float): EOS ingredient, energy density in g/cm3 + pressure (float): EOS ingredient, pressure in dyn/cm3 + + """ + sigma, omega, rho_03, mu_n, mu_e = x + + m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa, lambda_0, zeta, Lambda_w = theta + + m_e = 2.5896 * 10**-3 + m_mu = 0.53544 + m_n = 4.7583690772 + m_p = 4.7583690772 + + J_B = 1/2. + b_B = 1 + + m_l = np.array([m_e, m_mu]) + m_b = np.array([m_p, m_n]) + + energy_b = 0 + energy_l = 0 + multi = 0 + + m_eff = m_n - (g_sigma*sigma) + + for i in range(len(Matrix_b)): + mu_b = Matrix_b[i,0]*mu_n - Matrix_b[i, 1]*mu_e + + E_fb = mu_b - g_omega*omega - g_rho*rho_03*Matrix_b[i,2] + + k_fb_sq = E_fb**2 - m_eff**2 + if k_fb_sq < 0: + k_fb_sq = 0.0 + E_fb = m_eff + + k_fb = math.sqrt(k_fb_sq) + + rho_B = ((2.*J_B) + 1.)*b_B*(k_fb**3) / (6.*math.pi**2) + + multi = multi + mu_b*rho_B + energy_baryon = (1/(8.*(math.pi**2)))*(k_fb*(E_fb**3)\ + + (k_fb**3)*E_fb - np.log((k_fb + E_fb)/m_eff)*m_eff**4) + + energy_b = energy_b + energy_baryon + + for j in range(len(Matrix_l)): + + mu_l = Matrix_l[i, 0]*mu_n - Matrix_l[j, 1]*mu_e + + k_fl_sq = mu_l**2 - m_l[j]**2 + if k_fl_sq < 0.0: + k_fl_sq = 0.0 + k_fl = math.sqrt(k_fl_sq) + + rho_l = k_fl**3 / (3.*math.pi**2) + + multi = multi + mu_l*rho_l + energy_lepton = (1/(8.*(math.pi**2)))*(k_fl*(mu_l**3)\ + +mu_l*(k_fl**3)-(m_l[j]**4)*np.log((k_fl+mu_l)/m_l[j])) + + energy_l = energy_l + energy_lepton + + sigma_terms = 0.5*((sigma*m_sig)**2) + (kappa*((g_sigma*sigma)**3))/6.\ + + (lambda_0*((g_sigma*sigma)**4))/24. + + omega_terms = 0.5*((omega*m_w)**2) +(zeta*((g_omega*omega)**4))/8. + + rho_terms = 0.5*((rho_03*m_rho)**2)+ + 3.*Lambda_w*((g_rho*rho_03*g_omega*omega)**2) + + energy_density = energy_b + energy_l + sigma_terms \ + + omega_terms + rho_terms + + Pressure = multi - energy_density + + return energy_density, Pressure
+ + +
+[docs] +def compute_EOS(eps_crust, pres_crust, theta): + """Generate core part equation of state, main function, from RMF model, + + Args: + eps_crust (array): the energy density of crust EoS in MeV/fm3, times a G/c**2 factor + pres_crust (array): the pressure from crust EoS model in MeV/fm3, times a G/c**4 factor + theta (array): An array representing the parameters used to determine a RMF model in the + Lagrangian. In this case, the RMF model is defined by 10 parameters. + + Returns: + energy_density (float): EOS ingredient, energy density in g/cm3 + pressure (float): EOS ingredient, pressure in dyn/cm3 + + """ + dt = 0.05 + rho_0 = 0.1505 + + x_init = np.array(initial_values(0.1*rho_0, theta)) + Energy = [] + Pressure = [] + for i in range(1, 125): + + rho = i*dt*rho_0 + arg = np.append(theta, rho) + sol = optimize.root(functie, x_init ,method='lm',args = arg) + + Re= Energy_density_Pressure(x_init, rho,theta) + + Energy.append(Re[0]*oneoverfm_MeV/gcm3_to_MeVfm3) + Pressure.append(Re[1]*oneoverfm_MeV/dyncm2_to_MeVfm3) + + x_init = sol.x + + Energy = np.array(Energy) + Pressure = np.array(Pressure) + + end = 0 + for i in range(0,len(Energy)-1): + if Energy[i]*G/c**2 > max(eps_crust) and i >18: + end = i+2 + break + end += 1 + ep = Energy[end::] * G/c**2 + pr = Pressure[end::] * G/c**4 + + return ep, pr
+ +
+ +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/_modules/EOSgenerators/crust_EOS.html b/_modules/EOSgenerators/crust_EOS.html new file mode 100644 index 0000000..726b7eb --- /dev/null +++ b/_modules/EOSgenerators/crust_EOS.html @@ -0,0 +1,172 @@ + + + + + + + + EOSgenerators.crust_EOS — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for EOSgenerators.crust_EOS

+import TOVsolver.constant as constant
+from TOVsolver.EoS_import import EOS_import
+import numpy as np
+
+
+[docs] +def PolyInterpolate(eps_crust, pressure_crust): + """Polytrope connecting crust part of equation of state to core part + + Args: + eps_crust (array): the energy density of crust EoS in MeV/fm3, times a G/c**2 factor + pres_crust (array): the pressure from crust EoS model in MeV/fm3, times a G/c**4 factor + + Returns: + eps_combine (float): EOS ingredient, combined crust and inter-crust part energy density in + MeV/fm3, times a G/c**2 factor + pres_combine (float): EOS ingredient, combined crust and inter-crust part pressure in MeV/fm3, + times a G/c**2 factor + + """ + c = constant.c + G = constant.G + + xs_polytro = np.logspace(11.7, 14.28, num=1000, base=10) + ys_polytropic = (4.75764e29 + 9.04238e13 * xs_polytro**(4/3)) * G / c**4 + xs_polytropic = xs_polytro * G / c**2 + + eps_combine = np.append(eps_crust, xs_polytropic) + pres_combine = np.append(pressure_crust, ys_polytropic) + return eps_combine, pres_combine
+ +
+ +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/_modules/EOSgenerators/fastRMF_EoS.html b/_modules/EOSgenerators/fastRMF_EoS.html new file mode 100644 index 0000000..3340c33 --- /dev/null +++ b/_modules/EOSgenerators/fastRMF_EoS.html @@ -0,0 +1,475 @@ + + + + + + + + EOSgenerators.fastRMF_EoS — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for EOSgenerators.fastRMF_EoS

+import numpy as np
+import math
+from matplotlib import pyplot
+from NumbaMinpack import lmdif, hybrd, minpack_sig
+from numba import njit, jit, cfunc
+
+c = 3e10
+G = 6.67428e-8
+Msun = 1.989e33
+
+dyncm2_to_MeVfm3 = 1./(1.6022e33)
+gcm3_to_MeVfm3 = 1./(1.7827e12)
+oneoverfm_MeV = 197.33
+
+m_e = 2.5896 * 10**-3
+m_mu = 0.53544
+m_n = 4.7583690772
+m_p = 4.7583690772
+
+J_B = 1/2.
+b_B = 1
+
+m_l = [m_e, m_mu]
+m_b = [m_p, m_n]
+
+Matrix_b = np.array([[1., 1., 1/2., 1., 1., 1.],[1., 0., -1/2., 1., 1., 1.]])
+
+Matrix_l = np.array([[0., -1., 1/2.],[0., -1., 1/2.]])
+
+# defining the function to optimize with numba-minpack
+
+@cfunc(minpack_sig)
+def myfunc(x, fvec, args):
+    """iterate the the sigma, omega, rho term and chemical potential of electron and neutron at 
+    any given density(fast version)
+    
+    Args:
+        x (array): initial sigma omega rho and chemical potential from initial_values function
+        fvec (array): iterated sigma sigma omega rho and chemical potential for output.
+        args (array): paramters of determine a RMF model in lagrangian, here we have 10 parameters.
+
+    Returns:
+        sigma (float): sigma term in lagrangian
+        omega (float): omega term in lagrangian
+        rho_03 (float): rho term in lagrangian
+        mu_n (float): chemical potential of neutron matter
+        mu_e (float): chemical potential of electron portion
+        
+    """
+    m_sig = args[0]
+    m_w = args[1]
+    m_rho = args[2]
+    g_sigma = args[3]
+    g_omega = args[4]
+    g_rho = args[5]
+    kappa = args[6]
+    lambda_0 = args[7]
+    zeta = args[8]
+    Lambda_w = args[9]
+    rho = args[10]
+
+    m_e = 2.5896 * 10**-3
+    m_mu = 0.53544
+    m_n = 4.7583690772
+    m_p = 4.7583690772
+
+    J_B = 1/2.
+    b_B = 1
+
+    m_l = np.array([m_e, m_mu])
+    m_b = np.array([m_p, m_n])
+
+    Matrix_b = np.array([[1., 1., 1/2., 1., 1., 1.],[1., 0., -1/2., 1., 1., 1.]])
+
+    Matrix_l = np.array([[0., -1., 1/2.],[0., -1., 1/2.]])
+    
+    sigma = x[0]
+    omega=x[1]
+    rho_03 = x[2]
+    mu_n = x[3]
+    mu_e = x[4]
+
+    rho_B_list = []
+    rho_SB_list = []
+    q_list = []
+    
+    m_eff = m_n - (g_sigma*sigma)
+
+    for i in range(len(Matrix_b)):    
+        mu_b = Matrix_b[i,0] * mu_n - Matrix_b[i, 1] * mu_e
+        
+        E_fb = mu_b - g_omega * omega - g_rho * rho_03 * Matrix_b[i,2]
+        
+        k_fb_sq = E_fb**2 - m_eff**2
+        if k_fb_sq < 0:
+            k_fb_sq = 0.0
+            E_fb = m_eff
+        
+        k_fb = math.sqrt(k_fb_sq)
+        
+        rho_B = ((2*J_B) + 1)*b_B*k_fb**3 / (6.*math.pi**2)
+        rho_SB = (m_eff/(2.*math.pi**2))*(E_fb*k_fb - \
+        (m_eff**(2))*np.log((E_fb + k_fb)/m_eff))
+        
+        rho_B_list.append(rho_B)
+        rho_SB_list.append(rho_SB)
+        
+        Q_B = ((2.*J_B) + 1.)*Matrix_b[i,1]*k_fb**3 / (6.*math.pi**2)
+        q_list.append(Q_B)
+        
+    for j in range(len(Matrix_l)):        
+        mu_l = Matrix_l[j,0]*mu_n - Matrix_l[i,1]*mu_e
+        E_fl = mu_l
+        
+        k_fl_sq = E_fl**2 - m_l[j]**2
+        
+        if k_fl_sq < 0.0:
+            k_fl_sq = 0.0
+    
+        k_fl = math.sqrt(k_fl_sq)
+        
+        Q_L = ((2.*J_B) + 1.)*Matrix_l[i,1]*(k_fl**3) / (6.*(math.pi**2))
+        q_list.append(Q_L)
+        
+    sum1 = 0.0
+    sum2 = 0.0
+    sum3 = 0.0
+    sum4 = 0.0
+    sum5 = 0.0
+    for i in range(len(rho_SB_list)):
+        sum1 = sum1 + rho_SB_list[i] * Matrix_b[:,3][i]
+    for i in range(len(rho_B_list)):
+        sum2 = sum2 + rho_B_list[i] * Matrix_b[:,4][i]
+    for i in range(len(rho_B_list)):
+        sum3 = sum3 + rho_B_list[i] * Matrix_b[:,5][i] * Matrix_b[:,2][i]
+    for i in range(len(rho_B_list)):
+        sum4 = sum4 + rho_B_list[i]
+    for i in range(len(q_list)):
+        sum5 = sum5 + q_list[i]
+
+    fvec[0] = (sigma*(m_sig**2)/g_sigma - sum1 +(kappa*(g_sigma*sigma)**2)/2.\
+              + (lambda_0*(g_sigma*sigma)**3)/6.)**2
+    fvec[1] = (omega*(m_w**2)/g_omega - sum2 + (zeta*(g_omega*omega)**3)/6.\
+              + 2.*Lambda_w*g_omega*omega*(rho_03*g_rho)**2)**2
+    fvec[2] = (rho_03*(m_rho**2)/g_rho - sum3 + 2.*Lambda_w*g_rho*rho_03*(omega*g_omega)**2)**2
+    
+    fvec[3] = (rho - sum4)**2
+    fvec[4] = sum5**2
+
+    
+funcptr = myfunc.address # address in memory to myfunc
+
+# defining the initial values and E-P functions with numba
+
+[docs] +@jit +def initial_values(rho, theta): + """Outputs the the sigma, omega, rho term and chemical potential of electron and neutron at + given initial density (fast version) + + Args: + rho (float): given nuclear density + theta (array): paramters of determine a RMF model in lagrangian, here we have 10 parameters. + + Returns: + sigma (float): sigma term in lagrangian + omega (float): omega term in lagrangian + rho_03 (float): rho term in lagrangian + mu_n (float): chemical potential of neutron matter + mu_e (float): chemical potential of electron portion + """ + m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa, lambda_0, zeta, Lambda_w = theta + + m_e = 2.5896 * 10**-3 + m_mu = 0.53544 + m_n = 4.7583690772 + m_p = 4.7583690772 + + rho_0 = 0.1505 + + sigma = g_sigma*rho/(m_sig**2) + rho_03 = -g_rho*rho/(2.*(m_rho**2)) + omega = rho*((((m_w**2)/g_omega)+\ + (2.*Lambda_w*((g_rho*rho_03)**2)*g_omega))**(-1.)) + m_eff = m_n-(g_sigma*sigma) + mu_n = m_eff + g_omega*omega + g_rho*rho_03*Matrix_b[1, 2] + mu_e = 0.12*m_e*(rho/rho_0)**(2/3.) + + return sigma, omega, rho_03, mu_n, mu_e
+ + +
+[docs] +@njit +def Energy_density_Pressure(x, rho, theta): + """Generate pressure and energy density two EOS ingredient from given RMF term and given parameters, + (fast version) + + Args: + x (array): An array that consists of the initial values of sigma, omega, rho, and chemical + potential obtained from the initial_values function. + rho (float): The central density from which the computation of the equation of state begins. + theta (array): An array representing the parameters used to determine a RMF model in the + Lagrangian. In this case, the RMF model is defined by 10 parameters. + + + Returns: + energy_density (float): EOS ingredient, energy density in g/cm3 + pressure (float): EOS ingredient, pressure in dyn/cm3 + """ + sigma, omega, rho_03, mu_n, mu_e = x + + m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa, lambda_0, zeta, Lambda_w = theta + + m_e = 2.5896 * 10**-3 + m_mu = 0.53544 + m_n = 4.7583690772 + m_p = 4.7583690772 + + J_B = 1/2. + b_B = 1 + + m_l = np.array([m_e, m_mu]) + m_b = np.array([m_p, m_n]) + + energy_b = 0 + energy_l = 0 + multi = 0 + + m_eff = m_n - (g_sigma*sigma) + + for i in range(len(Matrix_b)): + mu_b = Matrix_b[i,0]*mu_n - Matrix_b[i, 1]*mu_e + + E_fb = mu_b - g_omega*omega - g_rho*rho_03*Matrix_b[i,2] + + k_fb_sq = E_fb**2 - m_eff**2 + if k_fb_sq < 0: + k_fb_sq = 0.0 + E_fb = m_eff + + k_fb = math.sqrt(k_fb_sq) + + rho_B = ((2.*J_B) + 1.)*b_B*(k_fb**3) / (6.*math.pi**2) + + multi = multi + mu_b*rho_B + energy_baryon = (1/(8.*(math.pi**2)))*(k_fb*(E_fb**3)\ + + (k_fb**3)*E_fb - np.log((k_fb + E_fb)/m_eff)*m_eff**4) + + energy_b = energy_b + energy_baryon + + for j in range(len(Matrix_l)): + + mu_l = Matrix_l[i, 0]*mu_n - Matrix_l[j, 1]*mu_e + + k_fl_sq = mu_l**2 - m_l[j]**2 + if k_fl_sq < 0.0: + k_fl_sq = 0.0 + k_fl = math.sqrt(k_fl_sq) + + rho_l = k_fl**3 / (3.*math.pi**2) + + multi = multi + mu_l*rho_l + energy_lepton = (1/(8.*(math.pi**2)))*(k_fl*(mu_l**3)\ + +mu_l*(k_fl**3)-(m_l[j]**4)*np.log((k_fl+mu_l)/m_l[j])) + + energy_l = energy_l + energy_lepton + + sigma_terms = 0.5*((sigma*m_sig)**2) + (kappa*((g_sigma*sigma)**3))/6.\ + + (lambda_0*((g_sigma*sigma)**4))/24. + + omega_terms = 0.5*((omega*m_w)**2) +(zeta*((g_omega*omega)**4))/8. + + rho_terms = 0.5*((rho_03*m_rho)**2)+ + 3.*Lambda_w*((g_rho*rho_03*g_omega*omega)**2) + + energy_density = energy_b + energy_l + sigma_terms \ + + omega_terms + rho_terms + + Pressure = multi - energy_density + + return energy_density, Pressure
+ + +# define a function that computes the EoS + +
+[docs] +@njit +def compute_EOS(eps_crust, pres_crust, theta): + """Generate core part equation of state, main function, from RMF model (fast version) + + Args: + eps_crust (array): the energy density of crust EoS in MeV/fm3, times a G/c**2 factor + pres_crust (array): the pressure from crust EoS model in MeV/fm3, times a G/c**4 factor + theta (array): An array representing the parameters used to determine a RMF model in the + Lagrangian. In this case, the RMF model is defined by 10 parameters. + + Returns: + energy_density (float): EOS ingredient, energy density in g/cm3 + pressure (float): EOS ingredient, pressure in dyn/cm3 + + """ + dt = 0.05 + rho_0 = 0.1505 + + x_init = np.array(initial_values(0.1*rho_0, theta)) + Energy = [] + Pressure = [] + for i in range(1, 125): + + rho = i*dt*rho_0 + args = np.append(theta, rho) + xsol, fvec, success, info = lmdif(funcptr, x_init, 5, args) + Re = Energy_density_Pressure(x_init, rho, theta) + + Energy.append(Re[0]*oneoverfm_MeV/gcm3_to_MeVfm3) + Pressure.append(Re[1]*oneoverfm_MeV/dyncm2_to_MeVfm3) + + x_init = xsol + Energy = np.array(Energy) + Pressure = np.array(Pressure) + + end = 0 + for i in range(0,len(Energy)-1): + if Energy[i]*G/c**2 > max(eps_crust) and i >18: + end = i+2 + break + end += 1 + ep = Energy[end::] * G/c**2 + pr = Pressure[end::] * G/c**4 + + return ep, pr
+ + +
+ +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/_modules/InferenceWorkflow/BayesianSampler.html b/_modules/InferenceWorkflow/BayesianSampler.html new file mode 100644 index 0000000..c05f2ef --- /dev/null +++ b/_modules/InferenceWorkflow/BayesianSampler.html @@ -0,0 +1,214 @@ + + + + + + + + InferenceWorkflow.BayesianSampler — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + + +
  • +
  • +
+
+
+
+
+ +

Source code for InferenceWorkflow.BayesianSampler

+import ultranest
+import ultranest.stepsampler
+
+
+[docs] +def UltranestSampler(parameters,likelihood,prior,step,live_points,max_calls): + """UltraNest based nested sampler by given likelihood prior, and parameters. + + Args: + parameters (array): parameters array that want to be constrained. + likelihood (array): theta as input. likelihood function defined by user. + prior (array): cube as input, prior function defined by user. please check our test_inference.ipynb + to check how to define likelihood and prior. + step (int): as a step sampler, define this inference want to devided to how many steps. + live_points (int): define how many live points will be used to explore the whole + parameters space. + max_ncalls (int): define after how many steps the sampler will stop work. + + Returns: + flat_samples (array): equal weighted samples of whole posteior parameter space, + this run will generate a dirctory as 'output', please check the run# folder, and the + chain dirctory, there is a 'equal_weighted_samples' file, that is same with flat_samples here. + It will be easier to check if you are using clusters to do this inference. + + """ + sampler = ultranest.ReactiveNestedSampler(parameters, likelihood, prior,log_dir='output') + sampler.stepsampler = ultranest.stepsampler.SliceSampler( + nsteps=step, + generate_direction=ultranest.stepsampler.generate_mixture_random_direction, + # adaptive_nsteps=False, + # max_nsteps=400 + ) + + result = sampler.run(min_num_live_points=live_points,max_ncalls= max_calls) + flat_samples = sampler.results['samples'] + return flat_samples
+ + +
+[docs] +def UltranestSamplerResume(parameters,likelihood,prior,nsteps,live_points,max_calls): + """UltraNest based nested sampler by given likelihood prior, and parameters. (resume true verion + could restart you run from your previous stopped results) + + Args: + parameters (array): parameters array that want to be constrained. + likelihood (array): theta as input. likelihood function defined by user. + prior (array): cube as input, prior function defined by user. please check our test_inference.ipynb + to check how to define likelihood and prior. + step (int): as a step sampler, define this inference want to devided to how many steps. + live_points (int): define how many live points will be used to explore the whole + parameters space. + max_ncalls (int): define after how many steps the sampler will stop work. + + Returns: + flat_samples (array): equal weighted samples of whole posteior parameter space, + this run will generate a dirctory as 'output', please check the run# folder, and the + chain dirctory, there is a 'equal_weighted_samples' file, that is same with flat_samples here. + It will be easier to check if you are using clusters to do this inference. + + """ + sampler = ultranest.ReactiveNestedSampler(parameters, likelihood, prior,log_dir='output',resume=True) + sampler.stepsampler = ultranest.stepsampler.SliceSampler( + nsteps=nsteps, + generate_direction=ultranest.stepsampler.generate_mixture_random_direction, + # adaptive_nsteps=False, + # max_nsteps=400 + ) + + result = sampler.run(min_num_live_points=live_points,max_ncalls=max_calls) + flat_samples = sampler.results['samples'] + return flat_samples
+ +
+ +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/_modules/InferenceWorkflow/Likelihood.html b/_modules/InferenceWorkflow/Likelihood.html new file mode 100644 index 0000000..1b5b935 --- /dev/null +++ b/_modules/InferenceWorkflow/Likelihood.html @@ -0,0 +1,463 @@ + + + + + + + + InferenceWorkflow.Likelihood — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for InferenceWorkflow.Likelihood

+import TOVsolver.constant as constant
+import TOVsolver.solver_code as TOV_solver
+import TOVsolver.EoS_import as EoS_import
+import EOSgenerators.crust_EOS as crust
+import EOSgenerators.RMF_EOS as RMF
+import TOVsolver.main as main
+from scipy import interpolate
+
+import numpy as np
+import math
+
+oneoverfm_MeV = constant.oneoverfm_MeV
+c = constant.c
+G = constant.G
+
+
+[docs] +def MRlikihood_kernel(eps_total,pres_total,x,d1): + """Computing likelihood from a distribution of MR measurement + + Args: + eps_total (array): the energy density of full EoS in MeV/fm3, times a G/c**2 factor + pres_total (array): the pressure from full EoS model in MeV/fm3, times a G/c**4 factor + x (kde.kernel): the distribution kernel of MR measurement. + d1 (float): the sampled density of this measurement + + Returns: + likelihood (float): likelihood feed back for this given paramter set-up. + + """ + kernel = x + + if d1 ==0 : + likelihood = -1e101 + else: + if all(x<y for x,y in zip(eps_total[:], eps_total[1:])) and all(x<y for x, y in zip(pres_total[:], pres_total[1:])): + MR = main.OutputMRpoint(d1,eps_total,eps_total).T + if len(MR[0]) == False: + likelihood = -1e101 + else: + likelihood = np.log(kernel.evaluate((MR[0], MR[1]))) + if likelihood <= -1e101: + return -1e101 + else: + return likelihood
+ + +
+[docs] +def TidalLikihood_kernel(eps_total,pres_total,x,d1): + """Computing likelihood from a distribution of Gravitational wave measurement + + Args: + eps_total (array): the energy density of full EoS in MeV/fm3, times a G/c**2 factor + pres_total (array): the pressure from full EoS model in MeV/fm3, times a G/c**4 factor + x (kde.kernel): containing kernelGW and chirp, kernelGW is the distribution kde.kernel + sampled from full GW measurement, in [chrip mass, M2/M1, tidal of M1, tidal of M2] sequence. + chrip mass is the sampling from chrip mass term in GW events solely. + d1 (float): the sampled density of this measurement + + Returns: + likelihood (float): likelihood feed back for this given paramter set-up. + + """ + kernelGW,chrip = x + + if d1 ==0 : + likelihood = -1e101 + else: + if all(x<y for x,y in zip(eps_total[:], eps_total[1:])) and all(x<y for x, y in zip(pres_total[:], pres_total[1:])): + MRT = main.OutputMRTpoint(d1,eps_total,eps_total).T + M1 = TOV_solver.m1_from_mc_m2(chrip_mass, MRT[1][0]) + Tidal_line = main.OutputMRT('',eps_total,eps_total).T + if len(MRT[0]) == False or len(Tidal_line[0]) == False: + likelihood = -1e101 + else: + chrip_mass = chrip.resample(1) + MTspline = interpolate.interp1d(Tidal_line[1],Tidal_line[2], k=1, s=0) + point = np.array([[chrip_mass], [MRT[1][0]/ M1],[MTspline(M1)], [MRT[2][0]]]) + likelihood = np.log(kernelGW.evaluate(point)) + if likelihood <= -1e101: + return -1e101 + else: + return likelihood
+ + +
+[docs] +def MRlikihood_Gaussian(eps_total,pres_total,x,d1): + """Computing likelihood from a simulation gaussian distribution of MR measurement + + Args: + eps_total (array): the energy density of full EoS in MeV/fm3, times a G/c**2 factor + pres_total (array): the pressure from full EoS model in MeV/fm3, times a G/c**4 factor + x (float array): [Mvalue, Rvalue, Mwidth, Rwidth], Mvalue is the Mass center value of this + simulated measurement, Rvalue is the Radius center of it, Mwidth is the 1-sigma width of + this Mass measurement, Rwidth is the 1-sigma width of this radius measurement. + d1 (float): the sampled density of this measurement + + Returns: + likelihood (float): likelihood feed back for this given paramter set-up. + + """ + + Mvalue, Rvalue, Mwidth,Rwidth = x + + sigma_x = Rwidth + sigma_y = Mwidth + + if d1 ==0 : + likelihood = -1e101 + else: + if all(x<y for x,y in zip(eps_total[:], eps_total[1:])) and all(x<y for x, y in zip(pres_total[:], pres_total[1:])): + MR = main.OutputMRpoint(d1,eps_total,eps_total).T + if len(MR[0]) == False: + likelihood = -1e101 + else: + fx = 1/(sigma_x*sigma_y*(np.sqrt(2*np.pi))**2)*np.exp(-np.power(MR[0][0]-Rvalue, 2.)/(2*np.power(sigma_x,2.))-np.power(MR[1][0]-Mvalue, 2.)/(2*np.power(sigma_y,2.))) + likelihood = np.log(fx) + if likelihood <= -1e101: + return -1e101 + else: + return likelihood
+ + +
+[docs] +def Masslikihood_Gaussian(eps_total,pres_total,x,d1): + """Computing likelihood from a simulation gaussian distribution of Mass measurement + + Args: + eps_total (array): the energy density of full EoS in MeV/fm3, times a G/c**2 factor + pres_total (array): the pressure from full EoS model in MeV/fm3, times a G/c**4 factor + x (float array): [Mvalue, Mwidth], Mvalue is the Mass center value of this + simulated measurement, Mwidth is the 1-sigma width of this Mass measurement. + d1 (float): the sampled density of this measurement + + Returns: + likelihood (float): likelihood feed back for this given paramter set-up. + + """ + Mvalue, Mwidth = x + + sigma_y = Mwidth + + if d1 ==0 : + likelihood = -1e101 + else: + if all(x<y for x,y in zip(eps_total[:], eps_total[1:])) and all(x<y for x, y in zip(pres_total[:], pres_total[1:])): + MR = main.OutputMRpoint(d1,eps_total,eps_total).T + if len(MR[0]) == False: + likelihood = -1e101 + else: + if MR[0][1]>= Mvalue: + likelihood = 0 + else: + fx = 1/(sigma_y*(np.sqrt(2*np.pi))**2)*np.exp(-np.power(MR[1][0]-Mvalue, 2.)/(2*np.power(sigma_y,2.))) + likelihood = np.log(fx) + if likelihood <= -1e101: + return -1e101 + else: + return likelihood
+ + + +
+[docs] +def Kliklihood(theta,K_low,K_up): + """Computing likelihood from a hard cut constraint of K. + + Args: + + theta (array): An array representing the parameters used to determine a RMF model in the + Lagrangian. In this case, the RMF model is defined by 7 parameters. + K_low (float): lower bound of this K constraint. + K_up (float): upper bound of this K constraint. + + Returns: + likelihood (float): likelihood feed back for this given paramter set-up. + + """ + g_sigma, g_omega,g_rho, kappa, lambda_0, zeta, lambda_w = theta + + m_sig = 495 / oneoverfm_MeV + m_w = 3.96544 + m_rho = 3.86662 + + m_b = 939 + E_per =-16.28 + m_sig =495/oneoverfm_MeV + m_eff = (0.55+np.random.random_sample()*0.1)*m_b + kappa_one = kappa*oneoverfm_MeV + m_sig_one = m_sig*oneoverfm_MeV + m_w_one = m_w*oneoverfm_MeV + rho = 0.1505* (197.33**3 ) + k_f = (0.5*3.*rho*math.pi**2)**(1/3.) + E_f = (k_f**2 + m_eff**2)**(1/2) + + g_w_omega = E_per - E_f + m_b + sigma = m_b - m_eff + m_sig_star_sqr_g_sig_sqr = (m_sig_one**2/g_sigma**2)+ (kappa_one*sigma) + 0.5*lambda_0*sigma**2 + m_w_star_sqr = m_w_one**2 + 0.5*zeta*(g_omega**2)*(g_w_omega**2) + # Components o f rho_s_prime + term1 = k_f/E_f + term2 = E_f**2 + (2*m_eff**2) + term3 = 3*m_eff**2 + term4 = np.log((k_f+E_f)/m_eff) + rho_s_prime = (1/math.pi**2)*(term1*term2 - term3*term4) + dM_drho = -(m_eff/E_f)*(1./(m_sig_star_sqr_g_sig_sqr+rho_s_prime)) + M_Ef = m_eff/E_f + dEf_drho = math.pi**2/(2*k_f*E_f) + dW0_drho = g_omega**2/m_w_star_sqr + + K = 9.*rho*(dEf_drho+dW0_drho+(M_Ef*dM_drho)) + center = (K_low + K_up)/2 + width = (K_up - K_low)/2 + p_K = -0.5*abs( center - K)**10./width**10. + return p_K
+ + +
+[docs] +def Jliklihood(theta,J_low,J_up): + """Computing likelihood from a hard cut constraint of J. + + Args: + + theta (array): An array representing the parameters used to determine a RMF model in the + Lagrangian. In this case, the RMF model is defined by 7 parameters. + K_low (float): lower bound of this J constraint. + K_up (float): upper bound of this J constraint. + + Returns: + likelihood (float): likelihood feed back for this given paramter set-up. + + """ + g_sigma, g_omega,g_rho, kappa, lambda_0, zeta, Lambda_w = theta + + m_sig = 495 / oneoverfm_MeV + m_w = 3.96544 + m_rho = 3.86662 + + m_b = 939 + E_per =-16.28 + m_sig =495/oneoverfm_MeV + m_eff = (0.55+np.random.random_sample()*0.1)*m_b + kappa_one = kappa*oneoverfm_MeV + m_sig_one = m_sig*oneoverfm_MeV + m_w_one = m_w*oneoverfm_MeV + rho = 0.1505* (197.33**3 ) + k_f = (0.5*3.*rho*math.pi**2)**(1/3.) + E_f = (k_f**2 + m_eff**2)**(1/2) + g_w_omega = E_per - E_f + m_b + J_0 = k_f**2/(6*E_f) + J_1 = (1/8.)*(rho*g_rho**2)/(m_rho**2+(2*Lambda_w*(g_w_omega**2)*g_rho**2)) + J = J_0 + J_1 + + center = (J_low + J_up)/2 + width = (J_up - J_low)/2 + p_J = -0.5*abs( center - J)**10./width**10. + return p_J
+ + +
+[docs] +def Lliklihood(theta,L_low,L_up): + """Computing likelihood from a hard cut constraint of L. + + Args: + + theta (array): An array representing the parameters used to determine a RMF model in the + Lagrangian. In this case, the RMF model is defined by 7 parameters. + K_low (float): lower bound of this L constraint. + K_up (float): upper bound of this L constraint. + + Returns: + likelihood (float): likelihood feed back for this given paramter set-up. + + """ + g_sigma, g_omega,g_rho, kappa, lambda_0, zeta, Lambda_w = theta + + m_sig = 495 / oneoverfm_MeV + m_w = 3.96544 + m_rho = 3.86662 + + m_b = 939 + E_per =-16.28 + m_sig =495/oneoverfm_MeV + m_eff = (0.55+np.random.random_sample()*0.1)*m_b + kappa_one = kappa*oneoverfm_MeV + m_sig_one = m_sig*oneoverfm_MeV + m_w_one = m_w*oneoverfm_MeV + rho = 0.1505* (197.33**3 ) + k_f = (0.5*3.*rho*math.pi**2)**(1/3.) + E_f = (k_f**2 + m_eff**2)**(1/2) + J_0 = k_f**2/(6*E_f) + J_1 = (1/8.)*(rho*g_rho**2)/(m_rho**2+(2*Lambda_w*(g_w_omega**2)*g_rho**2)) + J= J_0 + J_1 + g_w_omega = E_per - E_f + m_b + m_star_sqr_E_f_sqr = m_eff**2/E_f**2 + rho_m_star = 3*rho/m_eff + sigma = m_b - m_eff + m_sig_star_sqr_g_sig_sqr = (m_sig**2/g_sigma**2)+\ + (kappa*sigma) + 0.5*lambda_0*sigma**2 + + # Components o f rho_s_prime + term1 = k_f/E_f + term2 = E_f**2 + (2*m_eff**2) + term3 = 3*m_eff**2 + term4 = np.log((k_f+E_f)/m_eff) + rho_s_prime = (1/math.pi**2)*(term1*term2 - term3*term4) + dM_drho = -(m_eff/E_f)*(1./(m_sig_star_sqr_g_sig_sqr+rho_s_prime)) + m_w_star_sqr = m_w**2 + 0.5*zeta*(g_omega**2)*(g_w_omega**2) + L_0 = J_0*(1+(m_star_sqr_E_f_sqr*(1. -(rho_m_star*dM_drho)))) + L_1 = 3.*J_1*(1.- 32.*(g_omega**2/m_w_star_sqr)*g_w_omega*Lambda_w*J_1) + L= L_0 + L_1 + + center = (L_low + L_up)/2 + width = (L_up - L_low)/2 + p_L = -0.5*abs( center - J)**10./width**10. + return p_L
+ +
+ +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/_modules/InferenceWorkflow/prior.html b/_modules/InferenceWorkflow/prior.html new file mode 100644 index 0000000..b25ea1f --- /dev/null +++ b/_modules/InferenceWorkflow/prior.html @@ -0,0 +1,181 @@ + + + + + + + + InferenceWorkflow.prior — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for InferenceWorkflow.prior

+import scipy.stats
+
+
+[docs] +def normal_Prior(center,width,random): + """Generate a normal prior distribution for a given parameter, + + Args: + center (float): center value of this gaussian distribution. + width (float): width of this gaussian distribution, this is the 1-sigma width. + random (float): random number generated to do inference, this is follow the + definition of baysian workflow of UltraNest, here default to be cube[i] + + Returns: + ppf (float): ppf of this distribution function + + """ + return scipy.stats.norm(center, width).ppf(random)
+ + +
+[docs] +def flat_prior(low, up,random): + """Generate a flat prior distribution for a given parameter, + + Args: + low (float): lower bound of this flat distribution. + up (float): upper bound of this flat distribution. + random (float): random number generated to do inference, this is follow the + definition of baysian workflow of UltraNest, here default to be cube[i] + + Returns: + ppf (float): ppf of this distribution function + + """ + return low + (up - low) * random
+ + + + +
+ +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/_modules/TOVsolver/EoS_import.html b/_modules/TOVsolver/EoS_import.html new file mode 100644 index 0000000..3ab2c72 --- /dev/null +++ b/_modules/TOVsolver/EoS_import.html @@ -0,0 +1,245 @@ + + + + + + + + TOVsolver.EoS_import — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for TOVsolver.EoS_import

+import csv
+import numpy as np
+import sys
+
+
+[docs] +def EOS_import(file_name = "", density = 0, pressure = 0): + + """EOS_import + + Imports density and pressure from csv or array, checks them, and returns them. + + Args: + file_name (string, optional): string. CSV file to be opened. + density (array, optional): numpy 1Darray. Passed into a check function and returned if valid. + pressure (array, optional): numpy 1Darray. Passed into a check function and returned if valid. + + Returns: + array: checked density and pressure. + """ + + if not file_name: + density_checked, pressure_checked = EOS_check(density, pressure) + return density_checked, pressure_checked + + input_file = file_name + + density, pressure = file_read(input_file) + + density_checked, pressure_checked = EOS_check(density, pressure) + + return density, pressure
+ + +
+[docs] +def file_read(input_file): + """file_read + + Reads a csv file of denisty and pressure given by the user. + + Args: + input_file (string): string. File to be opened and parsed. + + Returns: + array: two 1Darray numpy arrays, one corresponding to density and one corresponding to pressrure. + """ + + data_list = [] + density_list = [] + pressure_list = [] + with open(input_file) as csvfile: + file_read = csv.reader(csvfile, delimiter=',') + data_list = [row for row in file_read] + for row in data_list: + density_list.append(float(row[0])) + pressure_list.append(float(row[1])) + + # Make the lists numpy arrays + density_array = np.array(density_list) + pressure_array = np.array(pressure_list) + + return density_array, pressure_array
+ + +
+[docs] +def EOS_check(density, pressure): + + """file_read + + Checks that the derivative (drho/dp) is positive. + + Args: + density (array): numpy 1Darray. Density array to be checked. + pressure (array): numpy 1Darray. Pressure array to be checked. + + Returns: + array: two arrays, one corresponding to density and one corresponding to pressure or ends the function and prints + invalid equation of state. + """ + + dp = np.diff(pressure) # dy + drho = np.diff(density) # dx + + for value in drho: + if value == 0: + print("This is not a valid equation of state, 0") + sys.exit() + + dpdrho = dp/drho # dydx + + for value in dpdrho: + if value >= 0: + #print("This is a valid equation of state") + pass + else: + print("This is not a valid equation of state") + sys.exit() + + + + return density, pressure
+ +
+ +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/_modules/TOVsolver/main.html b/_modules/TOVsolver/main.html new file mode 100644 index 0000000..6b2a2d6 --- /dev/null +++ b/_modules/TOVsolver/main.html @@ -0,0 +1,356 @@ + + + + + + + + TOVsolver.main — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for TOVsolver.main

+# Python packages
+import numpy as np
+import math
+from scipy.interpolate import UnivariateSpline
+from scipy.constants import pi
+from scipy.integrate import odeint, ode
+from matplotlib import pyplot
+from scipy import optimize
+from itertools import repeat
+import csv
+
+
+# Import files
+import TOVsolver.solver_code as TOV_solver
+import TOVsolver.EoS_import as EoS_import
+import TOVsolver.speed_of_sound as speed_of_sound
+
+# Global Variables
+
+[docs] +def OutputMR(input_file='',density=[],pressure=[]): + + """Outputs the mass, radius, and tidal deformability + Args: + file_name (string, optional): string. CSV file to be opened. + density (array, optional): numpy 1Darray. Passed into a check function and returned if valid. + pressure (array, optional): numpy 1Darray. Passed into a check function and returned if valid. + + Returns: + MR (tuple): tuple with mass, radius. + """ + + c = 3e10 + G = 6.67428e-8 + Msun = 1.989e33 + + dyncm2_to_MeVfm3 = 1./(1.6022e33) + gcm3_to_MeVfm3 = 1./(1.7827e12) + oneoverfm_MeV = 197.33 + #############This is something we need to change, like the input for this EOS import should + ############# be one file contatining Whole EOS. that first column is density and second is pressure + energy_density, pressure = EoS_import.EOS_import(input_file,density,pressure) + ############# Lets the user only input the EOS file path, then this EOS_import should have file + ############# as input. and the outputMR should have a file as input too? + + Radius = [] + Mass = [] + + density = np.logspace(14.3, 15.6, 50) +#This following step is to make a dicision whether the EOS ingredients is always increase. We can do that outsie of this main to the +#EOS import. +#if all(x<y for x, y in zip(eps_total_poly[:], eps_total_poly[[1:])) and all(x<y for x, y in zip(pres_total_poly[j][:], pres_total_poly[j][1:])): + for i in range(len(density)): + try: + Radius.append(TOV_solver.solveTOV(density[i], energy_density, pressure)[1]) + Mass.append(TOV_solver.solveTOV(density[i], energy_density, pressure)[0]) + #This is sentense is for avoiding the outflow of the result, like when solveTOV blow up because of ill EOS, we need to stop + except OverflowError as e: + #print("This EOS is ill-defined to reach an infinity result, that is not phyiscal, No Mass radius will be generated.") + break + MR = np.vstack((Radius, Mass)).T + #print("Mass Radius file will be generated and stored as 2-d array. The first column is Radius, second one is mass") + + return MR
+ + +
+[docs] +def OutputMRT(input_file='',density=[],pressure=[]): + + """Outputs the mass, radius, and tidal deformability + Args: + file_name (string, optional): string. CSV file to be opened. + density (array, optional): numpy 1Darray. Passed into a check function and returned if valid. + pressure (array, optional): numpy 1Darray. Passed into a check function and returned if valid. + + Returns: + MRT (tuple): tuple with mass, radius, and tidal deformability. + """ + + c = 3e10 + G = 6.67428e-8 + Msun = 1.989e33 + + dyncm2_to_MeVfm3 = 1./(1.6022e33) + gcm3_to_MeVfm3 = 1./(1.7827e12) + oneoverfm_MeV = 197.33 + #############This is something we need to change, like the input for this EOS import should + ############# be one file contatining Whole EOS. that first column is density and second is pressure + energy_density, pressure = EoS_import.EOS_import(input_file,density,pressure) + ############# Lets the user only input the EOS file path, then this EOS_import should have file + ############# as input. and the outputMR should have a file as input too? + + Radius = [] + Mass = [] + tidal = [] + density = np.logspace(14.3, 15.6, 50) +#This following step is to make a dicision whether the EOS ingredients is always increase. We can do that outsie of this main to the +#EOS import. +#if all(x<y for x, y in zip(eps_total_poly[:], eps_total_poly[[1:])) and all(x<y for x, y in zip(pres_total_poly[j][:], pres_total_poly[j][1:])): + for i in range(len(density)): + try: + Radius.append(TOV_solver.solveTOV_tidal(density[i], energy_density, pressure)[1]) + Mass.append(TOV_solver.solveTOV_tidal(density[i], energy_density, pressure)[0]) + tidal.append(TOV_solver.solveTOV_tidal(density[i], energy_density, pressure)[2]) + #This is sentense is for avoiding the outflow of the result, like when solveTOV blow up because of ill EOS, we need to stop + except OverflowError as e: + #print("This EOS is ill-defined to reach an infinity result, that is not phyiscal, No Mass radius will be generated.") + break + MRT = np.vstack((Radius, Mass,tidal)).T + #print("Mass Radius and tidal will be generated as the 3-d array. The first column is Radius, second one is mass,last is tidal") + + return MRT
+ + +
+[docs] +def OutputC_s(input_file='',density=[],pressure=[]): + + """Calls function to open csv (if needed) and check equation of state validity. + Then calls function to calculate speed of sound. + + Args: + file_name (string, optional): string. CSV file to be opened. + density (array, optional): numpy 1Darray. Passed into a check function and returned if valid. + pressure (array, optional): numpy 1Darray. Passed into a check function and returned if valid. + + Returns: + C_s (array): numpy 1D array. List of speeds of sound. + """ + + energy_density, pressure = EoS_import.EOS_import(input_file,density,pressure) + C_s = speed_of_sound.speed_of_sound_calc(energy_density, pressure) + return C_s
+ + +
+[docs] +def OutputMRpoint(central_density,energy_density,pressure): + + """Outputs the mass, radius, and tidal deformability (single point) + Args: + central_density (float): central density that we want to compute + density (array, optional): numpy 1Darray. Density of EoS + pressure (array, optional): numpy 1Darray. pressure of EoS + + Returns: + MR (tuple): tuple with mass, radius. + """ + + c = 3e10 + G = 6.67428e-8 + Msun = 1.989e33 + + dyncm2_to_MeVfm3 = 1./(1.6022e33) + gcm3_to_MeVfm3 = 1./(1.7827e12) + oneoverfm_MeV = 197.33 + + Radius = [] + Mass = [] + +#This following step is to make a dicision whether the EOS ingredients is always increase. We can do that outsie of this main to the +#EOS import. +#if all(x<y for x, y in zip(eps_total_poly[:], eps_total_poly[[1:])) and all(x<y for x, y in zip(pres_total_poly[j][:], pres_total_poly[j][1:])): + try: + Radius.append(TOV_solver.solveTOV(central_density, energy_density, pressure)[1]) + Mass.append(TOV_solver.solveTOV(central_density, energy_density, pressure)[0]) + #This is sentense is for avoiding the outflow of the result, like when solveTOV blow up because of ill EOS, we need to stop + except OverflowError as e: + print("This EOS is ill-defined to reach an infinity result, that is not phyiscal, No Mass radius will be generated.") + MR = np.vstack((Radius, Mass)).T + + return MR
+ + +
+[docs] +def OutputMRTpoint(central_density,energy_density,pressure): + + """Outputs the mass, radius, and tidal deformability (single point) + Args: + central_density (float): central density that we want to compute + density (array, optional): numpy 1Darray. Density of EoS + pressure (array, optional): numpy 1Darray. pressure of EoS + + Returns: + MRT (tuple): tuple with mass, radius and tidal. + """ + + c = 3e10 + G = 6.67428e-8 + Msun = 1.989e33 + + dyncm2_to_MeVfm3 = 1./(1.6022e33) + gcm3_to_MeVfm3 = 1./(1.7827e12) + oneoverfm_MeV = 197.33 + + Radius = [] + Mass = [] + tidal = [] +#This following step is to make a dicision whether the EOS ingredients is always increase. We can do that outsie of this main to the +#EOS import. +#if all(x<y for x, y in zip(eps_total_poly[:], eps_total_poly[[1:])) and all(x<y for x, y in zip(pres_total_poly[j][:], pres_total_poly[j][1:])): + try: + Radius.append(TOV_solver.solveTOV_tidal(central_density, energy_density, pressure)[1]) + Mass.append(TOV_solver.solveTOV_tidal(central_density, energy_density, pressure)[0]) + tidal.append(TOV_solver.solveTOV_tidal(central_density, energy_density, pressure)[2]) + #This is sentense is for avoiding the outflow of the result, like when solveTOV blow up because of ill EOS, we need to stop + except OverflowError as e: + print("This EOS is ill-defined to reach an infinity result, that is not phyiscal, No Mass radius will be generated.") + MRT = np.vstack((Radius, Mass,tidal)).T + + return MRT
+ + +
+ +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/_modules/TOVsolver/solver_code.html b/_modules/TOVsolver/solver_code.html new file mode 100644 index 0000000..9f24fde --- /dev/null +++ b/_modules/TOVsolver/solver_code.html @@ -0,0 +1,386 @@ + + + + + + + + TOVsolver.solver_code — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for TOVsolver.solver_code

+# Python packages
+import numpy as np
+import math
+from scipy.interpolate import UnivariateSpline
+from scipy.constants import pi
+from scipy.integrate import odeint, ode
+from matplotlib import pyplot
+from scipy import optimize
+from itertools import repeat
+
+
+[docs] +def m1_from_mc_m2(mc, m2): + """a function that feed back the companion star mass from GW event measurement. + + Args: + mc (float): chrip mass of a GW event, unit in solar mass. + m2 (float or numpy array): the determined mass for one of the star, this + is computed from sampling of EoS. + + Returns: + m1 (float or numpy array): the companion star mass in solar mass. + """ + m2 = np.array(m2) + num1 = (2. / 3.)**(1. / 3.) * mc**5. + denom1 = ((9 * m2**7. * mc**5. + np.sqrt(3.) * + np.sqrt(abs(27 * m2**14. * mc**10. - + 4. * m2**9. * mc**15.)))**(1. / 3.)) + denom2 = 2.**(1. / 3.) * 3.**(2. / 3.) * m2**3. + return num1 / denom1 + denom1 / denom2
+ + +def pressure_adind(P, epsgrid, presgrid): + idx = np.searchsorted(presgrid, P) + if idx == 0: + eds = epsgrid[0] * np.power(P / presgrid[0], 3. / 5.) + adind = 5. / 3. * presgrid[0] * np.power(eds / epsgrid[0], 5. / 3.) * 1. / eds * (eds + P) / P + if idx == len(presgrid): + eds = epsgrid[-1] * np.power(P / presgrid[-1], 3. / 5.) + adind = 5. / 3. * presgrid[-1] * np.power(eds / epsgrid[-1], 5. / 3.) * 1. / eds * (eds + P) / P + else: + ci = np.log(presgrid[idx] / presgrid[idx-1]) / np.log(epsgrid[idx] / epsgrid[idx-1]) + eds = epsgrid[idx-1] * np.power(P / presgrid[idx-1], 1. / ci) + adind = ci * presgrid[idx-1] * np.power(eds / epsgrid[idx-1], ci) * 1. / eds * (eds + P) / P + return adind +def TOV(r, y, inveos): + pres, m = y + + #eps = 10**inveos(np.log10(pres)) + eps = inveos(pres) + dpdr = -(eps + pres) * (m + 4.*pi*r**3. * pres) + dpdr = dpdr/(r*(r - 2.*m)) + dmdr = 4.*pi*r**2.0 * eps + + return np.array([dpdr, dmdr]) + +
+[docs] +def TOV_def(r, y,inveos,ad_index): + """a function that packing the whole TOV equations set + + Args: + r (float): raius as integrate varible + y (psudo-varible): containing pressure, mass, h and b as intergarte varibles + to solve out the TOV equation + inveos: the invert of the eos, pressure and energy density relation to integrate + and interpolate. + + Returns: + Mass (array): The array that contains all the Stars' masses, in M_sun as a + Units. + Radius (array): The array that contains all the Stars's radius, in km. + Tidal Deformability (array): The array that contains correpsonding Tidal property, + These are dimension-less. + """ + pres, m,h,b = y + + #energy_density = 10**inveos(np.log10(pres)) + eps = inveos(pres) + dpdr = -(eps + pres) * (m + 4.*pi*r**3. * pres) + dpdr = dpdr/(r*(r - 2.*m)) + dmdr = 4.*pi*r**2.0 * eps + dhdr = b + + dfdr = 2. * np.power(1. - 2. * m / r, -1) * h * \ + (-2. * np.pi * (5. * eps + 9. * pres + (eps + pres)**2. / + (pres*ad_index)) + 3. / np.power(r,2) + 2. * + np.power(1. - 2. * m / r,-1) * np.power(m / np.power(r,2) + + 4. * np.pi * r * pres,2)) \ + + 2. * b / r * np.power(1. - 2. * y[1] / r, -1) * \ + (-1. + m / r + 2. * np.pi * np.power(r,2) * (eps - pres)) + + return np.array([dpdr, dmdr, dhdr, dfdr])
+ + +
+[docs] +def tidal_deformability(y2, Mns, Rns): + """Compute Tidal deformability from y2, neutron star mass and raius + + Args: + y2 (array): midiate varrible that computing tidal + Mns (array): neutron star mass in g/cm3 + Rns (array): neutron star radius in cm. + + Returns: + tidal_def (array): neutron star tidal deformability with unit-less. + """ + C = Mns / Rns + Eps = 4. * C**3. * (13. - 11. * y2 + C * (3. * y2 - 2.) + + 2. * C**2. * (1. + y2)) + \ + 3. * (1. - 2. * C)**2. * (2. - y2 + 2. * C * (y2 - 1.)) * \ + np.log(1. - 2. * C) + 2. * C * (6. - 3. * y2 + 3. * C * (5. * y2 - 8.)) + tidal_def = 16. / (15. * Eps) * (1. - 2. * C)**2. *\ + (2. + 2. * C * (y2 - 1.) - y2) + + return tidal_def
+ + +# Function solves the TOV equation, returning mass and radius +
+[docs] +def solveTOV_tidal(center_rho, energy_density, pressure): + """Solve TOV equation from given Equation of state in the neutron star + core density range + + Args: + center_rho(array): This is the energy density here is fixed in main + that is np.logspace(14.3, 15.6, 50) + energy_density (array): Desity array of the neutron star EoS, in MeV/fm^{-3} + Notice here for simiplicity, we omitted G/c**4 magnitude, so + (value in MeV/fm^{-3})*G/c**4, could convert to the energy density we are + using, please check the Test_EOS.csv to double check the order of magnitude. + + pressure (array): Pressure array of neutron star EoS, also in nautral unit + with MeV/fm^{-3}, still please check the Test_EOS.csv, the conversion is + (value in dyn/cm3)*G/c**4. + + Returns: + Mass (array): The array that contains all the Stars' masses, in M_sun as a + Units. + Radius (array): The array that contains all the Stars's radius, in km. + Tidal Deformability (array): The array that contains correpsonding Tidal property, + These are dimension-less. + """ + #eos = UnivariateSpline(np.log10(eps), np.log10(pres), k=1, s=0) + #inveos = UnivariateSpline(np.log10(pressure), np.log10(energy_density), k=1, s=0) + #We could change this to Double Log Interpolation。 + + + c = 3e10 + G = 6.67428e-8 + Msun = 1.989e33 + + eos = UnivariateSpline(energy_density, pressure, k=3, s=0) + inveos = UnivariateSpline(pressure, energy_density, k=3, s=0) + Pmin = pressure[20] + + r = 4.441e-16 + dr = 10. + rmax = 50 * 1e5 + rhocent = center_rho * G/c**2. + #pcent = 10**eos(np.log10(rhocent)) + pcent = eos(rhocent) + P0 = pcent - (2.*pi/3.)*(pcent + rhocent) *(3.*pcent + rhocent)*r**2. + m0 = 4./3. *pi *rhocent*r**3. + h0 = r**2. + b0 = 2. * r + stateTOV = np.array([P0, m0, h0,b0]) + ad_index = pressure_adind(P0, energy_density, pressure) + sy = ode(TOV_def, None).set_integrator('dopri5') + + #have been modified from Irida to this integrator + sy.set_initial_value(stateTOV , r).set_f_params(inveos,ad_index) + + while sy.successful() and stateTOV[0]>Pmin: + stateTOV = sy.integrate(sy.t+dr) + dpdr, dmdr, dhdr, dfdr= TOV_def(sy.t+dr, stateTOV, inveos,ad_index) + dr = 0.46 * (1./stateTOV[1] * dmdr - 1./stateTOV[0]*dpdr)**(-1.) + Mb = stateTOV[1] + Rns = sy.t + y = Rns * stateTOV[3] /stateTOV[2] + tidal = tidal_deformability(y, Mb, Rns) + + return Mb*c**2./G/Msun, Rns/1e5,tidal
+ + + +
+[docs] +def solveTOV(center_rho, energy_density, pressure): + """Solve TOV equation from given Equation of state in the neutron star + core density range + + Args: + center_rho(array): This is the energy density here is fixed in main + that is np.logspace(14.3, 15.6, 50) + energy_density (array): Desity array of the neutron star EoS, in MeV/fm^{-3} + Notice here for simiplicity, we omitted G/c**4 magnitude, so + (value in MeV/fm^{-3})*G/c**4, could convert to the energy density we are + using, please check the Test_EOS.csv to double check the order of magnitude. + + pressure (array): Pressure array of neutron star EoS, also in nautral unit + with MeV/fm^{-3}, still please check the Test_EOS.csv, the conversion is + (value in dyn/cm3)*G/c**4. + + Returns: + Mass (array): The array that contains all the Stars' masses, in M_sun as a + Units. + Radius (array): The array that contains all the Stars's radius, in km. + """ + + #eos = UnivariateSpline(np.log10(energy_density), np.log10(pres), k=1, s=0) + #inveos = UnivariateSpline(np.log10(pres), np.log10(energy_density), k=1, s=0) + #We could change this to Double Log Interpolation。 + c = 3e10 + G = 6.67428e-8 + Msun = 1.989e33 + + eos = UnivariateSpline(energy_density, pressure, k=3, s=0) + inveos = UnivariateSpline(pressure, energy_density, k=3, s=0) + Pmin = pressure[20] + r = 4.441e-16 + dr = 10. + center_rho = center_rho * G/c**2. + + #pcent = 10**eos(np.log10(rhocent)) + pcent = eos(center_rho) + P0 = pcent - (2.*pi/3.)*(pcent + center_rho) *(3.*pcent + center_rho)*r**2. + m0 = 4./3. *pi *center_rho*r**3. + stateTOV = np.array([P0, m0]) + + sy = ode(TOV, None).set_integrator('dopri5') + + + #have been modified from Irida to this integrator + sy.set_initial_value(stateTOV , r).set_f_params(inveos) + + while sy.successful() and stateTOV[0]>Pmin: + stateTOV = sy.integrate(sy.t+dr) + dpdr, dmdr = TOV(sy.t+dr, stateTOV, inveos) + dr = 0.46 * (1./stateTOV[1] * dmdr - 1./stateTOV[0]*dpdr)**(-1.) + + return stateTOV[1]*c**2./G/Msun, sy.t/1e5
+ +
+ +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/_modules/TOVsolver/speed_of_sound.html b/_modules/TOVsolver/speed_of_sound.html new file mode 100644 index 0000000..c35d92e --- /dev/null +++ b/_modules/TOVsolver/speed_of_sound.html @@ -0,0 +1,173 @@ + + + + + + + + TOVsolver.speed_of_sound — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +

Source code for TOVsolver.speed_of_sound

+import numpy as np
+from TOVsolver.constant import c,G
+
+
+[docs] +def speed_of_sound_calc(density, pressure): + + + """Function that calculates the speed of sound by taking the gradient of the euqation of state. + Args: + density (array): numpy 1Darray. + pressure (array): numpy 1Darray. + + Returns: + speed_of_sound (array): numpy 1Darray. + """ + + speed_of_sound = [] + #density = density*c**2/G + #pressure = pressure*c**4/G + + for i in range(0,len(density)-1): + speed_of_sound.append((pressure[i+1]-pressure[i])/(density[i+1]-density[i])) + d2 = [] + C_s= [] + #eps2 = [] + for i in range(0,len(speed_of_sound)): + if density[i]> 1.5e-14: + d2.append(density[i]) + C_s.append(speed_of_sound[i]) + return C_s,d2
+ +
+ +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/_modules/index.html b/_modules/index.html new file mode 100644 index 0000000..1c02321 --- /dev/null +++ b/_modules/index.html @@ -0,0 +1,150 @@ + + + + + + + + Overview: module code — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/_sources/BayesianSampler.rst.txt b/_sources/BayesianSampler.rst.txt new file mode 100644 index 0000000..4e86a3d --- /dev/null +++ b/_sources/BayesianSampler.rst.txt @@ -0,0 +1,9 @@ +.. _Bayesian_Sampler: + +Bayesian Inference smapler setup module +======================================= + +Functions to start run Bayesian inference by calling UltraNest package + +.. automodule:: InferenceWorkflow.BayesianSampler + :members: diff --git a/_sources/Contributor.rst.txt b/_sources/Contributor.rst.txt new file mode 100644 index 0000000..48ff756 --- /dev/null +++ b/_sources/Contributor.rst.txt @@ -0,0 +1,74 @@ +Call for Contributions +====================== + +Introduction +------------ + +If you are interested in contributing to the **CompactObject** project, please send an email to `chun.h@wustl.edu `_ to request collaboration. You can also open an issue on our GitHub repository at `Issue page `_ so that the community can track the status of collaborations. + +We are always eager to expand our scope to include the most equation of state (EOS) computations currently available in the community, as well as the most relevant constraints. If you have your own EOS and wish to contribute, please follow the steps outlined below. + +Contributing an Equation of State (EOS) +--------------------------------------- + +1. **Open an Issue** + Visit our GitHub issues page at `Issue page `_ and open a new issue to suggest the EOS you would like to contribute. + +2. **Request Collaboration** + Send an email to `chun.h@wustl.edu` to request collaborator access to the repository. + +3. **Commit the EOS Script** + - Create a `.py` script that computes the EOS. The script should: + - Input the EOS parameter values. + - Output the pressure and density in CGS units. + - For unit conventions, please refer to the `UnitConventionForDeveloper `_. + - Name the main compute function as `compute_EOS`. + - Name the file as `(YourEOSName)_EOS.py`. + +4. **Create a Demonstration Notebook** + Develop a Jupyter notebook that demonstrates: + - How to compute the EOS. + - Defining your EOS parameters. + - Integrating your EOS with our default TOV solver (`main.outputMR`). + - Ensuring the TOV solver correctly solves the EOS and outputs a mass-radius curve plot. + +Contributing Inference Components +--------------------------------- + +If you have developed your own likelihood, prior, sampler, or any component related to inference that is suitable for addition to our functionalities, we highly recommend contacting us. Follow these steps to contribute: + +1. **Open an Issue** + Visit our GitHub issues page at `Issue page `_ and open a new issue to suggest changes to the inference components. + +2. **Request Collaboration** + Send an email to `chun.h@wustl.edu` to request collaborator access to the repository. + +3. **Commit the Inference Script** + - Create a `.py` script within the `InferenceWorkflow` directory. + - Name the script after the function you are contributing. + +4. **Create a Demonstration Notebook** + Develop a Jupyter notebook that demonstrates: + - How to use your prior, likelihood, or sampler. + - Include sampling outputs to ensure compatibility with the current structure of the package. + +Guidelines for Key Functions and Permissions +-------------------------------------------- + +The **TOVsolver** module is fundamental to all inference and computation within **CompactObject**. Modifying this module requires careful consideration, as changes may necessitate significant code restructuring. + +- **Permissions:** + Only original contributors have permission to modify the **TOVsolver** code. All commits related to the **TOVsolver** module require detailed reviews by the original members of the package. + +- **Local Changes:** + If you clone the repository locally and need to make changes to the **TOVsolver**, proceed with caution to avoid extensive code rebuilding. + +Acknowledgements +---------------- + +We welcome feedback and contributions to expand the functionalities of **CompactObject**. Your support helps enhance the tool for the entire research community. + +Contact +------- + +For inquiries, contributions, or to be featured in our publications list, please contact us at `chun.h@wustl.edu `_. diff --git a/_sources/Cornerplot.rst.txt b/_sources/Cornerplot.rst.txt new file mode 100644 index 0000000..5cc0ba5 --- /dev/null +++ b/_sources/Cornerplot.rst.txt @@ -0,0 +1,9 @@ +.. _Corner_plot_module: + +Postprocessing module: Cornerplot +====================================== + +Function to plot overlapping corner plots with input as two or three 2d posterior arrays + +.. automodule:: postprocessing.Cornerplot + :members: diff --git a/_sources/DownloadCompose.ipynb.txt b/_sources/DownloadCompose.ipynb.txt new file mode 100644 index 0000000..39097d4 --- /dev/null +++ b/_sources/DownloadCompose.ipynb.txt @@ -0,0 +1,459 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Usage of download_compose Module\n", + "Tianzhe Zhou 2024/11/9" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "[CompOSE](https://compose.obspm.fr/table)(CompStar Online Supernovae Equations of State)\n", + "is a database that provides data tables for different state of the art equations of state (EoS) ready for further usage in astrophysical applications, nuclear physics and beyond.\n", + "\n", + "In this notebook, we will demonstrate how to use the `download_compose` module to download the data from the CompOSE database." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "DownloadCompose: Fetching data from https://compose.obspm.fr/table \n", + "...\n", + "DownloadCompose: Find 308 EOS data on website https://compose.obspm.fr/table\n" + ] + } + ], + "source": [ + "# First, import the class that we need to use\n", + "from EOSgenerators.download_compose import DownloadCompose\n", + "\n", + "# Then, create an instance of the class\n", + "# This will automatically fetch the latest version of all available\n", + "# EOS names and their corresponding download links\n", + "dc = DownloadCompose()" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "id = 1, name = HS(DD2) neutron matter (no electrons)\n", + "id = 2, name = HS(DD2) neutron matter (with electrons)\n", + "id = 3, name = HS(FSG) neutron matter (no electrons)\n", + "id = 4, name = HS(FSG) neutron matter (with electrons)\n", + "id = 5, name = HS(IUF) neutron matter (no electrons)\n", + "id = 6, name = HS(IUF) neutron matter (with electrons)\n", + "id = 7, name = HS(NL3) neutron matter (no electrons)\n", + "id = 8, name = HS(NL3) neutron matter (with electrons)\n", + "id = 9, name = HS(TM1) neutron matter (no electrons)\n", + "id = 10, name = HS(TM1) neutron matter (with electrons)\n", + "id = 11, name = HS(TMA) neutron matter (no electrons)\n", + "id = 12, name = HS(TMA) neutron matter (with electrons)\n", + "id = 13, name = SFH(SFHo) neutron matter (no electrons)\n", + "id = 14, name = SFH(SFHo) neutron matter (with electrons)\n", + "id = 15, name = SFH(SFHx) neutron matter (no electrons)\n", + "id = 16, name = SFH(SFHx) neutron matter (with electrons)\n", + "id = 17, name = HS(DD2) (no electrons)\n", + "id = 18, name = HS(DD2) (with electrons)\n", + "id = 19, name = HS(FSG) (no electrons)\n", + "id = 20, name = HS(FSG) (with electrons)\n", + "id = 21, name = HS(IUF) (no electrons)\n", + "id = 22, name = HS(IUF) (with electrons)\n", + "id = 23, name = HS(NL3) (no electrons)\n", + "id = 24, name = HS(NL3) (with electrons)\n", + "id = 25, name = HS(TM1) (no electrons)\n", + "id = 26, name = HS(TM1) (with electrons)\n", + "id = 27, name = HS(TMA) (no electrons)\n", + "id = 28, name = HS(TMA) (with electrons)\n", + "id = 29, name = GROM(LS220L) (with Lambdas, no low densities)\n", + "id = 30, name = GROM(LS220L) (with Lambdas, with low densities)\n", + "id = 31, name = LS(LS220) (no low densities)\n", + "id = 32, name = LS(LS220) (with low densities)\n", + "id = 33, name = SFH(SFHo) (no electrons)\n", + "id = 34, name = SFH(SFHo) (with electrons)\n", + "id = 35, name = SFH(SFHx) (no electrons)\n", + "id = 36, name = SFH(SFHx) (with electrons)\n", + "id = 37, name = SHO(FSU1) (no electrons)\n", + "id = 38, name = SHO(FSU1) (with electrons)\n", + "id = 39, name = SHO(FSU2) (with electrons)\n", + "id = 40, name = SHO(FSU2) (no electrons)\n", + "id = 41, name = SHT(NL3) (no electrons)\n", + "id = 42, name = SHT(NL3) (with electrons)\n", + "id = 43, name = BHB(DD2L) (no electrons)\n", + "id = 44, name = BHB(DD2L) (with electrons)\n", + "id = 45, name = BHB(DD2Lphi) (with electrons)\n", + "id = 46, name = BHB(DD2Lphi) (no electrons)\n", + "id = 47, name = SHO(FSU1) (no electrons)\n", + "id = 48, name = SHO(FSU1) (with electrons)\n", + "id = 49, name = SHO(FSU2) (no electrons)\n", + "id = 50, name = SHO(FSU2) (with electrons)\n", + "id = 51, name = SHT(NL3) (no electrons)\n", + "id = 52, name = SHT(NL3) (with electrons)\n", + "id = 53, name = GDTB(DDHdelta)\n", + "id = 54, name = GM(GM1)\n", + "id = 55, name = OPGR(GM1Y4) (with hyperons)\n", + "id = 56, name = STOS(TM1) neutron matter (original version)\n", + "id = 57, name = STOS(TM1) neutron matter (new version)\n", + "id = 58, name = STOS(TM1L) neutron and Lambda matter\n", + "id = 59, name = STOS(TM1) zero temperature (new version)\n", + "id = 60, name = STOS(TM1) zero temperature (original version)\n", + "id = 61, name = STOS(TM1) with Lambda zero temperature\n", + "id = 62, name = STOS(TM1L) with Lambda hyperons\n", + "id = 63, name = STOS(TM1) (new version)\n", + "id = 64, name = STOS(TM1) (original version)\n", + "id = 65, name = OPGR(GM1Y5) (with hyperons)\n", + "id = 66, name = OPGR(GM1Y6) (with hyperons)\n", + "id = 67, name = OPGR(DDHdeltaY4) (with hyperons)\n", + "id = 68, name = APR(APR)\n", + "id = 69, name = BBB(BHF-BBB2)\n", + "id = 70, name = SFHPST(TM1B145), with electrons\n", + "id = 71, name = STOS(TM1) (new version) with electrons\n", + "id = 72, name = STOS(TM1L) with Lambda hyperons and electrons\n", + "id = 73, name = SFHPST(TM1B139) with electrons\n", + "id = 74, name = SFHPST(TM1B155) with electrons\n", + "id = 75, name = SFHPST(TM1B165) with electrons (B165)\n", + "id = 76, name = IOTSY(TM1Y30) Sigma potential 30 MeV\n", + "id = 77, name = IOTSY(TM1Y30pi) with pions, Sigma potential 30 MeV\n", + "id = 78, name = IOTSY(TM1Y90pi) with pions, Sigma potential 90 MeV\n", + "id = 79, name = IOTSY(TM1Y0pi) with pions, Sigma potential 0 MeV\n", + "id = 80, name = IOTSY(TM1Y-30pi) with pions, Sigma potential -30 MeV\n", + "id = 81, name = IOTSY(TM1Y90) , Sigma potential 90 MeV)\n", + "id = 82, name = IOTSY(TM1Y0), Sigma potential 0 MeV\n", + "id = 83, name = IOTSY(TM1Y-30), Sigma potential -30 MeV\n", + "id = 84, name = RG(SLY230a)\n", + "id = 85, name = RG(SLY2)\n", + "id = 86, name = RG(SLY9)\n", + "id = 87, name = RG(SKI2)\n", + "id = 88, name = RG(SkI3)\n", + "id = 89, name = RG(SkI4)\n", + "id = 90, name = RG(SkI5)\n", + "id = 91, name = RG(SkI6)\n", + "id = 92, name = RG(KDE0v1)\n", + "id = 93, name = RG(KDE0v)\n", + "id = 94, name = RG(SK255)\n", + "id = 95, name = RG(SK272)\n", + "id = 96, name = RG(SKa)\n", + "id = 97, name = RG(SKb)\n", + "id = 98, name = RG(SkMp)\n", + "id = 99, name = RG(SkOp)\n", + "id = 100, name = RG(Rs)\n", + "id = 101, name = NL3\n", + "id = 104, name = OMHN(DD2Y)\n", + "id = 105, name = TNTYST(KOST2) variational EoS (with electrons)\n", + "id = 106, name = TNTYST(KOST2) variational EoS (without electrons)\n", + "id = 107, name = TNTYST(KOST2) variational EoS at zero temperature (with electrons)\n", + "id = 108, name = TNTYST(KOST2) variational EoS at zero temperature (no electrons)\n", + "id = 109, name = TNTYST(KOST2) neutron matter (zero temperature)\n", + "id = 110, name = TNTYST(KOST2) neutron matter\n", + "id = 111, name = FYSS(TM1) (no electrons)\n", + "id = 112, name = FTNS(KOST2) variational EoS (no electrons)\n", + "id = 113, name = FYSS(TM1) (with electrons)\n", + "id = 114, name = FTNS(KOST2) variational EoS (with electrons)\n", + "id = 115, name = DNS(CMF) Hadronic (with electrons)\n", + "id = 116, name = DNS(CMF) Hadronic (cold neutron stars)\n", + "id = 117, name = DNS(CMF) Hadronic (no electrons)\n", + "id = 118, name = FOP(SFHoY) (with electrons)\n", + "id = 119, name = FOP(SFHoY) (no electrons)\n", + "id = 120, name = BL(chiral)\n", + "id = 121, name = BL(chiral) with crust\n", + "id = 123, name = RG(SLY4)\n", + "id = 134, name = RG(SLY4)\n", + "id = 136, name = PT(GRDF1_DD2)\n", + "id = 137, name = PT(GRDF2_DD2) old version\n", + "id = 138, name = DNS(CMF) hadronic (cold neutron stars) with crust\n", + "id = 139, name = BHK(QHC18)\n", + "id = 140, name = BFH(QHC19-B)\n", + "id = 141, name = SRO(SLy4) SNA version\n", + "id = 142, name = OOS(DD2_FRG) (2+1 flavors)\n", + "id = 143, name = OOS(DD2_FRG) (2 flavors)\n", + "id = 144, name = SNSH(TM1e)\n", + "id = 145, name = SNSH(TM1e) zero temperature\n", + "id = 146, name = SNSH(TM1e) neutron matter\n", + "id = 147, name = RG(SLy4) with neutrino opacities\n", + "id = 148, name = RG(SLY4) with neutrino opacities, extended version\n", + "id = 149, name = SRO(APR) SNA version\n", + "id = 150, name = BFH(QHC19-A)\n", + "id = 151, name = BFH(QHC19-C)\n", + "id = 152, name = BFH(QHC19-D)\n", + "id = 154, name = MBB(DD2K ) (no electrons)\n", + "id = 155, name = BBKF(DD2F-SF) quark-hadron model RDF 1.1 without leptons\n", + "id = 156, name = BBKF(DD2F-SF) quark-hadron model RDF 1.2 without leptons\n", + "id = 157, name = BBKF(DD2F-SF) quark-hadron model RDF 1.3 without leptons\n", + "id = 158, name = BBKF(DD2F-SF) quark-hadron model RDF 1.4 without leptons\n", + "id = 159, name = BBKF(DD2F-SF) quark-hadron model RDF 1.5 without leptons\n", + "id = 160, name = BBKF(DD2F-SF) quark-hadron model RDF 1.6 without leptons\n", + "id = 161, name = BBKF(DD2F-SF) quark-hadron model RDF 1.7 without leptons\n", + "id = 162, name = BBKF(DD2-SF) quark-hadron model RDF 1.8 without leptons\n", + "id = 163, name = BBKF(DD2-SF) quark-hadron model RDF 1.9 without leptons\n", + "id = 164, name = BBKF(DD2F-SF) quark-hadron model RDF 1.1\n", + "id = 165, name = BBKF(DD2F-SF) quark-hadron model RDF 1.2\n", + "id = 166, name = BBKF(DD2F-SF) quark-hadron model RDF 1.3\n", + "id = 167, name = BBKF(DD2F-SF) quark-hadron model RDF 1.4\n", + "id = 168, name = BBKF(DD2F-SF) quark-hadron model RDF 1.5\n", + "id = 169, name = BBKF(DD2F-SF) quark-hadron model RDF 1.6\n", + "id = 170, name = BBKF(DD2F-SF) quark-hadron model RDF 1.7\n", + "id = 171, name = BBKF(DD2-SF) quark-hadron model RDF 1.8\n", + "id = 172, name = BBKF(DD2-SF) quark-hadron model RDF 1.9\n", + "id = 173, name = SRO(NRAPR) NSE version\n", + "id = 174, name = SRO(SkAPR) SNA version\n", + "id = 175, name = SRO(KDE0v1) SNA version\n", + "id = 176, name = SRO(LS220*) SNA version\n", + "id = 177, name = SRO(LNS) SNA version\n", + "id = 178, name = SRO(LS220) SNA version\n", + "id = 180, name = DS(CMF)-1\n", + "id = 181, name = DS(CMF)-2\n", + "id = 182, name = DS(CMF)-3\n", + "id = 183, name = DS(CMF)-4\n", + "id = 184, name = DS(CMF)-5\n", + "id = 185, name = DS(CMF)-6\n", + "id = 186, name = DS(CMF)-7\n", + "id = 187, name = DS(CMF)-8\n", + "id = 188, name = DS(CMF)-1 with crust\n", + "id = 189, name = DS(CMF)-2 with crust\n", + "id = 190, name = DS(CMF)-3 with crust\n", + "id = 191, name = DS(CMF)-4 with crust\n", + "id = 192, name = DS(CMF)-5 with crust\n", + "id = 193, name = DS(CMF)-6 with crust\n", + "id = 194, name = DS(CMF)-7 with crust\n", + "id = 195, name = DS(CMF)-8 with crust\n", + "id = 196, name = OOS(DD2-FRG) with vector interactions(2 flavors)\n", + "id = 197, name = OOS(DD2-FRG) with vector interactions(2+1 flavors)\n", + "id = 198, name = JJ(VQCD(APR)), intermediate\n", + "id = 199, name = JJ(VQCD(APR)), stiff\n", + "id = 200, name = JJ(VQCD(APR)), soft\n", + "id = 201, name = MBB(HSDD2K) with electrons\n", + "id = 202, name = MBB(BHBLphiK) with electrons\n", + "id = 203, name = GPPVA(FSU2R) NS crust\n", + "id = 204, name = GPPVA(NL3wrL55) NS crust\n", + "id = 205, name = SDGTT(QMC-A), no leptons\n", + "id = 206, name = SDGTT(QMC-A) with leptons\n", + "id = 207, name = GPPVA(TM1e) NS crust\n", + "id = 208, name = GPPVA(FSU2H) NS crust\n", + "id = 209, name = GPPVA(FSU2) NS crust\n", + "id = 210, name = GPPVA(DD2) NS crust\n", + "id = 211, name = GPPVA(DDME2) NS crust\n", + "id = 212, name = GPPVA(TW) NS crust\n", + "id = 213, name = GPPVA(FSU2H) NS unified inner crust-core\n", + "id = 214, name = GPPVA(FSU2R) NS unified inner crust-core\n", + "id = 215, name = GPPVA(FSU2) NS unified inner crust-core\n", + "id = 216, name = GMSR(SLy5)\n", + "id = 217, name = GPPVA(DD2) NS unified inner crust-core\n", + "id = 218, name = GPPVA(DDME2) NS unified inner crust-core\n", + "id = 219, name = GPPVA(TW) NS unified inner crust-core\n", + "id = 220, name = GPPVA(NL3wrL55) NS unified inner crust-core\n", + "id = 221, name = GPPVA(TM1e) NS unified inner crust-core\n", + "id = 222, name = GMSR(LNS5)\n", + "id = 223, name = GMSR(BSK16)\n", + "id = 224, name = GMSR(BSK14)\n", + "id = 225, name = GMSR(RATP)\n", + "id = 227, name = GMSR(F0)\n", + "id = 228, name = GMSR(H1)\n", + "id = 229, name = GMSR(H2)\n", + "id = 230, name = GMSR(H3)\n", + "id = 231, name = GMSR(H4)\n", + "id = 232, name = GMSR(H5)\n", + "id = 233, name = GMSR(H7)\n", + "id = 234, name = GMSR(DHSL59)\n", + "id = 235, name = GMSR(DHSL69)\n", + "id = 236, name = KBH(QHC21_AT)\n", + "id = 237, name = KBH(QHC21_BT)\n", + "id = 238, name = KBH(QHC21_CT)\n", + "id = 239, name = KBH(QHC21_DT)\n", + "id = 240, name = KBH(QHC21_A)\n", + "id = 241, name = KBH(QHC21_B)\n", + "id = 242, name = KBH(QHC21_C)\n", + "id = 243, name = KBH(QHC21_D)\n", + "id = 244, name = R(DD2YDelta) 1.1-1.1 (no electrons)\n", + "id = 245, name = R(DD2YDelta) 1.1-1.1 (with electrons)\n", + "id = 246, name = R(DD2YDelta) 1.2-1.1 (with electrons)\n", + "id = 247, name = R(DD2YDelta) 1.2-1.1 (no electrons)\n", + "id = 248, name = R(DD2YDelta) 1.2-1.3 (with electrons)\n", + "id = 249, name = R(DD2YDelta) 1.2-1.3 (no electrons)\n", + "id = 250, name = R(DD2YDelta) 1.1-1.1 (cold NS)\n", + "id = 251, name = R(DD2YDelta) 1.2-1.3 (cold NS)\n", + "id = 252, name = R(DD2YDelta) 1.2-1.1 (cold NS)\n", + "id = 253, name = PCP(BSK24)\n", + "id = 254, name = VGBCMR(D1MStar)\n", + "id = 255, name = VGBCMR(D1M)\n", + "id = 256, name = PCP(BSK22)\n", + "id = 257, name = PCP(BSK25)\n", + "id = 258, name = PCP(BSK26)\n", + "id = 259, name = DS(CMF)-1 Hybrid\n", + "id = 260, name = DS(CMF)-2 Hybrid\n", + "id = 261, name = DS(CMF)-3 Hybrid\n", + "id = 262, name = DS(CMF)-4 Hybrid\n", + "id = 263, name = DS(CMF)-5 Hybrid\n", + "id = 264, name = DS(CMF)-6 Hybrid\n", + "id = 265, name = DS(CMF)-7 Hybrid\n", + "id = 266, name = DS(CMF)-8 Hybrid\n", + "id = 267, name = DS(CMF)-1 Hybrid with crust\n", + "id = 268, name = DS(CMF)-2 Hybrid with crust\n", + "id = 269, name = DS (CMF)-3 Hybrid with crust\n", + "id = 270, name = DS (CMF)-4 Hybrid with crust\n", + "id = 271, name = DS (CMF)-5 Hybrid with crust\n", + "id = 272, name = DS (CMF)-6 Hybrid with crust\n", + "id = 273, name = DS (CMF)-7 Hybrid with crust\n", + "id = 274, name = DS(CMF)-8 Hybrid with crust\n", + "id = 275, name = ABHT(QMC-RMF1)\n", + "id = 276, name = ABHT(QMC-RMF2)\n", + "id = 277, name = ABHT(QMC-RMF3)\n", + "id = 278, name = ABHT(QMC-RMF4)\n", + "id = 279, name = XMLSLZ(DDME2)\n", + "id = 280, name = XMLSLZ(DD-LZ1)\n", + "id = 281, name = XMLSLZ(DDME-X)\n", + "id = 282, name = XMLSLZ(GM1)\n", + "id = 283, name = XMLSLZ(MTVTC)\n", + "id = 284, name = XMLSLZ(NL3)\n", + "id = 285, name = XMLSLZ(PK1)\n", + "id = 286, name = XMLSLZ(PKDD)\n", + "id = 287, name = XMLSLZ(TM1)\n", + "id = 288, name = XMLSLZ(TW99)\n", + "id = 289, name = DEJ(DD2-VQCD) intermediate\n", + "id = 290, name = DEJ(DD2-VQCD) soft\n", + "id = 291, name = DEJ(DD2-VQCD) stiff\n", + "id = 292, name = PCGS(PCSB0)\n", + "id = 293, name = LPB(chiral) with electrons\n", + "id = 294, name = LPB(chiral)\n", + "id = 295, name = PCGS(PCSB1)\n", + "id = 296, name = PCGS(PCSB2)\n", + "id = 297, name = ABHT(QMC-RMF1)\n", + "id = 298, name = ABHT(QMC-RMF2)\n", + "id = 299, name = ABHT(QMC-RMF3)\n", + "id = 300, name = ABHT(QMC-RMF4)\n", + "id = 301, name = PT(GRDF2-DD2) new version\n", + "id = 302, name = PT(GRDF2-DD2) cold NS\n", + "id = 303, name = HJJSTV(VQCD)-intermediate\n", + "id = 304, name = HJJSTV(VQCD) soft\n", + "id = 305, name = HJJSTV(VQCD) stiff\n", + "id = 306, name = BL(chiral) with unified crust\n", + "id = 307, name = CMGO(GDFM-I)\n", + "id = 308, name = CMGO (GDFM-II)\n", + "id = 309, name = KRT(FSU2H*)\n", + "id = 310, name = SPG(M1) unified NS EoS\n", + "id = 311, name = SPG(M1) Crust NS EoS\n", + "id = 312, name = SPG(M2) unified NS EoS\n", + "id = 313, name = SPG(M3) unified NS EoS\n", + "id = 314, name = SPG(M4) unified NS EoS\n", + "id = 315, name = SPG(M5) unified NS EoS\n", + "id = 316, name = SPG(M2) Crust NS EoS\n", + "id = 317, name = SPG(M3) Crust NS EoS\n", + "id = 318, name = SPG(M4) Crust NS EoS\n", + "id = 319, name = SPG(M5) Crust NS EoS\n", + "id = 320, name = TSO(DDLS(30)-Y)\n", + "id = 321, name = TSO(DDLS(70)-Y)\n", + "id = 322, name = TSO(DDLS(70)-N)\n", + "id = 323, name = TSO(DDLS(50)-Y)\n", + "id = 324, name = TSO(DDLS(50)-N)\n", + "id = 325, name = TSO(DDLS(30)-N)\n" + ] + } + ], + "source": [ + "# Now, we can print the list of available EOS names.\n", + "# Each EOS name is related to a specific identifier,\n", + "# which we can use later to actually download the EOS data file.\n", + "dc.print_eos_list()" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "downloads\\compose\\316\\eos.t already exists, skip download https://compose.obspm.fr/download/1D/Crust/M2/eos.t\n", + "downloads\\compose\\316\\eos.nb already exists, skip download https://compose.obspm.fr/download/1D/Crust/M2/eos.nb\n", + "downloads\\compose\\316\\eos.thermo already exists, skip download https://compose.obspm.fr/download/1D/Crust/M2/eos.thermo\n" + ] + } + ], + "source": [ + "# Now we pick the EOS with identifier 316 and download it.\n", + "id = 316\n", + "eosdir = dc.download_id(id)" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "\t Nucleon masses used within the CompOSE tables :\t m_n = 938.90000 MeV and m_p = 938.90000 MeV\n" + ] + }, + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAAkgAAAHRCAYAAACRn0a5AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABqd0lEQVR4nO3deVhUZf8G8HvYdxQQBATEFZV9UXFfcV+zzFzAtNK0MlPTbLXStGw1NC01zdKsNLc35c0FE5NFwH1HQUUQEAZQtpnn9wev83NYFJiBWbg/1zVXzXPOnPN9mJG5Oed5zpEIIQSIiIiISMFA0wUQERERaRsGJCIiIqIKGJCIiIiIKmBAIiIiIqqAAYmIiIioAgYkIiIiogoYkIiIiIgqYEAiIiIiqoABiYiIiKgCBiQiHXHixAmMGTMG7u7uMDU1hZOTE0JDQ/HGG28ordenTx9IJBLFw9zcHH5+fvjyyy8hl8srbXfPnj0YNWoUXFxcYGJiAmtrawQEBOC9995DampqpfVLS0vh5eWFTz75RNG2ceNGxf4OHz5c6TVCCLRp0wYSiQR9+vRRtKenp+Ptt99GaGgoHBwcYGNjg6CgIKxduxYymUxpGz/88ANcXV1RWFhYq5/b7t27MWLECDg5OcHExAR2dnbo378/tmzZgtLS0lptSx2WLl2KnTt31nj9hz/XR3/eDz38ucfHxyu179+/H2FhYXBxcYGpqSlcXFzQp0+fKrdRUUREhNLnp+KjLrKzs7Fo0SJ07NgRlpaWsLW1hZeXFyZPnoxTp07VaZtE9Y0BiUgH7N27F926dYNUKsWKFStw4MABfPXVV+jevTu2bdtWaf1WrVrh+PHjOH78OLZt2wZXV1e8/vrrWLRokWIduVyO8PBwjBgxAqWlpVi2bBmioqKwfft2jB07Fps3b0b37t0rbTsyMhL37t3DK6+8UmmZtbU1fvjhh0rtR44cwdWrV2Ftba3UnpCQgE2bNqF///7YtGkTfv/9d/Tu3RszZ87ECy+8oLRueHg4LC0tsWLFihr9zIQQmDp1KkaOHAm5XI7PP/8c//3vf/Hjjz/Cz88PL7/8MiIjI2u0LXWqbUB66JNPPkFOTs4T11uzZg0GDx4MGxsbrFq1Cvv378fy5cvRoUMH/PbbbzXal7m5ueLzU/FRWwUFBejatSs2btyI6dOnY9euXdiyZQtefPFFpKSkICkpqdbbJGoQgoi0Xq9evUTr1q1FaWlppWUymUzpee/evUWnTp2U2kpKSkSrVq2EhYWFKCkpEUIIsXTpUgFALFu2rMp9lpaWilWrVlVqc3V1FQsXLlRq37BhgwAgpk+fLszNzUVeXp7S8kmTJonQ0FDRqVMn0bt3b0V7Tk6Oop5HzZo1SwAQqampSu2fffaZsLW1FYWFhVXW/Kjly5cLAOKDDz6ocnl6ero4evRota8vKysTRUVFT9xPbVlaWorw8PAarw9ADBgwQBgZGYm5c+cqLXv4c4+Li1O0ubu7i169elW5rYqflaqEh4cLS0vLGtf3JOvXrxcAxMGDB+tcE5Em8AgSkQ7Izs6Gg4MDjIyMKi0zMHjyP2NjY2MEBQXh/v37uHv3LkpKSrBixQp4e3tj4cKFVb7GyMgIs2bNUmrbtWsXbt26hcmTJ1f5mgkTJgAAfvnlF0VbXl4efv/9dzz//POV1m/atCmMjY0rtXfu3BkAcPPmTaX2iRMnQiqVYuvWrY/pbflpwOXLl8PLywvvvPNOles0b94cPXr0AABcv34dEokEK1aswEcffQRPT0+Ympri0KFDitNY169fV3r94cOHK51STExMxPDhw+Ho6Kg4tTVs2DBFPyQSCQoLC/Hjjz8qTlk9esqxOu3bt8e0adPw7bff4saNG49dNzs7G87OzlUuq8lnpTZSU1MxadIkRX87dOiAlStXKp3Kzc7OBoAGq4lIXfjJJNIBoaGhOHHiBF599VWcOHGiTmNnrl69CiMjIzRt2hTx8fHIzc3FiBEjarWNvXv3wtHRER07dqxyuY2NDcaNG4f169cr2n755RcYGBhg/PjxNd7PwYMHYWRkhHbt2im1N2/eHF5eXti7d+9jXx8fH4+cnByMGjWqVuNmvv76axw8eBCfffYZ/vOf/8DLy6vGry0sLMTAgQORkZGBb7/9FlFRUfjyyy/h7u6O/Px8AMDx48dhbm6OoUOHKk5Z1fQ03/vvvw9DQ8NqA99DoaGh+P333/H+++8jOTm50liumiorK6v0eDT43L17F926dcOBAwfw4YcfYteuXRgwYADmzZuH2bNnK9UDAFOmTMHOnTsVgYlI62n6EBYRPVlWVpbo0aOHACAACGNjY9GtWzexbNkykZ+fr7Tuw1NspaWlorS0VNy+fVssXLhQABBPP/20EEKIrVu3CgBizZo1lfb18HUPH4/q0KGDGDx4cKXXPHqq59ChQwKAOHPmjBBCiJCQEBERESGEEJVOsVVl//79wsDAQLz++utVLp84caJwcnJ67DYe17+qpKSkCACidevWlU75PexbSkqKUvvDfh46dEgIIUR8fLwAIHbu3PnYfdXlFNusWbOEEEIsXrxYGBgYiOTkZKXaHj3FduXKFeHt7a34rJibm4v+/fuLVatWVXk6s6Lw8HDFays++vfvr1jv4WfqxIkTSq+fOXOmkEgk4uLFi4q2JUuWCBMTE8V2PD09xYwZMxT9INJGPIJEpAPs7e1x9OhRxMXF4ZNPPsGoUaNw6dIlLFq0CD4+PsjKylJa/+zZszA2NoaxsTFcXFywcuVKTJw4EevWrXvsfnJzcxWve/h4dIbU7du34ejo+Nht9O7dG61bt8b69etx+vRpxMXFVXl6rSonT57EM888g65du2LZsmVVruPo6IjMzEyUlZXVaJu1MXLkyCpP+dVEmzZt0LRpU7z55ptYs2YNzp07p+bqgAULFsDOzg5vvvlmteu0bt0aycnJOHLkCD744AMMGDAAcXFxmD17NkJDQ1FUVPTE/ZibmyMuLq7S49GjXQcPHkTHjh0Vp0MfioiIgBACBw8eVLS98847SE1Nxfr16/HSSy/BysoKa9asQVBQkNLpWCJtUnlAAxFpreDgYAQHBwMoH2fz5ptv4osvvsCKFSuUZne1bt0aW7duhUQigZmZGTw9PWFhYaFY7u7uDgCVxrNYW1sjLi4OQPn0/w8++EBp+YMHD2BmZvbYGiUSCaZOnYqvv/4aRUVFaNeuHXr27PnEviUmJmLgwIFo27Yt9u3bB1NT0yrXMzMzgxACRUVFsLKyqnKdh/1LSUl54n4fVd04mZqwtbXFkSNH8PHHH+Ott97CvXv34OzsjBdeeAFvv/12nYPXo2xsbPD2229jzpw5OHToULXrGRgYoFevXujVqxeA8tN/06ZNw7Zt27B+/Xq8/PLLj92PgYGB4nNWnezsbLRs2bJSu4uLi2L5o5ycnDB16lRMnToVABAdHY0hQ4bgtddeU4xdI9ImPIJEpKOMjY3x3nvvAQDOnDmjtMzMzAzBwcEICgpCp06dlMIRAAQFBaFp06bYvXu3UruhoaEihFX15efg4FCjqeYRERHIysrCmjVrFF+Ij5OYmIgBAwbAw8MDBw4cgK2tbbXr5uTkwNTUtNpwBJQHSTs7O/z5558QQjxx/w9VNV7pYSAsLi5Waq941A4AfHx8sHXrVmRnZyMpKQnjx4/HkiVLsHLlyhrX8CQzZ86Ep6cn3nzzzRr3zdLSUnGJh4qflbqyt7dHenp6pfbbt28DKP+sPE6vXr0QFhaGu3fvIjMzUy01EakTAxKRDqjqiwgAzp8/D+D//2qvKRMTE8yfPx9nzpzB8uXLa/w6Ly8vXL169Ynrubq6Yv78+RgxYgTCw8Mfu25SUhIGDBiAFi1aICoqCk2bNn3s+teuXat2kPhDxsbGePPNN3HhwgV8+OGHVa6TmZmJY8eOPb4jgCIoVryg4a5du6p9jUQigZ+fH7744gs0adIEJ0+eVCwzNTXFgwcPnrjf6piYmOCjjz5CXFwctm/fXmm5uj8r1enfvz/OnTun1DcA2LRpEyQSCfr27QsAyMjIqPICpTKZDJcvX4aFhQWaNGmilpqI1Imn2Ih0wKBBg9CiRQuMGDECXl5ekMvlSEpKwsqVK2FlZYXXXnut1tt8GCAWLlyI6OhojB8/Hi1btkRxcTGuXbuG77//HoaGhkpHn/r06YMlS5bg/v37lY5KVVSTqzZfvHgRAwYMAAB8/PHHuHz5Mi5fvqxY3rp1azRr1kzxXC6XIzY2FtOmTXvitufPn4/z58/jvffeQ2xsLJ577jm4ubkhLy8P0dHRWLt2LT744IMqL4b5qJCQELRv3x7z5s1DWVkZmjZtih07duCff/5RWm/Pnj2IjIzE6NGj0apVKwgh8McffyA3NxcDBw5UrOfj44PDhw9j9+7dcHZ2hrW1Ndq3b//E/jxqwoQJipl2FXXq1An9+/fHkCFD0Lp1axQVFeHEiRNYuXIlnJycavSzk8vl+Pfff6tcFhAQAFNTU7z++uvYtGkThg0bhiVLlsDDwwN79+5FZGQkZs6cqZiBuHnzZnz33Xd47rnnEBISAltbW9y8eRPff/89zp49i3fffRcmJia16j9Rg9DoEHEiqpFt27aJ5557TrRt21ZYWVkJY2Nj4e7uLiZPnizOnTuntG5VF4p8nF27dokRI0YIJycnYWRkJKytrYW/v7944403xIULF5TWvXLlipBIJOLXX39Vaq9qNlVVKs5ie/i66h4bNmxQev3ff/8tAIiEhIQa9+/PP/8Uw4YNE82aNRNGRkaiadOmom/fvmLNmjWiuLhYCPH/s9g+/fTTKrdx6dIlERYWJmxsbESzZs3EK6+8Ivbu3as0i+3ChQtiwoQJonXr1sLc3FzY2tqKzp07i40bNyptKykpSXTv3l1YWFgIAE+c1YdHZrE96sCBA4qf06M/9++++06MHTtWcWFQExMT0bp1azFjxgyRlpb2xJ/X42axARCXL19WrHvjxg3x3HPPCXt7e2FsbCzat28vPv30U6WLP547d0688cYbIjg4WOk96N27t9i8efMT6yHSFIkQtThBT0SN3ogRI1BWVlbl0Yv6NnnyZFy7dq1Gp8aIiFTBgEREtXLmzBkEBAQgJiYGISEhDbbfq1evokOHDjh48KDiCthERPWFg7SJqFa8vb2xYcMG3Llzp0H3m5qailWrVjEcEVGD4BEkIiIiogp4BImIiIioAgYkIiIiogoYkIiIiIgq4IUi60Aul+P27duwtrau8tYEREREpH2EEMjPz4eLiwsMDB5/jIgBqQ5u374NNzc3TZdBREREdZCWloYWLVo8dh0GpDqwtrYGUP4DtrGx0XA1REREVBNSqRRubm6K7/HHYUCqg4en1WxsbBiQiIiIdExNhsdwkDYRERFRBQxIRERERBUwIBERERFVoNcBKT8/HyEhIfD394ePjw/WrVv32HYiIiIiQM/vxSaTyVBcXAwLCwvcv38f3t7eiIuLQ5MmTapst7e3r9F2pVIpbG1tkZeXx0HaREREOqI23996fQTJ0NAQFhYWAICioiLIZDIIIaptJyIiIgK0PCBFR0djxIgRcHFxgUQiwc6dOyutExkZCU9PT5iZmSEoKAhHjx5VWp6bmws/Pz+0aNECCxYsgIODw2PbiYiIiLQ6IBUWFsLPzw+rVq2qcvm2bdswZ84cLF68GImJiejZsyeGDBmC1NRUxTpNmjRBcnIyUlJS8PPPPyMjI+Ox7URERERaHZCGDBmCjz76CGPHjq1y+eeff45p06Zh+vTp6NChA7788ku4ublh9erVldZ1cnKCr68voqOja9T+qOLiYkilUqUHERER6S+tDkiPU1JSgoSEBISFhSm1h4WFISYmBgCQkZGhCDNSqRTR0dFo3759te3VWbZsGWxtbRUP3oeNiIhIv+nsrUaysrIgk8ng5OSk1O7k5IQ7d+4AAG7evIlp06ZBCAEhBGbPng1fX18kJCRU2V6dRYsWYe7cuYrnD+/lQkRERPpJZwPSQxXvpyKEULQFBQUhKSmp0muqa6+OqakpTE1NVSmTiIiIdIjOnmJzcHCAoaGh4mjRQ5mZmZWOKhEREZFuEELg+6PXkJZzX6N16GxAMjExQVBQEKKiopTao6Ki0K1bNw1VRURERHVVXCbDG9uT8dHe85j2YxyKSmUaq0WrT7EVFBTgypUriucpKSlISkqCnZ0d3N3dMXfuXEyePBnBwcEIDQ3F2rVrkZqaihkzZmiwaiIiIqqt7IJivLQ5AfE37sHQQILJXT1gZmyosXq0OiDFx8ejb9++iucPB0qHh4dj48aNGD9+PLKzs7FkyRKkp6fD29sb+/btg4eHh6ZKJiIiolq6eCcf036Mw817D2BtZoTIiYHo2baZRmvS63ux1Rfei42IiEg9Dl3IxCu/JKKguAwe9hb4ITwEbRyt6mVftfn+1uojSERERKSfhBBYf+w6Pt57DnIBdG1lh9UTg9DU0kTTpQFgQCIiIqIGViqT490/z+KX2PJbgz0b4oYlo7xhYqQ9c8cYkIiIiKjB5N0vxcwtCYi5mg2JBFg8tAOm9fCsdF1DTWNAIiIiogaRklWIaRvjcC2rEJYmhvjq2QAM6Kid1y5kQCIiIqJ6F3M1CzN/Oom8B6VwbWKO78OD0cFZeyc6MSARERFRvfolNhXv7DyDMrlAgHsTrJ0cjGbW2n0LLwYkIiIiqhcyucCyfefx/T8pAICRfi5YMc5XoxeArCkGJCIiIlK7guIyvPZLIv6+kAkAmDuwHV7p10brBmNXhwGJiIiI1CpTWoSIDXE4ly6FqZEBVj7jh+G+Lpouq1YYkIiIiEhtLmfkI2JDHG7lPoCDlQm+Dw+Bv1sTTZdVawxIREREpBYnrmXjhU3xkBaVoZWDJTZO7Qx3ewtNl1UnDEhERESkst3Jt/HGr8kokckR5NEU308J1prbhtQFAxIRERHVmRAC3x9Nwcf7zgMABndqji+f9deJmWqPw4BEREREdSKTC3y45xw2xlwHAER0a4l3hneEoYFuzFR7HAYkIiIiqrWiUhle25qI/WczAABvD9POe6rVFQMSERER1UpOYQmm/xiHk6m5MDEsn8Y/wk+3pvE/CQMSERER1Vhq9n2Eb4hFSlYhbMyMsG5KMLq0std0WWrHgEREREQ1kpyWi2k/xiGroASuTcyxcWoI2jpZa7qsesGARERERE908EIGZm1JxINSGTo622DD1BA42Zhpuqx6w4BEREREj/XziVS8vfM05ALo1a4ZIicGwspUvyOEfveOiIiI6kwIgZUHLmHVoSsAgKeDWmDpWB8YGxpouLL6x4BERERElZSUybHw91P4I/EWAODV/m3x+oC2ejON/0kYkIiIiEiJtKgUM39KwLEr2TA0kGDpGG+MD3HXdFkNigGJiIiIFO7kFSFiQywu3MmHhYkhvp0YiL7tHTVdVoNjQCIiIiIAwMU7+YjYEIv0vCI4WJli49QQeLvaarosjWBAIiIiIsRczcJLmxOQX1SG1s0ssXFqZ7jZWWi6LI1hQCIiImrkdibewvzfklEqEwhp2RTrpgSjiYWJpsvSKAYkIiKiRkoIgdVHrmLFXxcBAMN8nLHyGT+YGRtquDLNY0AiIiJqhEplcrz751n8EpsKAJjewxNvDe0AA4PGMY3/SRiQiIiIGpm8+6WYuSUBMVezIZEA7wzriOd7eGq6LK3CgERERNSIXM8qxPM/xuHa3UJYmBji62cDMKCjk6bL0joMSERERI3EiWvZeOmnBOTeL4WzrRl+CA9BRxcbTZellRiQiIiIGoHfEm5i0R+nUCoT8Gthi3VTguFoY6bpsrQWAxIREZEek8sFPjtwEZGHrwIAhvo0x8qn/WFuwplqj8OAREREpKfyi0ox99dkRJ3LAADM7tsGcwe240y1GmBAIiIi0kMpWYV4YVM8rmQWwMTQAMvG+uCpoBaaLktnMCARERHpmUMXM/HqL4nILyqDk40p1kwKQoB7U02XpVMYkIiIiPTEwytjf7r/IoQAAt2bYM2kIA7GrgMGJCIiIj1wv6QMC347hT2n0gEAEzq74f2RnWBqxMHYdcGAREREpOPScu7jxc0JOJ8uhZGBBO+P7ISJXdwhkXAwdl0xIBEREemwgxcy8Pq2ZOQ9KIWDlQkiJwahs6edpsvSeQxIREREOqhMJscX/72Ebw+VX9/Iz60JVk8MhEsTcw1Xph8YkIiIiHTM3fxivPpLIo5fywYARHRribeGdoCJkYGGK9MfDEhEREQ6JDYlB7N/PonM/GJYmBjik6d8MdLPRdNl6R0GJCIiIh0ghMD3R1PwyV8XIJMLtHW0wupJgWjjaK3p0vQSAxIREZGWu1dYggW/n1LcMmSUvwuWjvGBpSm/xusLf7JERERa7MS1bMzZloT0vCKYGBrgnREdMYlT+OsdAxIREZEWKpPJ8c3BK/jm4GXIBdDKwRJfTwiAt6utpktrFBiQiIiItMzt3AeYszUJsddzAADjglrgg5GdeEqtAen1fMD8/HyEhITA398fPj4+WLdunWLZmDFj0LRpU4wbN06DFRIRESnbf/YOhnx1FLHXc2BlaoSvnvXHZ0/7MRw1MIkQQmi6iPoik8lQXFwMCwsL3L9/H97e3oiLi4O9vT0OHTqEgoIC/Pjjj/jtt99qtV2pVApbW1vk5eXBxsamnqonIqLGpKhUho/3nsfmf28AAPxa2OLrCQHwsLfUcGX6ozbf33odRw0NDWFhYQEAKCoqgkwmw8M82LdvXxw+fFiD1REREZU7dTMXr29LwtW7hQCAl3q1whth7XnhRw3S6p98dHQ0RowYARcXF0gkEuzcubPSOpGRkfD09ISZmRmCgoJw9OhRpeW5ubnw8/NDixYtsGDBAjg4ODRQ9URERI9XJpPjq/9extjIGFy9WwhHa1P8+HxnLOJVsTVOq3/6hYWF8PPzw6pVq6pcvm3bNsyZMweLFy9GYmIievbsiSFDhiA1NVWxTpMmTZCcnIyUlBT8/PPPyMjIaKjyiYiIqnXtbgGeWnMcX/z3EsrkAsN8nLF/Ti/0btdM06URtPwU25AhQzBkyJBql3/++eeYNm0apk+fDgD48ssvsX//fqxevRrLli1TWtfJyQm+vr6Ijo7G008/Xas6iouLUVxcrHgulUpr9XoiIqKHhBDY/O8NLN13HkWlclibGeHDUd4Y5e/CaxtpEa0+gvQ4JSUlSEhIQFhYmFJ7WFgYYmJiAAAZGRmKMCOVShEdHY327dvXel/Lli2Dra2t4uHm5qZ6B4iIqNG5nfsA4Rvi8O6fZ1FUKkf3NvbYP6cXRge4MhxpGa0+gvQ4WVlZkMlkcHJyUmp3cnLCnTt3AAA3b97EtGnTIISAEAKzZ8+Gr68vAGDQoEE4efIkCgsL0aJFC+zYsQMhISFV7mvRokWYO3eu4rlUKmVIIiKiGpPLBX6JS8WyfRdQUFwGUyMDLBzihfDQljAwYDDSRjobkB6qmLiFEIq2oKAgJCUlVfm6/fv313gfpqamMDU1rXONRETUeN3ILsSbv5/Cv9fKL/oY4N4En47z5U1mtZzOBiQHBwcYGhoqjhY9lJmZWemoEhERUUOTyQU2HEvBZwcuoqhUDjNjA8wf5IWIbi1hyKNGWk9nxyCZmJggKCgIUVFRSu1RUVHo1q2bhqoiIiICLmXk46nVMfhob/lA7G6t7XFgTm9M6+HJcKQjtPoIUkFBAa5cuaJ4npKSgqSkJNjZ2cHd3R1z587F5MmTERwcjNDQUKxduxapqamYMWOGBqsmIqLG6n5JGb7++wq+P3oNZXIBa1MjvDWsA54NceMgbB2j1QEpPj4effv2VTx/OFA6PDwcGzduxPjx45GdnY0lS5YgPT0d3t7e2LdvHzw8PDRVMhERNUJCCBw4l4Elu8/hVu4DAMCADo74cLQ3nG3NNVwd1YVe34utvvBebERE9FBq9n28v/ssDl7IBAC4NjHH+yM7YWBHjofVNrwXGxERUT3Lu1+KH46l4LsjV1FcJoexoQQv9GyF2f3awMKEX6+6ju8gERFRLWQVFOOHf1Kw+fgNFBSXAQBCW9njw9GdOHVfjzAgERER1cCdvCKsjb6Gn2NvoKhUDgDwam6NV/q1xVCf5hyErWcYkIiIiB4jLec+1hy5iu3xN1EiKw9Gvi1s8Uq/tujv5cgrYespBiQiIqIqXLtbgMjDV7Ej8RZk8vL5TCEtm+KVfm3Rs60DjxjpOQYkIiKiR1y4I8Wqg1ew93Q6Hs7z7tnWAbP7tkGXVvaaLY4aDAMSERERgOS0XKw6dAVR5zIUbQM6OGJW3zYIcG+qwcpIExiQiIioUYu7noNvDl5B9KW7AACJBBjq44xZfdqgowuvdddYMSAREVGjI4TAsSvZ+ObgZZxIyQEAGBpIMMrPBS/3bYM2jlYarpA0jQGJiIgaDSEEDl7IxDcHryApLRcAYGwowbggN8zs3Rru9haaLZC0BgMSERHpPblc4K+zd/DNwSs4ny4FAJgaGWBCZ3e82KsVXJrwfmmkjAGJiIj0VplMjl3JtxF5+CquZBYAACxNDDEp1APTe7RCM2tTDVdI2ooBiYiI9E5xmQx/nLyF1YevIjXnPgDAxswIEd09MbVbSzS1NNFwhaTtGJCIiEhvFJXKsDU2Fd9FX0N6XhEAwM7SBNN6eGJyqAdszIw1XCHpCgYkIiLSeQXFZdjy7w2sO5qCrIJiAICjtSle6t0aEzq7wcKEX3dUO/zEEBGRzsp7UIofY65j/bEU5N4vBQC4NjHHzD6tMS6oBcyMDTVcIekqBiQiItI52QXFWH8sBZtibiC/uAwA4OlgiZf7tMboAFcYGxpouELSdQxIRESkMzKkRVgXfQ1bTqTiQakMANDeyRqz+rXBMB9nGBrwBrKkHgxIRESk9W7eu481R67i1/ibKCmTAwB8W9hidt82GNDBCQYMRqRmDEhERKS1UrIKEXnoCnYk3kKZXAAAgj2a4pX+bdGrrQMkEgYjqh8MSEREpHUu3snHt4euYM+p2/hfLkKPNg6Y3a8NunjaMRhRvWNAIiIirXH6Zh5WHbqM/WczFG39vRwxq18bBLo31WBl1NgwIBERkcYl3MjBNwev4PDFuwAAiQQY4t0cL/dpA29XWw1XR40RAxIREWmEEALHr2bjm4NXcPxaNgDAQAKM8nfFy31ao62TtYYrpMaMAYmIiBqUEAKHLmZi1cErOJmaCwAwNpRgXFALzOjdGh72lpotkAgMSERE1EBkcoH/ns/A139fxtnbUgCAqZEBJnR2x4u9WsGlibmGKyT6fwxIRERU7zKlRZj9SyJiU3IAABYmhpjc1QPTenrC0dpMw9URVcaARERE9erfa9mY/XMisgqKYW5siOe6uGN23zZoammi6dKIqsWARERE9eLfa9lYffgqjlwqn5nWzskKqycFoXUzKw1XRvRkDEhERKRWMrnAV/+9hG8OXYH430Uexwa44qMx3rAw4dcO6QZ+UomISG2yC4oxZ1sSjl7OAgCMDXTF8909eS0j0jkMSEREpBYJN+5h1paTuCMtgrmxIT55ygej/F01XRZRnTAgERGRSoQQ2HDsOpbuO48yuUCrZpZYMykI7XihR9JhDEhERFQnMrnAr/Fp+DPpFv69Vj59f5ivM5Y/5QsrU369kG7jJ5iIiGotp7AEr21NVIw1MjKQYPGwDojo1hISiUTD1RGpjgGJiIhq5WRq+Vij9LzysUbPdnbDU4EtOBCb9AoDEhER1ci9whKs2H8R2+PTFGONVk8MQvvmHGtE+qdOAWnXrl21fs3AgQNhbs777BAR6aKktFy8/FMCbucVAQCG+Thj+TiONSL9VadP9ujRo2u1vkQiweXLl9GqVau67I6IiDSkpEyOn/69gWX/OY9SmUBLewssHOKFQZ2ac6wR6bU6R/87d+7A0dGxRutaW/PwKxGRLhFC4Id/UrBi/0WUlMkBAIM7NceKp31hY2as4eqI6l+dAlJ4eHitTpdNmjQJNjY2ddkVERE1sPyiUiz47RT+c+YOAMDUyADzwtpjek9PHjWiRkMixMM75VBNSaVS2NraIi8vj8GPiPTKhTtSzPzpJFKyCmFsKMFbQztgSmhLGBowGJHuq833t0FtN/7gwQPcunWrUvvZs2druykiItIivyXcxOhvjyElqxAutmb49aVQTO3uyXBEjVKtAtJvv/2Gdu3aYejQofD19cWJEycUyyZPnqz24oiIqP4Vlcqw6I9TmLc9GUWlcvRu1wx7X+2JAPemmi6NSGNqNQbpo48+wsmTJ9GsWTPEx8cjPDwcixcvxnPPPQeeqSMi0i3SolIkpeZixf4LOHNLCokEmNO/HV7p1wYGPGpEjVytAlJpaSmaNWsGAAgODkZ0dDTGjh2LK1eucOAeEZEO+etMOuZvP4X84jIAQFMLY3z5bAB6t2um4cqItEOtTrE5Ojri1KlTiuf29vaIiorC+fPnldqJiEg7lcrk+HjvOcz46STyi8tgbWqE/l6O2PNqT4YjokfUahbbzZs3YWRkhObNm1daduzYMXTv3l2txWkrzmIjIl2UIS3C7J9PIu76PQDACz09sWCwF4wNaz1fh0gn1eb7u1an2Fq0aFHtssYSjoiIdNHxq9l45ZdEZBUUw8rUCJ897YvB3s6aLotIa6n8Z0Nubi5WrlyJ+fPnIzIyEjExMSgsLFRHbSpLS0tDnz590LFjR/j6+mL79u2KZZ999hk6deoEb29v/PTTTxqskoio/sjlApGHr2Di9/8iq6AYXs2tsfuVHgxHRE+g8oUi+/Xrh9OnTyMkJASpqam4dOkS5HI5WrVqBX9/f/z666/qqrXW0tPTkZGRAX9/f2RmZiIwMBAXL17EtWvXEB4ejpiYGABA//79sXfvXjRp0qRG2+UpNiLSBXn3S/HG9iT893wmAOCpwBb4aLQ3zE0MNVwZkWbU2ym2qpw4cQJHjhxBcHAwAKC4uBhnz55FcnIykpOTVd28SpydneHsXP5XkqOjI+zs7JCTk4Pz58+jW7duMDMzAwD4+/vjr7/+wrPPPqvJcomI1ObMrTzM3JKAtJwHMDEywAcjO+HZEDfOOCaqIZVPsXl7e8PA4P83Y2pqisDAQEydOhVffvmlStuOjo7GiBEj4OLiAolEgp07d1ZaJzIyEp6enjAzM0NQUBCOHj1a5bbi4+Mhl8vh5uYGb29vHDp0CLm5ucjNzcXBgwervDo4EZGuEUJga2wqxq6OQVrOA7Roao4/ZnbDhM7uDEdEtaByQFq+fDneeecdFBUVqaMeJYWFhfDz88OqVauqXL5t2zbMmTMHixcvRmJiInr27IkhQ4YgNTVVab3s7GxMmTIFa9euBQB07NgRr776Kvr164cxY8YgJCQERkYqH0wjItKoByUyzP/tFBb+cRolZXL093LE3ld6wtvVVtOlEekclccg3bhxA5MnT0ZaWhomTJiALl26ICAgAO7u7uqqEQAgkUiwY8cOjB49WtHWpUsXBAYGYvXq1Yq2Dh06YPTo0Vi2bBmA8lN+AwcOxAsvvFDt7VCmT5+OMWPGYNiwYVUuLy4uRnFxseK5VCqFm5sbxyARkVYolcnx5X8vYVPMDeQXl8FAArwR1h4ze7fmFbGJHlGvN6ut6KmnnkJaWhr69u2L2NhYTJs2DZ6enrC3t0e/fv1U3Xy1SkpKkJCQgLCwMKX2sLAwxeBrIQQiIiLQr1+/SuEoM7N80OLFixcRGxuLQYMGVbuvZcuWwdbWVvFwc3NTc2+IiOomQ1qE59b9i28PXUV+cRkcrEzw0/QumNWXtwshUoXK55XOnTuHf//9F76+voq21NRUJCYmIikpSdXNVysrKwsymQxOTk5K7U5OTrhz5w6A8otXbtu2Db6+vorxS5s3b4aPjw9Gjx6N3NxcWFpaYsOGDY89xbZo0SLMnTtX8fzhESQiIk0qv7bRSWQVlMDK1AjvDO+AkX6unKVGpAYqB6SQkBAUFBQotbm7u8Pd3R2jRo1SdfNPVHHQoRBC0dajRw/I5fIqX/fwKFNNmJqawtTUtO5FEhGp0ZlbeYg8fAV/nbkDuQC8mltj9aQgeDpYaro0Ir2h8im2OXPm4P3338e9e/fUUU+NOTg4wNDQUHG06KHMzMxKR5WIiPSBEAJbTtzA2MgY7DtdHo7GBrpix8vdGY6I1EzlI0hPPfUUAKBt27YYOXIkunbtioCAAPj6+tbrURcTExMEBQUhKioKY8aMUbRHRUU1yJErIqKG9KBEhsU7TuOPxPJLkvRs64DpPVuhV1sHTt8nqgcqB6SUlBQkJSUhOTkZSUlJWL58Oa5fvw5DQ0N4eXnh1KlTdd52QUEBrly5UmlfdnZ2cHd3x9y5czF58mQEBwcjNDQUa9euRWpqKmbMmKFqt4iItMa1uwWY+dNJXMzIh4EEmD/ICy/1asVB2ET1SOWA5OHhAQ8PD6WjNvn5+UhKSlIpHAHlF3fs27ev4vnDgdLh4eHYuHEjxo8fj+zsbCxZsgTp6enw9vbGvn374OHhodJ+iYi0QVGpDEv3ncdP/96AXAAOVqb4ZkIAQlvba7o0Ir2n8nWQ/vnnH1hbW8PPz09dNWk93ouNiOrbjexCzPzpJM6lSwEAnVvaYdVzAXC0MdNwZUS6q0Gvg/TKK68gISGhUvulS5eQl5en6uaJiBqdA2fvYPg3/+BcuhT2liZYMykQ217qynBE1IBUDkgXL15E7969K7UfOnQIEyZMUHXzRESNRplMjmX/OY8XNycgv6gMQR5NsffVnhjs7cyB2EQNTOWAZGNjg5ycnErtPXv2RGxsrKqbJyJqFDLzizDx+xP47sg1AMDz3T2x9cWuaG7Lo0ZEmqByQBo5ciQ+++yzyhs2MEBJSYmqmyci0nsnrmVj2Nf/4ERKDixNDPHtc4F4d0RHGBuq/CuaiOpI5X99S5cuxdGjRzFgwADFrLWioiIsX75c6fYjRESkTAiB745cxXPfn8Dd/GK0c7LCrld6YJivs6ZLI2r0VJ7m7+DggOPHj2PmzJnw9/eHqakpysrKYGtri927d6ujRiIivSMtKsW8X5Nx4FwGAGBMgCs+HuMNCxOVfy0TkRqo5V+ih4cH9u3bh7S0NCQmJsLY2BhdunSBnZ2dOjZPRKRXzt2WYuaWBNzIvg8TQwO8O6IjJnZx50BsIi1S54D01ltvYfTo0ejcubOizc3NjXe5JyKqRu79EuxKvo2P955HcZkcrk3METkxEH5uTTRdGhFVUOeAlJ6ejuHDh8PQ0BAjRozAqFGjMGDAAN71noiogjKZHJ8duIS10Vch/9+lefu0b4YvnvFHU0sTzRZHRFVS6UraQgj8888/2L17N3bt2oVbt25h4MCBGDlyJIYPHw4HBwd11qo1eCVtIqqpzPwivPpLIv69Vn45lCYWxpjewxMv92nDe6kRNbDafH+rfKuRR50/fx67d+/Gn3/+ifj4eHTp0gUjR47EhAkT4Orqqq7daBwDEhHVRGxKDmb/fBKZ+cWwNDHE8nG+GO7roumyiBotjQWkR929exe7du3Crl270LNnT8ybN68+dqMRDEhE9DhCCHx/NAWf/HUBMrlAOycrRE4MQhtHK02XRtSoNWhAiouLw8KFC3H37l20adMG/v7+CAgIgL+/v94O2GZAIqLqSItKsWD7Kfx19g4AYLS/C5aO9eH0fSIt0KABycvLC+7u7hg9ejSuXbuGxMREJCUl4d69e2jatCmys7NV2bxWYkAioqqcT5di5k8JuJ59H8aGErw7ohMmcfo+kdaozfe3yn/SpKWlYe/evWjdurVS+40bN5CUlKTq5omIdMJvCTfx9s7TKCotn77/7cRA+HP6PpHOUjkghYaG4ubNm5UCkoeHBzw8PFTdPBGRVisqleGD3efwS2wqAKB3u2b4cjyn7xPpOpUD0ty5c/Hhhx/Cx8eHV84mokYlLec+Zm5JwJlbUkgkwJz+7fBKP07fJ9IHKgek4cOHQyKRoG3bthgxYgRCQ0MREBAAPz8/XjSSiPTWwQsZeH1bMvIelKKphTG+fDYAvds103RZRKQmKgeky5cvIzk5WfH45JNPcOPGDRgZGcHLywunTp1SR51ERFpBJhf4POoivj10FQDg79YE304MhGsTcw1XRkTqpHJAat26NVq3bo2xY8cq2qRSKZKSkhiOiEivZBUU47WtiTh2pXx2bnioBxYP6wgTIwMNV0ZE6qbyNP+0tDS9vd5RdTjNn6jxSbiRg1lbEnFHWgQLE0MsG+uDUf76c4cAosagNt/fKv/Z4+XlhXfeeQeFhYWqboqISOsIIfDDPykY/92/uCMtQutmlvhzVneGIyI9p3JAioqKwoEDB9C2bVts2LBBHTUREWmFguIyzP45ER/uOYcyucBwX2f8ObsH2jpZa7o0IqpnarsX26ZNm7B48WI4ODjgiy++QJ8+fdSxWa3EU2xE+i27oBi7k29jY8x1xVWxFw/tgPBuLXlVbCId1qCn2B6aMmUKLl26hBEjRmDYsGEYM2YMrly5oq7NExE1iLjrORjy1VG8v/scrmffh7OtGba9FIqI7p4MR0SNiFqnXgghEBYWhhdffBG7du2Ct7c33njjDeTn56tzN0REaieEwPdHr+HZtf8iM78Yrk3MMb2HJ/a80gOB7k01XR4RNTCVp/mvWbMGcXFxiIuLw/nz52FoaAhfX1/MmjUL/v7+2LJlCzp27IgdO3YgODhYHTUTEalVflEpFvx2Cv85cwcAMNrfBUvH+sDCROVfkUSko1Qeg+Tm5oauXbsqHsHBwZWuoL106VL8/PPPOHPmjErFaguOQSLSHxfv5GPGTwlIySqEsaEE747ohEld3Hk6jUgP1eb7W22DtB8nIyMDLi4ukMlk9b2rBsGARKQfdiTexFt/nMGDUhlcbM3w7cRABPB0GpHeqs33d52OH3fr1g3+/v6Kh4+PD8zNq7/MvqOjIw4ePFiXXRERqV1xmQwf7jmHn/5NBQD0bOuAr54NgJ2liYYrIyJtUaeANGrUKCQnJ+Orr77CpUuXAABt2rSBn5+fIjT5+fnB2dkZACCRSNC7d2/1VU1EVEc3793HrC0nkXwzDxIJ8Gq/tni1f1sYGvCUGhH9P5VPsSUkJGDUqFHo1asXjI2NcfLkSZw9exYSiQQODg7IyMhQV61ag6fYiHTT4YuZmLMtCbn3S9HEwhhfjvdHn/aOmi6LiBpIvZ9ie9SLL76Ib7/9FqNGjVK07du3Dy+++CIiIiJU3TwRkcpkcoGv/76Mrw9ehhCAbwtbRE4MRIumFpoujYi0lMrXQTp//jx8fX2V2oYOHYrIyEicOHFC1c0TEakkp7AEERti8dXf5eFoUld3bJ8RynBERI+lckDq0qUL1qxZU6ndx8cHiYmJqm6eiKjOktJyMfzrozh6OQtmxgb4YrwfPhrtA1MjQ02XRkRaTuVTbJGRkejatSsyMjIwd+5ceHt7o6SkBJ999hksLS3VUSMRUa0IIfDTvzewZM85lMoEPB0ssXpSILyac8wgEdWMygGpQ4cOOHHiBGbPng1/f38YGxtDLpfDyMgIP/zwgzpqJCKqsfslZVj0x2n8mXQbADC4U3N8+rQvrM2MNVwZEekStVxH38vLC//973+RmpqKpKQkGBgYICgoSDHNn4ioIVy9W4CZPyXgUkYBDA0kWDTEC9N68CazRFR7dQpIp06dgre3NwwMlIcwubu7w93dvdL6Z8+eRfv27WFkxPsaEVH92Hc6HfO3J6OwRAZHa1Osei4QnT3tNF0WEemoOg3SDggIQHZ2do3XDw0NRWpqal12RUT0WKUyOZbsPoeXt5xEYYkMXVvZYc+rPRiOiEgldTqkI4TAO++8AwuLmk2TLSkpqctuiIge605eEWb/fBLxN+4BAGb0bo15Ye1gZKjyBF0iauTqFJB69eqFixcv1nj90NDQx96rjYiotmKuZOHVrYnIKiiBtZkRVj7th7BOzTVdFhHpiToFpMOHD6u5DCKimpHLBdZEX8Vn+y9CLoAOzjZYMykQHva8rAgRqQ9HTRORzsi7X4o3tifhv+czAQDjglrgo9HeMDPmhR+JSL0YkIhIJ5y5lYeZWxKQlvMAJkYGWDKyE8aHuHEKPxHVCwYkItJ62+JS8c6fZ1FSJkeLpuZYMykI3q62mi6LiPQYAxIRaSUhBGKuZuPn2FTsPZUOAOjv5YjPn/GHrQWvik1E9YsBiYi0TmFxGRb+cRq7k8tvF2IgAd4Ia4+ZvVvDwICn1Iio/qnlYiFHjx7FpEmTEBoailu3bgEANm/ejH/++UcdmyeiRuRKZgFGfXsMu5Nvw9BAgn5ejvhpehfM6tuG4YiIGozKAen333/HoEGDYG5ujsTERBQXFwMA8vPzsXTpUpULVEVaWhr69OmDjh07wtfXF9u3bwcAXLx4Ef7+/oqHubk5du7cqdFaiQjYc+o2Rq36B1cyC+BkY4ptL3bF+ogQdGvtoOnSiKiRkQghhCobCAgIwOuvv44pU6bA2toaycnJaNWqFZKSkjB48GDcuXNHXbXWWnp6OjIyMuDv74/MzEwEBgbi4sWLsLT8/+ulFBQUoGXLlrhx44ZS++NIpVLY2toiLy8PNjY29VU+UaNRKpNj2b4LWH8sBQAQ2soeX08IQDNrUw1XRkT6pDbf3yqPQbp48SJ69epVqd3Gxga5ubmqbl4lzs7OcHZ2BgA4OjrCzs4OOTk5SkFo165d6N+/f43DERGpV4a0CLO2/P/tQmb2aY03BvJ2IUSkWSr/BnJ2dsaVK1cqtf/zzz9o1aqVStuOjo7GiBEj4OLiAolEUuVpsMjISHh6esLMzAxBQUE4evRolduKj4+HXC6Hm5ubUvuvv/6K8ePHq1QnEdXN8avZGPb1UcTfuAdrMyOsnRyENwd7MRwRkcap/FvopZdewmuvvYYTJ05AIpHg9u3b2LJlC+bNm4eXX35ZpW0XFhbCz88Pq1atqnL5tm3bMGfOHCxevBiJiYno2bMnhgwZgtTUVKX1srOzMWXKFKxdu1apXSqV4tixYxg6dKhKdRJR7QghsObIVUz8/l9kFZTAq7k1ds/uwXupEZHWUHkMEgAsXrwYX3zxBYqKigAApqammDdvHj788EOVC3xIIpFgx44dGD16tKKtS5cuCAwMxOrVqxVtHTp0wOjRo7Fs2TIAQHFxMQYOHIgXXngBkydPVtrm5s2bsX//fvz000+P3XdxcbFi8DlQHqzc3Nw4BomoDqRFpZj3azIOnMsAADwVWH67EHMT3i6EiOpXbcYgqeU49scff4ysrCzExsbi33//xd27d9UajqpSUlKChIQEhIWFKbWHhYUhJiYGQPlfqREREejXr1+lcATU/PTasmXLYGtrq3hUPE1HRDVzPl2Kkd/8gwPnMmBiaIClY3zw2dO+DEdEpHVUCkilpaXo27cvLl26BAsLCwQHB6Nz586wsrJSV33VysrKgkwmg5OTk1K7k5OTYubcsWPHsG3bNuzcuVMxpf/06dMAgLy8PMTGxmLQoEFP3NeiRYuQl5eneKSlpam/Q0R67veEmxgTeQzXs+/DtYk5fpsZiue6uPNeakSklVSaxWZsbIwzZ85o9BdcxX0LIRRtPXr0gFwur/J1tra2yMjIqNE+TE1NYWrK6cZEdVFUKsOSPefw84nysYG92zXDl+P90dTSRMOVERFVT+VTbFOmTMEPP/ygjlpqxcHBAYaGhpWus5SZmVnpqBIRaUZazn08891x/HwiFRIJ8PqAdtgQEcJwRERaT+XrIJWUlOD7779HVFQUgoODK11P6PPPP1d1F1UyMTFBUFAQoqKiMGbMGEV7VFQURo0aVS/7JKKaO3wxE3O2JSH3fimaWBjjq2cD0LtdM02XRURUIyoHpDNnziAwMBAAcOnSJZULelRBQYHSNZZSUlKQlJQEOzs7uLu7Y+7cuZg8eTKCg4MRGhqKtWvXIjU1FTNmzFBrHURUcylZhZi/PVlx4Ue/Frb4dmIgWjS10HBlREQ1p3JAOnTokDrqqFJ8fDz69u2reD537lwAQHh4ODZu3Ijx48cjOzsbS5YsQXp6Ory9vbFv3z54eHjUW01EVLWrdwuwbN95RF/KQomsfOzfpK7ueGd4R5gacZYaEekWla+DtGTJkuo3LpHgnXfeUWXzWon3YiNStu90OuZvT0ZhiQwAENKyKZaN9UEbR2sNV0ZE9P8a9F5sO3bsUHpeWlqKlJQUGBkZoXXr1noZkIioXKlMjuX/uYDv/ym/yWxnTzu8PqAdOnvawdCA0/eJSHepHJASExMrtUmlUkRERCgNniYi/ZIpLcLsnxMRez0HAPBS71aYH9ae91EjIr2glluNVOXMmTMYPnw4rl+/Xh+b1yieYqPGLjYlB7N+Pom7+cWwNjXCp0/7YbA376NGRNqtQU+xVSc3Nxd5eXn1tXki0gAhBH74JwXL/nMBMrlAeydrrJ4UiFbN6v/q+UREDUnlgPT1118rPRdCID09HZs3b8bgwYNV3TwRaYmC4jK8+fsp7D2VDgAY5e+CZWN9YGFSb39nERFpjMq/2b744gul5wYGBmjWrBnCw8OxaNEiVTdPRFrgSmYBZvyUgCuZBTAykOCd4R0xJdSD91EjIr2lckBKSUlRRx1EpKUencLvZGOKyImBCPKw03RZRET1isfGiahKZTI5lv91AeuOlv8R1LWVHb6ZEIhm1rxxMxHpP5UD0oMHDyCEgIVF+W0Ebty4gR07dqBDhw4YNGiQygUSUcPLzC/CKz8n4kTK/6bw92qF+YM4hZ+IGg+VA9KoUaMwduxYzJgxA7m5uejSpQuMjY2RlZWFzz//HDNnzlRHnUTUQOKv5+DlLSeRmV8MK1MjfDrOF0N8nDVdFhFRg1L5z8GTJ0+iZ8+eAIDffvsNTk5OuHHjBjZt2lRphhsRaS8hBNb/k4Jn1/6LzPxitHW0wp+zuzMcEVGjpPIRpPv378Pauvx+SwcOHMDYsWNhYGCArl274saNGyoXSET1r7C4DAv/OI3dybcBAMN9nbH8KV9YmnKYIhE1TiofQWrTpg127tyJtLQ07N+/H2FhYQCAzMxMXmWaSAdcu1uAMZHHsDv5NowMJHh3eEd8MyGA4YiIGjWVA9K7776LefPmoWXLlujSpQtCQ0MBlB9NCggIULlAIqo/f525g5GrjuFSRgEcrU3xy4td8XwPT17fiIgaPbXci+3OnTtIT0+Hn58fDAzKM1dsbCxsbGzg5eWlcpHahvdiI11XJpPj0wMX8d2RawCAzp52WPVcABytzTRcGRFR/WnQe7E9ePAANjY2aN68/EaVj07z79y5s6qbJyI1u5tfjFd/ScTxa9kAgOk9PPHmEC8Ycwo/EZECp/kTNSIJN+5h1paTuCMtgoWJIT4d54dhvpylRkRUEaf5EzUCQgj8GHMdz649jjvSIrRuZolds7szHBERVYPT/In03P2SMrz1x2nsTCqfwj/MxxnLx/nCirPUiIiqxWn+RHosJasQY76Nwc6k2zA0kODtYR2w6rkAhiMioidQ6zT/zp07c5o/kZY4cPYORn7zDy5m5MPByhQ/T++C6T1bcQo/EVENqHWav7+/v+KXL6f5E2lGmUyOlVGXsPrwVQBAsEdTfDsxEE42nMJPRI1bbb6/1TKv9/Lly1i5ciW6d++OW7duAQAuXryIrKwsdWyeiGoou6AY4RtiFeHo+e6e+OXFrgxHRES1pHJA+v333zFo0CCYm5vj5MmTKC4uBgDk5+dj6dKlKhdIRDWTmHoPw7/5B8euZMPCxBBfTwjAuyM68vpGRER1oPJvzo8++ghr1qzBunXrYGxsrGjv1q0bTp48qermiegJhBDY/O8NPPPdcaTnFaGVgyV2zuqOkX4umi6NiEhnqTyV5eLFi+jVq1eldhsbG+Tm5qq6eSJ6jAclMizeeRp/nCw/tT24U3N8+rQvrM2Mn/BKIiJ6HJUDkrOzM65cuYKWLVsqtf/zzz9o1aqVqpsnoioIIXApowCvbU3EhTv5MJAAbw72wou9OEuNiEgdVA5IL730El577TWsX78eEokEt2/fxvHjxzFv3jy8++676qiRiB5x9W4BXv0lEWdvSwEADlYm+HpCALq1dtBwZURE+kPlgLRgwQLk5eWhb9++KCoqQq9evWBqaop58+Zh9uzZ6qiRiP5n/9k7eOPXZBQUlwEAQlvZ44vx/mhuy1lqRETqpJbrIAHltxw5d+4c5HI5OnbsCCsrK3VsVivxOkjU0GRygZUHLiLyf9P3O7e0w5fP+sOlibmGKyMi0h21+f5W6QhSaWkpwsLC8N1336Fdu3YIDg5WZXNEVIWcwhK8tjURRy+XX1dsaveWeGtoB07fJyKqRyoFJGNjY5w5c4aDQonqyembeZjxUwJu5T6AubEhPnnKB6P8XTVdFhGR3lP5T9ApU6bghx9+UEctRPSIX+PS8NSaGNzKfQAPewvsmNWN4YiIqIGoPEi7pKQE33//PaKiohAcHAxLS0ul5Z9//rmquyBqVIrLZHh/1zn8EpsKAOjv5YjPx/vD1pzXNiIiaigqB6QzZ84gMDAQAHDp0iWlZTz1RlQ76XkPMOOnk0hOy4VEArw+oB1m920DAwP+WyIiakgqB6RDhw6pow6iRu/EtWzM+vkksgpKYGtujC+f9Uff9o6aLouIqFGq8xik+/fvY9asWXB1dYWjoyOee+45ZGVlqbM2okZBCIENx1Iw8fsTyCoogVdza+ye3YPhiIhIg+p8BOm9997Dxo0bMXHiRJiZmeGXX37BzJkzsX37dnXWR6TXHpTI8NaO09iRWH4vtZF+LvjkKR9YmKh8cJeIiFRQ59/Cf/zxB3744Qc8++yzAIBJkyahe/fukMlkMDQ0VFuBRPoqLec+XtqcgHPpUhgaSPDW0A54vntLjt0jItICdQ5IaWlp6Nmzp+J5586dYWRkhNu3b8PNzU0txRHpq+hLd/Hq1kTk3i+FvaUJVj0XiNDW9poui4iI/qfOAUkmk8HExER5Y0ZGKCsrU7koIn0lhMCaI9fw6f4LkAvAr4UtVk8K4i1DiIi0TJ0DkhACERERMDU1VbQVFRVhxowZStdC+uOPP1SrkEhPFBSXYcFvydh3+g4A4JngFlgyyhtmxjwlTUSkbeockMLDwyu1TZo0SaViiPTVtbsFeGlzAi5nFsDYUIL3RnTCxC7uHG9ERKSl6hyQNmzYoM46iPTWf89l4PVtScgvLoOjtSlWTwpCkEdTTZdFRESPwbnERPVELhf48u/L+PrvywCAYI+miJwYCEcbMw1XRkRET8KARFQP8h6UYu62JPx9IRMAEB7qgcXDOsLESOX7QxMRUQNgQCJSs0sZ+XhpcwJSsgphamSAj8f4YFxQC02XRUREtcCARKRGe0+lY/5vybhfIoNrE3N8NzkI3q62mi6LiIhqiQGJSA3KZHJ8euAivjtyDQDQvY09vpkQCDtLkye8koiItJFeD4hIS0tDnz590LFjR/j6+irdJ87IyAj+/v7w9/fH9OnTNVgl6bp7hSWI2BCnCEcv9WqFH6d2ZjgiItJhEiGE0HQR9SU9PR0ZGRnw9/dHZmYmAgMDcfHiRVhaWsLBwQFZWVl12q5UKoWtrS3y8vJgY2Oj5qpJl5y5lYeXNifgVu4DmBsbYsU4X4zwc9F0WUREVIXafH/r9Sk2Z2dnODs7AwAcHR1hZ2eHnJwcpSt9E9XVHydvYtEfp1FcJoeHvQXWTg5G++bWmi6LiIjUQKtPsUVHR2PEiBFwcXGBRCLBzp07K60TGRkJT09PmJmZISgoCEePHq1yW/Hx8ZDL5Yob6UqlUgQFBaFHjx44cuRIfXaD9EypTI73d53F3F+TUVwmR9/2zbBrdg+GIyIiPaLVAamwsBB+fn5YtWpVlcu3bduGOXPmYPHixUhMTETPnj0xZMgQpKamKq2XnZ2NKVOmYO3atYq269evIyEhAWvWrMGUKVMglUqrraO4uBhSqVTpQY3T3fxiTFx3AhtjrgMAXu3fFj+Eh8DW3FizhRERkVrpzBgkiUSCHTt2YPTo0Yq2Ll26IDAwEKtXr1a0dejQAaNHj8ayZcsAlIebgQMH4oUXXsDkyZOr3PaQIUPw4YcfIjg4uMrl77//Pj744INK7RyD1Lgkp+Xipc0JuCMtgrWpET4f74+BHZ00XRYREdVQbcYgafURpMcpKSlBQkICwsLClNrDwsIQExMDABBCICIiAv369VMKR/fu3UNxcTEA4ObNmzh37hxatWpV7b4WLVqEvLw8xSMtLa0eekTa7PeEm3j6u+O4Iy1C62aW2Dm7O8MREZEe09lB2llZWZDJZHByUv6ScnJywp07dwAAx44dw7Zt2+Dr66sYv7R582bk5+fjpZdegoGBASQSCb766ivY2dlVuy9TU1OYmprWW19Ie5XJ5Fi67wLWH0sBAAzo4IQvxvvB2oyn1IiI9JnOBqSHJBKJ0nMhhKKtR48ekMvlVb7u9OnT9V4b6bacwhLM/vkkYq5mAygfbzSnf1sYGEie8EoiItJ1OhuQHBwcYGhoqDha9FBmZmalo0pEtXXuthQvbo7HzXsPYGFiiM+f8cNgb2dNl0VERA1EZ8cgmZiYICgoCFFRUUrtUVFR6Natm4aqIn2w59RtPLU6BjfvPYC7nQV2vNyd4YiIqJHR6iNIBQUFuHLliuJ5SkoKkpKSYGdnB3d3d8ydOxeTJ09GcHAwQkNDsXbtWqSmpmLGjBkarJp0lUwu8NmBi1h9+CoAoGdbB3wzIQBNLHjLECKixkarA1J8fDz69u2reD537lwAQHh4ODZu3Ijx48cjOzsbS5YsQXp6Ory9vbFv3z54eHhoqmTSUXkPSvHa1kQcvngXQPn91BYM9oIhxxsRETVKOnMdJG3Ce7Hpl8sZ+XhxcwJSsgphamSAFeN8McrfVdNlERGRmvFebEQ1dODsHcz9NRkFxWVwbWKO7yYHwdvVVtNlERGRhjEgUaMklwt8c/AKvvjvJQBAF087RE4MhL0Vr3dFREQMSNQIFRSXYe62JBw4lwEACA/1wNvDO8LYUGcndRIRkZoxIFGjcj2rEC9sisflzAKYGBrgo9HeeCbETdNlERGRlmFAokbj6OW7mLXlJKRFZXC0NsWayUEIdG+q6bKIiEgLMSCR3hNCYGPMdXy09zxkcgF/tyb4bnIQnGzMNF0aERFpKQYk0mvFZTK8u/MstsWnAQCeCmyBj8d4w8zYUMOVERGRNmNAIr11N78YM39KQPyNezCQAG8N7YBpPTwr3eCYiIioIgYk0ktnb+fhhR/jcTuvCNZmRvhmQgD6tHfUdFlERKQjGJBI7+w7nY43fk3Gg1IZPB0s8X14MFo3s9J0WUREpEMYkEhvyOUCX/59GV//fRlA+c1mV00IhK2FsYYrIyIiXcOARHqhsLgMb/yajL/O3gEATO/hiYVDvGDEiz8SEVEdMCCRzkvLuY8XNsXjwp388os/jvHGM8G8+CMREdUdAxLptNiUHMz4KQE5hSVwsDLFd5MDEeRhp+myiIhIxzEgkc76JTYV7+w8gzK5QCcXG6ybEgyXJuaaLouIiPQAAxLpnFKZHB/tOYcfj98AAAzzdcZn4/xgbsKLPxIRkXowIJFOuVdYglk/n0TM1WwAwLywdpjVtw0v/khERGrFgEQ640pmPqb9GI8b2fdhYWKIL8b7Y1Cn5poui4iI9BADEumE6Et3Mevnk8gvKoNrE3N8Hx6MDs42mi6LiIj0FAMSab0fY65jyZ5zkMkFgj2a4rvJQbC3MtV0WUREpMcYkEhrlcnkWLLnHDb9bzD22EBXLBvrA1MjDsYmIqL6xYBEWinvQSlm/3wSRy9nAQAWDG6Pmb1bczA2ERE1CAYk0jo3sgvx/MY4XL1bCHPj8sHYg705GJuIiBoOAxJplRPXsjHjpwTcu1+K5jZm+D48GN6utpoui4iIGhkGJNIav8anYfGO0yiVCfi2sMW6KcFwsjHTdFlERNQIMSCRxsnkAsv/uoC10dcA8MrYRESkeQxIpFGFxWV4bWsS/ns+AwDwav+2mNO/LQwMOBibiIg0hwGJNOZW7gNM2xiHC3fyYWJkgE/H+WKUv6umyyIiImJAIs04mXoPL25KQFZBMRysTLF2ShAC3ZtquiwiIiIADEikAX8m3cL8306hpEwOr+bW+CEiBK5NzDVdFhERkQIDEjWY41ez8fXfl3H8WjYAYEAHR3z5bACsTPkxJCIi7cJvJmoQv8Sm4u2dZyCTCwDAS71aYcFgLxhyMDYREWkhBiSqV3K5wCePTOEf2NEJM3q3RpAHxxsREZH2YkCienO/pAxztibhwLnyKfxzBrTFa/3b8n5qRESk9RiQqF5kSIsw/cd4nL6VBxNDA6wY54vRAZzCT0REuoEBidTufLoUz2+MQ3peEZpaGGPtlGCEtLTTdFlEREQ1xoBEanXk0l28/FMCCktkaNXMEhsiQuBhb6npsoiIiGqFAYnUZmtsKhb/b6Za11Z2+G5SMGwtjDVdFhERUa0xIJHK5HKBlVEX8e2hqwCAMQGu+OQpH5ga8WazRESkmxiQSCXFZTLM334Ku5JvAwBe7dcGrw9sx5lqRESk0xiQqM5y75fgxU0JiL2eAyMDCZaO9cEzwW6aLouIiEhlDEhUJ6nZ9xGxMRbX7hbC2tQIqycFoUdbB02XRUREpBYMSFRrian3MP3HeGQXlsDF1gzrp4bAq7mNpssiIiJSGwYkqpW/ztzBnG2JKCqVo5OLDdZHhMDJxkzTZREREakVAxLV2A//pOCjvecgBNC3fTOsei4Qlqb8CBERkf7htxs9kUwu8OGec9gYcx0AMLGLOz4Y2QlGhgaaLYyIiKieMCDRY90vKcNrW5MQ9b8bzi4c4oWXerXiNH4iItJrDEhUrbv5xZj+YxySb+bBxMgAnz/jh+G+Lpoui4iIqN4xIFGVrmTmI2JDHG7ee4CmFsZYNyUYwbzhLBERNRJ6PYgkLS0Nffr0QceOHeHr64vt27cDAPLz8xESEgJ/f3/4+Phg3bp1Gq5Uu/x7LRtjI2Nw894DeNhb4I+XuzMcERFRoyIRQghNF1Ff0tPTkZGRAX9/f2RmZiIwMBAXL16EmZkZiouLYWFhgfv378Pb2xtxcXGwt7ev0XalUilsbW2Rl5cHGxv9uv7Pn0m3MG97MkplAoHuTbBuSjDsrUw1XRYREZHKavP9rden2JydneHs7AwAcHR0hJ2dHXJycuDm5gYLCwsAQFFREWQyGfQ4J9aIEAJro69h2X8uAACG+jTH58/4w8yYN5wlIqLGR6tPsUVHR2PEiBFwcXGBRCLBzp07K60TGRkJT09PmJmZISgoCEePHq1yW/Hx8ZDL5XBzK79XWG5uLvz8/NCiRQssWLAADg6N9zYZcrnAkj3nFOHo+e6eWDUhkOGIiIgaLa0OSIWFhfDz88OqVauqXL5t2zbMmTMHixcvRmJiInr27IkhQ4YgNTVVab3s7GxMmTIFa9euVbQ1adIEycnJSElJwc8//4yMjIxq6yguLoZUKlV66IuiUhle+SURG45dBwAsHtoB747oCAMDTuMnIqLGS2fGIEkkEuzYsQOjR49WtHXp0gWBgYFYvXq1oq1Dhw4YPXo0li1bBqA83AwcOBAvvPACJk+eXOW2Z86ciX79+uHpp5+ucvn777+PDz74oFK7ro9ByntQihc3xeNESg6MDSX47Gk/jPJ31XRZRERE9aI2Y5C0+gjS45SUlCAhIQFhYWFK7WFhYYiJiQFQPq4mIiIC/fr1UwpHGRkZiqNAUqkU0dHRaN++fbX7WrRoEfLy8hSPtLS0euhRw7qTV4Rn1hzHiZQcWJka4cepnRmOiIiI/kdnB2lnZWVBJpPByclJqd3JyQl37twBABw7dgzbtm2Dr6+vYvzS5s2bUVJSgmnTpkEIASEEZs+eDV9f32r3ZWpqClNT/ZnJdSkjHxHrY3E7rwiO1qbYOLUzOrro7pEwIiIiddPZgPRQxVteCCEUbT169IBcLq/ydUlJSfVdmlaKTcnB9B/jIC0qQ6tmlvhxame42VlouiwiIiKtorMBycHBAYaGhoqjRQ9lZmZWOqpE5f46k45XtyahpEyOII+m+H5KMJpammi6LCIiIq2js2OQTExMEBQUhKioKKX2qKgodOvWTUNVaa9Nx69j5paTKCmTY2BHJ2yZ3oXhiIiIqBpafQSpoKAAV65cUTxPSUlBUlIS7Ozs4O7ujrlz52Ly5MkIDg5GaGgo1q5di9TUVMyYMUODVWsXIQQ+3X8RkYevAgCe6+KOJSM7wchQZ7MxERFRvdPqgBQfH4++ffsqns+dOxcAEB4ejo0bN2L8+PHIzs7GkiVLkJ6eDm9vb+zbtw8eHh6aKlmrlMrkePP3U/jj5C0AwBsD22F2vzaVxm0RERGRMp25DpI20YV7sRUUl+HlLScRfekuDA0kWDbGB8+EuGm6LCIiIo3hvdgaubv5xXh+YxxO38qDubEhIicGoq+Xo6bLIiIi0hkMSHomJasQ4etjkZpzH3aWJlgfEQJ/tyaaLouIiEinMCDpkVM3czF1QxyyC0vgbmeBTc93RksHS02XRUREpHMYkPTEP5ez8NLmeBSWyODjaov1ESFoZq0/V/8mIiJqSAxIemDvqXS8vi0JJTI5urexx3eTg2FlyreWiIiorvgtquM2/3sD7/55BkIAQ32a44vx/jA1MtR0WURERDqNAUlHCSHw9d9X8MV/LwEAJnZxx5JR3jA04DWOiIiIVMWApIPkcoEPdp/Fj8dvAABe7d8Wrw9oywtAEhERqQkDko4pKZPjje3J2J18GxIJ8P6ITgjv1lLTZREREekVBiQdUlhchhk/JeDo5SwYG0qw8hl/jPRz0XRZREREeocBSUfkFJZg6sY4JKflwtzYEN9NDkKvds00XRYREZFeYkDSAbdyH2DKDydw9W4hmlgYY0NECALcm2q6LCIiIr3FgKTlrmTmY/IPsUjPK4KzrRk2T+uMNo7Wmi6LiIhIrzEgabHE1HuYujEOufdL0bqZJTZP6wKXJuaaLouIiEjvMSBpqSOX7mLG5gQ8KJXBz60JNkaEoKmliabLIiIiahQYkLTQn0m3MG97MkplAj3bOmDNpCBY8tYhREREDYbfulpm47EUfLDnHIQARvi5YOXTfjAxMtB0WURERI0KA5IW2Rqbivd3nwMAhId64L0RnWDAW4cQERE1OB6a0CKDOjVHW0crzB3YDu+PZDgiIiLSFB5B0iJNLU2wa3YPmJsYaroUIiKiRo1HkLQMwxEREZHmMSARERERVcCARERERFQBAxIRERFRBQxIRERERBUwIBERERFVwIBEREREVAEDEhEREVEFDEhEREREFTAgEREREVXAgERERERUAQMSERERUQUMSEREREQVMCARERERVWCk6QJ0kRACACCVSjVcCREREdXUw+/th9/jj8OAVAf5+fkAADc3Nw1XQkRERLWVn58PW1vbx64jETWJUaRELpejXbt2SEhIgEQiqbQ8JCQEcXFxtWqruPzh84f/lUqlcHNzQ1paGmxsbOpUd1U11Ha9mvTtcc8r/v/ff/+tcr+eVHNN1lH1Pavq/7XhPatpe0O/Z/ws1t9n8dHn2vRZrEk/nvRcX98z/v6oHVX6JYRAfn4+XFxcYGDw+FFGPIJUBwYGBjAxMak2fRoaGlZ645/UVnH5w+cV221sbOr8oaqqhtquV5O+Pe55df+vSr+eVHNN1lH1PXvce6nJ96ym7Q39nvGzWH+fxUefa9NnsbplfM/4+6O2VO3Xk44cPcRB2nU0a9asWi17UlvF5Q+fP24/tVXTbanat8c9f1yfVVGTbdXne6bJfj1uvZq2N/R7xs8if39U19YY3zP+/qgddXwWa4Kn2HSEVCqFra0t8vLyVPpLSdvoa78A/e0b+6V79LVv+tovQH/7pkv94hEkHWFqaor33nsPpqammi5FrfS1X4D+9o390j362jd97Regv33TpX7xCBIRERFRBTyCRERERFQBAxIRERFRBQxIRERERBUwIBERERFVwICkB1JSUtC3b1907NgRPj4+KCws1HRJanHx4kX4+/srHubm5ti5c6emy1KLL774Ap06dULHjh3x6quv1ui+QLrgs88+Q6dOneDt7Y2ffvpJ0+WobMyYMWjatCnGjRun1L5nzx60b98ebdu2xffff6+h6uquun5V165LqupDWloa+vTpg44dO8LX1xfbt2/XYIV1U1W/8vPzERISAn9/f/j4+GDdunUarLBuHveZu3//Pjw8PDBv3jwNVAZAkM7r1auXiI6OFkIIkZ2dLUpLSzVckfrl5+cLe3t7UVBQoOlSVJaZmSlatWolHjx4IMrKykS3bt1ETEyMpstS2alTp0RAQIB48OCBePDggejWrZu4d++epstSycGDB8WuXbvEU089pWgrLS0Vbdu2FTdv3hRSqVS0adNGZGdna7DK2quqX49r1yVV9eH27dsiMTFRCCFERkaGcHV11bnfJVX1q6ysTBQWFgohhCgsLBSenp4iKytLUyXWyeM+c2+99ZZ4+umnxRtvvKGByoTgESQdd/bsWRgbG6Nnz54AADs7OxgZ6d8dZHbt2oX+/fvD0tJS06WoRVlZGYqKilBaWorS0lI4OjpquiSVnT9/Ht26dYOZmRnMzMzg7++Pv/76S9NlqaRv376wtrZWaouNjUWnTp3g6uoKa2trDB06FPv379dQhXVTVb8e165LquqDs7Mz/P39AQCOjo6ws7NDTk6OBqqru6r6ZWhoCAsLCwBAUVERZDKZzh2Nru4zd/nyZVy4cAFDhw7VQFXlGJA0LDo6GiNGjICLiwskEkmVp5AiIyPh6ekJMzMzBAUF4ejRo4plly9fhpWVFUaOHInAwEAsXbq0Aat/PFX79qhff/0V48ePr+eKa0bVfjVr1gzz5s2Du7s7XFxcMGDAALRu3boBe1A1Vfvl7e2NQ4cOITc3F7m5uTh48CBu3brVgD1Qps7P36Nu374NV1dXxfMWLVo0aD/rq1/aoCH6Fh8fD7lcDjc3NzVV/WT12a/c3Fz4+fmhRYsWWLBgARwcHNRcffXqs1/z5s3DsmXL1Fxx7TAgaVhhYSH8/PywatWqKpdv27YNc+bMweLFi5GYmIiePXtiyJAhSE1NBQCUlpbi6NGj+Pbbb3H8+HFERUUhKiqqIbtQLVX79pBUKsWxY8c0+pfEo1Tt171797Bnzx5cv34dt27dQkxMDKKjoxuyC1VStV8Px1P169cPY8aMQUhIiEaPZqrr81dRVX+hSyQStdRcE/XVL21Q333Lzs7GlClTsHbtWnWW/UT12a8mTZogOTkZKSkp+Pnnn5GRkaHu8qtVX/36888/0a5dO7Rr164+yq45jZzYoyoBEDt27FBq69y5s5gxY4ZSm5eXl1i4cKEQQoiYmBgxaNAgxbIVK1aIFStW1HuttVWXvj20adMmMXHixPousU7q0q9ff/1VvPzyy4plK1asEMuXL6/3WmtDlffroWnTpok9e/bUV4m1okp/Dh06pDQ+4tixY2L06NGK56+++qrYsmWL+ouuAXX260ntDU3dfSsqKhI9e/YUmzZtqpd6a6o+3rOHZsyYIX799Ve11Vob6uzXwoULRYsWLYSHh4ewt7cXNjY24oMPPqi32qvDI0harKSkBAkJCQgLC1NqDwsLQ0xMDAAgJCQEGRkZuHfvHuRyOaKjo9GhQwdNlFsrNenbQ9p0eu1JatIvNzc3xMTEKMYMHD58GO3bt9dEuTVW0/crMzMTQPkMxNjYWAwaNKhB66yp2nz+KurcuTPOnDmDW7duIT8/H/v27dOafqrSL22nSt+EEIiIiEC/fv0wefLk+iyz1lTpV0ZGBqRSKYDyI+3R0dFa87tElX4tW7YMaWlpuH79Oj777DO88MILePfdd+uz3Crp32hePZKVlQWZTAYnJyeldicnJ9y5cwcAYGRkhKVLl6JXr14QQiAsLAzDhw/XRLm1UpO+AUBeXh5iY2Px+++/N3SJdVKTfnXt2hVDhw5FQEAADAwM0L9/f4wcOVIT5dZYTd+v0aNHIzc3F5aWltiwYYPWThioaX8GDRqEkydPorCwEC1atMCOHTsQEhKClStXom/fvpDL5ViwYAHs7e0bugtVUrVf1bVrA1X6VlxcjG3btsHX11cxTmbz5s3w8fFpyC5USZV+GRgYYNq0aRBCQAiB2bNnw9fXt6G7UCVVP4vaQDt/e5GSiuMbhBBKbUOGDMGQIUMauiy1eFLfbG1tG/Scuro8qV8ff/wxPv7444YuS2VP6peuHaV4Un+qm502cuRIrQ61de2XLszGq2vf5HJ5vdalqrr2KykpqT7LUlld+/VQREREfZRVIzzFpsUcHBxgaGiolLaB8tMYFVO5rtHXvrFfukHf+vOQvvYL0N++sV/aiwFJi5mYmCAoKKjSrLSoqCh069ZNQ1Wph772jf3SDfrWn4f0tV+A/vaN/dJePMWmYQUFBbhy5YrieUpKCpKSkmBnZwd3d3fMnTsXkydPRnBwMEJDQ7F27VqkpqZixowZGqy6ZvS1b+yXbvRL3/rzkL72C9DfvrFfutUvhQafN0dKDh06JABUeoSHhyvW+fbbb4WHh4cwMTERgYGB4siRI5oruBb0tW/sl270S9/685C+9ksI/e0b+6Vb/XpIIoSOXZeciIiIqJ5xDBIRERFRBQxIRERERBUwIBERERFVwIBEREREVAEDEhEREVEFDEhEREREFTAgEREREVXAgERERERUAQMSERERUQUMSEREREQVMCAREdET5efnIyQkBP7+/vDx8cG6des0XRJRveK92IiI6IlkMhmKi4thYWGB+/fvw9vbG3FxcbC3t9d0aUT1gkeQiEin9enTB3PmzNH5/fXp0wcSiQQSiQRJSUlq376qDA0NYWFhAQAoKiqCTCbDw7+vIyIiFLXv3LlTg1USqQ8DEpGeevRL69HH4MGDNV2aTvvjjz/w4YcfKp6rMzC98MILSE9Ph7e3d61fGxERgYULF6qljurk5ubCz88PLVq0wIIFC+Dg4AAA+Oqrr5Cenl6v+yZqaEaaLoCI6s/gwYOxYcMGpTZTU9N63WdJSQlMTEzqdR+aZGdnV2/btrCwQPPmzWv9Orlcjr1792LXrl31UNX/a9KkCZKTk5GRkYGxY8di3LhxcHJygq2tLWxtbet130QNjUeQiPSYqakpmjdvrvRo2rQpgPIjH6+++ioWLFgAOzs7NG/eHO+//77S64UQWLFiBVq1agVzc3P4+fnht99+U1qnT58+mD17NubOnQsHBwcMHDgQ+fn5mDhxIiwtLeHs7IwvvvhC6UjLpk2bYG9vj+LiYqVtPfXUU5gyZUq1/SksLMSUKVNgZWUFZ2dnrFy5stI6T6q5Jv3+7bff4OPjA3Nzc9jb22PAgAEoLCxUvP5hPyIiInDkyBF89dVXiiN0S5YsqVPfHufs2bPo1asXzM3N4e/vj2PHjkEikSA5ORkAcOzYMRgYGKBLly6K19y9excvvvginJycFD+H6OhoAMD169chkUjwxx9/KLYbFBSE69ev4/Dhw+jcuTMsLCzQt29f5OTkVKrHyckJvr6+iu0R6SMGJKJG7Mcff4SlpSVOnDiBFStWYMmSJYiKilIsf/vtt7FhwwasXr0aZ8+exeuvv45JkybhyJEjlbZjZGSEY8eO4bvvvsPcuXNx7Ngx7Nq1C1FRUTh69ChOnjypWP/pp5+GTCZTOuKRlZWFPXv2YOrUqdXWO3/+fBw6dAg7duzAgQMHcPjwYSQkJCitU5OaH9fv9PR0TJgwAc8//zzOnz+Pw4cPY+zYsahqPstXX32F0NBQxamx9PR0vPHGG3XqW3XOnj2Lrl27omfPnkhMTMS7776LcePGwdjYGB06dAAA7Nq1CyNGjICBQfmv9Bs3bsDX1xf37t3Dn3/+iVOnTuGVV16BtbU1ACjGOEVGRmLp0qU4fvw4srOzMXnyZCxfvhzffvstDh8+jNOnT+OHH34AAGRkZEAqlQIApFIpoqOj0b59+1r3h0hnCCLSS+Hh4cLQ0FBYWloqPZYsWSKEEKJ3796iR48eSq8JCQkRb775phBCiIKCAmFmZiZiYmKU1pk2bZqYMGGC4nnv3r2Fv7+/4rlUKhXGxsZi+/btirbc3FxhYWEhXnvtNUXbzJkzxZAhQxTPv/zyS9GqVSshl8ur7E9+fr4wMTERW7duVbRlZ2cLc3NzxXZrUvOT+p2QkCAAiOvXr1dZR+/evZX6UfF5XfpW3XaEEKJPnz7imWeeUWobM2aM8PPzUzxv166d2LVrl+L5kCFDRJ8+fard3/vvvy+aNm0q7t69q2iLiIgQ7u7uoqCgQNE2ePBgMXfuXCGEEPHx8cLPz0/4+voKHx8fERkZWWm7AMSOHTuq7SORLuEYJCI91rdvX6xevVqp7dExNL6+vkrLnJ2dkZmZCQA4d+4cioqKMHDgQKV1SkpKEBAQoNQWHBys+P9r166htLQUnTt3VrTZ2tpWOtrwwgsvICQkBLdu3YKrqys2bNigGFhelatXr6KkpAShoaFKfXl0uzWt+XH99vPzQ//+/eHj44NBgwYhLCwM48aNU5yarIna9q06D095nTlzRqnd1NQUfn5+AIDz58/j5s2bGDBgAAAgNTUV//nPf3Dy5Mlq95eUlISRI0cqBlk/fN2ECRNgaWmp1DZs2DAAQFBQkFbOriOqLwxIRHrM0tISbdq0qXa5sbGx0nOJRAK5XA4Aiv/u3bsXrq6uSutVHOj96Jeq+N+pqIpfzqLCKaqAgAD4+flh06ZNGDRoEE6fPo3du3dXW2vF11elpjU/rt+GhoaIiopCTEwMDhw4gG+++QaLFy/GiRMn4Onp+cQa6tK36iQnJ8PExASdOnVSaj9//jzCw8MBlJ9eGzhwIMzNzQEAiYmJMDExqRRiK253wYIFSm1JSUmYPXu24nlRUREuXboEf3//WtdNpA84BomIqtSxY0eYmpoiNTUVbdq0UXq4ublV+7rWrVvD2NgYsbGxijapVIrLly9XWnf69OnYsGED1q9fjwEDBjx2u23atIGxsTH+/fdfRdu9e/dw6dIllWuuSCKRoHv37vjggw8UgWPHjh1VrmtiYgKZTKZS36pjaGiIsrIyFBUVKdqOHDmC5ORkxRGkP//8EyNHjlQsNzY2RllZGe7fv1/lNqVSKa5fv64UoG7cuIGcnByltrNnz0Imkyn2Q9TY8AgSkR4rLi7GnTt3lNqMjIyUTq1Ux9raGvPmzcPrr78OuVyOHj16QCqVIiYmBlZWVoojGFW9Ljw8HPPnz4ednR0cHR3x3nvvwcDAoNJRpYkTJ2LevHlYt24dNm3a9Nh6rKysMG3aNMyfPx/29vZwcnLC4sWLFQOTVan5USdOnMDff/+NsLAwODo64sSJE7h7965iQHRFLVu2xIkTJ3D9+nVYWVnBzs4OBgYGtepbdYKCgmBsbIz58+fj9ddfx7lz5xQz6Pz9/ZGZmYm4uDilizN26dIFtra2mDlzJhYuXAghBKKjo9GnTx94eXkhOTkZBgYGSqcZk5KS0KRJE7Rs2VLRlpycjFatWikGdhM1NjyCRKTH/vrrLzg7Oys9evToUePXf/jhh3j33XexbNkydOjQAYMGDcLu3bufeKrp888/R2hoKIYPH44BAwage/fu6NChA8zMzJTWs7GxwVNPPQUrKyuMHj36ifV8+umn6NWrF0aOHIkBAwagR48eCAoKUkvNj9YUHR2NoUOHol27dnj77bexcuVKDBkypMr1582bB0NDQ3Ts2BHNmjVDampqnfpWFWdnZ6xfvx5//vknfH19sX79ekydOhVt2rSBnZ0ddu/ejS5dusDR0VHxGnt7e+zevRuXL19GSEgIevTogZ07d8LJyQlAefDx8vJSnJIDyk/LVTxSlJyczNNr1KjxXmxEVO8KCwvh6uqKlStXYtq0aUrLBg4ciA4dOuDrr7/WUHX1pzZ969OnD/z9/fHll19Wu45cLkffvn3RvXt3LF26FCNHjkSPHj0qjSfSFIlEgh07dtQ5EBJpEx5BIiK1S0xMxC+//IKrV6/i5MmTmDhxIgBg1KhRinVycnKwdetWHDx4ELNmzdJUqfWirn2LjIyElZUVTp8+DQCIjo7G77//jmvXriE2Nhbjx4/H9evXMW/ePABAjx49MGHChHrpQ23MmDEDVlZWmi6DSK04BomI6sVnn32GixcvwsTEBEFBQTh69KjS2KfAwEDcu3cPy5cv17sLDtalb1u2bMGDBw8AAO7u7gDKL864cOFC3Lp1C05OThgwYABiY2MVl2rQliNHS5YsUYQ2Z2dnDVdDpB48xUZERERUAU+xEREREVXAgERERERUAQMSERERUQUMSEREREQVMCARERERVcCARERERFQBAxIRERFRBQxIRERERBUwIBERERFVwIBEREREVAEDEhEREVEFDEhEREREFTAgEREREVXwf5YG9pF2UalnAAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# We use Compose_eos function to extract the EOS data from the downloaded file\n", + "from EOSgenerators import Compose_eos\n", + "import matplotlib.pyplot as plt\n", + "\n", + "eosdir = dc.eos_download_dir(id).as_posix()\n", + "eps, p, name = Compose_eos.read_compose(eosdir=eosdir, eosname=dc.eos_name(id))\n", + "\n", + "# Finally, we can plot the EOS data using matplotlib,\n", + "# to ensure that all the previous steps were successful.\n", + "plt.figure(dpi=100)\n", + "plt.plot(eps, p)\n", + "plt.xscale(\"log\")\n", + "plt.yscale(\"log\")\n", + "plt.xlabel(\"Energy density [$g/cm^3$]\")\n", + "plt.ylabel(\"Pressure [$dyn/cm^2$]\")\n", + "plt.title(name)\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.15" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/_sources/EOS.rst.txt b/_sources/EOS.rst.txt new file mode 100644 index 0000000..069099d --- /dev/null +++ b/_sources/EOS.rst.txt @@ -0,0 +1,9 @@ +.. _EOS: + +EOS solver +===================== + +Functions to compute multiple Equation of state from given parameters, like polytrope, speed of sound, RMF etc. + +.. automodule:: EOSgenerators.EOS + :members: diff --git a/_sources/EoS_import.rst.txt b/_sources/EoS_import.rst.txt new file mode 100644 index 0000000..9efc23a --- /dev/null +++ b/_sources/EoS_import.rst.txt @@ -0,0 +1,9 @@ +.. _EoS_importing: + +Import Equation of State +===================== + +Function to import equation of state given by user. + +.. automodule:: TOVsolver.EoS_import + :members: diff --git a/_sources/Likelihood.rst.txt b/_sources/Likelihood.rst.txt new file mode 100644 index 0000000..67ba7c4 --- /dev/null +++ b/_sources/Likelihood.rst.txt @@ -0,0 +1,9 @@ +.. _Likelihood_function: + +Likelihood function definition module +===================================== + +Functions to define Likelihood functions from Astro observation and nuclear experiments + +.. automodule:: InferenceWorkflow.Likelihood + :members: diff --git a/_sources/RMF_EOS.rst.txt b/_sources/RMF_EOS.rst.txt new file mode 100644 index 0000000..0bb1340 --- /dev/null +++ b/_sources/RMF_EOS.rst.txt @@ -0,0 +1,9 @@ +.. _RMF_EOS: + +RMF EOS solver +===================== + +Functions to compute RMF Equation of state from given parameters. + +.. automodule:: EOSgenerators.RMF_EOS + :members: diff --git a/_sources/TOV_solver.rst.txt b/_sources/TOV_solver.rst.txt new file mode 100644 index 0000000..8b8b2a7 --- /dev/null +++ b/_sources/TOV_solver.rst.txt @@ -0,0 +1,9 @@ +.. _TOV_solving: + +Solve TOV Equation +===================== + +Function to solve the TOV equation from EOS equation of state given by user. + +.. automodule:: TOVsolver.solver_code + :members: diff --git a/_sources/UnitConventionForDeveloper.ipynb.txt b/_sources/UnitConventionForDeveloper.ipynb.txt new file mode 100644 index 0000000..9f238b7 --- /dev/null +++ b/_sources/UnitConventionForDeveloper.ipynb.txt @@ -0,0 +1,301 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Unit Convention for Developer\n", + "Tianzhe Zhou 2024/11/1" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To set up a solid foundation for the development of the project, \n", + "we need to establish a unit convention for the project. \n", + "The unit convention is a set of rules that define the units of the physical quantities used in the project. \n", + "The unit convention is important because it ensures that all developers use the same units for the same physical quantities, which helps to avoid errors and inconsistencies throughout the whole project." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "fm = 1\n", + "hbarc = 0.197327053\n", + "c = 1 # speed of light\n", + "hbar = 1 # reduced Planck constant\n", + "\n", + "GeV = 1 / hbarc # Giga-electronvolt\n", + "MeV = 1e-3 * GeV # Mega-electronvolt\n", + "\n", + "g = 5.625e26 * MeV # gram\n", + "kg = 1e3 * g # kilogram\n", + "cm = 1e13 * fm # centimeter\n", + "m = 100 * cm # meter\n", + "km = 1e5 * cm # kilometer\n", + "s = 3e10 * cm # second\n", + "\n", + "dyn = g * cm / s**2 # dyne\n", + "dyn_cm_2 = dyn / cm**2 # dyne / cm^2\n", + "g_cm_3 = g / cm**3 # gram / cm^3\n", + "erg = dyn * cm # ἐργον energy unit\n", + "\n", + "m_n = 939.565 * MeV # mass of neutron\n", + "n0 = 0.16 / fm**3 # saturation density\n", + "\n", + "e0 = m_n * n0 # saturation energy density\n", + "G = 6.6743e-8 * dyn * cm**2 / g**2 # gravitational constant\n", + "Msun = 1.989e33 * g # mass of sun\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The first 4 lines come from a widely used unit convention in High Energy Physics (HEP),\n", + "which is called [Natural Unit System](https://en.wikipedia.org/wiki/Natural_units).\n", + "You should be awared that we will NEVER using the Natural Unit System explicity,\n", + "as long as you obey the following rules.\n", + "1. Whenever you define a [literal](https://www.ituonline.com/tech-definitions/what-is-literal-programming/) \n", + "physical quantity, you should always *multiply* the unit of that quantity.\n", + "```python\n", + "# example of rule 1:\n", + "m_n = 939.565 * MeV # GOOD\n", + "m_n = 939.565 # BAD\n", + "m_n = 1.67e-27 * kg # GOOD\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "2. Whenever you want a physical quantity in cgs unit(or others unit system), \n", + "you should always *divide* the corresponding unit." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "1.670337777777778e-24\n" + ] + } + ], + "source": [ + "# example of rule 2:\n", + "m_n = 939.565 * MeV # mass of neutron\n", + "# if I want to know m_n in terms of gram, I need to\n", + "print(m_n / g)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "3. When you need to plot, *devide* the unit of your axis. See the example below." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "4. When you use physic formula, you leave the whole form as it was, no additional constants.\n", + "```python\n", + "# example of rule 4:\n", + "E = m * c**2 # GOOD\n", + "F = G*M*m / r**2 # GOOD\n", + "```" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Now we present a full procedure of how to use the unit convention in calculating MR relation.\n", + "See https://arxiv.org/pdf/astro-ph/0506417v1 Page 15 for more details." + ] + }, + { + "attachments": { + "image.png": { + "image/png": "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" + } + }, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "![image.png](attachment:image.png)" + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "6.433772787333139e-26\n" + ] + } + ], + "source": [ + "import numpy as np\n", + "from numpy import pi\n", + "\n", + "K_nrel = hbar**2 / (15 * pi**2 * m_n) * (3 * pi**2 / (m_n * c**2)) ** (5 / 3) # Rule 1\n", + "print(K_nrel / (cm**2 / erg ** (2 / 3))) # Rule 2" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "def EOS_P(e):\n", + " return K_nrel * e ** (5 / 3) # Rule 4\n", + "\n", + "\n", + "e_min = 1e4 * g_cm_3 # Rule 1\n", + "e_max = 1e18 * g_cm_3 # Rule 1\n", + "e_grid = np.geomspace(e_min, e_max, 10000)\n", + "p_grid = EOS_P(e_grid)\n", + "\n", + "\n", + "def EofP(P, e_grid, p_grid):\n", + " return np.interp(P, p_grid, e_grid)\n", + "\n", + "\n", + "def PofE(E, e_grid, p_grid):\n", + " return np.interp(E, e_grid, p_grid)" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "from scipy.integrate import ode\n", + "\n", + "\n", + "# working with rescaled quantities\n", + "def TOV1(r, y, grids):\n", + " p, m = y\n", + " e_grid = grids[0]\n", + " p_grid = grids[1]\n", + "\n", + " e = EofP(p, e_grid, p_grid)\n", + "\n", + " dpdr = -(e + p) * (m + 4 * pi * r**3 * p) # Rule 4\n", + " dpdr = dpdr / (r * (r - 2 * m)) # Rule 4\n", + " dmdr = 4 * pi * r**2 * e # Rule 4\n", + "\n", + " return np.array([dpdr, dmdr])\n", + "\n", + "\n", + "def solveTOV1(rho_c, e_grid, p_grid):\n", + " # Notice that we only rescale quantities inside this function\n", + " rho_c = rho_c * G / c**2\n", + " e_grid = e_grid * G / c**2\n", + " p_grid = p_grid * G / c**4\n", + "\n", + " Pmin = p_grid[0]\n", + "\n", + " r = 4.441e-16 * cm # Rule 1\n", + " dr = 10.0 * cm # Rule 1\n", + "\n", + " p_c = PofE(rho_c, e_grid, p_grid)\n", + "\n", + " P0 = p_c - (4 * pi / 3) * (p_c + rho_c) * (3 * p_c + rho_c) * r**2 # Rule 4\n", + " m0 = 4 / 3 * pi * rho_c * r**3 # Rule 4\n", + "\n", + " param = (e_grid, p_grid)\n", + "\n", + " stateTOV = np.array((P0, m0))\n", + " sy = ode(TOV1).set_integrator(\"dop853\")\n", + " sy.set_initial_value(stateTOV, r).set_f_params(param)\n", + " while sy.successful() and stateTOV[0] > Pmin:\n", + " stateTOV = sy.integrate(sy.t + dr)\n", + " dpdr, dmdr = TOV1(sy.t + dr, stateTOV, param)\n", + " dr = 0.46 / (dmdr / stateTOV[1] - dpdr / stateTOV[0])\n", + " # at the end of this function, we rescale the quantities back\n", + " return stateTOV[1] * c**2 / G, sy.t\n", + "\n", + "\n", + "def compute_tov_properties(rho_c, e_grid, p_grid):\n", + " M = np.zeros_like(rho_c)\n", + " R = np.zeros_like(rho_c)\n", + " for i in range(len(rho_c)):\n", + " M[i], R[i] = solveTOV1(rho_c[i], e_grid, p_grid)\n", + " return M, R\n", + "\n", + "\n", + "def cal_MR():\n", + " density = np.geomspace(1e14 * g_cm_3, e_max, 100) # Rule 1\n", + " return compute_tov_properties(density, e_grid, p_grid)" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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V5csXJjMmFG5TAAMfWPGFKfSnHtuMrICf81ua0tmzkxaWsqfBQAAAABUnGukAIChobExOfro0tZOmpSMH5+0tiYTJhSn2Mya5coOAHpvxIjkuOOSrbcurjNcsqS8eW1tyezZxfVSAAAAAMCAomwDAAx+//xncuCBydKl3a99+9uTX/+6OIUAACrt3e8uCjL77Zc88EB5sxobk6amZMqUymQDAAAAACrCNVIAwOD24ovJAQckjz7a/dottkjmz1e0AaC63vzm5JZbkunTy581b175MwAAAACAilK2AQAGr/b25Kijiu/6784aayS//GWy3nrVzwUA66+f3Hhj8bYcLS2VyQMAAAAAVIyyDQAweJ11VnLJJaWt/fGPk0mTqpsHAF5p7Nhkww3Lm9HaWpksAAAAAEDFKNsAAIPTtdcmn/1saWtPP724agoA+tr48eXtnzChMjkAAAAAgIoZ3d8BAABK0tSUXHRRcZ3GE08k999fXCPVnYMPTk4+uerxAKBTtbVJQ0Pv96+2WuWyAAAAAAAV4WQbAGBga25O6uqSXXZJ5s4tvmD5178mK1Z0v3fHHYuCzogRVY8JAJ2aNau8/TfdVJzQVkrBFAAAAADoE8o2AMDAtWBBMn160tjY870TJya//GWyxhqVzwUApZoyJZk6tbwZp56aHHdcaUVTAAAAAKDqlG0AgIGpuTmZOTNpa+v53tGjkyuuSDbfvPK5AKCn5sxJamrKmzF3bnLooclLL1UmEwAAAADQa6P7OwADx913353Fixfn4YcfznPPPZeampqsv/762W677bLzzjtnzJgx/R2xZE8++WSampry2GOP5fHHH09bW1vGjx+fzTbbLG95y1uyxRZb9HdEALpTX9+7ok1SfFHzbW+rbB4A6K3Jk5P583tfIn3Zz36WPPlkcuWVyfjxlcsHAAAAAPSIss0w99BDD+U73/lOLrnkkjz88MOrXDd+/Pjst99+Of7447PLLrv0YcLStba2Zs6cObnyyivT0tKSlStXrnLtFltskcMPPzzHHntsNt544z5MCUBJbrutd1dHvWzy5MplAYBKmDEjWbgwmT27vD/jfvObZM89k2uvTTbYoGLxAAAAAIDSuUZqmFq5cmXOOOOMbLvttjnzzDO7LNokyZIlS3LppZdm1113zQc/+ME8++yzfZS0eytXrsxZZ52VLbbYIieddFKampq6LNokyQMPPJAvf/nLeeMb35ivf/3r3a4HoI/Nm9e/+wGgGmprk4aGolRaX59Mm5bssEPxdo89Sp/T0pK89a3JAw9ULysAAAAAsEpOthmG2traMnPmzCxYsKBX+y+++OLccsst+fWvf503vOENlQ3XQ88991wOO+yw/OpXv+rV/ueffz6f//znc/PNN+eKK67IuHHjKpwQgF5paenf/QBQTVOmFK/Xuvzy5LDDkqVLu5/xv/9blHR+/evkLW+pfEYAAAAAYJWcbDPMrFixIgcffPAqizZjxozJjjvumL333ju77rpr1lxzzU7X3Xvvvdlrr73y6KOPVjNul1544YXsscceXRZtXv/612fq1Kl529velm233TYjR3b+U/66667Lvvvum6Wl/KM2ANW3ZEl5+1tbK5MDAPrSwQcX10ONH1/a+kcfTd72tuT3v69uLgAAAADgVZRthpnTTjstV199dYfna6+9dr75zW/m8ccfzx133JEbb7wxt9xyS5566qlcfvnl2WabbTrseeCBB3LooYf22xVMH/3oR9PSyckFY8aMyQknnJC//OUv+fvf/56GhobcfPPNueeee/Loo4/m3HPPzcSJEzvsu+mmm3Lcccf1RXQAulPqFxlXZcKEyuQAgL62117JTTclG2xQ2vpnn03e+c7kF7+oZioAAAAA4BWUbYaRO++8M1/72tc6PN98883T1NSUT37yk1lrrbVe9b4xY8bkoIMOSktLS/7zP/+zw97f/e53+d73vle1zKsyb968/OQnP+nwfIMNNsgtt9ySs88+u9OC0Prrr5/jjjsu99xzT3bbbbcO7z///PNzww03VCUzAD0waVJ5+2trK5MDAPpDbW2ycGGyxRalrX/ppeSgg5Lvf7+6uQAAAACAJMo2w8qnPvWprFix4lXP1lhjjVx77bXZaqututy7xhpr5Oc//3ne/OY3d3jfKaeckueff76iWbuyfPnynH766R2e19TU5MYbb8zOO+/c7Yz11lsvN9xwQ6eFnE984hP9dloPAP/nX/8qb/+sWRWJAQD9Zuuti8LNjjuWtn7lyuSoo5KvfS1pb69uNgAAAAAY5pRthomWlpZOT2w55ZRTst1225U0Y9y4cbngggs6PH/yySdz/vnnl52xVJdddlnuv//+Ds+/9KUvZVIPTkIYP358Lrroog7P77nnnlxx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05/+tFfz5s+fn5UrV77q2YgRI7Lvvvv2al5/uv/++/Ozn/2sw/Pjjz++78MADAXf+Ebyl7/0fv/UqcnkyZXLAwB0b6+9kuuuS9Zcs7T1V1+d7L9/8uKL1c0FAAAAAAOUss0wcfjhh3d4duWVV+af//xnj+a0t7dn7ty5HZ7vueeeef3rX9/rfP3l2GOPTdtrviNzq622ygc+8IF+SgQwiN11V3L66b3fX1OTdPJnDADQB3bfPbn++mTChNLWX399cQ3V889XNxcAAAAADEDKNsPE0UcfndVWW+1Vz5YtW5aTTz65R3PmzZuXu+++u8Pz+vr6kmfMmjUrI0aM6PB68MEHe5SlXF/72tdy/fXXd3h+zjnnZMyYMX2aBWDQW7asuP5p2bLe7a+pSebPT2prKxoLAOiBurrkN79J1l67tPW/+13y7ncnS5ZUNRYAAAAADDTKNsPEJptskg9/+MMdnl900UWZP39+STP++te/dnq90g477JADDjigzIQ999xzz/VqX3t7e0477bScdNJJHd53xBFHZL/99is3GsDw81//lbS09G5vXV2ycGEyY0ZlMwEAPTdlSlGiWW+90tb/z/8k//mfybPPVjcXAAAAAAwgyjbDyJe//OWsu+66HZ4fccQR+clPftLl3jvuuCN77713nu3kH1DPPffcjBzZ9z+V9ttvvxx00EG55ppr8tJLL5W0Z9GiRdltt93ypS99qcP7dthhh06vyAKgG4sXJ6ed1v26ddZJpk5NdtghmTYtqa9PmpqSRYucaAMAA8lOOyU33ZRssEFp6xsakne8I3n66WqmAgAAAIABY3R/B6DvTJw4MRdeeGEOPPDAVz1/6aWXcuihh+ZHP/pRjjnmmNTV1WXixIlZsmRJ/vjHP+aSSy7JRRddlGWdXA3yyU9+Mm9/+9v76ofwKsuWLcvPf/7z/PznP88aa6yRPfbYIzvttFO23377rLfeellzzTXz9NNP57HHHsvixYtz1VVX5b777ut01hve8IZcd911GT9+fB//KAAGuVKvjxo5Mrn22mS33fokFgBQph12KAo3e++dPPJI9+ubmpK99kpuuCGZOLHq8QAAAACgPynbDDMHHHBAvva1r+ULX/hCh/ddd911ue6660qeNWPGjHzjG9+oZLxee/7553PNNdfkmmuu6fHenXbaKddcc0023njjKiQDGOLO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okWLstFGG1U7dqcefvjhvP3tb8999923yjXjx4/PG9/4xqy99tp58cUX8+ijj+aBBx7odO3SpUvz4Q9/OCNHjswRRxxRrdhAX1ixIvnv/+5+3ezZ1c8CAAB0NGtWade+rspTT1UsCgAAAEBPOdlmmDnttNM6Ldqsvfba+eY3v5nHH388d9xxR2688cbccssteeqpp3L55Zdnm2226bDngQceyKGHHlrSlU3VcNRRR62yaHPYYYelsbExzzzzTJqbm/Ob3/wmixYtyv3335/HH3883/72t7Ppppt22Ldy5cocc8wxqyzkAIPE1Vcnf/tb12v22ivZfvu+yQMAALzalCnJ1Km933/ZZckPflC5PAAAAAA9oGwzjNx555352te+1uH55ptvnqampnzyk5/MWmut9ar3jRkzJgcddFBaWlryn//5nx32/u53v8v3vve9qmVelauvvjrXXHNNh+c1NTW56qqr8uMf/zi77bZbRo7s+FN84sSJ+cQnPpG77ror//Ef/9Hh/S+++GJOPPHEquQG+kBTU1Jf3/26UtYAAADVM2dOUlPT+/3HHps0NlYuDwAAAECJlG2GkU996lNZsWLFq56tscYaufbaa7PVVlt1uXeNNdbIz3/+87z5zW/u8L5TTjklzz//fEWzdueiiy7q9PkFF1yQGTNmlDRjnXXWyZVXXpntttuuw/uuuuqqPP300+VEBPpac3NSV5fsskvy0ENdr33965P99uubXAAAQOcmT07mz+994Wbp0uS9700efriyuQAAAAC6oWwzTLS0tOSGG27o8PyUU07ptGzSmXHjxuWCCy7o8PzJJ5/M+eefX3bGUi1btizXXntth+c777xzDj/88B7NWmONNfLVr361w/Ply5d3+jGAAWrBgmT69NK/q/Xtb09Gj65uJgAAoHszZiQLF/b+SqlHHkkOPDBpa6tsLgAAAIAuKNsME51d9bTuuuvmuOOO69Gcurq6Tq+T6suyzSOPPNLpSToHHXRQr+bts88+GTduXIfn9913X6/mAX2suTmZObNn/7j+s58lLS3VywQAAJSutjZpaEhuu6247nXatGSHHZKddkrGjOl+/623Jh/7WNLeXvWoAAAAAImyzbCwfPnyzJ8/v8Pzww8/vNOSSXeOOuqoDs/uueee3H777b3K11P/+te/On2+/fbb92re2LFjs+WWW3Z4/sgjj/RqHtDH6ut7/l2sbW3J7NnVyQMAAPTOlCnJd75TnHRz113J7bcX10yVYt685Nxzq5sPAAAA4P8o2wwDt9xyS55++ukOz3t7Esy+++6b1VdfvcPzvrp2qX0V36m25ppr9nrmhAkTOjwbNWpUr+cBfeS220q/Ouq1GhuTpqbK5gEAACpr//2T008vbe2JJya/+U118wAAAABE2WZY+O1vf9vh2bhx41JXV9ereTU1NZk2bVpJH6caNtxww06fP/nkk72e+cQTT5T8cYABZN68/t0PAABU30knJaV8w9CKFcn73pfcf3/1MwEAAADDmrLNMNDUyckNO+20U8aUcu/5Kuy6664dnjU3N/d6Xk9svvnmnRZhbr311l7Ne/LJJ/O///u/HZ5PnTq1V/OAPtTS0r/7AQCA6hs5MrnoomTSpO7XPvVUcRrOc89VPRYAAAAwfCnbDAN//OMfOzybVMo/UHWhs/3PPPNM/v73v5c1t1Tvfe97Ozz76U9/mhdffLHHsy666KKsXLnyVc822GCD7L777r3OB/SRJUvK29/aWpkcAABAda25ZvKLXyTrrtv92sWLk1mzktf8XR8AAACgUpRthrhly5bloYce6vB86623Lmvuqvbfd999Zc0t1fHHH5/VVlvtVc8efvjhfOELX+jRnHvvvTdf+cpXOjw/8cQTM3bs2LIyAn1g/Pjy9k+YUJkcAABA9W25ZfKznyWjRnW/9oorkq9+tfqZAAAAgGFpdH8HoLoeeuihDqe2JMmmm25a1txV7X/wwQfLmluqbbbZJqeffno+97nPver5t771rSTJN77xjQ5lnNf6wx/+kA984AN55plnXvV86tSpOeGEEyoZt0sNDQ1l7b/rrrsqlAQGodrapJxfQ7W1lcsCAABU3957J2efnRx/fPdrv/jF5C1vKa6VAgAAAKggZZsh7rHHHuv0+YYbbljW3FXtf/zxx8ua2xOf/exn889//jPf+c53XvX8W9/6Vq644oocddRR2WuvvbLttttm7bXXTltbWx599NHceuut+clPfpJrrrmmQxFp5513ztVXX53Ro/vul8a0adP67GPBkDNrVjJ3bnn7AQCAweUTn0huvz2ZN6/7tYcfntxyS7L99tXPBQAAAAwbrpEa4p566qlOn6+11lplzR01alTGjRvX4fmTTz5Z1tyeOvfcc3PhhRdm7bXXftXzhx56KF/84hczffr0rL/++hkzZkzGjx+fN77xjTnssMOyYMGCVxVtRo8eneOOOy4LFy7MuqXc/w4MDFOmJBMn9m7v1KnJ5MmVzQMAAFTfiBHJd7+b7Lpr92ufe6442ebpp6ufCwAAABg2lG2GuOeee67T52uuuWbZszub8fzzz5c9t6c+/OEP58EHH8wZZ5yRHXfcsUd7t9hii3zmM5/Jvffem3PPPTerr756lVICVfH000lra8/31dSUdyIOAADQv2pqkiuvTDbeuPu1//u/yfvfnyxfXv1cAAAAwLCgbDPELVu2rNPnlbgmacyYMR2eLV26tOy5vbX66qtn7bXXzsiRpf+0fuyxx/LXv/41d911V9rb26uYDqiKH/846envOzU1yfz5SW1tdTIBAAB9Y5NNkp//PFltte7XXn998vnPVz8TAAAAMCyU37hgQFuxYkWnz0eNGlX27M5mLO/j7xJbuXJlzjzzzJxxxhl59tlne7z/+eefz5VXXpkrr7wyb3nLW3LhhRdmypQpVUi6aosWLSpr/1133ZVjjjmmQmlgEGlvT84/v2d76uqSOXMUbQAAYKiYOrW4UurDH+5+7VlnJTvtlBx2WNVjAQAAAEObss0Qt6oTbCpRiulsRmen3VRLa2tr3vOe9+Tmm2/u8L7Ro0fn3e9+d/bcc89stdVWWXfddfPiiy/msccey6233pqrr746999//6v23HnnnZk2bVrOO++8fOQjH+mrH0bq6ur67GPBkHLLLcnixV2vWWONZMcdi3LNrFnJ5Ml9Eg0AAOhDRx6Z3H578p3vdL/2ox9N3vQmfzcAAAAAyqJsM8SNHTu20+erul6qJzq7MmpVH6/SXnrppbzrXe9KQ0NDh/cdcsghOfPMM/P617++072HH354vvWtb+VnP/tZ6uvr8+STT/7/71u2bFmOOuqojBs3Lh/4wAeqlh+ogAsu6H7N+ecnhx5a/SwAAED/Ovvsooz/u991va6tLTnggKSpKdlwwz6JBgAAAAw9I/s7ANU1fvz4Tp+3traWPXvJkiUdnk2YMKHsuaU46aSTOi3afPnLX85ll122yqLNy0aOHJn3v//9uf322/OGN7zhVe9rb2/PMccck7/97W+VjAxUUmtrctllXa9Zd93kve/tmzwAAED/GjMm+dnPktf8Hb9T//hHctBBSSffRAQAAABQCmWbIW699dbr9PkzzzxT1tyXXnopL730Uskfr5L+9re/5Vvf+laH5+9///tz8skn92jW61//+vzqV7/qcN3WkiVL8qUvfamMlEBVXXpp8sILXa/54AeTmpq+yQMAAPS/iROTX/wiGTeu+7ULFyaf+ETVIwEAAABDk7LNELfRRht1+vxf//pXWXMfeeSRHn28Svrud7+bFStWvOrZmDFj8vWvf71X8yZNmpRZs2Z1eH7ppZfm6aef7tVMoMpKuULqqKOqnwMAABhYdtwxueii0tZ+73vJd79b1TgAAADA0KRsM8RtsskmGTt2bIfnf//738ua+9BDD3X6fIsttihrbimuv/76Ds/e+ta3ZvPNN+/1zMMOO6zDs6VLl+b3v/99r2cCVdLcnLS0dL1m2rRk++37Jg8AADCwzJyZnHRSaWuPOy7xd38AAACgh5RthrgRI0Zkq6226vD83nvvLWvuqvZvvfXWZc3tzooVK/LHP/6xw/Pp06eXNXfatGkZMWJEh+e33357WXOBKijlVJujj65+DgAAYOA6/fRkv/26X7d8eXLwwUmZ35QEAAAADC/KNsPAzjvv3OHZHXfcUdbMzva/7nWvy8SJE8ua252nn366wxVSSbLhhhuWNXe11VbLOuus0+H5E088UdZcoMKeey659NKu16y1VvGdrAAAwPA1cmTy4x8nb3pT92sffzw54IDkhReqHgsAAAAYGpRthoHddtutw7O77747ra3/H3t3Hmd1Xe8P/HVYZARBXHMpzbTM6w5IgJi5VJaYJlJqLmhmC9TVX93balm2XrvVTeimZkrmFrhUWJqamSGjMLibS+aC+y64DCKc3x/nQuLgnDMz58yZOfN8Ph7n8eN8zvv9Pa/pV9zHfHl/P59Fnb7m3LlzK/qeanv11VdXuz5w4MAuX3t111i+fHmXrwtU0W9+kyxe3H7Nxz6WDB7cPXkAAICea9iw5Le/LQ3kl3Pjjcnmmyfbb186lnbq1NIRtgAAAACrYdimD9h7773brC1btixXXnllp6735JNPrvZ4pdV9T7Wtt956q13v6g40xWIxTz/9dJv1DTbYoEvXBarstNPK1zhCCgAAWOEd70jOPz9ZzdHRbTz1VHLbbcncucn06cmoUcnYsYZuAAAAgDYM2/QB22yzTbbccss26xdccEGnrjdz5sw2O74UCoXsu+++nbpeRwwcOHC1xz3Nnz+/S9e98cYbV7trjmEb6EFuvTW5/vr2a3bZJdlxx+7JAwAA9A777JN8//ud621uTsaPT2bPrm4mAAAAoFczbNNHHHbYYW3WLr744jz88MMduk6xWMz06dPbrL/nPe/JW97ylk7n64iRI0e2Wbvqqqu6dCzWxRdfvNr1XXbZpdPXBKrs9NPL13ziE7XPAQAA9D7/8R/JIYd0rre1NZk0KVmwoLqZAAAAgF7LsE0fceyxx2aNNdZYZW3p0qX52te+1qHrzJgxI3fccUeb9alTp1Z8jcmTJ6dQKLR53X///RX177PPPm3WFi9enP/+7/+uOMNrPfHEE/npT3/aZn3dddc1bAM9xcsvJ2ef3X7NWmslBx/cPXkAAIDepVBIfvGLZOedO9ff2ppMmVLdTAAAAECvZdimj9hkk01y9NFHt1k/66yzMnPmzIqucc899+S4445rs77ddtvlgAMO6GLCyk2cODEDBw5ss/7d7343l19+eYeutWTJkkycOHG1u+J85CMfSb9+/icCPcKsWclzz7Vfc8ghydCh3RIHAADohQYPTr75zc73NzcnXTzGGgAAAGgMJgn6kJNOOinrrrtum/XDDz885513Xru9N910U/baa688//zzbT776U9/2q1DKW9961vzyU9+ss36q6++mv333z+nnHJKli9fXvY699xzT3bdddf87W9/a/PZ4MGDc8IJJ1QlL9BF8+cnX/xi+TpHSAEAAOV08CGdNmbMqE4OAAAAoFczbNOHrL/++jnjjDParC9ZsiSHHnpoPvCBD+SSSy7J448/nmXLluW5557LNddck2OPPTajR4/OwoUL2/Qef/zx2WOPPboj/iq+8Y1vZPPNN2+zvmTJknzuc5/L1ltvne9///uZO3dunnjiiSxdujSLFy/Ovffem/POOy8HH3xwttlmm7S0tKz2+ieddFI22WSTWv8YQHtaWpKxY5NddkkefbT92h13TEaN6p5cAABA77VgQX37AQAAgIYwoN4B6F4HHHBAvvvd7+YrX/lKm88uu+yyXHbZZRVfa8KECfnBD35QzXgVW3/99XP55Zdn/Pjxeeqpp9p8/o9//CNf/vKXO3Xtz33uc/l//+//dTUi0BWzZyeTJiWtrZXVjx2bFAq1zQQAAPR+ixd3rX81x1ADAAAAfY+dbfqgL3/5y/nxj3+c/v37d/oahx12WGbNmpWBAwdWMVnHbL311pkzZ05Gjx5dlesNGjQoP/jBD/KTn/ykKtcDOqmlpWODNkly1lmeMAUAAMobOrRr/cOGVScHAAAA0KsZtumjjjvuuMyZMycjR47sUN/GG2+cs88+O2effXYGDRpUo3SVe8c73pE5c+bkhz/8YTbbbLNOXaN///454IADMn/+/Pznf/5nCnbHgPqaOrVjgzZJqX7KlNrkAQAAGseIEV3r33nn6uQAAAAAejXDNn3Yu971rsyfPz9XXHFFjjzyyGy66aarrRs+fHj222+/zJgxI/fdd18OO+ywLn3vWWedlWKx2Ob11re+tVPXGzBgQD7/+c/nvvvuy+9///tMmTIlo0aNyhprrPGGPZtsskn233///OAHP8gDDzyQiy++ONttt10nfyKgaubNS5qbO9fb3JzMn1/dPAAAQGOZPLneCQAAAIAGMKDeAai/vffeO3vvvXeS5LnnnssjjzySF198MU1NTVl//fWz8cYb1zlhZfr165cJEyZkwoQJSZJXX301zz77bJ577rksWrQoa6yxRoYPH5511lkna621Vp3TAqs1Y0bX+0eNqk4WAACg8YwalYwZ0/kh/5/9LJkwIdlnn+rmAgAAAHoVwzasYvjw4Rk+fHi9Y1TFgAEDssEGG2SDDTaodxSgUgsW1LcfAABofNOmJePHd/z42iQpFpNDDintqrnlltXPBgAAAPQKjpECoOdYvLhr/YsWVScHAADQuEaOTGbOTJqaOtf/3HPJAQckL7xQzVQAAABAL2LYBoCeY+jQrvUPG1adHAAAQGObMCGZM6d0pFRn3HZb8vGPl3a6AQAAAPocwzYA9BwjRtS3HwAA6DtGjEjmzk3mzUumTk3GjUu22y7ZfvukXwW3zH7zm+SHP6x9TgAAAKDHMWwDQM8xeXJ9+wEAgL5n1KjklFNKO93cemtyyy3Jz35WWe+XvpRccUVt8wEAAAA9jmEbAHqOUaOSLbfsXO+YMcnIkdXNAwAA9E3HHpscc0z5uuXLk4MPTu67r/aZAAAAgB7DsA0APcs663S8p6kpmT69+lkAAIC+qVBIpk1LRo8uX/vMM8mBByYvvVT7XAAAAECPYNgGgJ7jwQeTlpaO9TQ1JTNnJiNG1CYTAADQNw0alFx4YbLhhuVrb7qptBtOsVjzWAAAAED9GbYBoOc4++yO3ZweOzaZMyeZMKF2mQAAgL7rzW8uDfcPGFC+9pxzkv/5n9pnAgAAAOrOsA0APUOxmMyY0X5NoVDaxn3q1GT+/OS66+xoAwAA1Na73538+MeV1X7hC8nVV9c2DwAAAFB3FTyWAwDdoLk5ueee9msmTiw9VQoAANCdpkwpDfyXe0Bg2bLkIx8pHY+72Wbdkw0AAADodna2AaBnOOus8jVHHlnzGAAAAG0UCsn//m8ycmT52qeeSg48MHn55drnAgAAAOrCsA0A9ffyy8kFF7Rfs+GGyfvf3z15AAAAXm/NNZOLLkrWX798bUtL8qlPlY7LBQAAABqOYRsA6u93v0uef779mo99LBk4sHvyAAAArM5mmyW/+U3Sv3/52l/9Kpk+vfaZAAAAgG5n2AaA+psxo3zN5Mk1jwEAAFDWHnskP/xhZbXHH59ce21t8wAAAADdzrANAPX1yCPJ5Ze3X7PTTskOO3RLHAAAgLL+/d9Lu2+W8+qryUEHJQ89VPtMAAAAQLcxbANAfZ1zTrJ8efs1Rx7ZPVkAAAAqUSgkp51WejCgnCeeSCZOTJYsqXksAAAAoHsYtgGgforF8kdIDRiQHHpo9+QBAACo1ODByUUXJeuuW772hhuSKVNKvwMBAAAAvZ5hGwDqZ8GC5Pbb26/54AeTDTfsnjwAAAAdscUWyfnnJ/0quMV2xhml3XAAAACAXs+wDQD1U25Xm8QRUgAAQM/23vcm3/9+ZbWf/Wxy3XW1zQMAAADUnGEbAOrjlVeSc89tv2bddZN99+2ePAAAAJ31hS8kH/lI+bqlS5OJE5NHHql9JgAAAKBmDNsAUB+XXpo8/XT7NYcckgwa1D15AAAAOqtQSH75y2T77cvXPvZYctBBpQcQAAAAgF7JsA0A9VHJEVKTJ9c8BgAAQFUMGZJcfHEyfHj52rlzk3//95pHAgAAAGrDsA0A3e+KK5Lf/a79mn/7t2TkyO7JAwAAUA1bbpmcd15pp5tyfv7z5Iwzap8JAAAAqDrDNgB0n5aWZOzY5H3vS4rF9muPPLKyG9QAAAA9yT77JN/5TmW1xx6b7LBD6fipceOSqVNLvzcBAAAAPZphGwC6x+zZyfjxSXNzZfVvelNt8wAAANTKl76UTJxYvm758uTWW5PbbisdLTV9ejJqVOkhBUM3AAAA0GMZtgGg9lpakkmTktbWyns+9alkwYLaZQIAAKiVQiE588zS8bid0dxcelhh9uzq5gIAAACqwrANALU3dWrHBm2SUv2UKbXJAwAAUGtDhyYXX5wMG9a5/tbW0kMLHkIAAACAHsewDQC1NW9e5UdHvV5zczJ/fnXzAAAAdJd3vCM555zO93sIAQAAAHokwzYA1NaMGfXtBwAAqKcJE5Jjj+18v4cQAAAAoMcxbANAbXV1y3NbpgMAAL3dgAFd6/cQAgAAAPQohm0AqK3Fi7vWv2hRdXIAAADUy403dq3fQwgAAADQoxi2AaC2hg7tWv+wYdXJAQAAUC8eQgAAAICGYtgGgNoaMaK+/QAAAPXmIQQAAABoKIZtAKityZPr2w8AAFBvHkIAAACAhmLYBoDaGjUqedvbOtc7ZkwycmR18wAAAHS3rj5EMGlSVWIAAAAA1WHYBoDaW3fdjvc0NSXTp1c/CwAAQHcbNar0MEFnnXJKUixWLw8AAADQJYZtAKitRx9NWlo61tPUlMycaat0AACgcUybVvpdpzNmzUr++7+rmwcAAADoNMM2ANTWBRd07AnMsWOTOXOSCRNqlwkAAKC7jRxZeqigswM3X/xi8uc/VzcTAAAA0CmGbQCorXPPLV8zenQydWoyf35y3XV2tAEAABrThAmlhws6c6TU8uXJRz+aLFxY/VwAAABAhwyodwAAGtg//pHMm9d+zYc+lPz2t92TBwAAoN5GjEjmzi09bDBjRrJgQfL888mDDyaLF7ff+9RTyUEHJX/9azJoUPfkBQAAANowbANA7Zx3XvmaQw+tfQ4AAICeZtSo0muFRx4pDeI8/nj7fTfckHzuc8mpp9Y2HwAAAPCGHCMFQG0Ui+WPkBoyJNlvv+7JAwAA0JNtskkyc2YyoIJn4047LTnjjNpnAgAAAFbLsA0AtXHzzcmdd7Zfc8AByeDB3RIHAACgx9ttt+SHP6ysdsqU0lFUAAAAQLczbANAbZTb1SZJDjmk9jkAAAB6k899rrLjdpcsSSZOTJ56qvaZAAAAgFUYtgGg+pYvT84/v/2a9dZL3ve+7skDAADQWxQKpWOitt++fO2DDyYHH5y8+mrtcwEAAAArGbYBoPrmzEkWLmy/ZtKkZODA7skDAADQmwwZklx0UbL22uVrr7oq+drXap8JAAAAWMmwDQDV5wgpAACArtlqq+TXv66s9gc/KA3nAAAAAN3CsA0A1bV0aTJzZvs1b35zMn589+QBAADorSZMSL7xjcpqjzwyufPO2uYBAAAAkhi2AaDarrgiefrp9msOPjjp5/8EAQAAlPX1rycf/GD5uhdeSD784WTx4tpnAgAAgD7Ov3QCUF3nnVe+5tBDa58DAACgEfTrVzpO6m1vK197553JUUclxWLtcwEAAEAfZtgGgOp56aXk4ovbr3nnO5OdduqWOAAAAA1hnXWSiy5K1lyzfO2FFyYnn1z7TAAAANCHGbYBoDrmzy9tWf7ii+3XHXJIUih0TyYAAIBGseOOyWmnVVb75S8nV11V2zwAAADQhxm2AaBrWlqSsWOTXXZJ/vSn8vWHHFL7TAAAAI3osMOSz362fN3y5cnBBycPPlj7TAAAANAHGbYBoPNmz07Gj0+amyur32qr5O1vr20mAACARvbDHya77lq+7qmnkokTk9bW2mcCAACAPsawDQCd09KSTJrUsRu399+fLFhQs0gAAAANb401kpkzk402Kl87f35lO+EAAAAAHWLYBoDOmTq1409IvvpqMmVKbfIAAAD0FRtvXBq4GTCgfO0vflF6AQAAAFVj2AaAjps3r/Kjo16vubn0dCUAAACdN3588qMfVVY7ZUpyww21zQMAAAB9iGEbADpuxoz69gMAAFDacfRjHytf98oryUEHJU8+WftMAAAA0AcYtgGg4xYsqG8/AAAASaGQnHZassMO5WsXLkwOPrh0vC8AAADQJYZtAOi4xYu71r9oUXVyAAAA9HWDBycXXZQMH16+9s9/Tr761ZpHAgAAgEZn2AaAjhs6tGv9w4ZVJwcAAADJllsm55xT2ummnP/6r+TCC2ufCQAAABqYYRsAOm7EiPr2AwAAsKoPfjD5xjcqq508Ofn732saBwAAABqZYRsAOm7y5Pr2AwAA0NYJJyT77lu+7oUXSg9BbLttMm5cMnVq0tJS+3wAAADQIAzbANBxo0YlY8Z0rnfMmGTkyOrmAQAAIOnXLzn77NKxUuW0tiZ33JHMnZtMn176PW/sWEM3AAAAUAHDNgB0zrRppRu5HdHUVLqJCwAAQG2ss05y0UXJmmt2vLe5ORk/Ppk9u/q5AAAAoIEYtgGgczbZJFm+vPL6pqZk5szSVuUAAADUzg47JL/4Red6W1uTSZOSBQuqmwkAAAAaiGEbADrn4osrrx07NpkzJ5kwoXZ5AAAA+JdDD00+97nO9ba2JlOmVDcPAAAANBDDNgB0zqxZ7X9eKCSf+EQyf35y3XV2tAEAAOhuBx/c+d7m5tLvcwAAAEAbhm0A6Lgnnkiuuab9mg9+MDnttGTkyO7JBAAAwKrOOadr/TNmVCcHAAAANBjDNgB03MUXJ8uXt18zaVL3ZAEAAGD1Fiyobz8AAAA0KMM2AHTczJntfz5wYPKhD3VPFgAAAFZv8eKu9S9aVJ0cAAAA0GAM2wDQMU8+mfzlL+3X7L13ss463RIHAACANzB0aNf6hw2rTg4AAABoMIZtAOiY3/42Wbas/ZqDDuqeLAAAALyxESO61r/zztXJAQAAAA3GsA0AHVPuCKn+/ZP99++eLAAAALyxyZO71r90aVViAAAAQKMxbANA5Z5+OrnqqvZr9torWW+97skDAADAGxs1KhkzpvP9p5+e/PGP1csDAAAADcKwDQCV+93vHCEFAADQm0ybljQ1da63WEw+9rHkvvuqmwkAAAB6OcM2AFSukiOkDjigW6IAAABQgZEjS7/LdXbg5tlnk4kTk5dfrm4uAAAA6MUM2wBQmWefTa68sv2a97wn2WCDbokDAABAhSZMSObM6fyRUjfemEyZUtrpBgAAADBsA0CFfve7ZOnS9mscIQUAANAzjRiRzJ2bzJuXTJ2ajBuXbLddssMOSb8KbhGeeWbyi1/UPicAAAD0AgPqHQCAXmLWrPY/79cv+fCHuycLAAAAnTNqVOn1Wqefnhx7bPneqVOTnXZKdtmlJtEAAACgt7CzDQDlPf988qc/tV/z7ncnb3pT9+QBAACgeo45Jjn66PJ1r7xS2tH0qadqnwkAAAB6MMM2AJT3P/9TuqnaHkdIAQAA9E6FQjJtWrLzzuVrH3ww+djHkmXLap8LAAAAeijDNgC8sZaWZOzY5BvfKF974IG1zwMAAEBtrLlmcuGFyTrrlK/905+SE0+seSQAAADoqQzbALB6s2cn48cnzc3la/v1Kw3mAAAA0HttsUVyzjmlnW7K+fa3S783AgAAQB9k2AaAtlpakkmTktbWyuqXLy/VL1hQ21wAAADU1gc+UNnupkly2GHJvffWNg8AAAD0QIZtAGhr6tTKB21WaG1NpkypTR4AAAC6zwknlIZuynn++WTixOSll2qfCQAAAHoQwzYArGrevMqOjlqd5uZk/vzq5gEAAKB79euX/PrXyVvfWr725puTT386KRZrHgsAAAB6CsM2AKxqxoz69gMAAFB/666bXHhhMmhQ+dpf/So59dTaZwIAAIAewrANAKtasKC+/QAAAPQMI0Yk//u/ldV+7nPJ9dfXNg8AAAD0EIZtAFjV4sVd61+0qDo5AAAAqL+jjko+8YnydUuXJgcdlDz5ZO0zAQAAQJ0ZtgFgVUOHdq1/2LDq5AAAAKBn+OlPk1Gjytc99FByyCHJsmW1zwQAAAB1ZNgGgFWNGFHffgAAAHqWpqZk1qxk3XXL1151VXLCCbXPBAAAAHVk2AaAVU2eXN9+AAAAep7NN0/OOy8pFMrXfu97yW9/W/tMAAAAUCeGbQBY1ahRyfbbd653zJhk5Mjq5gEAAKBneN/7km99q7LaI45I7rmntnkAAACgTgzbANDWu97V8Z6mpmT69OpnAQAAoOf4yleSCRPK1y1alBx4YPLii7XPBAAAAN3MsA0Abc2b17H6pqZk5sxkxIja5AEAAKBn6NcvOfvs5G1vK197223JsccmxWLtcwEAAEA3MmwDwKruvz+5+ebK68eOTebMqezJRgAAAHq/4cOTiy4qPXhRzrnn2gUVAACAhmPYBoBV/fa35Wu22SaZOjWZPz+57jo72gAAAPQ1O+6YnHpqZbXHH1/63REAAAAaxIB6BwCghyk3bDNkSLJgQWVPMAIAANC4jjgiaW5O/vd/26979dVk0qTS75JvelP3ZAMAAIAasrMNAP/yzDPJX//afs0++xi0AQAAoOTHP05Gjy5f98gjycEHlwZvAAAAoJczbAPAv1x6abJsWfs1++/fPVkAAADo+QYNSmbNStZfv3ztX/6SfOUrNY8EAAAAtWbYBoB/KXeEVP/+yb77dk8WAAAAeoe3vCU5//ykXwW3Gk8+Odl662T77ZNx45KpU5OWltpnBAAAgCoybANASWtrctll7de8+93Juut2Tx4AAAB6j732Sr7zncpq7747ue22ZO7cZPr0ZNSoZOxYQzcAAAD0GoZtACi56qrkxRfbr3GEFAAAAG/ki1/s/O+Nzc3J+PHJ7NnVzQQAAAA1YNgGgJJyR0glhm0AAAB4Y4VCMmNGstVWnetvbU0mTUoWLKhuLgAAAKgywzYAJMuXJ7/7Xfs1O+6YvPWt3RIHAACAXmrttZOLLkrWXLNz/a2tyZQp1c0EAAAAVWbYBoDk+uuTxx9vv8auNgAAAFRi++2TL32p8/3Nzcn8+dXLAwAAAFVm2AaAyo6QOuCAmscAAACgQTzxRNf6Z8yoTg4AAACoAcM2ACSXXNL+55ttluy0U3ckAQAAoBEsWFDffgAAAKghwzYAfd2sWcldd7Vf86EPJYVC9+QBAACg91u8uGv9ixZVJwcAAADUgGEbgL6qpSUZOzaZNKl8rSOkAAAA6IihQ7vWP2xYdXIAAABADRi2AeiLZs9Oxo9Pmpsrq+/qE4kAAAD0LSNG1LcfAAAAasiwDUBf09JS2s2mtbXynkMOSRYsqF0mAAAAGsvkyV3r/+hHqxIDAAAAasGwDUBfM3VqxwZtklL9lCm1yQMAAEDjGTUqGTOm8/3/+79JsVi9PAAAAFBFhm0A+pJ58yo/Our1mpuT+fOrmwcAAIDGNW1a0tTUud5zz01+9rPq5gEAAIAqMWwD0JfMmFHffgAAAPqOkSOTmTM7P3Bz/PGdf2AEAAAAasiwDUBfsmBBffsBAADoWyZMSObM6dyRUkuXJpMmJU8+Wf1cAAAA0AWGbQD6ksWLu9a/aFF1cgAAANB3jBiRzJ1bOtp46tRk3Lhk222TtdYq3/vQQ8khhyTLltU+JwAAAFTIsA1AXzJ0aNf6hw2rTg4AAAD6nlGjklNOKe10c9ttyR13JOuvX77vqquSr3+99vkAAACgQoZtAPqSESPq2w8AAAArvOUtyfnnJ/0quEX53e8mv/td7TMBAABABQzbAPQlkyfXtx8AAABea6+9kpNOqqz2iCOSe++tbR4AAACogGEbgL5k1KhkzJjO9Y4Zk4wcWd08AAAA8KUvJfvtV77u+eeTiROTl16qfSYAAABoh2EbgL7m29/ueE9TUzJ9evWzAAAAQL9+ya9+lbztbeVrb745+cxnkmKx9rkAAADgDRi2AehrHn20Y/VNTcnMmcmIEbXJAwAAAMOHJxdeWPodtJwZM5LTT695JAAAAHgjhm0A+po//KHy2rFjkzlzkgkTapcHAAAAkmSnnZL//d/Kaj/72WT+/JrGAQAAgDdi2AagL3n11eSyy9qvGTYsmTq1dNPyuuvsaAMAAED3mTw5OfbY8nWvvJIcdFDy9NM1jwQAAACvZ9gGoC+5/vrk2Wfbr/n615NTTklGjuyeTAAAAPBa//M/lf1O+sADycc+lixbVvtMAAAA8BqGbQD6kksvLV/zwQ/WPgcAAAC8kaam5MILk3XXLV97+eXJSSfVPhMAAAC8hmEbgL7kD39o//Mttkje+c7uyQIAAABvZPPNk3POSQqF8rXf+lbyxz/WPhMAAAD8H8M2AH3FQw8lN9/cfs0HP1jZjUwAAACotX32Sb7xjfJ1xWLpOKn77695JAAAAEgM2wD0HeV2tUmSffetfQ4AAACo1AknJB/4QPm6Z59NDjooaW2tfSYAAAD6PMM2AH1FuWGbNddM3vOebokCAAAAFenXLzn77NKxUuW0tCSf+1ztMwEAANDnGbYB6AuWLEmuvLL9mj33LA3cAAAAQE+y3nrJhRcma6xRvvb005Mzz6x9JgAAAPq0AfUO0J6jjz663hG6rFAo5Iwzzqh3DKCv++tfkxdfbL/mgx/sniwAAADQUSNHJtOmJcceW772M59Jdtop2XnnmscCAACgb+rRwzZnnXVWCoVCvWN0WrFYNGwD9AyXXlq+Zt99a58DAAAAOuuYY5K5c8vvXNPamkycWDpWap11uicbAAAAfUqvOEaqWCz2yhdAj/GHP7T/+bbbJptv3j1ZAAAAoDMKhWT69NKuNeXcd19yxBHJ8uU1jwUAAEDf0yuGbQqFQq98AfQI99xTerXHEVIAAAD0BmuumVx4YTJ8ePna2bOT732v5pEAAADoe3rFsE29d6ixqw3QqzlCCgAAgEbytrclZ59dWe0JJyRXXFHbPAAAAPQ5A+odoFKFQiFf/epXs+WWW9Y7SrvuvffefPvb3653DIB/Oe+89j9fe+1k3LjuyQIAAADVMGFC8tWvJt/5Tvt1xWJyyCHJggXJZpt1TzYAAAAaXq8ZtkmSCRMmZPTo0fWO0a7rr7/esA3QM7S0JJ/+dDJvXvt1u+ySDBzYPZkAAACgWr75zeT665Mrr2y/7umnk0mTkr/+NRk0qHuyAQAA0NB6xTFSAHTQ7NnJ+PHlB22S5JprSvUAAADQm/Tvn5x7bvKWt5SvveGGZPPNk+23L+3uOnVq6SEVAAAA6ATDNgCNpqWl9MRea2tl9UuXluoXLKhtLgAAAKi2DTZIZs6sbMfWxx9PbrstmTs3mT49GTUqGTvW0A0AAAAdZtgGoNFMnVr5oM0Kra3JlCm1yQMAAAC19K53JT/5Sed6m5tLO8Pa8RUAAIAOMGwD0EjmzSvdKOyM5uZk/vzq5gEAAIDu8OlPJ4cd1rne1lY7vgIAANAhA+odoD2bbbZZCoXCyveDBg2qY5rKDBo0qE1ugG4zY0bX+0eNqk4WAAAA6C6FQvLznyc33VQ6KqqjVuz4Ondu1aMBAADQeHr0sM39999f7wgdttNOO/XK3ECD6OpTeJ7iAwAAoLcaMiQ58cTkoIM6179ix1cPoQAAAFCGY6QAGsnixV3rX7SoOjkAAACgHq6+umv9Xd0xFgAAgD7BsA1AIxk6tGv9w4ZVJwcAAADUgx1fAQAA6AaGbQAayYgR9e0HAACAerLjKwAAAN3AsA1AI5k8ub79AAAAUE92fAUAAKAbGLYBaCSjRiU779y53jFjkpEjq5sHAAAAupMdXwEAAOgGhm0AGs2++3a8p6kpmT69+lkAAACgO3V1x9bdd69KDAAAABqbYRuARnP33R2rb2pKZs709B4AAAC936hRpZ1bO+uEE5LFi6uXBwAAgIZk2AagkSxbllx5ZeX1Y8cmc+YkEybULhMAAAB0p2nTSg+WdMaddyaf+ERSLFY3EwAAAA3FsA1AI1mwIHnmmfZrttgimTo1mT8/ue46O9oAAADQWEaOLO3g2tmBmwsuSH760+pmAgAAoKEMqHeA7nD11Vfn2muvTUtLS+6+++48//zzef7559Pa2trlaxcKhbz66qtVSAlQBVdcUb7m0kuTbbapfRYAAAColwkTSju5TpmSNDd3vP8LXygdSbXrrtXPBgAAQK/XsMM2y5Yty49//OP87Gc/ywMPPLByvWgLWKCR/elP7X/+5jcn73xn92QBAACAehoxIpk7t7Sz64wZpd1gFy1Knn46efTR9ntffTX5yEdKPW96U/fkBQAAoNdoyGGbO++8M4ceemhuvvnmNsM1hUKhat9jcAfoURYvLh0L1Z73vS+p4t+DAAAA0OONGlV6rbB0abLHHqWdb9rzyCPJIYeUHmwZ0JC3UQEAAOikfvUOUG333ntv9thjj5WDNoVCYZUXQMO65prSDcP2vO993ZMFAAAAeqqBA5MLLkg23LB87dVXJ1/7Wu0zAQAA0Ks01LDNsmXLst9+++Xxxx9PsuouNsViseovgB6l3BFShUKy117dkwUAAAB6sk03Tc4/P+lXwe3RH/wgueSSmkcCAACg92ioYZvTTz89d95552qHbMaNG5ef/OQn+dvf/pbHHnssL730UpYvX97l17Jly+r4EwO8RrlhmxEjkvXX754sAAAA0NPtsUfyve9VVnvkkck//lHbPAAAAPQaDXXY8LRp01Z5XywW8+Y3vzm//OUvs/fee9cpFUA3eOCB5K672q9xhBQAAACs6j/+I5k7t/zONYsWJRMnlmoHD+6WaAAAAPRcDbOzzcMPP5w77rhj5a42xWIx66+/fv7yl78YtAEa3xVXlK8xbAMAAACrKhSSs85KttqqfO0ttySf+lTieHkAAIA+r2F2trnhhhtW/rlYLKZQKOTEE0/M2972tjqm6l3uuOOO3HbbbXnkkUfywgsvpKmpKRtssEG22Wab7Lzzzhk4cGC9IwJvpNwRUkOGJGPHdk8WAAAA6E3WXju58MJkzJjk5Zfbrz377GTXXZNPfrJ7sgEAANAjNcywzRNPPLHK+wEDBuTwww+vU5reY+HChTnllFNyzjnn5JFHHnnDuqFDh2a//fbLcccdl1122aUbE7Z11lln5aijjqr59xx55JE566yzav490GXLliVXXdV+zXvekwwa1C1xAAAAoNfZYYfk1FOTI44oX/u5zyUjRiR1vkcGAABA/TTMMVLPPPPMKu+33nrrDB06tE5per7ly5fne9/7XrbeeuucfPLJ7Q7aJMnixYtz7rnnZvTo0TniiCPy/PPPd1NSoKxf/zp53d+BbThCCgAAANp3+OGlY6LKeeWV5KCDkqeeqn0mAAAAeqSGGbYZ9JodGwqFQjbYYIM6punZWltbs//+++crX/lKXi63Ne5qnH322Rk9enTuv//+6ofrQd7+9rfXOwK0r6WldDTU5Mnlaw3bAAAAQHk/+UllO9Y8+GDysY+VdpsFAACgz2mYYZuNNtpolfedGSLpC5YtW5aDDjoos2fPXu3nAwcOzI477pi99toro0ePzlprrbXaurvvvjt77rlnHnvssVrGrZv+/ftnciUDDFAvs2cn48cnzc3lawuF5J57ap8JAAAAertBg5JZs5L11itf+6c/JSedVPtMAAAA9DgD6h2gWrbffvuVfy4Wi3n88cfrmKbn+uY3v5lLL720zfrw4cPz9a9/PUcffXTWXnvtletLly7N7373u3zlK1/J3XffvUrPfffdl0MPPTRXXnll+vXrvrmtfffdN3Pnzq3KtZ588sl86EMfarO+zz77ZNNNN63Kd0DVtbQkkyYlra2V1ReLyUc+ksyZUzpTHgAAAHhjm22WnHNO8oEPlH6nbs+3vpW8612lWgAAAPqMhhq22XjjjVfutHL//ffn0UcfzcYbb1znZD3HLbfcku9+97tt1jfffPNcddVV2XLLLdt8NnDgwEycODH77LNPJk6cmMsvv3yVz6+++uqceuqp+fSnP12z3K+3wQYbVO2YsB/+8IerXT/mmGOqcn2oialTKx+0WaG1NZkyJanSoBoAAAA0tPe/PznxxOQb32i/rlgsHSe1YEHy1rd2RzIAAAB6gIY5RipJJk+enOJrnja56KKL6pim5/nCF76QZa87R3rIkCH54x//uNpBm9fXXXTRRdl2223bfHbCCSfkxRdfrGrW7nLGGWe0Wdtoo40yYcKEOqSBCsybV9nRUavT3JzMn1/dPAAAANCovva1ynasefbZ5KCDOv5gDAAAAL1WQw3bHH/88VlnnXVSKBRSLBbz3e9+Ny+//HK9Y/UICxYsyBVXXNFm/YQTTsg222xT0TUGDx6c008/vc36008/ndNOO63LGbvbnDlzcuedd7ZZP/LIIzNgQMNs+kSjmTGjvv0AAADQV/Trl/z618nmm5evbWlJ/v3fa58JAACAHqGhhm3WX3/9/OQnP0mxWEyhUMhjjz2WyZMn1ztWj3Dqqae2WVt33XXz2c9+tkPXGTt2bN7//ve3We+Nwza/+MUvVrv+8Y9/vJuTQAcsWFDffgAAAOhL1l03ufDCZI01yteedlpy1lk1jwQAAED9NdSwTZIcfvjh+eIXv7jyOKlZs2bl0EMPzQsvvFDnZPXz6quvZubMmW3WDzvssAwePLjD1/vEJz7RZu3OO+/MjTfe2Kl89bB48eLV/mey++675+1vf3sdEkGFFi/uWv+iRdXJAQAAAH3FyJHJtGmV1X7608lNN9U0DgAAAPXXcMM2SfK9730vJ510UgqFQpLkggsuyPbbb5+f//zneemll+qcrvtdf/31efbZZ9usT5w4sVPX23fffbPmmmu2Wf/jH//YqevVw3nnnZcXX3yxzfoxxxxThzTQAUOHdq1/2LDq5AAAAIC+5JhjkqOOKl/X2ppMnJg891zNIwEAAFA/A+odoJq+9a1vrfJ+1113zbXXXpskeeCBBzJlypQcd9xxGTFiRLbddtusu+66GTJkSJe/9+tf/3qXr1FLf/7zn9usDR48OGPHju3U9ZqamjJu3LhcddVVbb7nK1/5Sqeu2d1Wd4TU8OHDc9BBB9UhDXTAiBHJ3Lld6wcAAAA6plBIpk8vHc98883t1/7zn8kRRySXXJL0a8hnHQEAAPq8hhq2OfHEE1fuZvNaK9aKxWJeeeWVXH/99bn++uur9r09fdhm/vz5bdZ22mmnDBw4sNPXHD16dJthm5aWlk5frzvdeuutmTdvXpv1j33sY2lqaqpDIuiAyZNLN/e60g8AAAB03JprJhdeWDpW6vnn26/9/e+TH/wg+fKXuycbAAAA3aohH60oFosrXyveJ6Whm0KhsMrnXX31Bjev5mmb7bffvkvXXF3/c889lwcffLBL1+0Oq9vVJnGEFL3EqFHJmDGd6x0zpnRDEAAAAOicLbdMzj67stqvfS153cNqAAAANIaGHLZZMVTz2le5zzvz6g2WLl2ahQsXtlnfaqutunTdN+q/9957u3TdWluyZEl+/etft1kfOXJkdtppp+4PBJ0xbVrSv3/HepqaurYjDgAAAFCy335JJUepL1+eHHJI8tBDtc8EAABAt2q4YZtq7lrTCLvaLFy4MMuXL2+zvummm3bpum/Uf//993fpurV28cUX55lnnmmzblcbepURI5KhQyuvb2pKZs4s9QEAAABd961vJXvtVb7uySeTSZOSV16pfSYAAAC6zYB6B6imb3zjG/WO0OM88cQTq11/05ve1KXrvlH/k08+2aXr1trqjpAaPHhwDj300DqkKZk7d26X+m+99dYqJaHXuOuu5LnnKqsdO7a0E45BGwAAAKie/v2Tc88t/b798MPt1zY3J1/4QvLTn3ZPNgAAAGrOsE2DW90uLkmy9tprd+m6/fv3z+DBg/PSSy+tsv7000936bq1dP/99+fPf/5zm/VJkyZl2LBhdUhUMm7cuLp9N73U1VeXr/noR5P/+I9k5Mja5wEAAIC+aMMNk1mzkne/O1m6tP3aU05JLrssGTSotFvtiBHJUUf5vR0AAKCXarhjpFjVCy+8sNr1tdZaq8vXXt01XnzxxS5ft1bOOOOM1R7/5Qgpep3VDI2tYt11S0/XuWEHAAAAtTVmTPKjH1VWe889yW23JXPnJtOnJ6NGlXakbWmpbUYAAACqzrBNg1v6Bk/VDBjQ9U2NBg4c2GbtlR56/vTy5ctz1llntVl/5zvfmfHjx3d/IOis5cuTv/yl/Zrdd0/6+esdAAAAusWUKckhh3Sut7k5GT8+mT27upkAAACoKf8a2+CWLVu22vX+/ft3+dqru8arr77a5evWwmWXXZaHHnqozfrHP/7xOqSBLrj99uSpp9qv2XPP7skCAAAAJIVCcvrpybbbdq6/tTWZNClZsKC6uQAAAKiZrm9vQo/2RjvYVGMoZnXXWN1uNz3BL37xizZrAwcOzBFHHFGHNKu67rrrutR/66235pOf/GSV0tDjlTtCKkn22KP2OQAAAIB/GTIkufDC0tFQb3Cse7taW0s75MydW/1sAAAAVJ1hmwY3aNCg1a6/0fFSHbG6I6Pe6Pvq6Yknnsjs1WzFu99++2XDDTesQ6JVjR07tt4R6E2uvrr9zzfcMPm3f+ueLAAAAMC/bL118tWvJl/+cuf6m5uT+fNLAzsAAAD0aI6RanBDhw5d7fqiRYu6fO3Fixe3WRs2bFiXr1ttM2bMWO1w0THHHFOHNNAFy5Yl11zTfs0ee5S2rwYAAAC632qOMe+QGTOqkwMAAICaMmzT4NZbb73Vrj/33HNduu6SJUuyZMmSir+vnn75y1+2WXvLW96S97///XVIA11w001Juf/tOkIKAAAA6mfBgvr2AwAA0C0M2zS4jTbaaLXrjz/+eJeu++ijj3bo++rlb3/7W+68884260cddVT69fNff3qZckdIJYZtAAAAoJ5WsxN0h1RhN2oAAABqb0C9A1TTt771rbp879e//vW6fG8lNtlkkwwaNKjNLjQPPvhgl667cOHC1a5vscUWXbputf3iF79os9avX78cffTRdUgDXVRu2GaTTZK3v717sgAAAABtvcGR7hXrgUe0AwAA0FZDDduceOKJKRQK3f69PXnYplAoZMstt8wdd9yxyvrdd9/dpeu+Uf9WW23VpetW0+LFizNz5sw263vvvXc233zzOiSCLli6NPnrX9uv2XPPpA5/BwIAAAD/Z8SIZO7crvUDAADQ4zXkOTrFYrHbXr3Bzjvv3Gbtpptu6tI1V9f/5je/Oeuvv36XrltN5557bl566aU268ccc0wd0kAX/frXyQsvtF/jCCkAAACor8mTu9b/kY9UJQYAAAC11ZDDNoVCoVtevcW73vWuNmt33HFHFnXhDOi5q3lCZ3XfU09nnHFGm7X1118/+++/fx3SQCe1tCRjxyaVHH1m2AYAAADqa9SoZMyYzvdPn570kgf8AAAA+rKGG7ap1a41vXVXm6R0bNLrLVu2LFdeeWWnrvfkk0/mxhtvrOh76uXWW2/NvHnz2qwfccQRWWONNeqQCDph9uxk/Pikubl8baGQ3H577TMBAAAA7Zs2LWlq6lzvBRckP/1pdfMAAABQdQPqHaCavvGNb3T5GkuXLs3TTz+dhx9+OHPnzs3TTz+dpLRbTrFYzJAhQzJlypSsueaaXf6u7rLNNttkyy23zL333rvK+gUXXJADDzyww9ebOXNmli9fvspaoVDIvvvu26Wc1XT66aevdt0RUvQaLS3JpElJa2tl9cViqX7OHOe7AwAAQD2NHJnMnNmx3+tf6wtfKO2Qs+uu1c8GAABAVRi2KePaa6/Nf//3f+d3v/tdCoVCXnrppVx66aW59NJLs9lmm1X9+2rlsMMOyze/+c1V1i6++OI8/PDD2XTTTSu+TrFYzPTp09usv+c978lb3vKWLueshiVLluScc85psz5u3Lhss802dUgEnTB1asdvyLW2JlOmJKs55g0AAADoRhMmlB6ImTKlsh1rX+vVV5OPfCRZsCB505tqkw8AAIAuabhjpKptt912yyWXXJLf/OY3GTp0aJLk9ttvz2677ZYHH3ywzukqd+yxx7Y5Pmnp0qX52te+1qHrzJgxI3fccUeb9alTp1Z8jcmTJ6dQKLR53X///R3K8kYuuuiiPPPMM23W7WpDrzFvXsdvxK3Q3JzMn1/dPAAAAEDHjRhReiBm3rzSQzXjxiXbbpv83z3Gdj3ySHLwwaXBGwAAAHocwzYVOuigg/Lb3/42AwcOTKFQyMKFC7PffvtlyZIl9Y5WkU022SRHH310m/WzzjorM2fOrOga99xzT4477rg269ttt10OOOCALiasnjPOOKPN2tChQ/ORj3ykDmmgE2bMqG8/AAAAUD2jRiWnnFLa6ea225K//z3ZcMPyfX/5S/KVr9Q8HgAAAB1n2KYDdt9995x44okpFospFAq57bbb8q1vfavesSp20kknZd11122zfvjhh+e8885rt/emm27KXnvtleeff77NZz/96U/Tr1/P+K/Sfffdlz//+c9t1g855JAMGTKkDomgExYsqG8/AAAAUDubbpqcf35Syf20k09OLrqo9pkAAADokJ4xIdGLHHfccXnT/52VXCwW89Of/jTPPvtsnVNVZv3111/tri9LlizJoYcemg984AO55JJL8vjjj2fZsmV57rnncs011+TYY4/N6NGjs3Dhwja9xx9/fPbYY4/uiF+RM844I8Visc26I6ToVRYv7lr/okXVyQEAAADUxh57JN/9bmW1kycnd99d0zgAAAB0jGGbDmpqasq+++67cqDjpZdeyvnnn1/nVJU74IAD8t03+EX+sssuy4c//OFstNFGGTBgQNZZZ5285z3vyemnn56lS5e2qZ8wYUJ+8IMf1DpyxZYtW5azzjqrzfoOO+yQXXbZpfsDQWdVcnZ7e4YNq04OAAAAoHb+8z+TSo5mX7w4mTgxefHFmkcCAACgMoZtOmG33XZLkhQKhSTJn/70p3rG6bAvf/nL+fGPf5z+/ft3+hqHHXZYZs2alYEDB1YxWddcdtllefjhh9us29WGXmfEiPr2AwAAALVXKCRnnZW8/e3la2+7LTn22GQ1OzoDAADQ/QbUO0BvtPHGG6/8c7FYzK233lrHNJ1z3HHHZezYsZkyZUpaWloq7tt4443zX//1XznssMNqmK5z7rzzzrz//e9fZa1QKPTIrNCuyZOT6dO71g8AAAD0fGuvnVx4YfKudyUvv9x+7bnnJmPHJlOndk82AAAA3lChWPQ4REdde+212X333VMoFFIsFjNkyJAsXry43rE67corr8yvf/3rXHnllavdGWb48OHZbbfdctBBB+WjH/1oBg0aVIeUvJG5c+dm3Lhxq6xdd911GTt2bJ0SURVjxybNzR3vGzMmmTu3+nkAAACA2jnnnKSSB8YGDkyuuaZ03wAAAKAB9ZZ//7azTSc8+eSTq7xfunRpnZJUx95775299947SfLcc8/lkUceyYsvvpimpqasv/76q+zkA3STadNKN8468vdLU1PXdsQBAAAA6uNjH0uuuy752c/ar1u6NJk0KVmwINlww+7JBgAAQBuGbTph7ut2jVh33XXrlKT6hg8fnuHDh9c7BjByZGmXmmuvray+qSmZOTMZMaK2uQAAAIDa+NGPkpaW5Prr2697+OHkkEOSyy9PBri9CwAAUA/96h2gt3n55Zdz/vnnp1AorFzb0FMkQLUVi8m991ZWO3ZsMmdOMmFCbTMBAAAAtTNoUOlBmvXXL1/75z8nJ5xQ+0wAAACslmGbDvr85z+fhx9+OElSLBZTKBR63NlgQAO4777kkUfar9ltt2T+/NI203a0AQAAgN7vLW9Jzj8/6VfBbdvvfz/57W9rnwkAAIA2DNtU6Nlnn83kyZNz6qmnrrKrTZJ84AMfqFMqoGFVcnzUT35SOm4KAAAAaBx77ZWcdFJltUcckfzjH7XNAwAAQBsO9V2N5cuXZ/HixXnsscdyyy235LLLLsuFF16YxYsXr9zNJkkKhUK22mqr7LvvvnVODDScv/2t/c/XWivZYYfuyQIAAAB0ry99KWluTn7/+/brFi1KJk5M5s5NBg/unmwAAAA01rBN//79a3btYrGYJCsHbVYM3fzgBz+o6fcCfVS5nW3GjUsGNNRf4QAAAMAK/folv/pVMmpUcu+97dfeckvyqU8lM2Ykr9uRGwAAgNpoqGOkisVizV6FQqHN8VHf+MY3csABB9TnhwUa1xNPJHfd1X7Nbrt1TxYAAACgPoYPTy68MFlzzfK1Z5+d/PznNY8EAABASUMN2yRZORRT7dcKxWIxgwYNyn//93/n61//eh1/UqBhzZlTvsawDQAAADS+HXesfIjm3/89ueGG2uYBAAAgSQMO21Tba3e3WWONNXLwwQfnpptuyvHHH1/vaECjKneE1MCByejR3ZMFAAAAqK8jjkg++cnydUuXJgcdlDz1VO0zAQAA9HED6h2g2orFYpev0b9//wwdOjRrr712Ntlkk4wYMSK77LJL9ttvv6yzzjpVSAnQjnLDNqNGVbaFNAAAANAY/ud/kgULknnz2q9buDA55JDkssuS/v27JxsAAEAf1FDDNsuXL693BICueeGF5MYb269xhBQAAAD0LYMGJbNmJSNGJE8/3X7tlVcm3/hG8u1vd082AACAPsgxUgA9SXNzsmxZ+zXjx3dPFgAAAKDn2Gyz5Nxzk0KhfO13vpP8/ve1zwQAANBHGbYB6EkuuKB8za671j4HAAAA0PO8733JN79ZWe3hhyf//Gdt8wAAAPRRhm0AeoKWlmTs2OQXv2i/bsstk3XX7Z5MAAAAQM/z1a8m++5bvu7555OJE5OXX659JgAAgD7GsA1Avc2eXToaqrm5fO3995fqAQAAgL6pX7/k7LOTLbYoX3vTTclnPpMUizWPBQAA0JcYtgGop5aWZNKkpLW1svply0r1CxbUNhcAAADQc62zTnLhhUlTU/nas85Kttoq2X77ZNy4ZOrU0v0IAAAAOs2wDUA9TZ1a+aDNCq2tyZQptckDAAAA9A4775z87GeV1f7zn8lttyVz5ybTpyejRpWOszZ0AwAA0CkD6h2gp3rooYfyt7/9LY899liWLVuWTTfdNKNGjcpWW21V72hAo5g3r7Kjo1anuTmZP790cwwAAADom446KrnuuuQXv+h4b3Nz6VjrmTOTCROqnw0AAKCBGbZ5nXnz5uU///M/89e//nW1n++yyy45+eSTs9tuu3VzMqDhzJjR9X7DNgAAANC3nXJKcuONndulprW1dFz1nDnJiBHVzwYAANCgGuoYqSVLluTf/u3f8ra3vW3la+rUqRX3n3vuudltt93y17/+NcVicbWvG264IXvssUe+9a1v1fAnAfqEBQvq2w8AAAD0fk1NyaxZybrrdq7fcdUAAAAd1lDDNpdffnnuvPPOPPDAA7n//vvzwAMP5MADD6yod968eTnqqKPyyiuvpFgsplAovOFr+fLl+eY3v5n/+Z//qfFPBDS0xYu71r9oUXVyAAAAAL3bW9+afP3rne9fcVw1AAAAFWmoYZvf//73q7zfYostsueee1bUe8wxx2Tp0qUrB2pWeO2uNisUCoUUi8X853/+Z+66667qhAf6nqFDu9Y/bFh1cgAAAAC93z33dK2/q8ddAwAA9CENNWwzd+7clYMwhUIhEyZMqKjvoosuyq233tpmyGbQoEHZe++9c/DBB2eXXXZZZeAmSZYuXZrjjz++qj8D0Id09Sx0Z6kDAAAAKziuGgAAoNs0zLDNCy+8kL///e+rrH3wgx+sqPe0005b+ecVAzVjxozJP/7xj/zpT3/Kueeem+uvvz7XXnttNtxwwyRZOZhz+eWX57777qvGjwD0NZMn17cfAAAAaByOqwYAAOg2DTNsc++997bZeWbnnXcu2/fEE0/kqquuWmVXm6FDh+biiy/OJptsskrtrrvumvPPP7/N95x77rldSA70WaNGJWPGdK53zJhk5Mjq5gEAAAB6L8dVAwAAdJuGGba5//77V3m/wQYbZIMNNijb96c//SnLli1LkpXHTx199NF505vetNr63XffPe973/tW1ibJNddc07XwQN81bVoyYEDHepqakunTa5MHAAAA6J0cVw0AANBtGmbY5rHHHlvl/cYbb1xR39VXX91m7cgjj2y356CDDlr552KxmJtvvrmi7wJoY+TIju1Q09SUzJzpBhgAAACwqq4eN73//lWJ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BwAAoIdq2GGbF154Ieeff35++ctf5vrrr0+SVY6Iev2QTb9+/fLe9743Rx99dA444ICsscYa3Z4ZaBCTJyfTp3etHwAAAKA3GzWq9FqhWEwOOSS54IL2+5YsSQ48MGlpSdZfv7YZAQAAOqnhhm2uueaa/PKXv8yFF16Yl19+OUn7u9i87W1vy+TJkzN58uS8+c1v7v7AQOMZNaq0XXJzc8d7x4zx5BYAAADQeAqF5Be/SG67Lbn99vZrH3ywNJhz2WVJ//7dkw8AAKADGmLYZuHChZkxY0bOOuus3HfffUlWv4vNirXBgwdn4sSJOfroo7P77rt3f2Cg8U2bVhqcefXVynuamrq2Iw4AAABAT7bWWsnFF5ceVFq0qP3aK69Mvva15Hvf655sAAAAHdBrh21eeeWVXHTRRTnzzDNz1VVXpVgstntMVJK8613vytFHH52DDz44Q4cO7fbMQB8ycmTpjPIbbqisvqkpmTmz1AMAAADQqN7+9uTXv04+9KHytd//frLLLqVjpQAAAHqQXjds09LSkjPPPDPnnXdennvuuSTtHxP1pje9KYcffniOPvrovPOd7+z2vEAf9sQTldWNHVvaCcegDQAAANAX7LdfcsIJyUknla898sjk3/4tcW8XAADoQXrFsM3TTz+ds88+O2eeeWZuu+22JKs/JmrF+oABA/LBD34wRx99dPbdd9/0d64v0N2efz65//72a9797uRHPyrtggMAAADQl3zjG8m8eclll7Vf98ILyYc/XNo92G7lAABAD9Erhm022WSTvPrqq2WPifq3f/u3HHXUUTn88MOz4YYbdntOgJVuvbV8zbe/bdAGAAAA6Jv690/OOScZNSq57772a++8MznqqNIR3K+5LwwAAFAv/eodoBJLly5d+edCoZBCoZBisZhisZihQ4fmE5/4RObOnZvbbrstn//85w3aAPV3883la3bYofY5AAAAAHqqdddNLr44WXPN8rUXXpicfHLtMwEAAFSgV+xss8KKIZtCoZDddtstRx99dCZOnJjBgwcnSZYvX16XXP369YqZJaA73XJL+59vvnmy9trdkwUAAACgp9pxx+S005LDDy9f++UvJyNGJHvvXftcAAAA7ehVwzYrjosqFov529/+lr/97W85+uij65qpUCjk1VdfrWsGoAcqN2yz447dkwMAAACgpzvssOSG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SUMN2yTJvvvum5/+9Kcrd51JSgM1r32tUCwWs/HGG2fmzJkVX3/GjBmrvF9jjTWy6667dj040DONGFHffgAAAAAawxFHJP/+75XVfvzjjicHAIAerOGGbZJkypQpmT17djbffPM2u9q89vXe9743N9xwQ9785jdXdN2bb745V1111cqBnUKhkN133z2DBw+u5Y8D1NPkyfXtBwAAAKBx/PCHyZ57lq9rbU0+/OHkiSdqnwkAAOiwAfUOUCsf/OAHc/fdd+fPf/5zLr/88ixcuDDPP/98hg8fnm233Tb77rtvRo4c2aFrnnbaaVl77bVXWfvwhz9czdhATzNqVDJmTNLc3PHeMWOSDv49AwAAAEADGzAgueCCZJddkvvvb7/2wQeTSZOSK69MBg7slngAAEBlCsXXnrcE9Dpz587NuHHjVlm77rrrMnbs2DolakAtLcn48aUniirV1FQ6k9sxUgAAAAC83s03J+PGJS+9VL52ypRk2rTaZwIAgB6gt/z7d0MeIwVQVSNHJjNnJv37V1bf1FSqN2gDAAAAwOrsuGNy5pmV1U6fnpxxRm3zAAAAHWLYBqASEyaUjpQqZ+zY0o42EybUPhMAAAAAvddHPpJ8+cuV1X7mM5075hwAAKgJwzYAlSq3re9hhyXXXWdHGwAAAAAqc9JJyQc/WL7ulVeSAw9MHnmk9pkAAICyDNsAVOqxx9r/fIcduicHAAAAAI2hf//k3HOTd7yjfO2jj5YGblpba58LAABol2Gbdjz22GO56aab0tLSksfK/SM70NhefTV58sn2azbaqHuyAAAAANA41l47+e1vk6FDy9def30yZUpSLNY+FwAA8IYM27zO4sWL881vfjNbbbVVNt1004wcOTKjR4/Opptums022yxf+tKX8vTTT9c7JtCdWlqSMWPK1y1aVPssAAAAADSed74zOeecpFAoX/vLXybTp9c+EwAA8IYG1DtAtX3mM59J62u20dx+++1z/PHHV9R7++23Z999983ChQtTXM2TAQ899FBOPvnkzJgxI7/61a/y3ve+t2q5gR5q9uxk0qTKtuf9/OeTzTdPJkyofS4AAAAAGst++yXf+lZywgnla487Ltluu+Q976l1KgAAYDUaathm7ty5+fnPf57Ca6b/zzzzzIp6H3/88ey99955/PHHk2SVa7xWsVjM448/nv333z+XX355dtttt64H7yHuuOOO3HbbbXnkkUfywgsvpKmpKRtssEG22Wab7Lzzzhk4cGC9I3bKq6++mttvvz133XVXHn300bzwwgvp379/1lprrWy88cbZcsst8853vjNNTU31jkpP09JS+aBNkixZUqqfMycZMaK22QAAAABoPF/9anLTTcmFF7Zft2xZ6T7U/Pmlh78AAIBu1VDDNhdffPHKPxeLxay33no55JBDKur91Kc+lccff/wNh2xWWPF5a2trJk6cmLvuuivrrLNO50PX2cKFC3PKKafknHPOySOPPPKGdUOHDs1+++2X4447Lrvssks3JuycZcuW5Q9/+EPOOuusXHnllVlU5nifgQMHZvvtt8+73/3u7Lvvvnn3u9+dNdZYo5vS0mNNnVr5oM0Kra2lc7Pnzq1NJgAAAAAaV6GQnHVWctddyW23tV/71FPJAQeUHvwaPLg70gEAAP+nX70DVNPf/va3JKVBm0KhkH322aei3Vjmz5+f3/72t20GbYrFYgYNGpQ3velN6devX5ujpZ5++umcUMmWnj3Q8uXL873vfS9bb711Tj755HYHbZJk8eLFOffcczN69OgcccQRef7557spacddeuml2WGHHfKhD30oF110UdlBmyRZunRpFixYkJ/85Cd573vfm3PPPbcbktKjzZuXNDd3rre5ufRUEQAAAAB01FprJZdcklTykOdNNyUf/3jyunvXAABAbTXMsM3SpUtz4403rjIwM2HChIp6TznllFXeF4vFrL/++pk1a1YWL16cRx55JM8880y+/e1vp3///klKO9wUi8WcccYZee6556r2c3SH1tbW7L///vnKV76Sl19+ucP9Z599dkaPHp3777+/+uG64OWXX87HP/7xTJgwIXfccUe949DbzZhR334AAAAA+q4tt0x+85ukXwW38M8/Pzn55NpnAgAAVmqYYZt//vOfWbJkySpro0ePLtv38ssv5+KLL145pFMsFtO/f//Mnj07Bx544MrhmqFDh+YrX/lKfvKTn6yyw80rr7ySmTNnVvEnqa1ly5bloIMOyuzZs1f7+cCBA7Pjjjtmr732yujRo7PWWmuttu7uu+/Onnvumccee6yWcSv27LPPZu+9984vf/nLN6wZPHhwttxyy4wbNy7vec97suOOO2a99dbrxpT0KgsW1LcfAAAAgL5t770rH6L5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koMs8/tjfnrFGZwzc86ZM8vz+XicB8xnPp/3eY3Z7TK85vPdaKOi5i7v/DPPPFPU3ELUNfOHv759+2aLLbZ47+MFCxbk8ssvz4477pgVV1wxG264YYYOHZpNNtkk//Vf/5W+fftmm222ydlnn91sGQne8/DDyWmnffieqqpkxoz2yQMAAAAA7zr66ORrX2v7+fr6ZPTo0uUBAIBuolelA5TS4YcfnvPOOy///ve/kzQWYd5+++1897vfzXe/+9339r1bsHm/U089taD3mDt3bn7/+9+/d3tOVVVVtt5665J9DaU2c+bMJo/LSpJ1Cnme74dY3vnnnnuuqLmF+Nvf/tZk7eMf/3j69OmTJPnVr36V008/Pa+++upyZyxZsiS1tbWpra3Neeedl/333z/nnntuNtlkk7LlXp5p06YVdf7xxx8vURKamDy58ad7mrlJaRkNDY3X7k6alBR4QxYAAAAAlMSPf5xMnZpMn96287W1jWdrakqbCwAAurAuVbbp169ffvrTn2afffZ5b+3dUsz7vb9oU1VVla222iqHH354Qe9x22235Z133llmxjbbbFNk8vJZXuFkzTXXLGru8s6/9tprRc0tRHOPqho8eHCWLFmSE044IVdffXWrZ95888256667ctVVVxX870KpDB8+vF3fjwI9/HBhRZt3vXvt7tSpSXV1ebMBAAAAwLt69Uo237ztZZskmTBB2QYAAFqhSz1GKkn22muvXHrppcsUbKqqqpZ5vauhoSFrr712Jk2aVPD8CRMmLPNxnz598tnPfrb44GUye/bsZtdXXnnloub27Nkz/fv3b7L+xhtvFDW3EC+99FKTtcGDB2fUqFFtKtq8q76+Pl/4whdywQUXFBOPrmLMmMKLNu9y7S4AAAAAlfD3vxd3vq6uNDkAAKCb6HJlmyQZPXp0Jk+enPXXXz8NDQ3Lfe2yyy75y1/+knXXXbeguX/961/zu9/97r3CTlVVVT73uc81WzrpKObPn9/s+korrVT07OZmLFiwoOi5LZkzZ06TtXvuuSfXXHPNMmsDBgzIqaeemvvvvz8vvfRSFi5cmJdeein3339/TjvttAwcOLDZ+WeeeWbuvvvuckSns3joocbrc9vi3Wt3AQAAAKC9zJtX3Pm5c0uTAwAAuoku9Rip99tzzz3z9NNP57777ss999yTmTNn5q233sqgQYOyySabZK+99srQoUNbNfOKK65ociPM/vvvX8rYJbdo0aJm13v1Kv4/+t69ezdZe+edd4qe25KFCxc2WfvgbTe77bZbJkyY0ORxV2uttVbWWmutbLfddjnttNNyzDHH5K677lpmz9KlS/OFL3whTz31VFZfffXSfwF0fB+4wapN5127CwAAAEB7GTCguPPL+cFEAACgeV22bJM0Fkp23XXX7LrrriWZN27cuIwbN64ks9rLkiVLml3v2bNn0bObm7F48eKi57akpffYc889c8sttzRbBnq/NddcM7feemsOOOCA3H777ct8bvbs2bnkkkty7rnnFp23JQ8++GBR5x9//PGceOKJJUpDkuKvzXXtLgAAAADtqbo6mTatuPMAAEDBunTZhuXfYFOKUkxzM1oquJTCh73Hf/3Xf2XChAkF5+jdu3euvvrqbLrppnn55ZeX+dzYsWPzzW9+sySP3Pow22yzTVnn0wau3QUAAACgMxk1KinmB0UPPLBkUQAAoDvoUekAlFffvn2bXV/e46Vao7lHRi3v/UqpT58+y/3c17/+9VY/+mm11VbL17/+9Sbrc+bMyR/+8IfWxqMrcO0uAAAAAJ1JTU0ybFjbz194YbKcW9IBAICmlG26uAHLKQ3MLcHNG/Oauf1jYDuUDAYNGtTseo8ePXLssce2aeZxxx3X7GOxlG26qWKvzXXtLgAAAADtbezYpF+/tp29447kW98qbR4AAOjClG26uNVWW63Z9Tlz5hQ1d+HChVm4cGHB71dKy7u5ZsiQIVljjTXaNHPVVVfNJpts0mS9tra2TfPo5EaNqux5AAAAAGitoUOTSZPaXrj50Y+Sa68tbSYAAOiilG26uLXWWqvZ9VdeeaWouS+99FKr3q+U1llnnWbXt9hii6LmfvrTn26yVuw/JzqpYq7dHTas8RsbAAAAANDeRo5Mpk5t+/e2jjsueeih0mYCAIAuSNmmixs8eHD69u3bZP35558vau7MmTObXd9ggw2KmluI5b3HqquuWtTc5m7leeONN4qaSSfWlmt3+/VLxo0rTx4AAAAAKER1dTJtWmNpZsyYZPjwZJNNkgEDWj67cGGy337JrFlljwkAAJ2Zsk0XV1VVlQ033LDJ+tNPP13U3OWd32ijjYqaW4ghQ4Y0u96/f/+i5q644opN1ubPn1/UTDqx1l67269f4/7q6vLmAgAAAIBC1NQkP/1p4003TzyR/OMfyXrrtXxu1qxk//2Tt98uf0YAAOikukXZpqGhIX/84x/zox/9KPvvv38233zzfOQjH8nAgQPTs2fPol+XXXZZpb/ED7Xllls2WXv00UeLmtnc+XXXXTerr756UXMLMXQ5j+iZO3duUXPfeuutJmurrLJKUTPp5EaOTO6+u+V9Q4Y0ftNi5MjyZwIAAACAtlhzzeTWW5MVVmh571/+knzxi0lDQ/lzAQBAJ9Sr0gHKaf78+bn88sszbty4ZR6b1FDCPyBUVVWVbFa5bL311rn22muXWZsxY0bmzp2bgQMHtmnmtGnTmn2f9rDxxhtnjTXWyGuvvbbM+quvvlrU3ObOt0d5iA6ukJ/g6dHDNx4AAAAA6Pi23DKZMCE5+OCW915zTbL55snpp5c/FwAAdDJd9mabhx9+OFtssUW++c1v5t///ncaGhreeyWNJZliX53Fzjvv3GRtyZIlmTJlSpvmvfbaa3nkkUcKep9yqKqqyq677tpk/aGHHipqbnPn119//aJm0slNntz4jOqW/O1vyYgRjfsBAAAAoCM76KDkO98pbO83v5nccUd58wAAQCfUJcs2d9xxRz772c/m2WefTUNDw4cWZd5fwFmeDxZ13tVZCjdDhgzJhhtu2GT9+uuvb9O8SZMmZenSpcusVVVVZa+99mrTvLY44IADmqw9//zzeeqpp9o075///GeeffbZJus77LBDm+bRBTz8cOM3HhYuLGx/fX3j/rq68uYCAAAAgGKdc06y//4t72toSA47LPn738ufCQAAOpEuV7Z58skn84UvfCHvvPNOkv8rxLy/MNNceebDPv/+gs6HzejIjjjiiCZrN998c1588cVWzWloaMi4ceOarG+//fZZb7312pyvtUaOHJk11lijyfrPfvazNs277LLLml1vr9t66IDGjGks0LRGfX0yenR58gAAAABAqfTokfzqV42PiWrJvHnJPvsks2eXPxcAAHQSXa5sc9xxx2Xu3LlNbq/Zb7/9csstt2TWrFlZtGhRkv8r4lRVVaW2tjaLFi3Kq6++mr///e+55ppr8qUvfSmDBg1aplDTq1evfOc738nixYuzdOnSLF26NF/5ylfa94tsgy9+8Yvp06fPMmuLFi3Kt7/97VbNmTBhQmbMmNFkfcyYMQXPGDVqVLO3DT333HMFz+jdu3e++tWvNlm//PLL88QTTxQ8J0lmzJjRbEln6NCh2XLLLVs1iy7ioYeS2tq2na2tTaZPL20eAAAAACi1lVZKbr01WX31lvf+85/JIYckixeXPxcAAHQCXapsc//992fatGnL3ELTp0+f3Hjjjbnpppuyzz77ZK211krPnj2bPd+zZ8+svvrq+cQnPpHDDz88l112WV544YVcfPHFWXHFFVNVVZUlS5bk3HPPzb777pv61t56UUGDBw/Oscce22R9/PjxmTRpUkEz/vGPf+Tkk09usr7ppptmv/32KzJh65100klZc801l1lbuHBhDj744Lz88ssFzXjllVdy8MEHN/uf5TnnnFOSnHRCEyZU9jwAAAAAtIePfjT57W+TXr1a3jtlSnLqqWWPBAAAnUGXKtuMHTv2vd83NDSkqqoql19+eT7/+c+3eeYKK6yQk046KY888kg++clPvvfoqDvvvDOHHXZYKWK3m3PPPTerrrpqk/Ujjzwy11133YeeffTRR7PTTjvlrbfeavK5Sy+9ND16tP+/SiuvvHIuvvjiJut///vfM2LEiPzhD3/40PP3339/RowYkb/97W9NPrfrrrtm7733LlFSOp26usqeBwAAAID2st12ybhxhe299NLkyivLmwcAADqBLlW2uf/++1NVVfVe0WbEiBE5+uijSzJ7ww03zJQpU7LBBhu89x633XZbLr300pLMbw+rr756rrrqqibrCxcuzOGHH5499tgjt9xyS1555ZUsWbIkc+bMyf33358vfvGL2WqrrTJz5swmZ0855ZTssMMO7RG/WYceemhOPPHEJuvPPPNMdthhh2y77ba58MILc9ttt+WBBx7IbbfdlgsvvDDbbbddtt9++/zzn/9scvZjH/tYi+Ujurh584o7P3duaXIAAAAAQHv44heT0aML2/uVryR/+lN58wAAQAdXwN2QncPf//73vP766+89QipJvvKVr5T0PdZee+1ceeWV2Wmnnd4r3HznO9/JMccckwEDBpT0vcplv/32y/nnn5+zzjqryefuvvvu3H333QXPGjlyZH70ox+VMl6bjB07Nm+88UZuvPHGJp/705/+lD+14g9+G2ywQe64445mbwCiGyn2v88DB5YmBwAAAAC0l4suSv7+9+S++z5836JFyec/nzz0ULL++u2TDQAAOpguc7PNU0891WRt9913L/j8okWLCtq3ww47ZLfddktDQ0OSZN68eZk4cWLB79MRnHnmmbnooovSs2fPNs844ogjcuONN6Z3794lTNY2vXr1ym9+85ucccYZy5StWmvHHXfMQw89lE9+8pMlTEenVF1d2fMAAAAA0N56905uuCH52Mda3vvaa8m++yYLFpQ/FwAAdEBdpmwze/bsZT5ef/31s/LKKxd8vr6+vuC9Bx10UJK8V+y49dZbCz7bUZx88smZOnVqhg4d2qpza6+9diZOnJiJEyemb9++ZUrXej179swPf/jD1NbWtvqxVptvvnl++9vfZsqUKVlttdXKlJBOZdSoyp4HAAAAgEpYbbXkttsKu/n5r39Njj46Wbq0/LkAAKCD6ZJlm6qqqqy55pofuv+DRZHWlG223Xbb937f0NCQ2trags92JFtvvXWmT5+ee++9N0cffXTWWWedZvcNGjQoe++9dyZMmJBnn302RxxxRFHvO378+DQ0NDR5ffSjHy1qbpJstdVWue+++/K3v/0tP/jBD7L77rtngw02yIorrpiePXtmtdVWyyc+8YnsvPPO+cEPfpA///nPefTRR/P5z3++qFtx6GJqapJhw9p2dtiwpJUlNgAAAADoMDbZJLn22qSQ75f+9rfJeeeVPxMAAHQwvSodoFQWL168zMcDBw780P0DBgzIG2+88d7Hr7zySsHvtdZaay3z8fz58/Pyyy83We8sdt555+y8885Jkjlz5mTWrFlZsGBB+vXrl9VXXz1rr712hRO23qc+9al86lOfqnQMOrOxY5MRI5JWFPHSr18yblz5MgEAAABAe9h77+T885Mzz2x57znnNBZ0Djig/LkAAKCD6DI32wz4wLWW//nPfz50/wfLODNnziz4vfr169dk7f3Fnc5s0KBB+dSnPpXPfOYz2WyzzTpl0QZKYujQZNKkxmdVF6Jfv8b91dXlzQUAAAAA7eGb30wOO6ywvUcd1fhYKQAA6Ca6TNlmlVVWee/3DQ0Neeuttz50/1prrZWGhob3Pp4xY0bB7/X66683WVu4cGHB54FOYuTI5LjjWt630krJlVc27gcAAACArqCqKrnqqsZHrrfkP/9J9tknefXV8ucCAIAOoMuUbTbaaKNlPn7ppZc+dP9mm22WJKmqqkpDQ0OmTp1a8Hs99NBDTdYGDRpU8Hmgk5g8ufEbCi2Z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853v5Nhjj83KK6/83vqiRYty22235ayzzsrTTz+9zJlnn302hx9+eKZMmZIePTpGb+umm27K2muv3ebza6yxRgnTAAAAAABANzVvXnHn584tTQ4AgDJQtulGHnvssZx//vlN1tdff/387ne/y4Ybbtjkc717984BBxyQ3XffPQcccEDuueeeZT7/+9//Pj//+c/z5S9/uWy5W2PLLbfMRz/60UrHAAAAAACA7m3AgOLODxxYmhwAAGXQMa4joV2cdtppWbJkyTJrK664Yu66665mizYf3HfTTTdlk002afK5s88+OwsWLChpVgAAAAAAoBOrri7u/KabliYHAEAZKNt0E3V1dbn33nubrJ999tkZMmRIQTP69++fX/ziF03W33jjjVxxxRVFZwQAAAAAALqIUaOKO19Xl9TXlyQKAECpKdt0Ez//+c+brK266qr56le/2qo522yzTXbbbbcm68o2AAAAAADAe2pqkmHD2n5++vTksMOSxYtLlwkAoESUbbqBxYsXZ9KkSU3WjzjiiPTv37/V80444YQma08++WQeeeSRNuUDAAAAAAC6oLFjk3792n7+lluSL34xaWgoWSQAgFJQtukG/vznP+fNN99ssn7AAQe0ad5ee+2VFVZYocn6XXfd1aZ5AAAAAABAFzR0aDJpUnGFm6uvTr7xDYUbAKBDUbbpBu67774ma/37988222zTpnn9+vXL8OHDC3ofAAAAAACgGxs5Mpk6tbhHSv34x8kFF5QuEwBAkZRtuoHp06c3Wdtiiy3Su3fvNs/caqutmqw9/PDDbZ4HAAAAAAB0UdXVybRpyUMPJWPGJMOHJ5tumtTUJAMHFjbjjDOSX/yivDkBAArUq9IBKL+//vWvTdY222yzomY2d37OnDl5/vnn85GPfKSo2aXwzjvv5LXXXsvrr7+eHj16ZNVVV82qq67a7OOvAAAAAACAdlBT0/h6v3/9K/nsZ5OXX275/Je+lKy6anLAAeXJBwBQIGWbLm7RokWZOXNmk/WNNtqoqLnLO//MM89UtGzzve99L3/729/yyCOPZPHixU0+v9Zaa+Wzn/1sRowYkQMOOCDrrbdeBVICAAAAAABJko99LLnnnuRzn0vmzPnwvUuXJocfntxxR7Lzzu0SDwCgOco2XdzMmTOzdOnSJuvrrLNOUXOXd/65554ram6xxo8f/6Gf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vFQhHnss+exnk3/9q7y5ACiKsg0AAAAAAABAuRx8cONjovr3L2z/v/7VWLh57LHy5gKgzZRtAAAAAAAAAMpp112T++5LVl21sP0vv5xst13jo6UA6HCUbQAAAAAAAADKbeutkwceSNZZp7D9b72V7LJLcscd5c0FQKsp2wAAAAAAAAC0h099Kpk6Ndl448L219cn++6bTJxY3lwAtIqyDQAAAAAAAEB7WX/9xsdDDR1a2P4lS5KjjkouvrissQAoXK9KBwAAAAAAAADoVtZYI/n975P99kvuu6+wM6eckjz2WLLCCskjjyTz5iUDBiTV1ckxxxRe3gGgaMo2vGfGjBl54oknMmvWrMyfPz/9+vXLGmuskSFDhmTLLbdM7969Kx0RAAAAAAAAuoYBA5I77ki+8IXkppsKO3P11U3Xpk1Lxo1Lhg1Lxo5VugFoB8o23dzMmTPz05/+NNdee21mzZq13H0DBgzI3nvvnZNPPjmf+cxn2jFhaR155JG55pprmv3c0UcfnfHjx7dvIAAAAAAAALqvfv2SG25IvvSl5Mori5tVW5uMGJFMmpSMHFmafAA0q0elA1AZS5cuzQ9/+MN84hOfyIUXXvihRZskmTdvXn79619nq622ylFHHZW33nqrnZKWzl133bXcog0AAAAAAABURM+eyRVXJGeeWfys+vrkoIOSurriZwGwXMo23VB9fX323XffnHXWWXn77bdbfX7ixInZaqut8txzz5U+XJnMmzcvX/rSlyodAwAAAAAAAJqqqkrOPz/58Y+Ln1Vfn4weXfwcAJZL2aabWbJkSQ488MBMnjy52c/37t07n/70p7PTTjtlq622ykorrdTsvqeffjo77rhjXn755XLGLZkzzjgjzz//fKVjAAAAAAAAwPKdemoyfnzjbTfFqK1Npk8vSSQAmlK26Wa+973v5Y477miyPmjQoPzkJz/Ja6+9lkcffTRTpkzJn//858yePTs33nhjNt544yZnnn322Rx++OFZunRpe0Rvsz/96U/52c9+tsxajx7+1QcAAAAAAKADOvro5Oabiy/cTJhQmjwANKFx0I089thjOf/885usr7/++pk+fXpOOeWUrLzyyst8rnfv3jnggANSV1eX3XbbrcnZ3//+9/n5z39etszFqq+vz/HHH5+Ghob31vbcc8+st956FUwFAAAAAAAAH2LvvZNPfrK4GXV1pckCQBPKNt3IaaedliVLliyztuKKK+auu+7Khhtu+KFnV1xxxdx0003ZZJNNmnzu7LPPzoIFC0qatVS+973v5amnnnrv4xVXXDGXXXZZBRMBAAAAAABAAaqqijs/d25pcgDQhLJNN1FXV5d77723yfrZZ5+dIUOGFDSjf//++cUvftFk/Y033sgVV1xRdMZSe+SRR/LjH/94mbXvf//7WX/99SuUCAAAAAAAAAo0YEBx5wcOLE0OAJpQtukmmnvU06qrrpqvfvWrrZqzzTbbNPs4qY5Wtlm8eHGOO+64LF68+L216urqfO1rX6tgKgAAAAAAAChQdXVx5+fOTd73d2UAlI6yTTewePHiTJo0qcn6EUcckf79+7d63gknnNBk7cknn8wjjzzSpnzlcOGFFy6Tp2fPnvnFL36Rnj17VjAVAAAAAAAAFGjUqOLOP/FEcsAByX/+U5I4APwfZZtu4M9//nPefPPNJusHHHBAm+bttddeWWGFFZqs33XXXW2aV2pPP/10vv/97y+z9rWvfS3VxbZ/AQAAAAAAoL3U1CTDhhU347bbkp12Sl5/vTSZAEiibNMt3HfffU3W+vfvn2222aZN8/r165fhw4cX9D7traGhIccff3zq6+vfW1t//fWblG8AAAAAAACgwxs7NunXr7gZtbXJ8OHJM8+UJhMAyjbdwfTp05usbbHFFundu3ebZ2611VZN1h5++OE2zyuVyy67LA888MAyaz/72c+y4oorVigRAAAAAAAAtNHQocmkScUXbv7xj8bCzUMPlSYXQDenbNMN/PWvf22yttlmmxU1s7nzc+bMyfPPP1/U3GLMnDkzZ5555jJrhx56aPbYY48KJQIAAAAAAIAijRyZTJ1a/COlXn012X775M47SxILoDtTtuniFi1alJkzZzZZ32ijjYqau7zzz1Tw+rkTTzwx8+bNe+/jVVZZJRdffHHF8gAAAAAAAEBJVFcn06Y13kwzZkzjLTWbbtr46377JYU+5eE//0n22Se56qqyxgXo6npVOgDlNXPmzCxdurTJ+jrrrFPU3OWdf+6554qa21YTJ07MXXfdtczaBRdckDXXXLMieVpj2rRpRZ1//PHHS5QEAAAAAACADq2mpvH1QY8/nuyxR/Liiy3PWLIkOf74ZObM5Jxzkqqq0ucE6OKUbbq4V199tdn1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+da+fcT48RGffBLRr19Et24R++678d9+/SKefz6iRYvU840bF9GxY8TkySVXM1BuVct0AQAAAAAAAABQLDp23PiTzJFHRpxyysZGmlQsWBDRvXvEgAERvXoVX41AuWdlGwAAAAAAAAAqvu22ixg1KqJv39THrF0bceaZEbfcEpGfX3K1AeWKZhsAAAAAAAAAKoeaNSOefjri0UcjqlZNfdy9925cFWfVqpKrDSg3NNsAAAAAAAAAUHlkZUVceWXEW29FNGqU+rh//Suia9eIr78uudqAckGzDQAAAAAAAACVz5FHRnz8ccTee6c+Zvr0iE6dNm5HBVRamm0AAAAAAAAAqJx22y1iwoSInj1TH/PTTxFHHx3x+OMRBQUlVxtQZmm2AQAAAAAAAKDyys6O+Oc/I37729TH5OVF9OsXcemlERs2lFhpQNmk2QYAAAAAAACAyq1q1Yj77osYPDiiVq3Uxz39dMQRR0T88EPJ1QaUOZptAAAAAAAAACAi4qyzIj74IKJ589THfPhhRKdOEZ9+WmJlAWWLZhsAAAAAAAAA+EXHjhGffBLRpUvqY779NuLAAyNefrnk6gLKDM02AAAAAAAAAPCftt8+YsyYiD59Uh+zZk3E6adH3H57RH5+SVUGlAGabQAAAAAAAADgv9WsGfHssxF/+lNElUJ8tH7XXRGnnRbx888lVxuQUZptAAAAAAAAACCZrKyIa66JGD48omHD1Me9+mpEt24Rc+eWWGlA5lTLdAEAAAAAAAAAUKYdfXTERx9FnHhixJdfpjZm6tSITp0i7r134/89eXLEqlUR9etHtG8fccEFER06lGzdQInQbAMAAAAAAAAAW7PHHhsbbs4+O+LNN1Mbs3RpxGWXJcbHj494/PGILl0iHntM0w2UM7aRAgAAAAAAAIBUNGgQMWxYxA03FE++CRMiunePeP314skHlArNNgAAAAAAAACQqqpVIx54IOK55yJq1kw/37p1EaefvnGbKaBc0GwDAAAAAAAAAIV1zjkR778fscMO6edaty7iiivSzwOUCs02AAAAAAAAAFAUnTtHfPLJxn/TNWFCxMSJ6ecBSpxmGwAAAAAAAAAoqh12iHjvvYhzz00/16BB6ecASpxmGwAAAAAAAABIR61aGxtlWrZML8/kycVTD1CiNNsAAAAAAAAAQLqysiLq108vx8qVxVML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Ly9pvGrVqmnnTpYjNzc37bylberUqXHxxRdH+/btY/LkyZkuBwAAAAAAAAAow2wjVcFtbgWb4miKSZYj2Wo3pWngwIExcODATWLr16+P5cuXx4IFC+KTTz6JN954I4YPH57QiDRjxow46KCD4vXXX4/DDjus1GoeN25cWuOnTp0al156aTFVAwAAAAAAAABsiWabCq5mzZpJ45vbXqowkm0ZtbnzZVLNmjVju+22i+222y46dOgQl112WcydOzcuv/zyePvttzd57Jo1a+KEE06Izz77LHbddddSqa9r166lch4AAAAAAAAAIH22karg6tevnzS+cuXKtHOvWrUqIZadnZ123tLQqlWreOutt+Lqq69OOLZ69eq46KKLSr8oAAAAAAAAAKDM02xTwW2zzTZJ48uXL08r7/r162P9+vUpn6+seuihh+KYY45JiI8ZMyY++uijDFQEAAAAAAAAAJRlmm0quGbNmiWNL168OK2833//faHOV5Y99NBDSeMvvvhiKVcCAAAAAAAAAJR1mm0quB122CFq1qyZEP/222/Tyjt//vyk8VatWqWVNxP22muvaNu2bUL8ww8/zEA1AAAAAAAAAEBZptmmgsvKyopdd901IT5r1qy08m5u/G677ZZW3kzp2LFjQizdhiQAAAAAAAAAoOLRbFMJtGvXLiH26aefppUz2fgdd9wxmjRpklbeTGnatGlCbNmyZRmoBAAAAAAAAAAoyzTbVAIHHHBAQmzGjBmxcuXKIuccP358SucpL1avXp0Qq1GjRgYqAQAAAAAAAADKMs02lcCRRx6ZEMvLy4uRI0cWKd+SJUtiypQpKZ2nvFiwYEFCbLvttstAJQAAAAAAAABAWabZphLYe++9Y9ddd02Iv/TSS0XKN2TIkMjPz98klpWVFccff3yR8mVaTk5OjBo1KiHeunXrDFQDAAAAAAAAAJRlmm0qiXPOOSch9uqrr8bChQsLlaegoCAef/zxhPihhx4aLVq0KHJ9mfTiiy/GihUrEuKHHXZYBqoBAAAAAAAAAMoyzTaVxCWXXBI1atTYJJaTkxO33HJLofIMGjQoZsyYkRDv169fyjn69OkTWVlZCT/z5s0rVC3F4fvvv48bbrghIV6lSpXo1atXqdcDAAAAAAAAAJRtmm0qiR122CEuvPDChPjAgQNjyJAhKeWYPXt2XH311QnxfffdN371q1+lWWHq7r777hg4cGDk5uamlefrr7+OQw45JBYvXpxw7Nxzz40dd9wxrfwAAAAAAAAAQMWj2aYSufvuu6Nx48YJ8XPPPTdefPHFLY799NNP44gjjki63dKjjz4aVaqU3v+U5syZExdccEHssccecdttt8Xnn39eqPHff/993HHHHbHvvvvG7NmzE443adIkHnjggeIqFwAAAAAAAACoQKplugBKT5MmTaJ///5x8sknbxJfv359nH322fG3v/0tLr300ujatWs0adIkVq1aFZ999lm88MILMXDgwMjJyUnIec0118Rhhx1WWk9hE3Pnzo2777477r777mjRokW0b98+9t9//9hll12iYcOG0aBBg8jKyoqVK1fGjz/+GNOmTYuJEyfGBx98EPn5+Ulz1qxZM4YOHRrbbbddKT8bAAAAAAAAAKA80GxTyfzqV7+K++67L2666aaEY2+99Va89dZbKefq2bNnmVkBZv78+TF//vz417/+VeQcTZo0iaFDh8bBBx9cjJUBAAAAAAAAABWJbaQqod/+9rfx0EMPRdWqVYuc45xzzomXX345qlevXoyVZc75558fM2fO1GgDAAAAAAAAAGyRZptK6uqrr46xY8dGhw4dCjVu++23j+eeey6ee+65qFmzZglVt2W//e1v4957740DDzwwrYahhg0bxqWXXhqffPJJDBw4MLbZZptirBIAAAAAAAAAqIiyCgoKCjJdBJk1cuTIeP7552PkyJGxcOHChOMNGzaMgw46KE477bTo1atXxppsklm9enVMmjQpPv7445g+fXrMmzcvvvnmm1ixYkWsXr068vLyon79+tGgQYNo2LBh7LnnntGuXbvo0KFDdO/ePWrVqpXpp5C28ePHR7du3TaJjRs3Lrp27ZqhigAAAAAAAACg8MrL59/VMl0AmXfkkUfGkUceGRERy5cvj++++y5Wr14dtWrViiZNmsT222+f4Qo3r27dunHwwQfb/gkAAAAAAAAAKBWabdhEw4YNo2HDhpkuAwAAAAAAAACgTNJsA+Xc6tWrE2JTp07NQCUAAAAAAAAAUHTJPutO9pl4pmm2gXLu66+/TohdeumlGagEAAAAAAAAAIpXss/EM61KpgsAAAAAAAAAAIDyQrMNAAAAAAAAAACkSLMNAAAAAAAAAACkKKugoKAg00UARffdd9/F66+/vklsl112ibp162aoIsisqVOnxqWXXrpJ7Mknn4z99tsvQxUBZZFrBZAK1wogFa4VQCpcK4CtcZ0AUuFaQWWwevXq+PrrrzeJ9ezZM3bYYYcMVZRctUwXAKRnhx12iEsuuSTTZUCZtt9++0XXrl0zXQZQxrlWAKlwrQBS4VoBpMK1Atga1wkgFa4VkBm2kQIAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRptgEAAAAAAAAAgBRlFRQUFGS6CAAAAAAAAAAAKA+sbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACnSbAMAAAAAAAAAACmqlukCAKC8mTNnTnz++efx7bffxs8//xw1atSIxo0bx5577hkdOnSI2rVrZ7pEAGAzlixZElOmTImvvvoqVq5cGQUFBdGgQYPYbbfdol27dtG0adNMl1hoK1asiMmTJ8esWbNi+fLlkZeXF9nZ2dGqVavYf//9o3nz5pkuEcqF/Pz8mDt3bsyYMSMWL14cy5cvjw0bNkTDhg2jUaNG0aJFC/N9oMIzrwCgoluzZk188cUXMXv27Pjpp59ixYoVUb169WjUqFE0atQoWrduHXvuuWdkZWWVWk3uVUD5pNkGgLSVxKTz9ttvjzvuuKPY8xbV0qVL44knnogBAwbE119/vdnH1apVK44++ui48sor48gjjyzFCqHsuuOOO+LOO+8s8fOU9nVj5513jm+++aZYc55//vkxcODAYs0JmTR37tyYOHFiTJo06d8/y5YtS3jc6NGj49BDDy2xOnJycuL555+PJ598Mj7++OMoKChI+risrKzo3LlzXHbZZdG7d++oXr16idWUroKCgnjllVfiL3/5S7z//vuRm5u72cfut99+cdFFF0Xfvn2jbt26pVglpCZT14qcnJwYN25cjB49OkaNGhWTJk2KNWvWbHFMtWrVom3bttGrV6+48MILY5tttim2etJVUnOuzV0zobRl4lrRp0+fGDRoULHk+kXLli1j3rx5xZozXeYVVBSleZ2YN29etGrVKq0cqcjENcOcgormhx9++Pec/7333ovZs2dHfn7+Fsc0atQoDjrooLjooovi+OOPjypVin+zGPcqzCko/zTbAMBW9O/fP66//vqkf5z/t3Xr1sWwYcNi2LBhcdxxx8VTTz2lQxuASiHVG9ulbdy4cdG3b9+YOXPmVh9bUFAQH330UXz00Ufx4IMPxjPPPBPdunUrhSoLZ8aMGXHhhRfGRx99lNLjp06dGldddVX8/ve/j7/85S9xwgknlHCFsHmZvlbk5OTEO++8E0OGDIl//vOfsXz58kKNz83N/Xfdt912W1xxxRVxzz33RK1atUqmYKikMn2tqEzMKyivXCeALfnhhx/i5ZdfjiFDhsT777+/1eaa/7Zs2bJ/3+ffeeed49FHHy3W9zz3KswpqBg02wDAZuTn58fll18eTz31VJHGv/nmm9GxY8d44403on379sVcHfDfdt9990yXAJVau3btYsWKFZkuYxMDBgyISy+9NHJycgo99osvvohDDz00nnrqqejTp0/xF1dEb731VpxxxhmxatWqQo9dsGBBnHTSSXH33XfHzTffXALVwdZl+lrx0UcfxfHHH18sudatWxd//OMf4/XXX49//OMf0aZNm2LJC2T+WlFZmFdQnlWW64R7HVA0N910U/Tv379Ycs2bNy9OPPHE6NOnT/z1r3+NmjVrppXPvYpNmVNQnmm2AYDNuOKKKzbbaFOlSpXYa6+9olmzZrFu3br44osvkn57ZtGiRXH00UfHBx98EHvvvXdJlwyVVsOGDePUU0/NdBlAGfLiiy9G3759N7sM80477RStWrWKgoKCmDt3bsyfPz/hMTk5OdG3b9+oVatWnHnmmSVd8laNGTMmTj755Fi3bl3S482aNYvdd989qlWrFt9++23MmTMn4TEFBQVxyy23RPXq1eOGG24o6ZKhXKpZs2Y0a9YsmjZtGtnZ2bFs2bKYM2dOrFy5Munjv/zyyzjiiCNi9OjRse+++5ZytQBFY14B5UPfvn0zXQJUWA0bNoztttsutt1224iIWLJkScyaNWuzq+AMHDgwli5dGkOHDi3yVk7uVZhTULFotgGgRIwfPz6t8TvuuGMxVVI0zz77bPz1r39NiNesWTNuvPHGuOKKK/49CY/YuArOu+++GzfffHN88sknm4xZunRpnHrqqfHJJ5/Ye5RK6aKLLopjjjmmWHJ9/vnncemllybEe/fuXSa2b3jllVdi++23L/L4pk2bFmM1UHlNmzZtszevzjrrrLjllluidevWm8SnT58e9957b7z44oubxPPz86Nv376x3377xT777FOidW/J999/H7169Up68+roo4+Ou+++Ozp37rxJfN68efHHP/4x/vKXvyTcLPztb38b7du3jyOPPLJE64byomvXrtGzZ884+OCDo3PnzlGjRo1Njufl5cXEiRPjscceixdffDHy8vI2Of7jjz/GUUcdFdOnT4/GjRuXZulb1Ldv37jooosyXQZUKLfccktaK2Sl+2344mBeAenbfvvt077/+Z/OOOOMhA/Vt9lmmzj55JOL7RzpMKegIqhTp0786le/isMPPzwOPvjgpCtHrVixIt5444148MEH47PPPks4/tprr23xS7pb4l7FRuYUVCgFAJCmiEj4Kc++//77guzs7ITn1KhRo4JPPvlki2NzcnIK+vTpk/R3csMNN5TSM4CK64orrkj6+poyZUqp19KyZcuEOubOnVvqdUBZ0aBBg4TXxE477VRw8sknF9x7770Fb731VsHEiROTvoZHjx5dbHXk5+cXHHDAAQnnyMrKKnj66ae3Ov6pp54qyMrKShjfpUuXgvz8/GKrs7BOP/30pL+7W2+9datjX3/99YKaNWsmjN15550L1qxZUwrVw//J9LXigw8++He+pk2bFtx4440FM2fOLFSO999/v2D77bdPWuMll1ySdo1FdfvttyfUc/vtt2esHkhHpq8Vvzj//PMT8g8YMKDY8meKeQUVQVm5ThSHTz75JGmdV111VUbqMaegIujbt++///d7wAEHFDzzzDMFK1euTHl8bm5uwW233Zb0tZmVlVUwduzYQtXjXkUicwoq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VlaRc2ZlZcUuu+wSM2bM2Oq5SkKy89SrVy+aNWuWVt7ddtstZs2atdVzAVv21ltvxaJFixLiPXv2zEA1yb377rsxceLEGDduXCxbtizheK1ataJTp05x4IEHRo8ePeLQQw8t/SKhnPnHP/4RL7zwQkyYMCF+/vnnhOP16tWLLl26RPfu3eP444+Pjh07ZqDKROYVULb0798/IVazZs0499xzM1DN1plTUJkNGDAgIVa9evU4+uijtzrWvYrUmVNQHlnZBoAS8cQTT8TUqVOTNtpERHzzzTcxePDguPzyy2OnnXaKSy+9NOnepaUlJycn6TY16WwhFRHRtGnTpPu5JltuHkg0cODApE0rZfWbXgMHDoxPPvkkac0RG5uHhg4dGtdcc03ssssucdZZZ8WUKVNKuUqomL755puEWLrv45vLUVrv48me0w477JB23kw+J6goCgoK4s4770yIV61aNU488cQMVJTchx9+GG+88UbSD8UiItatWxcffPBB3H///XHYYYdF27ZtY+DAgZv9Ow6IGD58eIwcOTJpo01ExM8//xwjR46MO+64Izp16hTdu3ePf/7zn6VbZBLmFVB2LFy4MN56662E+K9+9avYZpttMlDR1plTUFlNnTo1XnnllYT4EUccEQ0aNNjqePcqUmdOQXmk2QaAjFu7dm089dRT0bZt23jqqacyUsPSpUuT/vG33XbbpZ072eobyfZ4BRI9++yzCbGddtoppW+OlHW5ubnx97//PTp37hx33323G1CQph9++CEhVhzv48lylNb7eEV8TlBRPPnkk/Hxxx8nxM8666xiuXmeKZ9//nlccMEFccQRR8SCBQsyXQ5UCGPHjo2TTz45Tj/99Fi+fHnG6jCvgLJjwIABkZeXlxAvq18sKgpzCiqC/Pz8uOyyy5K+Xq+77rqUclTE99+K+JygqDTbAFBmrFmzJi699NI477zzSn2f359++ilpPJXu9K3Jzs5OiC1dujTtvFDRvffeezF79uyE+AUXXBBVqlScaWxubm7cdttt0aNHj1i3bl2my4FyK9l7eXl/Hy/N57R27dpYu3Zt2rmhMpg5c2bSm+t16tSJe++9NwMVFb8xY8ZE27ZtkzYUAUXz8ssvR9u2bePrr7/OyPnNK6BsKCgoSLolTatWreKII47IQEUly5yC8uy+++6LcePGJcR79uyZ8uvV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166dgYpKV6avffDf1q9fHyeffHK88847CcfatGkT77zzTjRq1KjYzudeRWrMKSivNNsAUGZMmjQpaXynnXYqlfMfcMABCbEVK1bEjBkzipxz/PjxCbG2bdtGzZo1i5wTKqK8vLwYNGhQQrxNmzbRqVOnDFRUeqZMmZK0yai0rn1QUXTs2DGqVEn8EzfZe3Gqko2tWrVqdOjQocg5C2PXXXdNus1ccT+niOTzIKhMnnvuubjooosS3pOrV68eQ4YMieOPPz5DlWVGsr/NzE2g6HJzc+Pzzz9PiJfm68q8AjIj2ao2ERX/i0W/MKegLNmwYUOccsop8dZbbyUc22effWLkyJFJ3yvT4V5FaswpKK802wBQZrz22mtJ46XVvXzooYdGtWrVEuJvv/12kfLl5uYmXYryyCOPLFI+qMjeeOON+P777xPileHm0+aufZv7lgiQXMOGDaNjx44J8aK+j29ubMeOHaNhw4ZFzlkYWVlZSbesKe7n1KxZM6vuUakNHjw4+vTpE/n5+ZvEq1WrFn//+9/jxBNPzFBlmTF37tyYPn16QtzcBIrugw8+iOXLlyfES/N1ZV4BpS8nJyf+9re/JcTbt29fKd5XzSkoS3JycuL000+PN998M+HY3nvvHaNGjYqmTZsW+3ndq0iNOQXllWYbAMqEOXPmxN///veE+O67715q33aoX79+HHLIIQnxl156qUj5RowYEcuWLUuIV7ab9ZCKZ555JiFWq1atOOecczJQTelZvnx5PPbYYwnx+vXrR+fOnTNQEZRvJ5xwQkJsxIgRST/c2pply5bFiBEjEuKl/T6e7DlNnTo1vvjii0LnysvLi6FDh6Z0Dqgs/vGPf8R5552X0GhTtWrVGDx4cJxyyikZqixz7r777qTxZDfUgdTcc889SeOl/boyr4DS9dprr8XixYsT4pXhi0UR5hSUHbm5udGrV68YNmxYwrE999wzRo0aFdtuu22Jnd+9ii0zp6A802wDQMZt2LAhLr744tiwYUPCsdL+oD3Z+T7++OP4+OOPC50r2QforVq1im7duhWpNqiovv/++xg+fHhC/JRTTinWPZLLoiuvvDJ++umnhPhpp51muzkogt69e0dWVtYmsfXr18dTTz1V6FxPP/10wtwkKysrzj777LRqLKyTTz456tatmxD/85//XOhcQ4cOTbqKWEVvbITNeeWVV6J3796Rl5e3Sbxq1arx/PPPx+mnn56hyjLn7bffTrq1Z/369X1pAIromWeeSbrq7S677BJdu3Yt1VrMK6B0JdtCqnbt2qX+N0UmmFNQVuTl5cXZZ58dr776asKx3XffPUaNGhXNmjUr0Rrcq9gycwrKM802ABTZ8OHDY+nSpWnlWLt2bfTu3TtGjx6dcKx+/fpxxRVXpJyrT58+kZWVlfAzb968lHP06tUr6XKRv/nNb1LOERExZsyYpM0D/fr1K1QeqAwGDhwYubm5CfGS+qZXuteKMWPGxIIFC9KqIS8vL6666qp4/vnnE45VrVo1rr/++rTyQ2XVqlWrOO644xLiDz74YNLGts1ZunRpPPDAAwnxnj17xs4775xynjFjxiS93txxxx0p56hbt2706dMnId6/f/+YNWtWynk2bNgQt956a0K8TZs2cfDBB6ecByqK1157Lc4888yEOUiVKlVi0KBBceaZZ5ZaLeleK77//vt49913065j9OjRceqppyas8hOx8e+YevXqpX0OKC9mzpwZEydOTDvPiy++GJdddlnSYzfeeGPCB29bYl4B5cvChQuTboty+umnR4MGDUrknOYUsKn8/Pw477zzYsiQIQnHdt111xg1alTssMMOJV6HexWbZ05BeafZBoAie/LJJ2OnnXaKfv36xYQJE6KgoKBQ4997773o0KFDvPzyy0mP33fffbHNNtsUR6kpq127dvz6179OiI8ePTr+8Ic/pJTjxx9/TDrR3HbbbeOSSy5Jt0SocJ599tmE2K677hqHHnpo6ReTgn/+85+xyy67xHnnnRejRo1K2ii0JZ9++mkcfPDB8eijjyY9fvXVV8fee+9dHKVCpXTLLbckxJYuXRoXXHBB0pu9/y0/Pz8uuOCChBteWVlZcfPNNxdbnYVx/fXXJ6x2tWHDhujdu3esXbs2pRzXXHNN0hteyX5fUNG99dZbcdppp0VOTs4m8SpVqsSAAQOid+/eGaqsaBYvXhxHHnlkdOjQIZ599tlCfyFi+fLl8dvf/jaOPPLIWL16dcLxli1bxk033VRc5UK5MHPmzOjUqVMcdthh8dJLL8WqVasKNf7777+Piy66KM4+++yE1bMiIjp16hR9+/YtrnILxbwCSseAAQOSvv7L8hZS5hRUJAUFBdG3b98YPHhwwrFWrVrF6NGjY8cddyy1etyrSM6cgvKuWqYLAKB8W7NmTTz++OPx+OOPxw477BA9evSI/fffP9q0aRMtW7aM7OzsyM7OjpycnFi2bFl89dVXMXbs2Hj55ZdjypQpm83bq1evjK0Cc/XVV0f//v1j9uzZm8RvuOGGyMrKStqM84t58+bFiSeeGN98803CsQceeMA3N+C/jBkzJr766quEeN++fQv1Lc/SlpOTE88991w899xz0bhx4+jRo0e0b98+2rRpE7vuumtkZ2dHgwYNIj8/P5YtWxbffPNNjB07Nl577bV47733Npu3e/fucd9995XiM4GKp0uXLnHeeefF3/72t03iw4YNi969e0f//v2jTp06SceuWbMmLrzwwnjttdcSjp133nlxwAEHlEjNW9OyZcu48cYb46677tokPnHixDj++OPjH//4RzRp0iTp2Nzc3Lj++uvjL3/5S8KxQw45pFJuk0Pl9uGHH8bJJ5+cdAvbSy65JPbYY4+YMGFC2udp3bp1ZGdnp52nMCZPnhx9+/aNSy65JLp37x4HHnhgtGnTJlq3bh3bbLNNNGjQIGrWrBkrVqyIJUuWxMSJE2P06NHx0ksvJf1ALCKiTp06MXToUH/HUGmNGTMmxowZEzVr1ozDDz88OnfuHG3atIm99947GjVqFNnZ2VG9evVYvnx5LFq0KD766KMYOXJkvPLKKwkNfb/YdtttY8iQIVG1atVSfjYbmVdAySsoKEj6xaI999wzDjrooAxUVDjmFFQEV155ZQwcODAhXqdOnfjd734XCxcujIULF6Z1jpo1a0a7du1Seqx7FZsyp6DCKACAIjrppJMKIqLYf84444yCDRs2FLqe888/P2m+uXPnFjrXxx9/XFCjRo2k+bp06VLwwgsvFMyfP78gJyenYNWqVQUTJkwouO666wrq1q2bdMwpp5xS6BqgMujdu3fC66VatWoF3333XYmdM91rxVVXXVUi175DDjmkYMWKFSX2vKGkzZ07t0ReG7/8jB49OuVali1bVtCqVaukeXbaaaeChx56qOCLL74oWLduXcG6desKZsyYUfCnP/2poEWLFknHtGrVqmDZsmWF/p2MHj06ab7bb7+90LnWr19f0Llz56T5ttlmm4K77rqr4LPPPitYs2ZNwYYNGwrmzJlT8OSTTxbsvffeScc0atSoSHMkSFemrxW33357iZ6/KNesdK8VU6ZMKZHn0LBhw4IxY8ak/DygOGX6WvHqq6+WyHl33HHHgmnTphXpd2JeAZvK9HViS955552kOR988MHi+wUkYU4B/6dly5Yleo2IiIKWLVsWqib3KswpqHisbANAmZGdnR1/+tOfMraU8n/q1KlT9O/fP84///yEZRwnTJhQqG+7durUKQYMGFDcJUK5t3z58njllVcS4scdd1xsv/32GagoM2rUqBF33HFH3HDDDRn7ditUNA0bNoxhw4bFoYcemrD0+bfffhvXXHNNXHPNNSnl2mabbWLYsGHRsGHDEqg0dTVq1IhXXnklDjrooJg7d+4mx5YuXRq33XZb3HbbbSnlql27dgwdOrRQe7oDlUuPHj3imWeeKdWl9aGi6927dzz22GMZn1NEmFdASevfv39CrHr16nH++ednoJrMMqeA/+NexZaZU1AeVcl0AQCUXx06dNjsMoCF0bhx47jmmmti2rRpZaLR5hfnnHNODB48eLPLN6biqKOOihEjRpT6EvJQHrzwwgtJ9+8ty/uXR0Tsu+++0bx587Tz1K1bNy666KL49NNP47e//a1GGyhm++67b4wePTpatWpV5By/7OO+7777FmNlRde8efN47733Ul6mOpkmTZrE8OHD47DDDivGyoBMatSoUbRv3z6qVEn/Nt9BBx0UL730Urz11ls+FKNSa968ebRu3TrtPFWqVInjjjsu3n777Xj++ecz/oHYfzKvgJLx008/xauvvpoQP+GEE2LbbbfNQEWpM6eAkudeRXLmFJRXVrYBoMhuvfXWuOWWW2LatGkxfvz4mDJlSnz22WcxZ86cWLJkSRQUFCQdV7NmzWjbtm107tw5unfvHieddFLUqlWrlKtPTa9evaJt27Zx5ZVXxsiRI1Me16BBg7jjjjviyiuv9AE6bMY333wTPXr02CRWp06dOO644zJUUWouuuiiuOiii2L27NkxduzYf1/7Zs+eHYsWLUpYDesX1apVi3322Sc6d+4c3bp1i1NOOUUjHpSw/fbbLyZNmhQ33XRTPP3005GXl5fSuKpVq8Yll1wS9913X5n6UCwiokWLFjFu3Li455574o9//GOsW7cupXFZWVlx+umnx5/+9KdiaRgEyo6WLVvGpEmTYsWKFfHhhx/GxIkT49NPP40ZM2bE/PnzkzY3/6J58+bRuXPn6Ny5c5x44onF0lwAFUGnTp1i+vTpsWTJkvjggw9i0qRJ8emnn8YXX3wRCxcujA0bNmx27C677BKdO3eOAw44IE4++eRo2bJlKVZeOOYVUPwmTZoUhx56aEL8qquuKv1iCsmcAkqHexX/x5yC8i6rYHOfhAJAGjZs2BCLFi2Kn3/+OdauXRtVq1aNhg0bRoMGDaJBgwbF8g2J0vbRRx/FoEGDYsSIEfH1118nNBPVrVs3unbtGieffHKce+65Ub9+/QxVCmRKbm5uLFq0KFatWhVr1qyJKlWqRIMGDf59/dN8R0W2fv36mDJlSonlb926dVoNat9++230798/3njjjfjss88iNzd3k+PVqlWLtm3bxvHHHx99+/aNnXbaKd2SS9ySJUtiwIABMWzYsJg4cWKsX79+k+NVqlSJvffeO4455pjo27dv7L333hmqFP5PWb9WVERLly6Nn376KdasWRM5OTlRr169aNiwYTRs2LDMfukByvK1oqCgIJYsWRLLly+PNWvWRG5ubmRnZ//7dVWjRo1irrZ0mFdQ3pTl60RFZU4Bxc+9CnMKyjfNNgBQBD///HMsWLAgfv7556hevXo0btw4dtxxx8jKysp0aQDAVuTk5MS3334bK1asiIiNK9LttNNOUb169QxXVnR5eXkxf/78WL58eeTl5UV2dna0aNHCTW8AoNDMKwCg9LlXAeWPZhsAAAAAAAAAAEhR+dvDAwAAAAAAAAAAMkSzDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAJBg4cGFlZWZv89OnTJ6Wx8+bNSxi78847l2i9bGrMmDEJ/w229DNmzJiU8qbzvwu2bOedd075v5ffOQAAQGZptgEAAAAAAAAAgBRptgEAAADKjTvuuKNQq3VkZWVFnTp1olmzZrHnnnvGEUccEdddd10MHjw4li5dmumnAwAAAEA5VC3TBQAAAACUpLVr18batWtj8eLFMWvWrBg1alRERNSoUSNOPPHE+PWvfx1dunTJcJUAAAAAlBeabQAAAIBKacOGDfHyyy/HK6+8Ev369Yvf/e53UadOnUyXBSWmXbt28Ze//CXpsdatW5dyNfy3V199NdavX58Qf+ONN+Kee+7JQEUAAABsjmYbAAAAoFLLz8+PRx99NKZPnx5vvvlm1KhRI9MlQYnIzs62ilMZ1q5du6TxmTNnlnIlAAAAbI1mGwAAAKDcGz9+/GaPrVmzJpYtWxbTpk2LMWPGxJgxY5I+7t13342+ffvGc889V0JVVh4777xzFBQUZLoMAAAAgBKh2QYAAAAo91JZrePUU0+N22+/PWbMmBF9+/aNCRMmJDzm+eefj8svvzy6detWEmUCAAAAUAFUyXQBAAAAAKWpdevW8f7778cRRxyR9Pjtt99eyhUBAAAAUJ5otgEAAAAqnerVq8fgwYOjTp06CcfGjBkTK1euzEBVAAAAAJQHmm0AAACASmnbbbeNc889NyGem5sbY8aMKf2CAAAAACgXqmW6AAAAAIBMOfLII+PJJ59MiH/55Zdp587JyYk5c+bEzJkzY/HixbFq1arYsGFDNGzYMBo3bhzNmzePjh07Ru3atdM+19asXbs2JkyYEF9++WX89NNPUbVq1WjUqFHsscce0bFjx6hXr16J11CRFBQUxNy5c+Pzzz+PH374IVauXBnr1q2L2rVrR506daJp06ax8847x6677hqNGjXKdLmV2vTp0+Pzzz+P77//PtasWRPZ2dnRqlWr6NKlSzRt2rRQudauXRtTpkyJGTNmxE8//RQREdttt13stttu0aVLl6hatWpJPAUAAADKIM02AAAAQKXVqlWrpPEff/yx0Lny8/Pjww8/jBEjRsSYMWPi448/jpycnC2OqV69enTs2DHOPPPMuPjii4u98ebTTz+NBx54IF599dVYv3590sfUrFkzjjnmmLj++uvjwAMPLJbzzps3L+F327Jly5g3b16Jjt2cPn36xKBBgzaJDRgwIPr06VOoPGPHjo0BAwbE0KFDY/ny5SmN2XXXXaNLly5x3HHHxQknnBD169cv1DkrsmnTpsVxxx0X8+fP3yRes2bNGDhwYJx55pkJY8aMGROHHXbYJrFDDjlkk9Wofvrpp3jkkUeif//+sXDhwqTnrlq1ahx77LFx1113Rbt27bZY5/Tp0+P++++Pf/7zn/Hzzz8nfcw222wT5513Xtx+++3RoEGDLeYDAACg/LONFAAAAFBpZWdnJ43/smpFKgoKCuLqq6+OFi1axCGHHBL33ntvjB07dquNNhEbV78ZP358XHXVVdGyZct4+umnUz7vlmzYsCGuvfba6NChQ/z973/fbKNNRMT69evjX//6V3Tv3j0uvPDCWLt2bbHUUJEsWLAgTjnllOjevXv0798/5UabiIg5c+bECy+8EL179y70SioV2ciRI+PAAw9MaLRp3LhxvPPOO0kbbVIxbNiw2GuvveKuu+7abKNNREReXl68/vrr0alTp7j//vuTPiYnJyduuOGGaNOmTTz//PObbbSJiFi6dGk89NBDsddee8WECROKVDsAAADlh2YbAAAAoNJasWJF0nidOnVSzpGXlxePPPJIfPfdd2nVsmTJkrjkkkvisssuS6lRZ3N+/vnnOOaYY+Khhx6K/Pz8Qo0dMGBAHHHEEVtsKqhsZs2aFV27do1XX3017VxbanqqTAYMGBDHHXdcrFy5cpP4LrvsEuPGjYuDDjqoSHn/+te/xsknnxxLlixJeUxeXl789re/jTvuuGOT+Nq1a6Nnz57x+9//vlCvo0WLFkWPHj1i4sSJKY8BAACg/LGNFAAAAFBpzZkzJ2l82223LZb8NWrUiJYtW0aDBg0iOzs7NmzYEMuXL4/Zs2dvtvHiySefjFq1asXDDz9c6PPl5ubGqaeeGqNHj97sY5o3bx477rhj1KhRI7777ruYO3fuJs0E48ePj969e8fJJ59c6PNXNGvWrIkePXrEggULkh6vUqVKNG/ePJo3bx5169aNnJycWLlyZfzwww9pN19VVLfddlvcfffdCfHOnTvHa6+9VuTX3r/+9a+44oorEhpjdtlll2jWrFlUq1YtFi5cuNnX/J133hkHHnhgHHXUUVFQUBBnnHFGjBgxYpPH1K5dO3bZZZdo2rRprFmzJr766qukq2CtXLkyevfuHZ9//nnUrFmzSM8HAACAsk2zDQAAAFBp/feH6b9o165dkfLVrVs3jjrqqDjxxBOjU6dOsddee0W1aom3X3JycmLSpEkxaNCgePbZZ2PDhg2bHH/kkUfiiCOOiBNOOKFQ5//DH/6Q9DlVrVo1+vXrF5dcckm0bt16k2Pff/99DB48OO6+++5/r/QzbNiwQm2VVFHde++9MW/evIR4ly5d4tprr42jjz46GjRokHTsTz/9FJ999lm8/fbb8frrr8f06dNLuNqybcOGDdG3b994/vnnE4796le/isGDB0ft2rWLlHvx4sVx4YUX/rvRpnHjxnHTTTfFmWeeGc2bN9/ksXPnzo177rknnn322YQ8//u//xvTp0+P3/3ud/H666//O96lS5e4+eab44gjjtikxry8vBg1alRcc801Cf99Z82aFX/4wx/i5ptvLtJzAgAAoGyzjRQAAABQKX333XcxePDghHjt2rWje/fuhcq15557xhNPPBFLliyJV199NS644ILYd999kzbaRERUr149unTpEk888UR89tlnse+++yY85je/+U2hapg1a1bceeedCfEmTZrEuHHj4uGHH05otImI2H777ePXv/51TJ8+PTp27Pjv+Pvvv1+o81c0BQUFMXDgwIT4lVdeGWPHjo3TTz99s402ERsbPg477LC4//77Y9q0afHRRx/F2WefXYIVl13Lly+PHj16JG20+d///d8YOnRokRttIiJmzpz57xVmunXrFrNmzYpf//rXCY02ERGtWrWK/v37x+9///ukeR566KF/r7yTlZUV999/f4wfPz569uyZUGPVqlXjqKOOivHjx0enTp0S8v31r38t9FZuAAAAlA+abQAAAIBKZ8OGDXHWWWfFunXrEo716tUrsrOzU85VrVq1+OKLL+Kyyy4rUsPAXnvtFaNGjYpWrVptEp8xY0aMHDky5Ty/+c1vEp5P3bp146233orOnTtvdXzz5s1j+PDhseeee6Z8zops6tSpCVtB7bLLLvHQQw9FlSqFv6XWuXPneOGFF4qrvHJj3rx50a1btxgzZswm8SpVqsRDDz0UjzzySJF+n8m0a9cuRo4cGdtss81WH3vdddfFwQcfnDT+yxZvDzzwQNx4441bzVW/fv0YNGhQQnPdggULYtSoUSlWDwAAQHmi2QYAAACoVKZOnRoHHnhg0pVb6tSpE3fddVehc2ZlZaVVU9OmTeOhhx5KiCdbCSSZ7777Ll577bWE+G233RYdOnRIuY4mTZrEM888k/LjK7L58+cnxI499tioWrVqBqopnz755JPo0qVLfPHFF5vEa9euHS+//HJcffXVxXau6tWrF3orqi2d/9BDD43rrrsu5Vx77713HHvssQnxDz74IOUcAAAAlB/J1zIGAAAAKEcmTJiw2WNr166NZcuWxbRp0+Ldd9/d7PZIWVlZMWjQoGjRokVJlblFPXv2jCZNmsSPP/7479j48eNTGvvss89Gbm7uJrEWLVoUqZmhe/fucdppp8XLL79c6LEVyYoVKxJi9evXz0Al5dOwYcPirLPOijVr1mwSb9q0abz22mtxwAEHFOv5zjjjjNhrr70KNebYY4+N6tWrR05OTsKxW2+9tdBNdCeddFJC09vkyZMLlQMAAIDyQbMNAAAAUO517do1rfF16tSJZ599Nk477bRiqqjwqlatGu3bt48RI0b8OzZ79uz46aefonHjxlsc++abbybEzjnnnKhRo0aRaunbt2+lb7Zp2LBhQmxLTV38n0cffTSuueaayM/P3yS+xx57xPDhw2OXXXYp9nNeeOGFhR5Tq1at2H333WPGjBmbxHfaaac4/PDDC52vTZs2CbFZs2YVOg8AAABln22kAAAAgEqrWrVqceaZZ8a0adOiV69emS4ntt12203+/4KCgvj666+3OCYnJyemTJmSED/99NOLXMdRRx2VtNmkMtlnn30SYmPGjIn+/ftnoJryIT8/P6655pq46qqrEhptunfvHuPHjy+RRptq1apFly5dijR25513Toh179692HIlWyEJAACA8s/KNgAAAEClVKdOnXjmmWfirLPOKvbcP//8cwwfPjwmT54cU6dOjTlz5sSKFSti1apVsXr16igoKEg51/Lly7d4/PPPP49169ZtEqtZs2bst99+RSk9IjausrP//vvHmDFjipyjvGvZsmXss88+MX369E3iF110Ubz55ptx7bXXxoEHHpih6sqetWvXRu/evePVV19NONarV68YNGhQ1KxZs0TO3bJly6hTp06RxibbGmzvvfcutlyabQAAAComzTYAAABApbRmzZo4++yzY8SIEfHkk08Wecul/zRt2rS49957Y9iwYbFmzZpiqHLrzTbz5s1LiLVu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fHKsW7cuA5UBAABA0Wm2AQAAACq9/fffP0444YSE+AsvvBCzZs1KOqZx48axzz77JMRvvvnmQp3717/+dbz55puFGvPfqlSpEtdee21C/MMPP4zLLrss5TzPPvts/P73v0+rluJw2mmnJcTmzp271a29/tM//vGPQv+3+E9PPfVUPP/885Gbm1vkHHPmzInXXnstId6xY8ci5yyP6tatG2+88UbSLbXeeOONOO644+Lnn3/OQGUAAABQNJptAAAAACLi9ttvT4jl5eXFXXfdtdkxybafevXVV+PKK6/c6vY4ixcvjjPPPHOTbY6qVq2aesH/5corr0zaxPHMM8/EiSeeGN9///1mx65bty5uuOGGuPjii/8dq1OnTpFrSdc+++wTXbp0SYjfc889cffdd2+xAWb58uVx/fXXx5lnnvnv/wZFeS4zZsyIc889N3bZZZe46667YubMmYUaP3Xq1Dj22GMTVm3Zbrvt4ogjjih0PeVdrVq14pVXXolevXolHBs9enQcddRRsXz58tIvDAAAAIpAsw0AAABARLRv3z7pyhsvvvjiZreGuvrqq6N+/foJ8cceeyzatGkTf/7zn2P69OmxevXq2LBhQ8yfPz9GjBgR/fr1iz322CNeeumlf4/Zc88949RTTy1y/VWrVo3+/ftHrVq1Eo699tprseuuu8YZZ5wR/fv3j7fffjtGjRoVzz//fPzP//xP7LTTTvH73/8+8vPzIyIiOzs7fvOb3xS5luJw//33J2ztFbFxy6/WrVvHrbfeGv/85z/jgw8+iDfffDOefvrpOPvss2PnnXeOP/zhD1FQUBAREYcffnhav9f58+fH7bffHnvvvXfst99+0a9fvxgwYEBMnjw5FixYEKtXr468vLxYsWJFTJs2LZ5//vk47bTTol27djF79uyEfA8++GBaTVXlWfXq1WPw4MFx4YUXJhybMGFCHHbYYbFkyZIMVAYAAACFUy3TBQAAAACUFbfddlu8/vrrm8Ty8/PjrrvuihdffDHh8U2aNImHHnooLrroooRjM2fOjP/93/9N6bwNGzaMoUOHpr2FU5s2beL555+PM888M2H1l7Vr18aQIUNiyJAhW8xRpUqVeOGFF+LHH39Mq5Z0HXLIIdGvX7/485//nHBs9uzZcc8992w1x7777htDhgxJusVWUUybNi2mTZtW5PHnn39+nHfeecVSS3lVpUqVeOaZZ6JevXrx6KOPbnLs008/jYMPPjhGjhwZzZs3z1CFAAAAsHVWtgEAAAD4/zp16hTHHntsQvwf//hHTJ8+PemYvn37xi233FLkczZr1ixGjBgR++yzT5Fz/KdTTz01Xn311cjOzi702Fq1asVLL72UdIWfTHj44Yejb9++RRp70EEHxejRo6Nx48bFXFXhZWVlxTXXXBMDBgzIdCllQlZWVjzyyCNx8803JxybOXNmHHTQQTF37twMVAYAAACp0WwDAAAA8B9uv/32hFh+fn7ceeedmx1z9913x4svvhjbbLNNoc516qmnxqRJk6JTp06FrnNLevbsGZ9++mn86le/SnnMoYceGpMmTYrTTjutWGtJxy+roDz11FPRrFmzlMY0atQoHnzwwRg9enQ0adKkyOc+++yz48ILL0z5vJvTuXPn+PDDD+NPf/pT0m2xKrN77rkn7r///oT43Llz46CDDoqZM2dmoCoAAADYuqyCXzawBgAAACjjFixYEAsWLEiId+nSpVjPM2nSpMjJydkkVqVKlejcufMWx61evTqefvrp+Oc//xkTJkyI9evXb3K8atWqsddee8XRRx8dF1xwQey3336bHH/33Xfjiy++2CR25JFHxl577VXk5/LFF1/ECy+8EO+99158+eWXsXz58qhSpUo0bNgw9thjjzjwwAPjtNNOiw4dOhT5HKVh9erVMWzYsBg+fHhMmjQplixZEsuWLYuaNWtG8+bNo23btnHsscfG6aefHvXq1Su28xYUFMRnn30W48aNi3HjxsXUqVPj66+/jp9//jnp4xs0aBBt2rSJAw88MM4666xo06ZNsdVSGGPGjInDDjtsk9ghhxwSY8aMyUg9FN3AgQPjggsu2CR2/vnnx8CBAzNTEAAAAJptAAAAAErChg0bYvHixbF06dIoKCiI7OzsaNGiRdSoUSPTpVEMlixZEsuXL49Vq1ZFRER2dnY0aNAgmjZtmuHKNtJsU3FotgEAACh7qmW6AAAAAICKqEaNGtGiRYto0aJFpkuhBDRt2rTMNNYAAAAApUuzDQAAAABUAitXrowJEyYkPda6devIzs4u5Yr4T1OmTEnYei4iYs6cORmoBgAAgC3RbAMAAAAAlcCUKVOia9euSY+NHj06Dj300NItiE2cfPLJ8c0332S6DAAAAFJQJdMFAAAAAAAAAABAeaHZBgAAAAAAAAAAUqTZBgAAAAAAAAAAUpRVUFBQkOkiAAAAAAAAAACgPLCyDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAAAAApEizDQAAAAAAwP9r1w4EAAAAAAT5W68wQHEEAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAJNsAwAAAAAAAAAAk2wDAAAAAAAAAACTbAMAAAAAAAAAAFPV6ibS1C939gAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import matplotlib.pyplot as plt\n", + "\n", + "M, R = cal_MR()\n", + "\n", + "plt.figure(dpi=400)\n", + "plt.plot(R / km, M / Msun, \"ro-\", ms=2) # Rule 3\n", + "plt.xlabel(\"Radius [km]\")\n", + "plt.ylabel(\"Mass [Msun]\")\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.10.15" + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/_sources/cluster.rst.txt b/_sources/cluster.rst.txt new file mode 100644 index 0000000..11c2094 --- /dev/null +++ b/_sources/cluster.rst.txt @@ -0,0 +1,74 @@ +Computation Guide +================= + +Computation Time Scaling +------------------------ + +Fully converged Bayesian inference requires numerous iterations to explore the entire prior parameter space. This process demands substantial computation time, which can be very expensive depending on the Equation of State (EOS) you are using. + + **1. Using Integrated EOS Models** + +If you are utilizing the EOS models integrated into this package, here is an overview of the computational resources required: + +a. **Relativistic Mean Field (RMF) Model** + + - **Optimization:** Please use the Numba-accelerated version of EOS computation. + - **Resources:** With one NICER observation constraint and utilizing **256 CPU cores**, the computation can be completed within approximately **1 hour**. + - **Scalability:** The computation time will increase as you include more observations. + +b. **Speed of Sound Model and Polytropic Model** + + - **Nature:** These are meta-models with explicit mathematical formulas, allowing for analytical computations. + - **Resources:** Using **24 CPU cores**, the inference can be completed within **6 hours**. + - **Scalability:** The computation time scales with the number of observations included. + +c. **Strangeon Model and MIT Bag Model** + + - **Nature:** Although these are physics-based models, the computations are relatively straightforward and fast. + - **Resources:** On a laptop with **24 cores**, the computation can be completed within **5-6 hours**. + - **Scalability:** The computation time increases with the addition of more observations. + +**2. Using Custom EOS Models** + +If you are defining your own EOS and wish to perform inference using this package: + +- **Performance Requirement:** Ensure that the computation time for your EOS is **less than 1 second** per evaluation. Otherwise, the overall computation will become prohibitively expensive due to the large number of samples required for Bayesian inference. + +Parallelization +--------------- + +Given the computational intensity of Bayesian inference, parallelization strategies are essential to optimize performance. Below are the steps to parallelize computations using **UltraNest** without modifying the package's code. + +**Requirements** + +- **OpenMPI:** Ensure that OpenMPI is installed and available on your system. +- **Python Packages:** Install `h5py` and `mpi4py`. + +**Steps to Parallelize** + +1. **Set the Number of Threads** + + Control the number of threads per process by setting the `OMP_NUM_THREADS` environment variable. For example, to set it to 1: + + .. code-block:: bash + + export OMP_NUM_THREADS=1 + +2. **Run the Inference Script with MPI** + + Use `mpiexec` to execute your inference script across multiple cores. Replace `inference.py` with the name of your inference script. + + .. code-block:: bash + + mpiexec -np 4 python inference.py + + - **Explanation:** This command runs the inference using **4 CPU cores**. Adjust the `-np` value according to the number of available cores you wish to utilize. + +**Recommendations** + +- **Virtual Environment:** Regardless of where you are running the code, it is highly recommended to use a virtual environment to manage your installations. This practice helps maintain dependencies and avoids conflicts with other projects. + +**Additional Resources** + +For more detailed information on performance and parallelization strategies with **UltraNest**, refer to the `UltraNest Performance Page `_. + diff --git a/_sources/crust_EOS.rst.txt b/_sources/crust_EOS.rst.txt new file mode 100644 index 0000000..a1c6749 --- /dev/null +++ b/_sources/crust_EOS.rst.txt @@ -0,0 +1,9 @@ +.. _Crust_EOS_conect: + +Crust Equation of state interpolation +====================================== + +Function to connect the crust EoS given by user with the core part by function calls + +.. automodule:: EOSgenerators.crust_EOS + :members: diff --git a/_sources/fastRMF_EoS.rst.txt b/_sources/fastRMF_EoS.rst.txt new file mode 100644 index 0000000..f094410 --- /dev/null +++ b/_sources/fastRMF_EoS.rst.txt @@ -0,0 +1,9 @@ +.. _Fast_RMF_EOS: + +RMF EOS solver (numba speed up version) +======================================== + +Functions to compute RMF Equation of state from given parameters. (numba speed up) + +.. automodule:: EOSgenerators.fastRMF_EoS + :members: diff --git a/_sources/index.rst.txt b/_sources/index.rst.txt new file mode 100644 index 0000000..c201cd5 --- /dev/null +++ b/_sources/index.rst.txt @@ -0,0 +1,67 @@ +.. module:: CompactObject + +.. include:: intro.rst + +.. toctree:: + :maxdepth: 2 + :caption: User Guide + + installation + publications + cluster + starthere + +.. toctree:: + :maxdepth: 2 + :caption: Development + + Contributor + +.. toctree:: + :maxdepth: 2 + :caption: Tutorials + + test_EOSgenerators + test_TOVsolver + test_Inference + test_Bayesian_inference_Strangeon_EOS + test_Bayesian_inference_MITbag_EOS + UnitConventionForDeveloper + +.. toctree:: + :maxdepth: 2 + :caption: EOS generators module + + crust_EOS + EOS + fastRMF_EoS + +.. toctree:: + :maxdepth: 2 + :caption: TOV solver module + + EoS_import + main + TOV_solver + speed_of_sound + +.. toctree:: + :maxdepth: 2 + :caption: Bayesian Inference module + + BayesianSampler + prior + Likelihood + +.. toctree:: + :maxdepth: 2 + :caption: Postprocessing module + + Cornerplot + +Indices and tables +================== + +* :ref:`genindex` +* :ref:`modindex` +* :ref:`search` diff --git a/_sources/installation.rst.txt b/_sources/installation.rst.txt new file mode 100644 index 0000000..1f383c6 --- /dev/null +++ b/_sources/installation.rst.txt @@ -0,0 +1,133 @@ +Installation +========================= + +CompactObject is an open-source tool designed for comprehensive neutron star equation inference. It is built to be easy to install and use. Follow the step-by-step installation guide below to get started. + +Using Anaconda (Recommended) +--------------------------- + +1. **Create a Virtual Environment** + + We recommend creating a virtual environment for CompactObject using Anaconda: + + .. code-block:: bash + + conda create -n CompactObject + + When prompted to proceed, type `y` and press Enter: + + .. code-block:: none + + Proceed ([y]/n)? + +2. **Activate the Environment** + + Activate your newly created environment with the following command: + + .. code-block:: bash + + conda activate CompactObject + + **Note:** Once you create this environment, you don't need to create it again. Simply activate it whenever you want to use CompactObject. + +3. **Install CompactObject** + + Use `pip` to install the CompactObject package: + + .. code-block:: bash + + pip install CompactObject-TOV + + To upgrade to the latest version, run: + + .. code-block:: bash + + pip install CompactObject-TOV --upgrade + +4. **You're Ready to Use CompactObject!** + + You are now ready to use CompactObject. Whenever you want to use this package, remember to activate the environment first: + + .. code-block:: bash + + conda activate CompactObject + + Our package automatically installs all necessary dependencies for you. The dependencies include: + + - `corner` + - `csv` + - `itertools` + - `math` + - `matplotlib` + - `numba` + - `numbaminpack` + - `numpy` + - `os` + - `pandas` + - `scipy` + - `sys` + - `ultranest` + +Some of the dependencies like numbaminpack may hard to install if don't have a fortran complier, please +refer to this page `NumbaMinpack documentation `, and you can skip +this NumbaMinpack if you are not using "fastRMF_EoS" and "pQCD" + +Optional: Using Python Virtual Environment +------------------------------------------ + +If you are not using Anaconda, you can create a virtual environment using Python's `venv` module: + +1. **Create a Virtual Environment** + + Run the following command to create a virtual environment named `CompactObject`: + + .. code-block:: bash + + python3 -m venv CompactObject + + *You can specify a different path by replacing `CompactObject` with your desired directory name.* + +2. **Activate the Environment** + + Activate the virtual environment with: + + .. code-block:: bash + + source CompactObject/bin/activate + +3. **Install CompactObject** + + Once the environment is activated, install CompactObject using `pip`: + + .. code-block:: bash + + pip install CompactObject-TOV + + To upgrade to the latest version, run: + + .. code-block:: bash + + pip install CompactObject-TOV --upgrade + +4. **Using the Package** + + You are now ready to use CompactObject. Each time you want to use the package, ensure you activate the environment: + + .. code-block:: bash + + source CompactObject/bin/activate + +Summary +------- + +- **Using Anaconda:** + 1. Create and activate the `CompactObject` environment. + 2. Install CompactObject with `pip`. + 3. Activate the environment whenever you use the package. + +- **Using Python Virtual Environment:** + 1. Create and activate the `CompactObject` virtual environment. + 2. Install CompactObject with `pip`. + 3. Activate the environment whenever you use the package. + +If you encounter any issues or have questions, feel free to reach out for support. Happy computing! diff --git a/_sources/intro.rst.txt b/_sources/intro.rst.txt new file mode 100644 index 0000000..9db5df8 --- /dev/null +++ b/_sources/intro.rst.txt @@ -0,0 +1,184 @@ +.. _readme: + +*********************************** +CompactObject Package Tutorials +*********************************** + +**An Open-Source Package for Neutron Stars** +**Comprehensive Workflow for Bayesian Inference Constraining** +**Neutron Star EOS Package** + +**CompactObject** is an open-source package designed to perform Bayesian inference +on neutron star equation of state (EOS) constraints. It offers a comprehensive workflow +that integrates astrophysical observations and nuclear measurements to explore the interior +composition of neutron stars. The package is built to be user-friendly, easily extendable, +and thoroughly documented, making it an essential tool for researchers in nuclear astrophysics. +The package integrates three independent modules: + +1. **Tolman–Oppenheimer–Volkoff (TOV) Equation Solver** + A user-friendly solver for determining neutron star structure based on a given EOS. + +2. **Neutron Star EOS Generator** + Generates EOS across the full density range. Currently, it includes the relativistic mean + field theory EOS solver and will support polytropes and additional EOS models in the future. + +3. **Bayesian Inference Workflow** + A complete package for constraining the EOS of neutron stars. This includes defining the + likelihood from observations (X-ray timing, gravitational waves, radio timing) and nuclear + experiments (nuclear quantities, pQCD, chiral EFT), as well as from simulated astrophysical + observations. It also involves defining priors for the parameters and running nested sampling + of the posterior space. + +These three components are independent, allowing users to integrate them into their workflows +seamlessly. The package's functionality extends beyond inference studies, and we welcome +contributions of new features. + +For installation instructions, please refer to the `Installation Page `_. + +**Publications** + +Papers generated using this package include: + +.. [1] **Huang, C., Raaijmakers, G., Watts, A. L., Tolos, L., & Providência, C.** (2024). + *Constraining fundamental nuclear physics parameters using neutron star mass-radius measurements I: Nucleonic models*. + *Monthly Notices of the Royal Astronomical Society*, 529. + `DOI:10.1093/mnras/stae844 `_ + +.. [2] **Huang, C., Tolos, L., Providência, C., & Watts, A.** (2024). + *Constraining a relativistic mean field model using neutron star mass-radius measurements II: Hyperonic models*. + *arXiv preprint arXiv:2410.14572*. + `https://arxiv.org/abs/2410.14572 `_ + +.. [3] **Huang, C., & Zheng, X.-P.** (2024). + *Bayesian Insights into post-Glitch Dynamics: Model comparison and parameter constraint from decades-long observation data of the Crab pulsar*. + *arXiv preprint arXiv:2409.18432*. + `https://arxiv.org/abs/2409.18432 `_ + +If you use our software, please consider citing us with the following standard citation: + +The inference conducted here relies on the framework in the :math:`\textit{CompactObject}` package [CompactObject]_. +This is an open-source, full-scope package designed to implement Bayesian constraints on the neutron star EOS. Other work based on this package is .... + +.. _CompactObject: https://chunhuangphy.github.io/CompactObject/ + +Concept +======= + +Bayesian inference studies of the neutron star equation of state have become a trending +field, particularly due to significant advancements such as the Neutron Star +Interior Composition Explorer (NICER) measuring neutron star masses and radii through X-ray timing, and the detection of neutron star merger events through gravitational wave observations by the LIGO detector. + +Below is the overall pipeline of this field: + +.. image:: workflow.png + :alt: Workflow Diagram + +As depicted in this diagram, fundamental physics provides the EOS for neutron stars. By inputting the EOS into the Tolman–Oppenheimer–Volkoff (TOV) equation, we can obtain parameters related to the neutron star structure, such as mass, radius, and tidal properties. Instruments like NICER and LIGO measure these properties, providing data for Bayesian inference. This process constrains the EOS by determining the region in the Mass-Radius space where neutron stars can exist, ultimately offering insights into the fundamental composition of their interiors. + +Equation of State +================= + +The neutron star equation of state (EOS) plays a crucial role in determining the composition of a neutron star. It is closely connected to the microphysical properties of neutron stars. Here, we introduce an EOS derived from the Relativistic Mean Field (RMF) theory. The Lagrangian of this model is represented as follows: + +.. math:: + + \mathcal{L} = \sum_N \mathcal{L}_N + \mathcal{L}_{\mathcal{M}} + \sum_l \mathcal{L}_l + +Where: + +- :math:`\mathcal{L}_N` is the nucleonic Lagrangian +- :math:`\mathcal{L}_{\mathcal{M}}` is the meson part of the Lagrangian +- :math:`\mathcal{L}_l` is the lepton Lagrangian + +Details of the Lagrangian are illustrated below: + +.. image:: lagrangian.png + :alt: Lagrangian Diagram + +In the equation: + +- :math:`\Psi_{N}` and :math:`\psi_{l}` are the nucleon and lepton spinors +- :math:`\bar{I}_{N}` is the nucleon isospin operator +- :math:`g` denotes the strong interaction coupling of a meson to a nucleon +- :math:`m` represents the masses of the nucleons, mesons, and leptons +- The parameters :math:`\kappa`, :math:`\lambda_0`, :math:`\zeta`, and :math:`\Lambda_{\omega}` are coupling constants to be determined by the inference method + +These free parameters represent the degrees of freedom in the RMF model and can be determined through nuclear experiments. Additionally, astrophysical observations can help constrain these parameters. The complete list of parameters includes: + +.. image:: free_para.png + :alt: Free Parameters Diagram + +These parameters should be inputted to generate the EOS using our EOS generators module. Different EOS parameters will affect mass-radius relations, as demonstrated here. For more details on the physics, refer to `Glendenning (1996) `_. + +Tolman–Oppenheimer–Volkoff (TOV) Equation +========================================== + +The TOV equation is a general relativity equation that constrains the structure of a spherically symmetrical body under gravity. The original equation is: + +.. math:: + + \frac{d P}{d r} = -\frac{G m}{r^2} \rho \left(1 + \frac{P}{\rho c^2}\right) \left(1 + \frac{4 \pi r^3 P}{m c^2}\right) \left(1 - \frac{2 G m}{r c^2}\right)^{-1} + +To solve this equation, the essential ingredient is the EOS. The basic strategy is as follows: at a given central density, input it into the neutron star EOS to obtain the pressure. Then, integrate the density from the center to the boundary, repeating this process across the entire possible density range. + +In our code, we provide two different functions: + +1. **Default Solver:** + Solves the TOV equation within a predefined density range (log(14.3, 15.6) on a scale of 10). + +2. **Point-by-Point Solver:** + Allows solving the equation for any chosen central density range. + +For more information on the TOV equation, visit the `Wikipedia page `_. + +Bayesian Inference +================== + +Using Bayesian inference tools to explore constraints on the neutron star EOS is increasingly common. The foundational equation is Bayes' Theorem: + +.. math:: + P(A \mid B) = \frac{P(B \mid A) P(A)}{P(B)} + +Where: + +- **Posterior Probability** (:math:`P(A \mid B)`): The probability of hypothesis A after observing B. +- **Prior Probability** (:math:`P(A)`): The initial probability of hypothesis A before observing B. +- **Likelihood** (:math:`P(B \mid A)`): The probability of observing B given that hypothesis A is true. +- **Evidence** (:math:`P(B)`): The probability of observing B under all possible hypotheses. + +In this context: + +- **Posterior** is the updated probability after considering new observations or experiments. +- **Prior** is the initial belief before new data is considered. +- **Likelihood** is the influence of new data on the belief. + +The likelihood in our studies primarily comes from four sources: + +1. **Mass-Radius Measurements from X-ray Timing** (e.g., NICER) +2. **Tidal Measurements from Gravitational Wave Detection** +3. **Mass Measurements from Radio Timing** +4. **Nuclear Physics Constraints from Experiments** + +NICER's mass-radius measurements are a significant achievement in neutron star physics, comparable to gravitational wave detections. For the connection between our EOS and nuclear quantities, refer to `Chen & Piekarewicz (2014a) `_. + +The nuclear physics quantities we consider are: + +- **K**: Compressibility of nuclear matter +- **J**: Symmetry energy at saturation density +- **L**: Slope of symmetry energy at saturation density + +There are more on constraining the EOS by Pure neutron matter (PNM): + +- **chiral EFT constraint** +- **pQCD constraint** + +These can be computed from posterior samples (we will add the nuclear properties computation code in the near future). They also serve as independent constraints on the neutron star EOS. + +When performing real astrophysical sampling, it is crucial to sample the neutron star central density corresponding to each measurement used. For instance, if investigating the constraining effect of two mass-radius measurements on the EOS, you need to define two additional free parameters—the central densities for each measurement. Otherwise, the inference would not represent a full-scope EOS analysis. Therefore, our likelihood functions include a parameter :math:`d_1`, representing the density parameter of each observation. + +Summary +======= + +**CompactObject** provides a comprehensive suite of tools for Bayesian inference on neutron star EOS constraints. By integrating astrophysical observations with nuclear experiments, it facilitates a deeper understanding of neutron star interiors. + +For more information, tutorials, and support, please refer to our documentation or contact the development team. diff --git a/_sources/main.rst.txt b/_sources/main.rst.txt new file mode 100644 index 0000000..d7fc8bd --- /dev/null +++ b/_sources/main.rst.txt @@ -0,0 +1,12 @@ +.. _main: + +Main functions +===================== + +Controls most functionality of package by calling the following functions. +* :ref:'EoS_importing' +* :ref: 'TOV_solving' +* :ref: '__s' + +.. automodule:: TOVsolver.main + :members: diff --git a/_sources/prior.rst.txt b/_sources/prior.rst.txt new file mode 100644 index 0000000..7ef8de9 --- /dev/null +++ b/_sources/prior.rst.txt @@ -0,0 +1,9 @@ +.. _Prior_definition: + +Prior Definition Module +======================== + +Functions to define prior distribution of parameters + +.. automodule:: InferenceWorkflow.prior + :members: diff --git a/_sources/publications.rst.txt b/_sources/publications.rst.txt new file mode 100644 index 0000000..2d0b83a --- /dev/null +++ b/_sources/publications.rst.txt @@ -0,0 +1,94 @@ +Publications +============ + +**CompactObject** has been implemented in several studies and ongoing research projects. If your work is based on or has contributed to our package and you would like to be mentioned on this page, please send us an email at `chun.h@wustl.edu `_. This allows us to promote your work within our documentation, thereby extending the impact of the **CompactObject** package. Please ensure you specifically cite us if you are using this package, even if you utilize only one functionality, so that we can acknowledge your contribution. We greatly appreciate feedback and contributions to enhance our functionalities. + +The initial papers based on or contributing to this package are listed below: + +**1. Definition of RMF Models** + +.. [1] **Huang, C., Raaijmakers, G., Watts, A. L., Tolos, L., & Providência, C.** (2024). + *Constraining fundamental nuclear physics parameters using neutron star mass-radius measurements I: Nucleonic models*. + *Monthly Notices of the Royal Astronomical Society*, 529. + `DOI:10.1093/mnras/stae844 `_ + +.. [2] **Huang, C., Tolos, L., Providência, C., & Watts, A.** (2024). + *Constraining a relativistic mean field model using neutron star mass-radius measurements II: Hyperonic models*. + *arXiv preprint arXiv:2410.14572*. + `https://arxiv.org/abs/2410.14572 `_ + +**2. Application of Likelihood Functions and analysis glitch data** + +.. [3] **Huang, C., & Zheng, X.-P.** (2024). + *Bayesian Insights into post-Glitch Dynamics: Model comparison and parameter constraint from decades-long observation data of the Crab pulsar*. + *arXiv preprint arXiv:2409.18432*. + `https://arxiv.org/abs/2409.18432 `_ + +**3. Strangeon Star EOS Inference** + +.. [4] **Yuan, W.-L., Huang, C., Zhang, C., Zhou, E.-P., & Xu, R.-X.** (2024). + *Bayesian inference of strangeon matter equation of state using the new NICER mass-radius measurements J0437-4751 and GW190814 data*. + *In preparation*. + +**4. pQCD Computation Implementation** + +.. _pQCD_publications: + +.. [5] **Gorda, T., Komoltsev, O., & Kurkela, A.** + *Ab-initio QCD Calculations Impact the Inference of the Neutron-star-matter Equation of State*. + e-Print: [2204.11877 [nucl-th]](https://arxiv.org/abs/2204.11877) + DOI: [10.3847/1538-4357/acce3a](https://doi.org/10.3847/1538-4357/acce3a) + Published in: *Astrophysical Journal*, 950 (2023) 2, 107 + +**5. Chiral Effective Field Theory Constraint Implementation** + +.. _chiral_EFT_publications: + +.. [6] **Marquez, K.D., Malik, T., Pais, H., Menezes, D.P., & Providência, C.** + *Nambu–Jona-Lasinio Description of Hadronic Matter from a Bayesian Approach*. + e-Print: [2407.18452 [nucl-th]](https://arxiv.org/abs/2407.18452) + DOI: [10.1103/PhysRevD.110.063040](https://doi.org/10.1103/PhysRevD.110.063040) + Published in: *Physical Review D*, 110 (2024) 6, 063040 + +**6. Density-dependent RMF Implementation** + +.. _density_function_publications: + +.. [7] **Malik, T., Ferreira, M., Agrawal, B.K., & Providência, C.** (2022). + *Relativistic Description of Dense Matter Equation of State and Compatibility with Neutron Star Observables: A Bayesian Approach*. + *Astrophysical Journal*, 930(1), 17. + `https://doi.org/10.3847/1538-4357/ac5d3c `_ + + +.. [8] **Providência, C., Malik, T., Bastos Albino, M., & Ferreira, M.** + *Neutron Star Equation of State: Identifying Hadronic Matter Characteristics*. + e-Print: [2307.05086 [nucl-th]](https://arxiv.org/abs/2307.05086) + DOI: [10.1201/9781003306580-5](https://doi.org/10.1201/9781003306580-5) + + + + +If your work relates to pQCD computations, chiral effective field theory constraints, or density-function implementations within the **CompactObject** framework, please ensure to update the corresponding sections with your publications. + +Citing CompactObject +-------------------- + +.. code-block:: none + + If you use our software, please consider citing us with the following standard citation: + + The inference conducted here relies on the framework in the :math:`\textit{CompactObject}` package [CompactObject]_. + This is an open-source, full-scope package designed to implement Bayesian constraints on the neutron star EOS. Other work based on this package is .... + +.. [CompactObject] https://chunhuangphy.github.io/CompactObject/ + +Acknowledgements +---------------- + +We welcome feedback and contributions to expand the functionalities of **CompactObject**. Your support helps enhance the tool for the entire research community. + +Contact +------- + +For inquiries, contributions, or to be featured in our publications list, please contact us at `chun.h@wustl.edu `_. + diff --git a/_sources/speed_of_sound.rst.txt b/_sources/speed_of_sound.rst.txt new file mode 100644 index 0000000..65db08a --- /dev/null +++ b/_sources/speed_of_sound.rst.txt @@ -0,0 +1,9 @@ +.. _C_s: + +Calculate Speed of Sound +===================== + +Calculates and returns speed of sound from an equaiton of state inputed by the user. + +.. automodule:: TOVsolver.speed_of_sound + :members: diff --git a/_sources/starthere.rst.txt b/_sources/starthere.rst.txt new file mode 100644 index 0000000..c511d53 --- /dev/null +++ b/_sources/starthere.rst.txt @@ -0,0 +1,96 @@ +Start Here! +========== + +Welcome to **CompactObject**! This guide will help you get started after successfully installing the package and activating your virtual environment. Follow the steps below to achieve your scientific goals using the functionalities of the **CompactObject** package. + +Prerequisites +------------- +- **Package Installation:** Ensure you have installed **CompactObject** successfully. +- **Virtual Environment:** Activate your virtual environment where **CompactObject** is installed. + +Depends on Your Scientific Goal +------------------------------- + + 1. **Understanding Basic Concepts** + +If you are new to **CompactObject** and wish to familiarize yourself with its basic concepts and introduction: + +- **Index Page:** Explore the `Index Page `_ for an overview of the package. +- **README:** Review the `README `_ on GitHub to understand the package’s purpose and features. + + 2. **Generating Equations of State (EOS)** + +To use **CompactObject** for generating equations of state: + +- **EOS Generators Tutorial:** Start with the `EOS Generators Tutorial `_ which showcases all currently integrated EOS computations in the package. The supported EOS models include: + - **Relativistic Mean Field (RMF) Model** + - **Strangeon Star Model** + - **Quark Star Model:** MIT Bag Model + - **Polytropic Model** + - **Speed of Sound Model** + - **Density-Dependent EOS Model** + - *...and more* + + 3. **Using the Tolman–Oppenheimer–Volkoff (TOV) Solver** + +To utilize the TOV solver integrated within **CompactObject**: + +- **TOV Solver Tutorial:** Refer to the `TOV Solver Tutorial `_. This tutorial demonstrates how to perform TOV computations using table-based EOS. +- **Inputting an Array:** If you prefer to input an array instead of a table, refer back to the `EOS Generators Tutorial `_. The quantities currently available are: + - **Mass** + - **Radius** + - **Tidal Deformability** + + 4. **Performing Bayesian Inference on the EOS** + +**CompactObject** offers robust tools for Bayesian inference related to neutron star EOS. There are two primary scenarios: + + a. **Using Integrated EOS for Inference** + +If you wish to perform Bayesian inference using the EOS models already integrated into **CompactObject**, follow these examples: + +1. **RMF EOS Inference Pipeline:** Explore the `RMF EOS Inference Pipeline `_. +2. **Strangeon EOS Inference Pipeline:** Check out the `Strangeon EOS Inference Pipeline `_. +3. *...and more examples* + + b. **Using Your Own EOS for Inference** + +If you have developed your own EOS and wish to perform Bayesian inference: + +1. **Contributor Instructions:** Follow the `Instructions for Contributors `_ to define your EOS without conflicts and understand the necessary tests to ensure computational accuracy. +2. **Constructing a New Pipeline:** Utilize the existing inference pipelines, such as the `RMF EOS Inference Pipeline `_ and `Strangeon EOS Inference Pipeline `_, as reference points to build your own inference workflow based on **CompactObject**. +3. **Performance Considerations:** Ensure that the computation time for a single EOS is within the sub-second range to handle millions of samples required for Bayesian inference efficiently. + +**Contribution Invitation:** +Consider contributing your EOS to our community if you are using our package! This will boost the influence of your work and make you a collaborator on this project. We can also promote your results on our page. Please check the `Instructions for Contributors `_ if you wish to contribute. + + 5. **Performing Bayesian Inference in Other Fields** + +If you aim to use the inference modules of **CompactObject** for Bayesian inference outside of EOS studies, such as in high-energy physics or other astrophysical fields: + +- **Example Notebook:** Refer to the `Sample Glitch Bayesian Inference Notebook `_ for an example of how to apply **CompactObject** to different inference scenarios. + + 6. **Advanced Usage: Modifying Solvers or APIs** + +If the existing tutorials do not cover your specific needs, such as: + +- **Modifying the TOV Solver:** For example, changing to a double-fluid TOV solver. +- **Investigating Additional EOS-Related Quantities:** Beyond pressure and density used in TOV solving. + +You can: + +- **API Documentation:** Consult the detailed API documentation in this documentation to identify and utilize the functions you need. +- **GitHub Repository:** Visit our `GitHub Page `_ to explore the source code and understand the internal workings of **CompactObject**. + +**Note:** +The key functions, including the **TOVsolver module** code, form the foundation for all inference and computations. Modifying them may require substantial code restructuring. Therefore, if you clone the repository locally and need to make changes to the **TOVsolver**, proceed with caution to avoid extensive code rebuilding. Only original contributors have permission to modify the **TOVsolver** module code, and such commits must undergo detailed reviews by the original members of the project. + +Acknowledgements +---------------- + +We welcome feedback and contributions to expand the functionalities of **CompactObject**. Your support helps enhance the tool for the entire research community. + +Contact +------- + +For inquiries, contributions, or to be featured in our publications list, please contact us at `chun.h@wustl.edu `_. diff --git a/_sources/test_Bayesian_inference_MITbag_EOS.ipynb.txt b/_sources/test_Bayesian_inference_MITbag_EOS.ipynb.txt new file mode 100644 index 0000000..c733e26 --- /dev/null +++ b/_sources/test_Bayesian_inference_MITbag_EOS.ipynb.txt @@ -0,0 +1,281 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "edb2cf2a", + "metadata": {}, + "source": [ + "## MIT bag EOS Inference pipline" + ] + }, + { + "cell_type": "markdown", + "id": "7bc633d3", + "metadata": {}, + "source": [ + "The MIT bag model, which has commonly been applied to strange quark stars, relates pressure to energy density with the simple equation of state $p=\\frac{\\epsilon}{3}-\\frac{4B}{3}$. There is only one parameter, the \"bag constant\" $B$. This represents the vacuum energy density, which creates a \"bag\" in which quarks are confined. See [Chodos et al. (1974)](https://doi.org/10.1103/PhysRevD.9.3471).\n", + "\n", + "In this notebook, we use our Bayesian inference code to constrain the value of $B$ using observations." + ] + }, + { + "cell_type": "markdown", + "id": "acdcb64a", + "metadata": {}, + "source": [ + "### (a) Import packages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f6f20856", + "metadata": {}, + "outputs": [], + "source": [ + "import InferenceWorkflow.BayesianSampler as sampler\n", + "import InferenceWorkflow.Likelihood as likelihood\n", + "import InferenceWorkflow.prior as prior\n", + "import math\n", + "import numpy as np\n", + "import EOSgenerators.MITbag_EOS as MITbag\n", + "from TOVsolver.unit import MeV, fm, g_cm_3, dyn_cm_2, km, Msun\n", + "import TOVsolver.main as main" + ] + }, + { + "cell_type": "markdown", + "id": "edfa0f72", + "metadata": {}, + "source": [ + "### (b) Set up priors" + ] + }, + { + "cell_type": "markdown", + "id": "38136542", + "metadata": {}, + "source": [ + "Next, we need to set up the priors. We first use a parameters array to specify the variable name. This process should be consistent with what you need to call them.\n", + "\n", + "Define a prior transform function to define prior. Cube is a set of random numbers from 0 to 1. This prior setting is the standard set-up of UltraNest package, since we are using UltraNest to do nest-sampling.\n", + "\n", + "We provided two options call from prior:\"normal_Prior\" and \"flat_prior\".\n", + "\n", + "We note that since we are doing Equation of state inference from mass-radius data of neutron star measurement. The central density of the star should be also sampled. Otherwise, this will be a partially-defined prior that did not span all of the parameter space, and proved to be different from full-scope inference.\n", + "\n", + "This request will randomly generate a density from a EoS range, however, this process is not that trivial, since we need to determine the upper limit of the central density of the compact star --- different equations of state will predict different upper bounds, so here we need to use the prior-setting EoS parameters computing the mass-radius curve for this equation of state, then find out the last stable point of this equation of state (first mass points that give the direvative to be negative). We can find that index with the len() function, then reset this max_d to be upper limit of this density range.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2b87dd3b", + "metadata": {}, + "outputs": [], + "source": [ + "parameters = ['B','d1']\n", + "\n", + "def prior_transform(cube):\n", + " params = cube.copy()\n", + " params[0] = prior.flat_prior(20,100,cube[0])\n", + "\n", + " B = params[0]\n", + " \n", + " epsilon,p = MITbag.MITbag_compute_EOS(B)\n", + "\n", + " RFSU2R = [] \n", + " MFSU2R = []\n", + " density = np.logspace(14.3, 15.6, 50) \n", + " if all(x 20 and MR[0][i] - MR[0][i-1]< 0: \n", + " break\n", + " if len(MFSU2R)==False:\n", + " params[1] = 0\n", + " #params[3] = 0\n", + " #this line for showing how to add one more observation\n", + " else:\n", + " max_index = len(MFSU2R)\n", + " max_d = np.log10(density[max_index-1])\n", + " params[1] = 14.3 + (max_d - 14.3) * cube[1]\n", + " #params[3] = 14.3 + (max_d - 14.3) * cube[3]\n", + " #this line for showing how to add one more observation\n", + " return params" + ] + }, + { + "cell_type": "markdown", + "id": "6f8e4822", + "metadata": {}, + "source": [ + "In the upper part, we define a flat (uniform) prior for the parameters in the strangeon matter equation of state, due to the lack of constraints from terrestrial experiments.\n", + "\n", + "Note that the above code is an example of Bayesian analysis for a given mass and radius observation measurement.\n", + "For example, if you use the NICER data for the measurements of J0030, then you should define another parameter, except the strangeon EOS parameters, e.g. \"d1\" for the centre density of this measurement, in the meantime add \"params[2]\" to this code.\n", + "\n", + "If you further consider the adjoint analysis with J0030+J0740, then you should define the other two parameters, e.g. \"d1\" and \"d2\" for the centre density of these two measurements, in the meantime add \"params[3]\" to the above code." + ] + }, + { + "cell_type": "markdown", + "id": "53ab6d43", + "metadata": {}, + "source": [ + "### (c) Set up likehood" + ] + }, + { + "cell_type": "markdown", + "id": "3bfd12ff", + "metadata": {}, + "source": [ + "We need to set up a likelihood, Using standard definition way of UltraNest, that is below.\n", + "\n", + "Here the likelihood is generated from a simulated mass radius measurement, which is 𝑀=1.4𝑀⊙\n", + " and 𝑅=13\n", + " km, With a 5% Mass radius measurement uncertainty, \n", + " \n", + " so here\n", + " \n", + " likelihood.MRlikihood_Gaussian\n", + " \n", + "function will be use for our likelihood, please check [likelihood.MRlikihood_Gaussian](https://github.com/ChunHuangPhy/CompactOject/blob/main/InferenceWorkflow/Likelihood.py) to see the original code, and more choice of likelihood. eg:\n", + "\n", + "1.If we have some real mass-radius measurements, say PSR J0030 or PSR J0740, come from NICER, a KDE kernel could be trained to feed into\n", + "\n", + "likelihood.MRlikihood_kernel(eps_total,pres_total,x,d1)\n", + "\n", + "set the KDE kernel as a input for this function\n", + "\n", + "2.If we gain measurement from radio-timing, say only measure the neutron star mass, then\n", + "\n", + "likelihood.Masslikihood_Gaussian(eps_total,pres_total,x,d1)\n", + "\n", + "Which will give the likelihood from single mass measurement, x is the parameters of that measurement, you should specify where this measurement mass is located and what is the sigma width of this mass measurement.\n", + "\n", + "3.If we have nuclear measurements, and want to constrain this RMF model by nuclear properties like K(The Incompressibility of nuclear matter),J ( the symmetry energy at saturation density) and L( the slope of symmetry energy at saturation density). You can choose:\n", + "\n", + "likelihood.Kliklihood(theta,K_low,K_up)\n", + "likelihood.Jliklihood(theta,K_low,K_up)\n", + "likelihood.Lliklihood(theta,K_low,K_up)\n", + "\n", + "We are defaulting a hard-cut flat constrain, so if you don't like this default hard cut, also could define the likelihood by youself with similiar style.\n", + "\n", + "4.If we have a Tidal measurements from Gravitational wave detector, we can use it to do constraint:\n", + "\n", + "likelihood.TidalLikihood_kernel(eps_total,pres_total,x,d1)\n", + "\n", + "Where x is sampled distribution from real measurements, the standard is\n", + "\n", + "kernel, chrip = x,\n", + "\n", + "where the kernel is a whole set sampling from GW event, that is [chrip mass, M2/M1, tidal of M1, tidal of M2] four quantities. Chrip is the single smapling that comes only the chrip mass sampling." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0d3a8359", + "metadata": {}, + "outputs": [], + "source": [ + "import scipy.stats as stats\n", + "\n", + "\n", + "def likelihood_transform(theta):\n", + " # This is a demonstration code for only introduce one constraint from one mass-radius observation.\n", + " # Could be very easy to implement more constraint from nuclear quantity, since that do not need to\n", + " # sample more central density of real neutron star. If user want to expand to two mass radius measurement \n", + " # the code could be:\n", + " \n", + " B, d1 = theta\n", + " \n", + " ####################################################################################################################\n", + " ############ This is the block to compute out all the EoS you need based on your parameters#########################\n", + "\n", + " epsilon,p = MITbag.MITbag_compute_EOS(B)\n", + "\n", + " ####################################################################################################################\n", + " \n", + " probMRgaussian = likelihood.MRlikihood_Gaussian(epsilon,p,(1.4,13,0.07,0.65),d1)\n", + " \n", + " prob = probMRgaussian\n", + " \n", + " return prob" + ] + }, + { + "cell_type": "markdown", + "id": "4a3802c4", + "metadata": {}, + "source": [ + "### (d) Set up sampler" + ] + }, + { + "cell_type": "markdown", + "id": "76bce7fb", + "metadata": {}, + "source": [ + "Here next, we define sampler, there is two different sampler we provided for. \n", + "\n", + "Considering where you need resume file:\n", + "\n", + "sampler.UltranestSampler and sampler.UltranestSamplerResume\n", + "\n", + "Here since it is our first run, so we only use first one. Some of the sampler parameters is requested, first is step number, our choice for UltraNest sampler is slicesampler, which could easily be sliced up your total computation load, and parallelize, speed up sampling. So step as suggested by documentation of UltraNest, we use 2*len(parameters).\n", + "\n", + "live_point we set 2000, it will influence the sampling precision, We suggest for 7 dimension space, maybe 5000 is a better choice, however, since my computer only have limited resources, we set 2000.\n", + "\n", + "max_calls set 10000, it is how many iteration after it will stop, we suggest to set this number significantly higher, otherwise maybe will broken before the inference converging to a definite value. That result will be un-phyiscal." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f05849a0", + "metadata": {}, + "outputs": [], + "source": [ + "step = 2 * len(parameters)\n", + "live_point = 400\n", + "\n", + "max_calls = 60000\n", + "samples = sampler.UltranestSampler(parameters,likelihood_transform,prior_transform,step,live_point,max_calls)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/_sources/test_Bayesian_inference_Strangeon_EOS.ipynb.txt b/_sources/test_Bayesian_inference_Strangeon_EOS.ipynb.txt new file mode 100644 index 0000000..3d57d0d --- /dev/null +++ b/_sources/test_Bayesian_inference_Strangeon_EOS.ipynb.txt @@ -0,0 +1,408 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "edb2cf2a", + "metadata": {}, + "source": [ + "## Strangeon EOS inference pipeline" + ] + }, + { + "cell_type": "markdown", + "id": "7bc633d3", + "metadata": {}, + "source": [ + "This is an example notebook about how to use our tools to analysis a observation constraint on strangeon star equation of state.\n", + "\n", + "Here in this notebook, we are using a strangeon matter EOS.\n", + "\n", + "The following is the package that we need." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "f6f20856", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/a9/CompactOject/InferenceWorkflow/Likelihood.py:314: SyntaxWarning: invalid escape sequence '\\('\n", + " \"\"\"\n" + ] + } + ], + "source": [ + "import InferenceWorkflow.BayesianSampler as sampler\n", + "import InferenceWorkflow.Likelihood as likelihood\n", + "import InferenceWorkflow.prior as prior\n", + "import math\n", + "import numpy as np\n", + "import EOSgenerators.Strangeon_EOS as Strangeon\n", + "from TOVsolver.constant import oneoverfm_MeV, m_rho, m_w,G,c\n", + "import TOVsolver.main as main" + ] + }, + { + "cell_type": "markdown", + "id": "2b494a39", + "metadata": {}, + "source": [ + "The following is the strangeon matter EOS function.\n", + "\n", + "We note that because the parameter Nq is an integer in the strangeon matter EOS.\n", + "\n", + "In the following, we use a possible value of this parameter, Nq=18, as an example to carry out the Bayesian analysis." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c9d879d4", + "metadata": {}, + "outputs": [], + "source": [ + "Nq=18\n" + ] + }, + { + "cell_type": "markdown", + "id": "edfa0f72", + "metadata": {}, + "source": [ + "### Set up prior" + ] + }, + { + "cell_type": "markdown", + "id": "38136542", + "metadata": {}, + "source": [ + "Next step, we need to set up the prior, first use parameters array to specify the variable name, this process should consistent with what you need to call them.\n", + "\n", + "Define a prior transform function to define prior. Cube are set of random number from 0 to 1. This prior setting is standard set-up of UltraNest package, since we are using UltraNest to do nest-sampling.\n", + "\n", + " We provided two options call from prior:\"normal_Prior\" and \"flat_prior\".\n", + " \n", + "Then the Parameters prior should all set.\n", + "\n", + "We note that since we are doing Equation of state Inference from mass-radius data of neutron star measurement. The center density of the star should be also sampled. Otherwise will be a partially-defined prior, did not span all parameters space, and proved to be different with full-scope inference.\n", + "\n", + "This request as randomly generate a density from a EoS range, however, this process is not that trivial, since we need to determine the upper limit of the central density of compact star --- different equation of state will predict different upper bound, so here we need to use the prior-setting EoS parameters computing the EOS by\n", + "\n", + "strangeon.compute_EOS\n", + "Compute out EOS, put into\n", + "\n", + "main.OutputMR\n", + "\n", + "find out Mass Radius of this equation of state, then find out the last stable point of this equation of state.(first mass points that give the direvative to be negative)\n", + "\n", + "and find out that index by len() function, then reset this max_d to be upper limit of this density range.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2b87dd3b", + "metadata": {}, + "outputs": [], + "source": [ + "parameters = [ 'epsilon', 'ns', 'd1']\n", + "# for two or more MR measurements, define \n", + "# parameters = ['epsilon', 'ns', 'd1', 'd2'] \n", + "\n", + "def prior_transform(cube):\n", + " params = cube.copy()\n", + " params[0] = prior.flat_prior(10, 170,cube[0]) #epsilon=10-170MeV\n", + " params[1] = prior.flat_prior(0.17,0.36,cube[1]) #ns=0.17-0.36fm^-3 \n", + " \n", + " epsilon = params[0]\n", + " ns = params[1]\n", + "\n", + " theta1 = np.array([Nq, epsilon, ns])\n", + " n_min = 3 * theta1[2] / theta1[0] \n", + " n_max = 0.16 * 8 * 3 / theta1[0] \n", + " n_values = np.linspace(n_min, n_max, 2000) \n", + " energy_density, pressure = Strangeon.compute_EOS(n_values, theta1)\n", + " \n", + " \n", + "\n", + " eps_total=energy_density\n", + " \n", + " pres_total=pressure\n", + " \n", + " RFSU2R = [] \n", + " MFSU2R = []\n", + " density = np.logspace(14.3, 15.6, 50) \n", + " if all(x 20 and MR[0][i] - MR[0][i-1]< 0: \n", + " break\n", + " if len(MFSU2R)==False:\n", + " params[2] = 0\n", + " #params[3] = 0\n", + " #this line for showing how to add one more observation\n", + " else:\n", + " max_index = len(MFSU2R)\n", + " max_d = np.log10(density[max_index-1])\n", + " params[2] = 14.3 + (max_d - 14.3) * cube[2]\n", + " #params[3] = 14.3 + (max_d - 14.3) * cube[3]\n", + " #this line for showing how to add one more observation\n", + " return params" + ] + }, + { + "cell_type": "markdown", + "id": "6f8e4822", + "metadata": {}, + "source": [ + "In the upper part, we define a flat (uniform) prior for the parameters in the strangeon matter equation of state, due to the lack of constraints from terrestrial experiments.\n", + "\n", + "Note that the above code is an example of Bayesian analysis for a given mass and radius observation measurement.\n", + "For example, if you use the NICER data for the measurements of J0030, then you should define another parameter, except the strangeon EOS parameters, e.g. \"d1\" for the centre density of this measurement, in the meantime add \"params[2]\" to this code.\n", + "\n", + "If you further consider the adjoint analysis with J0030+J0740, then you should define the other two parameters, e.g. \"d1\" and \"d2\" for the centre density of these two measurements, in the meantime add \"params[3]\" to the above code." + ] + }, + { + "cell_type": "markdown", + "id": "53ab6d43", + "metadata": {}, + "source": [ + "### Set up likehood" + ] + }, + { + "cell_type": "markdown", + "id": "3bfd12ff", + "metadata": {}, + "source": [ + "We need to set up a likelihood, Using standard definition way of UltraNest, that is below.\n", + "\n", + "Here the likelihood is generated from a simulated mass radius measurement, which is 𝑀=1.4𝑀⊙\n", + " and 𝑅=13\n", + " km, With a 5% Mass radius measurement uncertainty, \n", + " \n", + " so here\n", + " \n", + " likelihood.MRlikihood_Gaussian\n", + " \n", + "function will be use for our likelihood, please check [likelihood.MRlikihood_Gaussian](https://github.com/ChunHuangPhy/CompactOject/blob/main/InferenceWorkflow/Likelihood.py) to see the original code, and more choice of likelihood. eg:\n", + "\n", + "1.If we have some real mass-radius measurements, say PSR J0030 or PSR J0740, come from NICER, a KDE kernel could be trained to feed into\n", + "\n", + "likelihood.MRlikihood_kernel(eps_total,pres_total,x,d1)\n", + "\n", + "set the KDE kernel as a input for this function\n", + "\n", + "2.If we gain measurement from radio-timing, say only measure the neutron star mass, then\n", + "\n", + "likelihood.Masslikihood_Gaussian(eps_total,pres_total,x,d1)\n", + "\n", + "Which will give the likelihood from single mass measurement, x is the parameters of that measurement, you should specify where this measurement mass is located and what is the sigma width of this mass measurement.\n", + "\n", + "3.If we have nuclear measurements, and want to constrain this RMF model by nuclear properties like K(The Incompressibility of nuclear matter),J ( the symmetry energy at saturation density) and L( the slope of symmetry energy at saturation density). You can choose:\n", + "\n", + "likelihood.Kliklihood(theta,K_low,K_up)\n", + "likelihood.Jliklihood(theta,K_low,K_up)\n", + "likelihood.Lliklihood(theta,K_low,K_up)\n", + "\n", + "We are defaulting a hard-cut flat constrain, so if you don't like this default hard cut, also could define the likelihood by youself with similiar style.\n", + "\n", + "4.If we have a Tidal measurements from Gravitational wave detector, we can use it to do constraint:\n", + "\n", + "likelihood.TidalLikihood_kernel(eps_total,pres_total,x,d1)\n", + "\n", + "Where x is sampled distribution from real measurements, the standard is\n", + "\n", + "kernel, chrip = x,\n", + "\n", + "where the kernel is a whole set sampling from GW event, that is [chrip mass, M2/M1, tidal of M1, tidal of M2] four quantities. Chrip is the single smapling that comes only the chrip mass sampling." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0d3a8359", + "metadata": {}, + "outputs": [], + "source": [ + "import scipy.stats as stats\n", + "\n", + "\n", + "def likelihood_transform(theta):\n", + " # This is a demonstration code for only introduce one constraint from one mass-radius observation.\n", + " # Could be very easy to implement more constraint from nuclear quantity, since that do not need to\n", + " # sample more central density of real neutron star. If user want to expand to two mass radius measurement \n", + " # the code could be:\n", + " \n", + " epsilon, ns, d1 = theta \n", + " # comment this line if you need two measuremnts.\n", + " #epsilon, ns, d1, d2 = theta\n", + " \n", + " ####################################################################################################################\n", + " ############ This is the block to compute out all the EoS you need based on your parameters#########################\n", + "\n", + "\n", + " theta1 = np.array([Nq, epsilon, ns])\n", + " n_min = 3 * theta1[2] / theta1[0] \n", + " n_max = 0.16 * 8 * 3 / theta1[0] \n", + " n_values = np.linspace(n_min, n_max, 2000) \n", + " energy_density, pressure = Strangeon.compute_EOS(n_values, theta1)\n", + "\n", + " ####################################################################################################################\n", + " \n", + " probMRgaussian = likelihood.MRlikihood_Gaussian(energy_density,pressure,(1.4,13,0.07,0.65),d1)\n", + " \n", + " prob = probMRgaussian\n", + " \n", + " return prob" + ] + }, + { + "cell_type": "markdown", + "id": "96d26ce7", + "metadata": {}, + "source": [ + "In the following, we will show how to modify the likehood_transform function when considering more observations.\n", + "\n", + "def likelihood_transform(theta):\n", + "\n", + " Nq, epsilon, ns, d1 = theta \n", + " theta = np.array([epsilon, ns]) \n", + " n_min = 3 * theta[1] / Nq #n_min=3*ns/Nq\n", + " n_max = 0.16 * 8 * 3 / Nq #n_max=0.16*8*3/Nq\n", + " n_values = np.linspace(n_min, n_max, 100) # 100 points between n_min and n_max\n", + " energy_density_total, pressure_total = Strangeon_compute_EOS(n_values, theta)\n", + " \n", + " #1. This line is to compute MR likelihood from a Simulated MR measurement:\n", + " \n", + " probMRgaussian = MRlikihood_Gaussian(energy_density_total,pressure_total,(1.4,13,0.07,0.65),d1)\n", + " \n", + " #probMRgaussian = likelihood.MRlikihood_Gaussian(energy_density_total,pressure_total,(2.08,13,0.08,0.65),d2)\n", + " \n", + " #2. This is a block that constrain from given real MR measurement, say J0030:\n", + " \n", + " #J0030 = numpy.loadtxt('data/PST_equal_sampled_MR.txt', delimiter=' ')\n", + " #J30R_list, J30M_list = zip(*J0030)\n", + " #J30R_list = numpy.array(J30R_list).T \n", + " #J30M_list = numpy.array(J30M_list).T\n", + " #Rmin = J30R_list.min()\n", + " #Rmax = J30R_list.max()\n", + " #Mmin = J30M_list.min()\n", + " #Mmax = J30M_list.max()\n", + " #X3, Y3 = numpy.mgrid[Rmin:Rmax:500j, Mmin:Mmax:100j]\n", + " #positions = numpy.vstack([X3.ravel(), Y3.ravel()])\n", + " #values = numpy.vstack([J30R_list, J30M_list])\n", + " #kernel3 = stats.gaussian_kde(values)\n", + " #probMRJ0030 = likelihood.MRlikelihhood_kernel(eps_total,pres_total,kernel3,d1)\n", + " \n", + " #3. This is to compute the constraint from experiment of nuclearmatter\n", + " # 250" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, 1, figsize=(9, 6))\n", + "ax.plot(MR[1] / km, MR[0] / Msun, lw=2)\n", + "ax.set_ylabel(r\"M [$M_{\\odot}$]\", fontsize=16)\n", + "ax.set_xlabel(\"R [km]\", fontsize=16)\n", + "ax.set_xlim(8.0, 20.0)\n", + "ax.set_ylim(0, 3)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Illustrating the power of Numba accelerated EoS Generation\n", + "\n", + "We shall now run the same code but with the Numba accelerated version, comparing the times for EoS Generation.\n", + "\n", + "Keep in mind all previous definitions are still valid, all we need to change is a single line of code.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import EOSgenerators.fastRMF_EoS as FastRMF\n", + "import time\n", + "\n", + "Tolos_crust_out = np.loadtxt(\"Tolos_crust_out.txt\")\n", + "eps_crust_T_out = Tolos_crust_out[:, 3] * g_cm_3\n", + "pres_crust_T_out = Tolos_crust_out[:, 4] * dyn_cm_2\n", + "eps_com, pres_com = crust.PolyInterpolate(eps_crust_T_out, pres_crust_T_out)\n", + "\n", + "m_sig = 495.0 / 197.33\n", + "m_w = 3.96544\n", + "m_rho = 3.86662\n", + "\n", + "g_sigma = math.sqrt(107.5751)\n", + "g_omega = math.sqrt(182.3949)\n", + "g_rho = math.sqrt(206.4260)\n", + "\n", + "kappa = 3.09114168 / 197.33\n", + "lambda_0 = -0.00168015405\n", + "zeta = 0.024\n", + "Lambda_w = 0.045\n", + "theta = np.array(\n", + " [m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa, lambda_0, zeta, Lambda_w]\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Comparing the time it takes to generate the EoS\n", + "\n", + "The reason why we test the time it takes to generate the EoS here is due to the fact that Numba is compiling the code, and as such the first run will take considerably longer to complete, but all other runs will be greatly faster.\n", + "\n", + "Warning: Do not rerun this cell, as the compilation time will be gone.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--------------------------------------------------------------------------------------\n", + "| |\n", + "| Time Comparion Table |\n", + "| |\n", + "| Time for first run with RMF-Normal = 550 ms |\n", + "| Time for first run with RMF-Fast = 1027 ms |\n", + "| |\n", + "| Time for 20 runs with RMF-Normal = 10099 ms |\n", + "| Time for 20 runs with RMF-Fast = 287 ms |\n", + "| |\n", + "| Time for all runs with RMF-Normal = 10649 ms |\n", + "| Time for all runs with RMF-Fast = 1315 ms (Has Compilation) |\n", + "| |\n", + "| Time for 1 run with RMF-Normal = 505 ms |\n", + "| Time for 1 run with RMF-Fast = 14 ms |\n", + "| |\n", + "| |\n", + "| Total Speed Up = 35.15 x |\n", + "--------------------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "### Normal RMF ####\n", + "\n", + "first_run_time_normal = time.time()\n", + "eps_fast, pres_fast = RMF.compute_EOS(eps_com, pres_com, theta)\n", + "first_run_time_normal = time.time() - first_run_time_normal\n", + "\n", + "time_for_20_runs_normal = time.time()\n", + "for _ in range(20):\n", + " eps, pres = RMF.compute_EOS(eps_com, pres_com, theta)\n", + "time_for_20_runs_normal = time.time() - time_for_20_runs_normal\n", + "\n", + "\n", + "##### Fast RMF #####\n", + "\n", + "first_run_time = time.time()\n", + "eps_fast, pres_fast = FastRMF.compute_EOS(eps_com, pres_com, theta)\n", + "first_run_time = time.time() - first_run_time\n", + "\n", + "time_for_20_runs = time.time()\n", + "for _ in range(20):\n", + " eps_fast, pres_fast = FastRMF.compute_EOS(eps_com, pres_com, theta)\n", + "time_for_20_runs = time.time() - time_for_20_runs\n", + "\n", + "\n", + "print(f\"--------------------------------------------------------------------------------------\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*32 + \"Time Comparion Table\" + \" \"*32 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for first run with RMF-Normal = {first_run_time_normal*1000:6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for first run with RMF-Fast = {first_run_time*1000 :6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for 20 runs with RMF-Normal = {time_for_20_runs_normal*1000:6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for 20 runs with RMF-Fast = {time_for_20_runs*1000 :6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for all runs with RMF-Normal = {(first_run_time_normal + time_for_20_runs_normal)*1000:6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for all runs with RMF-Fast = {(first_run_time + time_for_20_runs )*1000:6.0f} ms (Has Compilation) \" + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for 1 run with RMF-Normal = {time_for_20_runs_normal*1000/20:6.0f} ms \" + \" \"*17 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for 1 run with RMF-Fast = {time_for_20_runs *1000/20:6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*30 + f\"Total Speed Up = {time_for_20_runs_normal/time_for_20_runs:.2f} x\" + \" \"*30 + \"|\" )\n", + "print(f\"--------------------------------------------------------------------------------------\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Ih3N5XKZAS8yMrK7hyN9mL+/PwDFxcXExMRc8AaS59IrN14REREREeloLc/gBQQEdPNIpD9o+TnrjGc/FfJERERERFrREk3pCp35c6aQJyIiIiIi0oco5ImIiIiISK80f/585syZ093D6HEU8kREREREern58+djsVhO+Tp8+HC7rpuRkYHFYjnrkRLvvPMONpuNo0ePnvb14cOH8/3vf79d4ziT//mf/2HlypWdcu3eTCFPRERERKQPuPbaaykoKGjzlZKS0un3/frXv05kZORpz7HeuHEjBw4cYMGCBRd83fPZkCQ0NJSwsLALvnZfp5AnIiIiItIHOBwOYmNj23zZbDZ+85vfMGbMGAIDA0lISOA73/kOJ0+eNPvl5uZy0003ER4eTmBgIKNGjeK9994jJyeHmTNnAhAeHo7FYmH+/Pmn3NfX15e77rqLlStX8tUjuF9//XUmTpzIuHHjqKys5IEHHiAmJoaQkBC+9rWvsXPnTrPtkiVLGD9+PK+//jqpqak4HA48Hg9vv/02Y8aMwd/fn8jISK666ipqamqAU5drNjQ08P3vf5+YmBj8/PyYNm0an332mfl6y8zkhx9+yKRJkwgICGDKlCkcOHCgI/4V9BgKeSIiIiIifZjVauX5559nz549rFq1io8++ogf//jH5uvf/e53aWhoYMOGDezevZtnnnmGoKAgEhISeOeddwA4cOAABQUF/M///M9p77FgwQKOHDnC+vXrzVpNTQ1r1qxhwYIFeDwebrjhBgoLC3nvvffYtm0bl1xyCbNmzaKsrMzsc/jwYdasWcM777zDjh07KCws5I477uDee+9l3759ZGRkcPPNN58SJlv8+Mc/5p133mHVqlVs376dwYMHM3v27Db3APjpT3/Kc889x+eff46Pjw/33nvvRf/59kQ6DF1ERERE5CxueiGTkuqGLr9vdLCD//vetPNu/+677xIUFGR+f9111/GXv/yFhx56yKylpKTw1FNPsWjRIn7/+98DcPToUW655RbGjBkDQGpqqtk+IiICgJiYmLMuixw5ciSXXXYZK1asYMaMGQCsWbMGl8vFHXfcwccff8zu3bspLi7G4XAA8F//9V/87W9/4+233+aBBx4AoLGxkTfeeIPo6GgAtm/fjtPp5OabbyYpKQnAHOdX1dTU8NJLL7Fy5Uquu+46AF599VU++OADXnvtNR555BGz7S9+8QvS09MB+M///E9uuOEG6uvr8fPzO8ufcO+hkCciIiIichYl1Q0UVtV39zDOaebMmbz00kvm94GBgQB8/PHH/PKXv2Tv3r1UVVXhdDqpr6+npqaGwMBAvv/977No0SLWrVvHVVddxS233MLYsWMv+P4LFizgoYce4sUXXyQ4OJjXX3+dm2++mbCwMLZt28bJkyeJjIxs06euro6srCzz+6SkJDPgAYwbN45Zs2YxZswYZs+ezTXXXMOtt95KeHj4KffPysqiqamJqVOnmjVfX18mT57Mvn372rRt/f7i4uIAKC4uJjEx8YLfd0+kkCciIiIichbRwY5ecd/AwEAGDx7cppabm8v111/PwoULeeqpp4iIiCAzM5MFCxaYG5vcd999zJ49m3/84x+sW7eOpUuX8txzz/G9733vgu4/d+5cHn74Yd566y1mzJhBZmYmP//5zwFwu93ExcWRkZFxSr/WM4QtwbSFzWbjgw8+YNOmTaxbt44XXniBn/70p2zduvWUTWValnB+9ZBxj8dzSs3X19f855bX3G73Bb3fnkwhT0RERETkLC5kyWRP8/nnn+N0OnnuueewWo3tONasWXNKu4SEBBYuXMjChQt59NFHefXVV/ne976H3W4HwOVynfNewcHBfOtb32LFihUcOXKE1NRUc+nmJZdcQmFhIT4+PiQnJ1/Qe7BYLEydOpWpU6fys5/9jKSkJP7617/ygx/8oE27wYMHY7fbyczM5M477wSMHTo///zzNktW+wOFPBERERGRPiotLQ2n08kLL7zATTfdxMaNG1m2bFmbNg899BDXXXcdQ4cOpby8nI8++ogRI0YAxvJJi8XCu+++y/XXX4+/v3+b5/6+asGCBUyfPp29e/fyox/9yJwlu+qqq7jiiiuYM2cOzzzzDMOGDSM/P5/33nuPOXPmMGnSpNNeb+vWrXz44Ydcc801xMTEsHXrVkpKSszxtRYYGMiiRYt45JFHiIiIIDExkWeffZba2tqLOsKhN9PumiIiIiIifdT48eP5zW9+wzPPPMPo0aP54x//yNKlS9u0cblcfPe732XEiBFce+21DBs2zNyUZeDAgTz55JP853/+JwMGDOD/+//+v7Peb9q0aQwbNoyqqiq+/e1vm3WLxcJ7773HlVdeyb333svQoUOZO3cuOTk5DBgw4IzXCwkJYcOGDVx//fUMHTqUxx9/nOeee87cWOWrfvWrX3HLLbdw1113cckll3D48GH+9a9/nfYZvr7M4jnT/qPS4aqqqggNDaWyspKQkJDuHo6IiIiItFJfX092djYpKSl9ZpdF6bnO9vPW3tygmTwREREREZE+RCFPRERERESkD1HIExERERER6UMU8kRERERERPoQhTwREREREZE+RCFPRERERESkD1HIExERERER6UMU8kRERERERPoQhTwREREREZE+RCFPRERERES6RUZGBhaLhYqKiu4eShs9dVznSyFPRERERKQ1jxsaqnvWl9t91iHPnz8fi8XCr371qzb1v/3tb1gsls780+o0jY2NREVF8fTTT5/29aVLlxIVFUVjY2OH33vKlCkUFBQQGhra4dfuCj7dPQARERERkR6lsRYKP+vuUbSVPA0cwWdt4ufnxzPPPMODDz5IeHh4h926sbERu93eYdc7X3a7nf/4j/9g5cqV/PSnPz0lrK5YsYK77rrrosbW1NSEr6/vWe8dGxt7wdftKTSTJyIiIiLSB1x11VXExsaydOnSs7Z75513GDVqFA6Hg+TkZJ577rk2rycnJ/P0008zf/58QkNDuf/++1m5ciVhYWG8++67DBs2jICAAG699VZqampYtWoVycnJhIeH873vfQ+Xy2Vea/Xq1UyaNIng4GBiY2O58847KS4uPu/3tGDBArKystiwYUOb+ieffMKhQ4dYsGABYAS+ESNG4Ofnx/Dhw/n9739vts3JycFisbBmzRpmzJiBn58fq1evJjc3l5tuuonw8HACAwMZNWoU7733HnD65Zrn8+f2y1/+knvvvZfg4GASExN55ZVXzvu9diSFPBERERGRPsBms/HLX/6SF154gby8vNO22bZtG7fddhtz585l9+7dLFmyhCeeeIKVK1e2affrX/+a0aNHs23bNp544gkAamtref755/nzn//M+++/T0ZGBjfffDPvvfce7733Hm+88QavvPIKb7/9tnmdxsZGnnrqKXbu3Mnf/vY3srOzmT9//nm/pzFjxnDppZeyYsWKNvXXX3+dyZMnM3r0aF599VV++tOf8otf/IJ9+/bxy1/+kieeeIJVq1a16fOTn/yE73//++zbt4/Zs2fz3e9+l4aGBjZs2MDu3bt55plnCAoKatef23PPPcekSZP44osv+M53vsOiRYvYv3//eb/fjqLlmiIiIiIifcQ3v/lNxo8fz+LFi3nttddOef03v/kNs2bNMoPb0KFD2bt3L7/+9a/bhK+vfe1r/OhHPzK/z8zMpKmpiZdeeom0tDQAbr31Vt544w2KiooICgpi5MiRzJw5k48//pjbb78dgHvvvde8RmpqKs8//zyTJ0/m5MmTZwxUX3Xvvffyox/9iBdffJGgoCBOnjzJX/7yF37zm98A8NRTT/Hcc89x8803A5CSksLevXt5+eWX+fa3v21e56GHHjLbABw9epRbbrmFMWPGmOM7k/P9c7v++uv5zne+Axih8r//+7/JyMhg+PDh5/VeO4pm8kRERERE+pBnnnmGVatWsXfv3lNe27dvH1OnTm1Tmzp1KocOHWqzzHLSpEmn9A0ICDADHsCAAQNITk5uE9YGDBjQZjnmF198wTe+8Q2SkpIIDg5mxowZgBGwztcdd9yB2+3mrbfeAuCtt97C4/Ewd+5cSkpKOHbsGAsWLCAoKMj8evrpp8nKympzna++p+9///s8/fTTTJ06lcWLF7Nr164zjuF8/9zGjh1r/rPFYiE2NvaClqd2FIU8EREREZE+5Morr2T27Nk89thjp7zm8XhO2cDE4/Gc0i4wMPCU2lc3KrFYLKetuZt3Aq2pqeGaa64hKCiI1atX89lnn/HXv/4V4IJ2xAwNDeXWW281l2yuWLGCW2+9lZCQEPNer776Kjt27DC/9uzZw5YtW876nu677z6OHDnCXXfdxe7du5k0aRIvvPDCacdwvn9uZ/vz6EparikiIiIi0sf86le/Yvz48QwdOrRNfeTIkWRmZrapbdq0iaFDh2Kz2Tp0DPv376e0tJRf/epXJCQkAPD5559f1LUWLFjAjBkzePfdd9m4cSO//OUvAWPmcODAgRw5coR58+Zd8HUTEhJYuHAhCxcu5NFHH+XVV1/le9/73intuvLPrSMo5ImIiIiI9DFjxoxh3rx5p8xM/fCHP+TSSy/lqaee4vbbb2fz5s28+OKLbXaj7CiJiYnY7XZeeOEFFi5cyJ49e3jqqacu6lrp6ekMHjyYu+++m8GDB3PllVeary1ZsoTvf//7hISEcN1119HQ0MDnn39OeXk5P/jBD854zYceeojrrruOoUOHUl5ezkcffcSIESNO27Yr/9w6gkKeiIiIiEhr9gDjXLqexPfU5ZPn8tRTT7FmzZo2tUsuuYQ1a9bws5/9jKeeeoq4uDh+/vOfX9COl+crOjqalStX8thjj/H8889zySWX8F//9V98/etfv6jr3XvvvTz22GM88sgjber33XcfAQEB/PrXv+bHP/4xgYGBjBkzhoceeuis13O5XHz3u98lLy+PkJAQrr32Wv77v//7tG278s+tI1g8p1tMKp2iqqqK0NBQKisrCQkJ6e7hiIiIiEgr9fX1ZGdnk5KSgp+fX3cPR/q4s/28tTc3aOMVERERERGRPkQhT0REREREpA9RyBMREREREelDFPJERERERET6EIU8ERERERGRPkQhT0RERESkFW0+L12hM3/OFPJERERERABfX18Aamtru3kk0h+0/Jy1/Nx1JB2GLiIiIiIC2Gw2wsLCKC4uBiAgIACLxdLNo5K+xuPxUFtbS3FxMWFhYdhstg6/h0KeiIiIiEiz2NhYADPoiXSWsLAw8+etoynkiYiIiIg0s1gsxMXFERMTQ1NTU3cPR/ooX1/fTpnBa6GQJyIiIiLyFTabrVM/hIt0pl678crq1at58MEHmTRpEg6HA4vFwsqVKy/oGjNmzMBisZz164033mjTJzk5+YxtFy5c2IHvUERERERE5ML12pm8xx9/nNzcXKKiooiLiyM3N/eCrzF//nxmzJhxSr2pqYmlS5ditVqZNWvWKa+Hhoby0EMPnVKfNGnSBY9BRERERESkI/XakLd8+XKGDBlCUlISv/rVr3j00Ucv+Brz588/bf2dd97B4/Fw/fXXEx8ff8rrYWFhLFmy5ILvJyIiIiIi0tl6bci76qqrOu3ay5cvB2DBggWddg8REREREZHO0GtDXmfJy8tj3bp1xMbGcsMNN5y2TUNDA6tWreL48eOEh4czZcoUxo0b18UjFREREREROZVC3lesWLECt9vN/Pnz8fE5/R9PYWHhKUs9r732Wt544w2ioqK6YJQiIiIiIiKn12t31+wMHo+HFStWAGdeqnnvvfeSkZFBSUkJVVVVbNmyheuuu47333+fr3/963g8nnPep6qqqs1XQ0NDh74PERERERHpPRoaGk7JCO2hkNfKRx99RHZ2Nunp6QwePPi0bX72s5+Rnp5OVFQUwcHBXHbZZbz77rtMmzaNzZs38957753zPgkJCYSGhppfS5cu7ei3IiIiIiIivcTSpUvb5IOEhIR2XU8hr5WWDVfuu+++C+pntVq55557ANi4ceM52x87dozKykrz62J2BhURERERkb7h0UcfbZMPjh071q7r6Zm8ZuXl5fz1r38lLCyMW2655YL7tzyLV1tbe862ISEhhISEXPA9RERERESk73E4HDgcjg67nmbymq1evZqGhgbmzZuHv7//BfffunUrAMnJyR08MhERERERkfPXL0JeaWkp+/fvp7S09IxtXnvtNeDsZ+Pt3buXioqKU+qZmZn85je/weFwcPPNN7d7vCIiIiIiIher1y7XXL58OZmZmQDs3r3brGVkZAAwZ84c5syZA8CLL77Ik08+yeLFi1myZMkp19q2bRs7d+7kkksuYcKECWe855o1a3j22WeZNWsWycnJOBwO9uzZw7p167BarSxbtozExMQOfZ8iIiIiIiIXoteGvMzMTFatWtWmtnHjRnPjk+TkZDPknUvLLN65NlyZOXMm+/btY/v27axfv576+noGDBjA7bffzsMPP8zkyZMv/I2IiIiIiIh0IIvnfA52kw5RVVVFaGgolZWV2nhFREREREROq725oV88kyciIiIiItJfKOSJiIiIiIj0IQp5IiIiIiLSfzkb4OhWqC7s7pF0mF678YqIiIiIiEi71JZBwQ4j6DVUgT0IHEHdPap200yeiIiIiIj0P2XZcOxTI+ABuJ2Q/wW4Xd07rg6gkCciIiIiIv2HywnHt0PJfsA4aKDR6TZeazwJhbu7b2wdRCFPRERERET6h4ZqOLoJThYB4HZ7+MeuAn7+7pfUNjqNNtUFUJ7bjYNsP4U8ERERERHp+6ryIXczNNYAUNPg5MWPD7P2izwKKutZsTEH8wjxkv1QV96Ng20fbbwiIiIiIiJ9l9tthLYK7+xc7okafp+RRelJ43k8iwUSIwLweIx/xuOG0kOQMLmbBt0+CnkiIiIiItI3NdVB/g6orzBLnxwqYfXWozhdxnN4QQ4f7p+eyuiBod5+QTEQO7Zrx9qBFPJERERERKTvqSk1jkdwNQHG5ip/3JpL5uFSs0lKVBCLZqQRGWhvrlggeihEpHb9eDuQQp6IiIiIiPQdHg+UHYHSg2appLqB3318mGPltWbta8NjuG1SAr625m1KbHaInwABEV094g6nkCciIiIiIn2DqwkKdkJNiVnacayC1zKPUNtonH9nt9n49pQkLk+N9Pbz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BATwy1/+kv/5n//xYlXiSc8++yx79uxh586draP5MjAtWrSImTNnkpKSgtVq5cCBAyxbtozNmzczb948tm3bhslk8naZ0oeKi4sBeP7557nyyivZtWsX48aNY/fu3Xz3u9/l+eefZ+TIkXz/+9/v0f20Jk9ExEucTieLFi3i448/5sEHH+Q73/mOt0sSD0pKSsLlcuFwOMjNzeWpp57iZz/7GXfccQcOh8Pb5Ukf27NnD8uXL+fHP/4xV155pbfLES9bsmQJM2fOJCYmhrCwMK655hr+/ve/M2PGDLZv3867777r7RKljzmdTgAsFgubNm3i6quvJjQ0lLS0NN58803MZjPPP/98j++nkNeHWkbwWkb0Oqqqqup2lE9EfJvL5eLBBx/ktdde45577uHFF1/0dkniJX5+fiQlJfHoo4+yfPly3nrrLV5++WVvlyV97N5772XkyJE8+eST3i5FLlNms5n77rsPgG3btnm5GulrLZlg6tSpJCYmup1LSUkhOTmZY8eOUVFR0aP7KeT1oZY1FV2tuysvL6e0tFTrLkQGIKfTyf3338/atWvJyMhg/fr1mM36dixtTblaGneJ79qzZw+HDh0iMDDQbePrV155BaB1S4VNmzZ5t1Dxqpa1eHV1dV6uRPramDFjAIiIiOjyfMvx+vr6Ht1Pa/L60MyZM1mxYgWZmZnMnz/f7VxmZmbrNSIycDidTh544AHWrVvHXXfdxauvvqp1eNLq5MmTgLqsDgT3339/l8c//vhjcnJymDdvHrGxsa37p8nAtHPnTgC9DwaA9PR0AA4ePNjpXFNTE0ePHiUkJITY2Nge3U9/i/ShWbNmkZyczOuvv87ixYtJTU0FjA1vn376afz9/bUZtsgA0jKCt379ev7jP/6D1157TQFvAPriiy8YMWJEp+n6ZWVlPP744wDccsst3ihNPGjNmjVdHl+4cCE5OTk89thj2gx9gDhw4ACJiYmdRnCys7P59a9/jdVq5fbbb/dOceIxI0eOZM6cOWRmZrJmzRoeeOCB1nO/+MUvqKio4J577unxDwEV8vqQv78/a9asYe7cuaSlpZGRkYHNZmPjxo3k5uayfPlyRo8e7e0yxQPWrFlDdnY2QOtm12vWrGmdknXbbbdx2223eak68ZSnnnqK9evXExoayujRo1m+fHmna2677bbWHwiJb1q/fj1r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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "eps_total_fast = np.array([*eps_com, *eps_fast])\n", + "pres_total_fast = np.array([*pres_com, *pres_fast])\n", + "\n", + "compare_fig1, ax = plt.subplots(1, 1, figsize=(9,6))\n", + "\n", + "ax.plot(eps_total_fast, pres_total_fast, lw=2, label=\"Fast Version\")\n", + "ax.plot(eps_total, pres_total, lw=6, label=\"Normal Version\", alpha=0.3)\n", + "ax.set_ylabel(r\"P $[fm^{-4}]$\", fontsize=16)\n", + "ax.set_xlabel(r\"$\\epsilon$ $[fm^{-4}]$\", fontsize=16)\n", + "ax.set_xlim(0, 6)\n", + "ax.set_ylim(0, 2)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "plt.legend()\n", + "compare_fig1.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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LQ29buvWrTr//POVk5Mjj8ejoUOH6q233tKWLVs0btw4SVJOTo4Mw9CUKVPq3dfpdGry5MmaP3++6i61/cILL+gHP/iBjjvuOBUVFen6669Xp06dlJmZqTPOOEMrV64MnTtr1iyNGDFCL7zwgvr27Su32y3TNPX3v/9dw4cPV2pqqjp06KCzzjpLZWVlkup31/R6vbr55pvVqVMnpaSk6LTTTtMXX3wROl7TMvnBBx9o5MiRSktL06mnnqp169ZF4z9Bm0fIAwAAAJKAzWbT448/rm+//VYvvviiPvzwQ82YMSN0/Gc/+5m8Xq+WLl2qVatW6aGHHlJ6erp69uyp1157TZK0bt067d69W3/+858bvMfUqVO1adMmffTRR6F9ZWVlWrhwoaZOnSrTNHXeeedpz549euutt/TVV1/phBNO0JlnnqmDBw+GXrNhwwYtXLhQr732mlasWKE9e/boyiuv1LXXXqs1a9ZoyZIluuiii+qFyRozZszQa6+9phdffFFff/21+vfvr4kTJ0bcQ5LuvvtuPfroo/ryyy/lcDh07bXXHvH3N5GwGDoAAAAg6fwnlml/ibdV75mX4db/3XRai17zz3/+U+np6aHn55xzjl599VX98pe/DO3r06eP7r33Xk2fPl1PPfWUJGnbtm26+OKLNXz4cElS3759Q+fn5uZKkjp16tRkt8ghQ4bo5JNP1rx58zR27FhJ0sKFCxUIBHTllVdq8eLFWrVqlfbt2ye32y1J+sMf/qA333xTf//733X99ddLkqqqqvTSSy8pLy9PkvT111/L7/froosuUu/evSUpVGddZWVlevrppzV//nydc845kqQ5c+bo/fff1/PPP6/bb789dO7999+vMWPGSJLuuOMOnXfeeaqsrFRKSkoT3+HER8gDAAAAJO0v8WpPcWW8yziscePG6emnnw4993g8kqTFixfrgQce0OrVq1VcXCy/36/KykqVlZXJ4/Ho5ptv1vTp0/Xee+/prLPO0sUXX6xjjz22xfefOnWqfvnLX+rJJ59URkaGXnjhBV100UXKzs7WV199pdLSUnXo0CHiNRUVFdq4cWPoee/evUMBT5KOO+44nXnmmRo+fLgmTpyoCRMm6JJLLlFOTk69+2/cuFE+n0+jRo0K7XM6nTrppJO0Zs2aiHPD31/Xrl0lSfv27VOvXr1a/L4TCSEPAAAAkNWqlgj39Hg86t+/f8S+rVu36txzz9WNN96oe++9V7m5uVq2bJmmTp0amthk2rRpmjhxov71r3/pvffe04MPPqhHH31UN910U4vuf8UVV+hXv/qVXnnlFY0dO1bLli3T7373O0lSMBhU165dtWTJknqvC28hrAmmNex2u95//3198skneu+99/TEE0/o7rvv1ueff15vUpmaLpx1Fxk3TbPePqfTGdquORYMBlv0fhMRIQ8AAACQWtxtsi358ssv5ff79eijj8pms6bdWLhwYb3zevbsqRtvvFE33nij7rzzTs2ZM0c33XSTXC6XJCkQCBz2XhkZGbr00ks1b948bdq0SX379g113TzhhBO0Z88eORwO5efnt+g9GIahUaNGadSoUfrtb3+r3r1764033tAtt9wScV7//v3lcrm0bNkyXXXVVZKsGTq//PLLiC6r7RkhDwAAAEhw/fr1k9/v1xNPPKHzzz9fy5cv1zPPPBNxzi9/+Uudc845GjhwoA4dOqQPP/xQgwcPlmR1nzQMQ//85z917rnnKjU1NWLcX11Tp07V6NGjtXr1at12222hVrKzzjpLp5xyiiZNmqSHHnpIgwYN0q5du/TWW29p0qRJGjlyZIPX+/zzz/XBBx9owoQJ6tSpkz7//HPt378/VF84j8ej6dOn6/bbb1dubq569eqlhx9+WOXl5Ue0hEMyYnZNAAAAIMGNGDFCjz32mB566CENGzZMf/3rX/Xggw9GnBMIBPSzn/1MgwcP1tlnn61BgwaFJmXp3r27Zs+erTvuuEOdO3fWz3/+8ybvd9ppp2nQoEEqLi7Wj3/849B+wzD01ltv6fTTT9e1116rgQMH6oorrtCWLVvUuXPnRq+XmZmppUuX6txzz9XAgQN1zz336NFHHw1NrFLX73//e1188cWaPHmyTjjhBG3YsEHvvvtug2P42iPDbGxeUjSquLhYWVlZKioqUmZmZrzLAQAAQAtUVlZq8+bN6tOnT9LPsoj4a+rzFqtcQUseAAAAACQRQh4AAAAAJBFCHgAAAAAkEUIeAAAAACQRQh4AAAAAJBFCHgAAAAAkEUIeAAAAACQRQh4AAAAAJBFCHgAAAAAkEUIeAAAAgJhasmSJDMNQYWFhvEuJ0FbrOlqEPAAAALRPZlDylrSdRzB42JKnTJkiwzD0+9//PmL/m2++KcMwYvWdiqmqqip17NhR9913X4PHH3zwQXXs2FFVVVVRv/epp56q3bt3KysrK+rXjidHvAsAAAAA4qKqXNrzRbyrqJV/muTOOOxpKSkpeuihh3TDDTcoJycnarevqqqSy+WK2vWay+Vy6ZprrtH8+fN199131wur8+bN0+TJk4+oNp/PJ6fT2eS9u3Tp0uLrtnW05AEAAAAJ5KyzzlKXLl304IMPNnnea6+9pqFDh8rtdis/P1+PPvpoxPH8/Hzdd999mjJlirKysnTddddp/vz5ys7O1j//+U8NGjRIaWlpuuSSS1RWVqYXX3xR+fn5ysnJ0U033aRAIBC61oIFCzRy5EhlZGSoS5cuuuqqq7Rv375mv6epU6dq48aNWrp0acT+jz/+WOvXr9fUqVMlWYFv8ODBSklJ0THHHKOnnnoqdO6WLVtkGIYWLlyosWPHKiUlRQsWLNDWrVt1/vnnKycnRx6PR0OHDtVbb70lqeHums35vj3wwAO69tprlZGRoV69eum5555r9nttDYQ8AAAAIIHY7XY98MADeuKJJ7Rjx44Gz/nqq6902WWX6YorrtCqVas0a9Ys/eY3v9H8+fMjznvkkUc0bNgwffXVV/rNb34jSSovL9fjjz+u//mf/9E777yjJUuW6KKLLtJbb72lt956Sy+99JKee+45/f3vfw9dp6qqSvfee69WrlypN998U5s3b9aUKVOa/Z6GDx+uE088UfPmzYvY/8ILL+ikk07SsGHDNGfOHN199926//77tWbNGj3wwAP6zW9+oxdffDHiNb/+9a918803a82aNZo4caJ+9rOfyev1aunSpVq1apUeeughpaenH9X37dFHH9XIkSP1n//8Rz/96U81ffp0rV27ttnvN9borgkAAAAkmB/96EcaMWKEZs6cqeeff77e8ccee0xnnnlmKLgNHDhQq1ev1iOPPBIRvs444wzddtttoefLli2Tz+fT008/rX79+kmSLrnkEr300kvau3ev0tPTNWTIEI0bN06LFy/W5ZdfLkm69tprQ9fo27evHn/8cZ100kkqLS1tNFDVde211+q2227Tk08+qfT0dJWWlurVV1/VY489Jkm699579eijj+qiiy6SJPXp00erV6/Ws88+qx//+Meh6/zyl78MnSNJ27Zt08UXX6zhw4eH6mtMc79v5557rn76059KskLlH//4Ry1ZskTHHHNMs95rrNGSBwAAACSghx56SC+++KJWr15d79iaNWs0atSoiH2jRo3S+vXrI7pZjhw5st5r09LSQgFPkjp37qz8/PyIsNa5c+eI7pj/+c9/dOGFF6p3797KyMjQ2LFjJVkBq7muvPJKBYNBvfLKK5KkV155RaZp6oorrtD+/fu1fft2TZ06Venp6aHHfffdp40bN0Zcp+57uvnmm3Xfffdp1KhRmjlzpr755ptGa2ju9+3YY48NbRuGoS5durSoe2qsEfIAAACABHT66adr4sSJuuuuu+odM02z3gQmpmnWO8/j8dTbV3eiEsMwGtwXrJ4NtKysTBMmTFB6eroWLFigL774Qm+88YYktWhGzKysLF1yySWhLpvz5s3TJZdcoszMzNC95syZoxUrVoQe3377rT777LMm39O0adO0adMmTZ48WatWrdLIkSP1xBNPNFhDc79vTX0/2gK6awIAAAAJ6ve//71GjBihgQMHRuwfMmSIli1bFrHvk08+0cCBA2W326Naw9q1a1VQUKDf//736tmzpyTpyy+/PKJrTZ06VWPHjtU///lPLV++XA888IAkq+Wwe/fu2rRpk66++uoWX7dnz5668cYbdeONN+rOO+/UnDlzdNNNN9U7rzW/b7FEyAMAAAAS1PDhw3X11VfXa5m69dZbdeKJJ+ree+/V5Zdfrk8//VRPPvlkxGyU0dKrVy+5XC498cQTuvHGG/Xtt9/q3nvvPaJrjRkzRv3799d///d/q3///jr99NNDx2bNmqWbb75ZmZmZOuecc+T1evXll1/q0KFDuuWWWxq95i9/+Uudc845GjhwoA4dOqQPP/xQgwcPbvDc1vy+xRIhDwAAAO2TK81am66tcNbvOtkc9957rxYuXBix74QTTtDChQv129/+Vvfee6+6du2q3/3udy2a8bK58vLyNH/+fN111116/PHHdcIJJ+gPf/iDLrjggiO63rXXXqu77rpLt99+e8T+adOmKS0tTY888ohmzJghj8ej4cOH65e//GWT1wsEAvrZz36mHTt2KDMzU2effbb++Mc/Nnhua37fYskwG+pkiiYVFxcrKytLRUVFyszMjHc5AAAAaIHKykpt3rxZffr0UUpKSrzLQZJr6vMWq1zBxCsAAAAAkEQIeQAAAACQRAh5AAAAAJBECHkAAAAAkEQIeQAAAACQ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S8OGDVNFRYVKSkpiUSZawUUXXaTRo0fX2z969GiNGzdOBw8e1KpVqyTF5ndJQl4zDBgwQC6XS8uXL6/3P9tbb70lSTrjjDPiURragPXr12vXrl0aNWqUPB5PxLGUlBSdfvrp2rlzpzZs2BCnCtFWOJ1OSfwi194Eg0H95Cc/Ue/evev94432wzRNLVy4UB06dNAZZ5yhr776So899pj+8Ic/aNGiRQoGg/EuEa1s6NChMk2z3qzx27dv17fffqvhw4dHTByI5FH394FY/C7JbxrN0KFDB91///26/fbbNXjwYF1wwQXKyMjQqlWrtGjRIl1//fW66aab4l0m4uRwayuGr+/Y1PqLSH4vvPCCJGnChAlxrgSt6U9/+pM++eQTLVu2TG63O97lIE42b96sgwcP6sQTT9T06dP1zDPPRBw//vjj9Y9//EM9evSIU4Vobffee6+WLVumiy66SBdeeKH69++v/fv36/XXX1fv3r21cOHCeJeIGNi2bZsWLVqkLl26aPjw4ZJi87skIa+ZbrvtNnXr1k033HBDxOybp556qq655ppQIkf7U1RUJEnKyspq8HhNF9+a89A+Pffcc3r77bd1xhln6Nxzz413OWgl33//ve655x794he/0CmnnBLvchBHNcM6vv76a61Zs0bz5s3ThRdeqKKiIj3wwAOaM2eOLrnkEn322WdxrhStZciQIfrss8906aWX6u9//3tof05OTmjGTSQXn8+nyZMny+v16uGHH5bdbpcUm98l6a7ZTPfdd5+mTJmiO++8U9u3b1dpaamWLVsmv9+vcePG6fXXX493iQDaqH/961/6+c9/rt69e2vBggXxLgetJBgMasqUKerWrZvuu+++eJeDOKvpjhkIBHTvvfdqypQpysnJUX5+vp577jmdfPLJ+vzzz7Vs2bI4V4rW8uWXX+q0005Tbm6uvvrqK5WVlWnTpk2aOnWqbrnlFl166aXxLhFRFAwGde2112rp0qW67rrrNHny5Jjej5DXDB9++KF+85vf6Oc//7nuuusu9ejRQx6PR6NGjdI///lPpaam6le/+lW8y0Sc1PzVpbG/rtSsbdLYX2eQ3N59911dfPHF6ty5sz788EN17do13iWhlTz++OP67LPPNHfu3HoT8aD9Cf834IILLqh3/Pzzz5dk/eKP5Ofz+XT55ZfLMAy9+eabOuGE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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "MR_fast = main.OutputMR(\"\", eps_total_fast, pres_total_fast).T\n", + "\n", + "compare_fig2, ax = plt.subplots(1, 1, figsize=(9, 6))\n", + "\n", + "ax.plot(MR_fast[1] / km, MR_fast[0] / Msun, lw=2, label=\"Fast Version\")\n", + "ax.plot(MR[1] / km, MR[0] / Msun, lw=6, label=\"Normal Version\", alpha=0.3)\n", + "ax.set_ylabel(r\"M [$M_{\\odot}$]\", fontsize=16)\n", + "ax.set_xlabel(\"R [km]\", fontsize=16)\n", + "ax.set_xlim(8.0, 20.0)\n", + "ax.set_ylim(0, 3)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "plt.legend()\n", + "compare_fig2.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Polytrope EOS \n", + "\n", + "First import all the package that will be used." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import math\n", + "import TOVsolver.main as main\n", + "import matplotlib.pyplot as plt\n", + "from scipy.integrate import ode\n", + "import EOSgenerators.Polytrope_EOS as Polytrope\n", + "import EOSgenerators.Strangeon_EOS as Strangeon\n", + "import EOSgenerators.crust_EOS as crust\n", + "from TOVsolver.unit import km, Msun, MeV,fm,g_cm_3,dyn_cm_2, G,c " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The polytropic equation of state (Polytrope) is the most commonly used EOS in astrophysics, its advantage is assumed to be capable to simulate all EOS shape with given parameters. Here, we provide one of the computation for polytrope." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Connecting outer crust with polytropic part" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For polytrope, we first connecting it with crust as we did in RMF" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "Tolos_crust_out = np.loadtxt(\"Test_Case/Tolos_crust_out.txt\")\n", + "eps_crust_T_out = Tolos_crust_out[:, 3] * g_cm_3\n", + "pres_crust_T_out = Tolos_crust_out[:, 4] * dyn_cm_2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We define a set of parameters, first three in theta are the parameters control the slope of each polytrope, and the last two are transition point from one segment to another. Details see the documentation about polytrope" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "gammas = np.array([1.03, 2.62, 1.38])\n", + "rho_ts = np.array([8.087e13, 1.8078e15]) * g_cm_3\n", + "theta = np.append(gammas, rho_ts)\n", + "\n", + "eps_set = np.logspace(11.7, 15.6, 100, base=10) * g_cm_3\n", + "pres_out = Polytrope.compute_EOS(eps_set, theta, eps_crust_T_out[-1], pres_crust_T_out[-1])\n", + "\n", + "eps_total = np.hstack((eps_crust_T_out, eps_set))\n", + "pres_total = np.hstack((pres_crust_T_out, pres_out))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Solve TOV with this EOS\n", + "\n", + "Here below we use the strangeon matter EOS to compute the mass radius curve.\n", + "\n", + "The following code calculates the mass and radius of the strange stars for the given EOS of the polytrope using our main.OutputMR" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "MR = main.OutputMR('',eps_total, pres_total)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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PNwoKCjwdcnwkffff99ITU2ttD81NdUICQkx4uLiKvz79fbvkn7VXdMs6enpcrvd6tevn2ex9DIjR46UJB05csSM0uBDV155pZKTk895nmEYmjdvnho0aKA//vGPFY5NnTpVsbGxev31172+yCXqVk2fhxYtWmjSpEmKiIiosD8yMlIPP/ywJDHm18/V9Fkob+fOnZo6daqmTJminj17+qgymKE2z8NTTz0lp9OpV155RUlJSZWOBwf71aTnqEJtnofdu3fLZrPpqquuqrA/KSlJXbp00cmTJ5WTk+OLMlEHRo8erQEDBlTaP2DAAA0ZMkRZWVnauHGjJN/8LknIq4F27dopNDRUq1evrvQf26effipJGjp0qBmloR5IS0vTgQMH1K9fP0VGRlY4FhYWpoEDB2r//v3auXOnSRWivggJCZHEL3KBxu12684771RycnKl/3kjcBiGocWLF6tRo0YaOnSofvzxRz333HP661//qqVLl8rtdptdIupY586dZRhGpVnjMzIytGnTJnXt2rXCxIGwjjN/H/DF75L8plEDjRo10pNPPqnJkyerY8eOuu666xQVFaWNGzdq6dKluueee/TAAw+YXSZMcq61Fcuv73i29RdhfW+88YYkafjw4SZXgrr0wgsv6JtvvtGqVavkcDjMLgcm2bNnj7KystSnTx9NmjRJr7zySoXjPXv21Mcff6yWLVuaVCHq2p///GetWrVKo0eP1vXXX6+2bdvq6NGj+uCDD5ScnKzFixebXSJ8YN++fVq6dKmaNm2qrl27SvLN75KEvBp69NFH1bx5c917770VZt/s27evxo4d60nkCDzZ2dmSpJiYmCqPl3XxLTsPgem1117TZ599pqFDh+qaa64xuxzUkR07duiJJ57Qgw8+qMsvv9zscmCismEd69at09atWzV//nxdf/31ys7O1lNPPaW5c+fqhhtu0Jo1a0yuFHWlU6dOWrNmjW688Ub961//8uyPjY31zLgJaykuLta4ceNUWFioZ555Rna7XZJvfpeku2YNzZw5U+PHj9fUqVOVkZGh3NxcrVq1Si6XS0OGDNEHH3xgdokA6qlPPvlE999/v5KTk7Vw4UKzy0EdcbvdGj9+vJo3b66ZM2eaXQ5MVtYds6SkRH/+8581fvx4xcbGKiUlRa+99pouvfRSrV27VqtWrTK5UtSVH374Qf3791dcXJx+/PFH5eXlaffu3br77rv18MMP68YbbzS7RHiR2+3WXXfdpdTUVE2cOFHjxo3z6f0IeTWwbNky/eEPf9D999+vxx57TC1btlRkZKT69eun//73vwoPD9dDDz1kdpkwSdlfXar760rZ2ibV/XUG1rZkyRKNGTNGTZo00bJly9SsWTOzS0IdmT17ttasWaN58+ZVmogHgaf8/wOuu+66SsevvfZaSaW/+MP6iouLdfPNN8tms+mjjz5Sr169FBERoVatWunZZ5/VzTffrA8//FDLly83u1R4gWEYmjhxohYuXKixY8dW6q7ti98lCXk18Mknn0gqXUT9TAkJCeratav27dunzMzMui4N9UD5ftJVOVc/a1jX559/rlGjRik+Pl7Lly9X69atzS4JdWj9+vUyDENDhgyRzWbzvMr+X/Lqq6/KZrNp1KhR5haKOtG2bVtP16yGDRtWOl627+TJk3VYFcyybds27d69W5deemmVfwQqm9Dvxx9/rOvS4GVut1t333233njjDd16661asGCBgoIqRjBf/C7JmLwaKCoqkiQdPXq0yuNl+xlQH5jatWun5s2ba/Xq1crLy6swK1JBQYFSU1PVvHlztW3b1sQqUdfKAl5cXJyWL1/Ov/8ANGjQoCpnUj148KA+/fRTXXTRRerXrx9LKgQIh8Ohvn37auXKldqyZYv69+9f4fiWLVskSSkpKSZUh7rG75aBwe12a8KECZo/f75uvvlmvf32254/9pTni98lacmrgX79+kmSnnvuuUrNqG+++aZ27typ3r17KyoqyozyYDKbzaYJEyYoNzdXf/rTnyocmzVrlo4fP64JEybIZrOZVCHqWlnAi42N1fLly2nFDVB33nmn5s2bV+k1efJkSaUhcN68efrNb35jcqWoK5MmTZIkTZ8+XYWFhZ7927Zt04IFCxQVFVVpzTRYU5cuXRQTE6PVq1dXWkLhwIEDeumllyRJgwcPNqE6eENZC978+fN14403auHChVUGPMk3v0vaDFZoPqeSkhJdeeWVWrFihRISEnTdddcpNjZWGzZs0JdffimHw6GlS5dW+qsc/Nu8efM8A+A3btyodevWqV+/fp6/oowaNcrTzSovL0/9+/fX+vXrNWzYMPXu3VsbNmzQZ599ph49emjVqlWV1j2Bf6np87Bt2zb16NFDhYWFuuWW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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, 1, figsize=(9, 6))\n", + "ax.plot(MR[:,1]/km , MR[:,0]/Msun, lw=2)\n", + "# ax.scatter(R /km, M / Msun, c='r')\n", + "ax.set_ylabel(r\"M [$M_{\\odot}$]\", fontsize=16)\n", + "ax.set_xlabel(\"R [km]\", fontsize=16)\n", + "ax.set_xlim(8.0, 20.0)\n", + "ax.set_ylim(0, 3)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Strangeon matter EOS \n", + "\n", + "First import all the package that will be used." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import math\n", + "import TOVsolver.main as main\n", + "import matplotlib.pyplot as plt\n", + "from scipy.integrate import ode\n", + "from EOSgenerators import Strangeon_EOS as Strangeon\n", + "\n", + "from TOVsolver.unit import km, Msun, MeV,fm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The strangeon matter EOS describes the strongly interacting matter in the solid state, and the compact star can be a self-bound quark star composed of strangeon matter. Therefore, in the following we present the bare quark star EOS without a crust.\n", + "\n", + "Note that the strangeon matter parameters we input are in the natural unit system. The quentity returned by the Strangeon_compute_EOS function is in the Geometric Unit System. Thus, here, the parameter epsilon and ns are in the units of $MeV/fm^{-3}$. So follow the unite conversion rule, if we are using this unit, we just time this unit to do compute" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Defining the EOS parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define the strangeon matter EOS that we will use to calculate the energy densities and pressures of the system.\n", + "The following is an example of how to define the theta and Nq.\n", + "For example, theta=[50, 0.24] means the example values for epsilon and ns:\n", + "epsilon in units of MeV, ns in units of $fm^-3$.\n", + "Nq is an integer, e.g. Nq=9, 12, 15, 18, 21, 24, 27\n", + "\n", + "For the definition of parameter n, the minimum value is 3*ns/Nq, the maximum value is about 0.16*8*3/Nq.\n", + "Then we can generate,for example, 1000 points for the input of the srangeon matter EOS. Special note: If you are using this EOS, need a very fine grid for the EOS. From our test, 1000 points for this EOS is the minimum requirement\n", + "\n", + "Once we define the EOS parameters already, we can use the Strangeon_compute_EOS function to calcute the energy_density and pressure." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "n values: [0.04 0.04008671 0.04017342 ... 0.21315991 0.21324662 0.21333333]\n", + "Energy densities: [ 204.61935484 205.0631334 205.50734538 ... 46616.1606005\n", + " 46711.98281964 46807.96367981]\n", + "Pressures: [0.00000000e+00 1.98864796e-01 4.00749542e-01 ... 1.88749504e+05\n", + " 1.89139331e+05 1.89529799e+05]\n" + ] + } + ], + "source": [ + "Nq=18\n", + "epsilon=50\n", + "ns=0.24\n", + "theta = np.array([Nq, epsilon, ns])\n", + "n_min = 3 * theta[2] / theta[0] \n", + "n_max = 0.16 * 8 * 3 / theta[0] \n", + "n_values = np.linspace(n_min, n_max, 2000) \n", + "\n", + "energy_densities, pressures = Strangeon.compute_EOS(n_values, theta)\n", + "print(\"n values:\", n_values)\n", + "print(\"Energy densities:\", energy_densities)\n", + "print(\"Pressures:\", pressures) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Solve TOV with this EOS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here below we use the strangeon matter EOS to compute the mass radius curve.\n", + "\n", + "The following code calculates the mass and radius of the strange stars for the given EOS of the strange matter EOS. Since our energy_density and pressure are all in same unit $MeV/fm^{-3}$ so all we need is to time this unit\n", + "\n", + "Input a given central pressure and central energy density, you will obtain the radius where the pressure is zero and the mass at that radius." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Solve the TOV equations using each central pressure and energy density" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "MR= main.OutputMR('',energy_densities* MeV/fm**3 , pressures* MeV/fm**3)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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X9WAAQPUoEEDBQQEKCoqSrfddps2btxYrnM5HA7NnDlT7dq1U1BQkCIjIzV06FAlJiZWeN0AAADwbs/+b4cz4MXUtempgS1NrgierEIWQx85cqR2796tl156SYZh6IknnlDLli314YcfVsTpnV577TU99thj2r9/v/r3768nnnhCN9xwg7766it169ZNCxcuLPO5HnroIY0bN052u13jxo3TzTffrK+//lqdO3fWjh07KrRuAAAAeK9F247rw02HJUlB/r6aMbyjrH4sOwbXuarhmqVJS0vTc889p9dee015eXkaOXKk3nvvvQo59+eff67IyEj16NGjWPuaNWvUr18/hYaG6tixY7JaL/3w6sqVK9W3b1/16NFDS5cudR6/fPly9e/fXz169NCqVasu+nqGawIAAKAsjqWe003/XaO0c4Wj3F64ra3u7NzA5KpQVbgqV1TIiotHjhzRjh07tH37du3YsUM7duyQr6+vDMNQcnJyRVxCknTrrbeW2t6jRw/16dNHS5Ys0datW9WpU6dLnqdo8pdp06YVC4T9+vVTXFycFi1apD179qhFixYVVjsAAAC8i91h6K8fb3EGvEFt62hop2iTq4I3KFfIO3z4cLEgt337du3cuVOZmZmSCtf9kCQfHx81a9ZMbdu21aBBgyq+6lL4+/tLkvz8Lv+W4uPjFRwcrO7du5fYVxTyVq1aRcgDAADAFXt95V5tOnBGklSvepCev7VtsbWkAVcpV8hr1KiR8w9mUaCrXbu2unTporZt26pt27Zq166d2rRpo8DAwIqv9iIOHz6sZcuWKSoqSm3btr3ksVlZWTp+/LhiY2Pl61tyLHTz5s0lqUwTsKSnpxfbtlqtlx0qCgAAAM/386GzenV54c+TPhbpv8M6KCzI3+SqYLbc3Fzl5uY6t3+fJyrKFQ3XbN26tUaNGqURI0aoQQNzxxTn5+dr9OjRys3N1YsvvlhqcLtQWlqaJF10mYeisbBFx11KdHTx7vbJkydrypQpZagaAAAAnio9J1+PfvSL7I7CTpFH+jVXp0bhJleFqmD69OmaOnWqy69T7pBnGIZ27typiRMn6h//+IdatGihdu3aqX379s6vunXruqLWEhwOh+69916tXr1aY8eO1ejRoyvlukWSkpKKPSBJLx4AAIB3MwxDE7/YpiNnz0mSOjWsob/0aWZyVagq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1axZU0FBQWrcuLGGDx+upKQks0vzWIZh6PPPP1efPn1Up04dVatWTS1bttSDDz6o/fv3m12e25s/f74efPBBderUSVarVRaLRfPmzbvo8enp6Xr88cfVsGFDWa1WNWzYUI8//jgzEZZTWe97fn6+PvvsM40ZM0atW7dWcHCwQkND1aVLF73++uuy2+2VX7wbK++f9wsdOHBAISEhslgseuihh1xbqIe5kvt+4MABjR071vlvTe3atdWnTx998skn5b4+Syi4qfj4eMXFxSkgIEDDhg1TWFiYPv/8c40cOVIHDx7U008/bXaJHue1117TCy+8oKZNm6p///6qVauWEhMT9eWXX+rLL7/Uhx9+qKFDh5pdpsfbuXOnnnnmGQUHBysrK8vscjyaYRh66KGH9Pbbb6tp06YaNmyYQkNDdezYMa1atUqHDh1ipmEXefLJJ/XKK6+oTp06GjJkiGw2mxISEjRr1ix9+OGH+uGHHxQbG2t2mW5r0qRJOnTokCIiIlSnTh0dOnToosdmZWWpV69e2rJli/r376/hw4crISFB//nPf7Ry5UqtXbtWwcHBlVi9+yrrfd+3b59uv/12hYaGqm/fvho8eLDS0tL0zTff6M9//rMWLVqkr776isnvyqg8f94vZBiG7rnnHhdX57nKe9+XLl2qIUOGSJJuueUWNWnSRGfPntWvv/6qZcuW6Y477ihfAQbcTn5+vtG0aVPDarUamzdvdranp6cbMTExhp+fn7Fnzx4TK/RMn332mbF69eoS7atXrzb8/f2N8PBwIycnx4TKvEdBQYHRuXNn47rrrjNGjRplSDLWr19vdlke67///a8hyfjzn/9sFBQUlNifn59vQlWe7/jx44aPj4/RqFEjIy0trdi+//znP4Yk45577jGpOs+wdOlS4+DBg4ZhGMb06dMNScbcuXNLPfaZZ54xJBlPPfVUqe3PPPOMq8v1GGW970eOHDFef/11Iysrq1h7Zmam0alTJ0OSsXDhwsoo2SOU58/7hf773/8afn5+xiuvvGJIMh588EEXV+pZynPfDx8+bNhsNqN58+bGoUOHSuy/ks9bhmu6oRUrVmjfvn0aMWKEOnbs6GwPDQ3VP/7xDxUUFGju3LkmVuiZbr31VvXo0aNEe48ePdSnTx+dOXNGW7duNaEy7/HCCy8oISFBc+bMka+vr9nleLRz585p6tSpatKkiV599dVS77efH4NBXOHgwYNyOBzq3r27bDZbsX2DBg2SJJ08edKM0jzGjTfeqIYNG172OMMwNHv2bIWEhOiZZ54ptm/ChAmqUaOG3nnnnQpfxNhTlfW+16tXTw8//LCqVatWrD04OFiPP/64JGnVqlUuqdETlfW+X2jv3r2aMGGCnnrqqWI/a6LsynPfn3/+eaWnp+vNN99UgwYNSuy/ks9bPqHdUHx8vCRpwIABJfYVtfGPX+Xy9/eXxA+9rrRt2zZNnTpVkyZNUkxMjNnleLylS5fqzJkzGjNmjOx2u77++mvt2bNH1atX14033qhmzZqZXaLHat68uQICArRu3TplZGQoNDTUue+7776TJPXt29es8rxKYmKijh07pri4uBJDMgMDA9WzZ0999dVX2rt3r5o3b25Sld6Fz1vXczgcuueee9SwYUM988wzWr9+vdkleTTDMLRw4ULVrFlTffv21c8//6xVq1bJ4XCoQ4cO6tu37xWtn8ffEDeUmJgoSaV+oNSoUUMRERHOY+B6hw8f1rJlyxQVFaW2bduaXY5HKigocD6A//e//93scrzCTz/9JKnwB6n27dtr9+7dzn0+Pj567LHH9O9//9us8jxazZo19dxzz2n8+PFq3bq1Bg8erNDQUG3dulXLli3TAw88oHHjxpldple41Ofthe2JiYmEvEoyZ84cSaX/ohsV49VXX9UPP/ygtWvXymq1ml2Oxztw4IDOnDmjzp076+GHH9abb75ZbH/Hjh319ddfq379+uU6L8M13VBaWpokKSwsrNT9NpvNeQxcKz8/X6NHj1Zubq5efPFFhhC6yPPPP+8cpln0W1y4VtFwwJdfflk2m02bNm1SRkaGVq9erRYtWujll1/WG2+8YXKVnuvJJ5/UBx98oLS0NL3xxht68cUX9f3336tz584aNWoUfw8qSVk+by88Dq719ttv6/vvv1ffvn118803m12OR9qzZ48mTZqkRx99VNdff73Z5XiFos/bzZs3a/78+Zo7d67OnDnjnGnzl19+0e23317u8xLygCvkcDh07733avXq1Ro7dqxGjx5tdkkeKSEhQdOmTdOTTz6pa665xuxyvIbD4ZAkBQQE6Msvv1Tnzp0VEhKiHj166NNPP5WPj49efvllk6v0XNOmTdOYMWM0YcIEJSUlKTMzU2vXrlVB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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, 1, figsize=(9, 6))\n", + "ax.plot(MR[:,1]/km , MR[:,0]/Msun, lw=2)\n", + "\n", + "ax.set_ylabel(r\"M [$M_{\\odot}$]\", fontsize=16)\n", + "ax.set_xlabel(\"R [km]\", fontsize=16)\n", + "# ax.set_xlim(8.0, 20.0)\n", + "# ax.set_ylim(0, 3)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Speed of sound EOS \n", + "\n", + "First import all the package that will be used." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import TOVsolver.main as main\n", + "import matplotlib.pyplot as plt\n", + "from EOSgenerators import SpeedofSound_EOS\n", + "import EOSgenerators.crust_EOS as crust\n", + "from TOVsolver.unit import g_cm_3, dyn_cm_2, km, Msun" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Speed of sound EOS describes the core EOS of a compact star, \n", + "so it should be connected with the crust EOS to form a full EOS.\n", + "See https://arxiv.org/abs/1812.08188 for details." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "Tolos_crust_out = np.loadtxt(\"Test_Case/Tolos_crust_out.txt\")\n", + "eps_crust_T_out = Tolos_crust_out[:, 3] * g_cm_3\n", + "pres_crust_T_out = Tolos_crust_out[:, 4] * dyn_cm_2\n", + "eps_com, pres_com = crust.PolyInterpolate(eps_crust_T_out, pres_crust_T_out)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Defining the EOS parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To construct the Speed of sound EOS, we need to specify the outer crust EOS and \n", + "the interface EOS, and then connect them with the core EOS." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "x_last = eps_com[-1]\n", + "y_last = pres_com[-1]\n", + "dydx_last = (pres_com[-1] - pres_com[-2]) / (eps_com[-1] - eps_com[-2])\n", + "CS_EOS = SpeedofSound_EOS.compute_EOS(x_last, y_last, dydx_last)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to generate the parameters of the Speed of sound EOS, we need a list\n", + "of 5 uniform random numbers between 0 and 1.\n", + "\n", + "After generate the parameters, we use function `check_a` to check if the parameters\n", + "are valid." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n" + ] + } + ], + "source": [ + "cs_a = CS_EOS.gen_a((0.2, 0.2, 0.3, 0.4, 0.5))\n", + "print(CS_EOS.check_a(cs_a))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Solve TOV with this EOS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here below we use the speed of sound EOS to compute the mass radius curve.\n", + "\n", + "First we calculate the core EOS." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "core_e_min = x_last\n", + "core_e_max = 2e16 * g_cm_3\n", + "n_core_e = 1000\n", + "core_e = np.geomspace(core_e_min, core_e_max, n_core_e)\n", + "core_p = CS_EOS.cal_core_p(core_e, cs_a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we concat the core EOS with the crust EOS." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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xgMDA9W2bVutWrXKFa3bCA4OVlhYmFavXn1V18XExGj48OHKysqSv7+/Jk6cqJ49eyo7O1sLFizQJ598on379ql///6KioqSv7//Ze+Zn5+v++67T7m5uZo2bdplw565c+fKarXqgQceKPZgCACAssxqNTRn8x+a9sM+5RVY7erhwZX1aPdGujmsprw8TDsIFgAA4JqZdlqZ1WrVs88+qx9//FGNGzfW888/r1atWqlixYo6fvy4tm7dqmXLlmnbtm021508eVI//vijy/qcPHlyUbBVs2ZNHTp0SA0bNryqe4wdO1ZZWVny8PDQ6tWr1blz56Jar1691KRJE02YMEHx8fGaPn26Jk+efMn7Wa1WPfjgg9qwYYMefvhh3XfffZedP3fuXFksFj344INX1TsAAOXZkbPZev6bGP1y8JRdzcPNonG9Q/VYj8Zyd2OlEAAAKL1c8liZIzNnztS4ceMUERGh9evXX/SkraioKD399NPaunWr/P39dddddyk+Pl7r1693ccd/+ms4dCWPlUVFRSkiIkKS9Oijj+rjjz+2m2O1WtWyZUvt3btXVapU0YkTJ4r2ErqQYRh66KGHNGfOHN1777367LPP5OZ26Z9S/vDDD7r11lt18803a82aNVfwLq8ej5UBAMoSwzC0NPqIJn+3W+k5BXb1JjX89f6IcLWsW8mE7gAAQHnmjM/fpq19/vTTT2WxWDRx4sRLHsHesWNHbdq0SaNGjVJGRoYOHjxoWjB0LZYuXVr0+oEHHnA4x83NTaNGjZIknTlzRuvWrXM4z2q1asyYMZozZ47uuusuzZs377LBkMRG1AAAXI0zmXl68sudGrcwxmEwNKZrQy1/qivBEAAAKDNMC4cOHjwoSapXr95l57q7u2v27Nlq06aNfv75Z3311VfObq/YbNy4UZLk5+en9u3bX3Rejx49il5v2rTJrm61WvXQQw9p7ty5GjFihL744osr2jvo1KlT+u6771S1alXdcccd1/AOAAAoP9btS1HfGRsUGXfMrlanko++fOgGvTyguXw82b8PAACUHabtOeTv76+cnBwlJSWpbdu2l53v4eGhp556Sg899JC++uor3XXXXS7o8vrt3btXkhQSEnLJ4+abNWtmd81551cMzZs3T8OGDdP8+fOveFPpL774Qnl5ebr33nsvuULrcpKTky9ZP3bM/pto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8803ysnJUWBgoG666Saz47iFr6+vIiMj9b//+7968cUX9emnn+qdd94xOxYAAB6FcggAAFjO3r179cQTT6hLly6qUaOG/P39Va9ePbVr10733HOPZs2aZXbEcjEMQ++//75uueUW1atXTyEhIerYsaNmz56twsJC5eTkyMfHRzabTTNnziz1dYqvN9S7d28FBweXui41NVXTp09XXFycGjRooICAADVs2FDXX3+9pk2bpt27d7s8Z//+/Y4LXX/wwQeSpKVLl6pfv34KDw9XaGioOnfurAULFsgwDMfz8vLyNH/+fN1www2qW7eugoKCdO211+qzzz4r999T3759Jf1+ZzIAAPBfXHMIAABYyvTp0/WXv/xFRUVFTuNpaWlKS0vTrl27tGHDBj3++OMmJSyf1NRUDRw4UOvXr3ca3759uyZNmqSvvvpKL730kqNw6dixY4mvYxiGVq5cKenSp5S9+uqreu6555STk+M0fuLECZ04cULr16/XqlWr9PPPPzvNb9261fG4cePG6tevn9MFt4vXjBkzRseOHdPUqVO1d+9eDRs2zOm5kvTLL79o4MCBWrp0qYYMGVJq1osdP35ckkq81T0AAFbGT0YAAGAZc+fO1ZQpUyRJnTp10ujRo9WhQwdVr15dp06d0tGjR7VhwwbVqlXL5KRlk5mZqRtvvFG7d++WzWbTPffco+HDh6tRo0Y6ePCgXn75Zf3rX/9Sbm6u4zmdOnUq8bU2bdrkKE8GDBhQ4pqxY8cqISFBktSkSRONHTtW3bt3V61atfTbb79pzZo1SkxMVNeuXV2eu23bNsfjJ598Utu3b9fEiRN1++23Kzg42FFi5efn6+WXX9bgwYPVp08f5efn64UXXlDv3r1VVFSkDz/8UHPmzJEk/eUvf3Eph7Zu3armzZurRo0aTuNnzpxx/Nv379//Un+tAABYDuUQAACwjJdeekmSdPfdd2vp0qXy8XE9w/7BBx+s7FhXbPz48dq9e7f8/Pz0ySefOB3x06VLF/Xr109t27bV999/L0mqX7++IiIiSnyt4ruUderUSY0bN3aZf/nllx3F0MiRI/XOO+8oICDAaU2/fv307LPP6siRIy7Pv/Don/3792v9+vVORVW3bt2Ul5enl19+WXl5eerevbsiIiL0zTffqFGjRo51N9xwg06cOKFPP/1Ue/bsUVpamurWreuYT0xMVEJCguLi4tSsWTOFhITo8OHDWrlypTIzM3X33Xfr3nvvLe2vFAAAS+KaQwAAwBLOnTuno0ePSpJuueWWEoshb7J27Vq99957kqRp06aVeCpYSEiIHnvsMcfHpR01JP33ekMlvc6vv/6qqVOnSvq9AEpMTHQphooFBwerbdu2LuMXHjmUkJBQYpY+ffo4Hufm5mrp0qVOxVCxCy+WnZGR4TQ3ePBgDRkyRPv379fixYs1a9Ysff/99+rRo4fef/99ffTRR17/bw8AgLtx5BAAALCE0NBQ1alTR6dPn9YLL7yg2rVrq1evXqpTp45sNpvZ8crthRdekCQ1bdpUTz/9dKnr2rVr53hc2vWGUlJStHnzZkkll0OTJ09WUVGRQkNDtWjRonKXK2fOnHEq5u66664S1/n6+joe/+lPf1L79u1LXGe32x2PLz59rEePHurRo0e58gEAYHX8twkAALAEHx8fJSYmKjg4WMeOHdPgwYNVr149x128lixZYnbEMjtx4oS++eYbSdJDDz10yQssX1ielHbkUPFRQxEREYqOjnaaO3nypP71r39JkiZMmKD69euXO++FRw0NGzas1HX79u0r07r9+/dLksLCwpxOKQMAAFeGcggAAFhG37599fbbb5dYKHTo0MGERFemuKyRpFtvvfWSa8+cOeN4XNqRQ8XXG7rttttcjqJasWKF405n5bkz2IUuvN7QpfIWl0j16tVTTEzMZdd5078ZAACejNPKAACAJWzevFkjR47Url271KdPH91///1q3ry5atasKUmKiooyN2A5FJctAQEBpZ56VWznzp2SpMDAwBKvBZSTk6PvvvtOUsmnlO3YsUOS5O/v73JUUVkVlzkNGzZUeHh4qeu2bNki6dLXRrrw9S63DgAAlA3lEAAAqPIOHz6sPn36KD09XW+88YYefvhhsyP9ISdPnpT0+xE2l/P1119L+v3aQxde06fYN998o5ycHAUGBjpd6PnizxUeHn7F12YqLrM6d+5c6hrDMMpU+hw5ckRnz5697DoAAFB2nFYGAACqvOnTpys9PV3XXnut1xdDkpSXlyfp9zuwXUpycrLjNvalFSnFp5T17t1bISEhLvO5ubmSpPz8/CvKWlBQoN27d18yg/T7dYQyMzMlXbpEuvAUNcohAADcg3IIAABUeWvWrJEktWrVyuQk7lF8Uehz58457gJ2MbvdrkceecRxvaCSrjdkGIZWrlwpqeRTyqTfTwWTpNTUVB05cqTcWXft2uUoli5V+hSfUiZduvQpLof8/Px0zTXXlDsPAABwRTkEAACqvOzsbEnS999/r7S0tFLX5ebmOo7K8WTdunVzPJ4+fbrLfFFRkR555BHHHc2kkguXTZs26fjx45KkAQMGlPi54uLiHI///Oc/O8qmixUUFDjdbazYhXcqK8sRQUFBQWrTpk2p64pfr23btgoICCh1HQAAKDuuOQQAAKq866+/XocPH9bx48d17bXX6tFHH1V0dLRCQkL022+/6fjx4/rhhx+0fPlyHT161ONLhyFDhuipp57S2bNn9dZbb6mgoED33nuvQkNDtWvXLr355pvauHGjmjZt6jjap6Q7exXfwr5Tp05q3LhxiZ9r0KBBatu2rZKTk7VkyRIdO3ZMY8eO1VVXXSXDMHTo0CGtWbNGy5Yt0+TJkzVx4kSn5xeXPjVq1FDz5s1L/ZqKjxzq0KFDiddGuvj1OKUMAAD3oRwCAABV3vTp07V+/XodOnRIBw4ccCkwirVu3VrVq1ev3HBXICwsTAkJCRo2bJgKCwuVkJCghIQEx7yvr6+mTJmi7OxszZ49W1FRUapRo4bL6xRfb6i0U8qk30/f+uyzz9S/f38dOHBAq1ev1urVq0tcW1Jhc+FFpi91QeuylD7nzp3TwYMHL7sOAACUD+UQAACo8po1a6YdO3Zo3rx5WrFihX799VedPXtW1apVU3h4uFq0aKEePXqof//+Zkcts0GDBmnNmjV68cUX9dNPPyk3N1eNGjVSnz599NBDD6ljx47q2rWrJOmGG25weX5KSorjaJ1LlUOS1KZNG23dulXz5s3T8uXL9euvv+r8+fOqU6eOGjZsqG7duun2229Xjx49XJ5bljuQ/fbbb467ol1q3fbt2x2ntVEOAQDgPjajtBPHAQAAUOni4+O1aNEiNWvWTIcOHbri19m5c6fat28v6ffb1ffp08dpfu7cuRo/frwiIiJ0/PjxK75NfVVV/Pfx3HPPadq0aeaGAQCggnHkEAAAgAcqKCjQzp07HR9fddVV8vf3L9Nz7Xa7Jk2aJOn3o3569+7tsqb4ekO33XYbxZCkrKwsxylrAABYDeUQAACABzp+/LjjyB9JOnjwoCIjIyVJ//nPf9SyZcsSn5ebm6uHHnrIcaey1157rcTyp2fPnuratavuvPNO94f3QklJSU53ZgMAwEoohwAAALzMkCFDFBAQoOHDh6tTp06qUaOGzp49q59//lnvvPOO4wiYxx9/vNTrCU2ePLkyIwMAAA/GNYcAAAC8SGFhoUJDQ5WXl1fqGj8/P02bNk1TpkzhlDEAAHBZlEMAAABepLCwUMuWLdPnn3+uLVu26NSpU8rIyFBYWJhatWqlPn36aPz48WratKnZUQEAgJegHAIAAAAAALAwH7MDAAAAAAAAwDyUQwAAAAAAABZGOQQAAAAAAGBhlEMAAAAAAAAWRjkEAAAAAABgYZRDAAAAAAAAFkY5BAAAAAAAYGGUQwAAAAAAABZGOQQAAAAAAGBhlEMAAAAAAAAWRjkEAAAAAABgYZRDAAAAAAAAFkY5BAAAAAAAYGGUQwAAAAAAABZGOQQAAAAAAGBhlEMAAAAAAAAWRjkEAAAAAABgYZRDAAAAAAAAFkY5BAAAAAAAYGGUQwAAAAAAABZGOQQAAAAAAGBh/x95MQdU8vZ5DQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "full_e = np.concatenate((eps_com, core_e[1:]))\n", + "full_p = np.concatenate((pres_com, core_p[1:]))\n", + "plt.figure(dpi=200)\n", + "plt.plot(full_e / g_cm_3, full_p / dyn_cm_2)\n", + "plt.xscale(\"log\")\n", + "plt.yscale(\"log\")\n", + "plt.xlabel(r\"$\\epsilon\\quad [g/cm^3]$\")\n", + "plt.ylabel(r\"$P\\quad [dyn/cm^2]$\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally we compute the mass radius curve." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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//33MpvNni4VKJDdbs8W/tx+++166aWX1LBhQyUkJGjjxo16//33lZSUpMmTJysiIkKvvPKKh6tGRRcZGalGjRpp1apVRb729ddfd4Y/d911l0aOHKn69evryJEjevfdd7Vjxw59+umnCgsL01tvvVXapQNuFeeZvnLlijP8ad26tbp06aJmzZqpWrVqOnfunBYsWKAZM2YoISFBffv2VaVKlfTwww+X1VsAnEryMzqnHTt2aMqUKfLz85PZbHYbeAJlqSTPs81mU48ePbRixQpJUtu2bfXkk0+qUaNGMplMOn78uHbt2qX58+eXdtkoKgfgxv79+x2+vr4OSY62bds6Ll26lGdbq9V6HSsDiufbb791SHJIcrRq1cpht9tztdm2bZvDbDY7JDmqVq3qSEtL80ClqOjGjBnj+P777x1//fWXw+FwOI4dO+Z8dvv371+oPg4fPuwwmUwOSY5mzZo5kpOTs51PSkpyNGvWzCHJYTKZHH/88Udpvw3AqaTP9C+//OLo3bu3Y9++fXm2WbRokcNgMDgkOerXr+/IyMgorfKBbErjZ3ROdrvd0bRpU4ckx5tvvumoXbu2Q5Kjdu3apVc44EZpPc9vvPGG87pJkybl29Zms5WkZJQQawDBreHDh8tqtSo0NFQLFixQ5cqV82xrsViuY2VA8fzyyy/O41dffVU+Pj652jRt2lRdunSRlDmt4ODBg9etPiDLuHHj1KVLlxINy548ebLsdrsk6cMPP5S/v3+28wEBAfrwww8lZY6OmzJlSrHvBRSkpM/03//+d3399de69dZb82zTvXt39ezZU5J05MgR7dy5s1j3AgpSGj+jc5o6daq2b9+uhg0batSoUaXWL1CQ0niejx49qgkTJkiSBgwYoJdffjnf9swe8SwCIORy8OBBrVmzRpL03HPPKTQ01MMVASVns9mcx/Xq1cuzXf369Z3HVqu1TGsCyoLD4dDixYslSbfccotatmzptl3Lli3VsGFDSdKiRYtyzdcHypv77rvPeXzkyBEPVgIU3vHjxzVmzBhJ0rRp0/jDKsqdTz/9VGlpaTIYDM5nGTcuAiDk4jo3s1evXs7jixcv6vDhw7kWhAbKg6ioKOfx0aNH82yX9aHBYDCoQYMGZV4XUNqOHTumkydPSpLat2+fb9us83Fxcfrzzz/LujSgTLmG9kYjv+KifBg2bJiSkpLUr1+/bCEmUF5kfXZs1qyZ6tatK0nKyMhQXFycjh07ppSUFE+Whxz4vyNyydoGu3LlymrUqJG+/PJL3XHHHQoJCVFUVJRCQ0NVr149jRs3TomJiR6uFiicPn36KDg4WJI0ceJEpaen52qzY8cOLVu2TJL02GOPOdsD5cmBAwecx7fccku+bV3Pu14HlEfr1q1zHhf07AM3gnnz5mn58uWqWrWqJk2a5OlygCI7d+6c8w+rrVq10pUrV/TCCy8oNDRUkZGRqlevnoKDg9W+fXvn79jwLAIg5LJ//35JUp06dTR8+HA98cQT2r17d7Y2x44dU3R0tFq1aqVTp055okygSMLCwjR79mz5+/vrl19+0T333KM5c+YoJiZGq1ev1rhx49S+fXvZbDbdeeed+uCDDzxdMlAssbGxzuNatWrl2zYyMtLtdUB5s2vXLueHi9tuuy3f9YKAG8HFixf1wgsvSJImTJig8PBwzxYEFEPW50ZJ8vf31913362pU6fq4sWLztftdrvWr1+vLl266KWXXvJEmXBBAIRcLly4IClzLaD//ve/qlKliqZPn66zZ88qNTVVW7dudW6vunfvXvXq1UsZGRmeLBkolB49emjbtm0aNGiQdu7cqf79+6tVq1bq0KGDoqOjFRAQoA8++EAbN25UjRo1PF0uUCyuWwcHBQXl2zYwMNB5zIhOlFdWq1WDBw92jux8++23PVwRULBXXnlFZ86cUatWrfT00097uhygWLI+N0rSlClTdOTIEf3973/XunXrlJycrAsXLujLL79URESEpMxNKqZPn+6pciECILiRlJQkKfMXKh8fH61YsUJDhgxRWFiYfH191axZMy1dutQZAm3atEkLFizwZMlAoaSlpemrr77S999/73bB2zNnzmju3Llau3bt9S8OKCWpqanO44IWE/X19XUeM0cf5dVzzz2nbdu2SZL69++vbt26ebgiIH/r16/X//73P5lMJk2fPl0Gg8HTJQHFkvW5Ucr87Ni0aVOtWbNG7dq1k7+/v6pWraq+fftq3bp1zj86jRkzht85PIgACLn4+fk5j3v16uV2Bxmj0aj33nvP+f3cuXOvS21AcSUlJemBBx7Q+PHjdf78eY0cOVIHDhyQ1WrV5cuXtWrVKrVp00Zbt25V165dNXXqVE+XDBSL689w193v3HFdNDfnVvFA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6tVLcXFxevXVV/XQQw8pICBAGzdu1NixY3XlyhUNGjRIzZo1U5cuXZSSkqLx48erffv2MpvNWrlypcaPHy+r1aqBAwfq8OHDslgs1/HdAgDgOQRAAADAK0yaNMl5/Oijj7ptM3jwYI0dOzbXzk533323unfvruHDh6tly5Y6efKk3n77bX3++ee5+nj22Wdlt9tlNpu1atUqtWvXznmuefPm6tmzp1q2bKldu3aV0jsrnm+//VYZGRkKDAzU5s2bVb169Wzn27Rpo4EDB+ry5csKCAjwSI3z5s3Tk08+qbS0NN1zzz1asWKFqlWrlu81O3fu1Lp169SiRQvna82aNVNUVJQ6d+6shIQEtWjRQg6HQ1u2bFH9+vWd7Zo3b67Q0FA9++yzOnHihJYtW5bvSC8AALwJawABAIBy6/z589q4caM6deqkuXPnSpJatWqlxx57zG37OnXq5Lutd61atfTKK69Iktu1cbZs2aLt27dLkoYMGZIt/Mly00036f333y/W+ylNf/31lyQpKioqV/jjqnLlyjIar/+vhNOmTdPjjz+utLQ03X///frpp58KDH8k6YUXXsgW/mTp1KmTateuLUk6d+6c3nrrrWzhT5aBAwfKz89PkrRhw4YSvgsAAMoPAiAAAFBujBs3zrkYsMFgUGhoqNq2basVK1bIZDLpiSee0MqVK/MNeVxduXJFx44d0759+7R3717t3bvXORom65yr1atXO48HDhyYZ789evRQlSpViv4GS1FERISkzKlxW7Zs8WgtOY0fP17Dhg1TRkaGHnnkES1fvrzQaxDlFe5J0u233y4pc4Ht3r17u23j7+/vXF/o6NGjRawcAIDyiwAIAAB4haioKI0cOVLBwcH5tjt+/LiGDx+uOnXqqHLlyqpXr54aN26sJk2aqEmTJnrmmWecbePj47Ndu2fPHkmZ285nhQ3umM1m3XXXXSV4NyXXp08fmc1mWa1WtW7dWl27dtX06dO1b98+j+769dJLL+n111+XJA0YMEDffvutfH19C319VFRUnueyQrfQ0FBVrVq1wHYJCQmFvi8AAOUdARAAACg3hg4dqj179mjPnj3asWOHli1bpiFDhshsNmv//v269957dejQoTyvX7FihW699VZ99NFHOn78eIH3S0lJyfb9xYsXJUkhISF57jSWJb9pV9fDLbfcorlz56pq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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "MR = main.OutputMR(\"\", full_e, full_p)\n", + "plt.figure(dpi=200)\n", + "plt.plot(MR[:, 1] / km, MR[:, 0] / Msun)\n", + "plt.xlim(6, 17)\n", + "plt.ylim(0, 2)\n", + "plt.xlabel(\"Radius [km]\")\n", + "plt.ylabel(\"Mass [Msun]\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## MIT bag model EOS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The MIT bag model, which has commonly been applied to strange quark stars, relates pressure to energy density with the simple equation of state $p=\\frac{\\epsilon}{3}-\\frac{4B}{3}$. There is only one parameter, the \"bag constant\" $B$. This represents the vacuum energy density, which creates a \"bag\" in which quarks are confined. See [Chodos et al. (1974)](https://doi.org/10.1103/PhysRevD.9.3471)." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from EOSgenerators import MITbag_EOS\n", + "from TOVsolver.unit import MeV, fm, g_cm_3, dyn_cm_2, km, Msun" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Defining the parameter" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A \"typical\" value of 57 $MeVfm^{-3}$ for the bag constant is taken from [Alcock (1986)](http://dx.doi.org/10.1086/164679)." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "energy density range: 1.1554421785237932 to 2.888605446309483\n", + "pressure range: 0.0 to 0.5777210892618965\n" + ] + } + ], + "source": [ + "B = 57\n", + "\n", + "epsilon,p = MITbag_EOS.MITbag_compute_EOS(B)\n", + "\n", + "print('energy density range:',epsilon[0],'to',epsilon[-1])\n", + "print('pressure range:',p[0],'to',p[-1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Computing the mass-radius relation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can compute a mass-radius relation for this EOS by solving the TOV equation." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import TOVsolver.main as main\n", + "import TOVsolver.EoS_import as EoS_import\n", + "from itertools import repeat" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "MR = main.OutputMR('',epsilon,p).T" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAAJOCAYAAAAK+M50AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACBfklEQVR4nOzdd3hUVf7H8c+kTXpICJ1A6CX0ptIjAgqKWOmKIoq7uiu2XUQFVhTLVhc7CgiLgAr+XFYRAQMGAamhdxJCqKEkISGTZHJ/f2CGDAmQkHIzk/frefKYe277DkNwPjnnnmMxDMMQAAAAAMAteJhdAAAAAACg9BDyAAAAAMCNEPIAAAAAwI0Q8gAAAADAjRDyAAAAAMCNEPIAAAAAwI0Q8gAAAADAjRDyAAAAAMCNeJldQGWQm5urY8eOKSgoSBaLxexyAAAAALggwzCUlpam2rVry8Pj6v11hLxycOzYMUVERJhdBgAAAAA3kJiYqLp16151PyGvHAQFBUm69GYEBwebXI2UmpqqiIiIClMPyg/vfeXFe1958d5XXrz3lRfvvfvKe2/z8sXVEPLKQd4QzeDg4Ar1g1bR6kH54b2vvHjvKy/e+8qL977y4r13X9d7BIyJVwAAAADAjRDyAAAAAMCNEPIqIavVqkmTJslqtZpdCsoZ733lxXtfefHeV16895UX7z0shmEYZhfh7lJTUxUSEqKUlJRrjou22+3Kzs4ux8qAisnb21uenp5mlwEAAFChFDVXMPFKBWAYhk6cOKHz58+bXQpQYVSpUkU1a9ZkbUkAAIBiIuRVAHkBr3r16vL39+dDLSo1wzCUkZGhU6dOSZJq1aplckUAAACuhZBnMrvd7gh4VatWNbscoELw8/OTJJ06dUrVq1dn6CYAAEAxMPGKyfKewfP39ze5EqBiyfuZ4DlVAACA4iHkVRAM0QSc8TMBAABwY1wq5CUlJemf//yn+vXrp3r16snHx0c1a9bUfffdp/Xr1xfrWrm5uZo+fbratGkjPz8/VatWTQ8++KD2799/1XM2bNigAQMGKDQ0VAEBAerSpYvmzZtX0pcFAAAAAKXGpULev//9b40fP16HDh1S37599dxzz6l79+76v//7P3Xt2lULFy4s8rXGjRunp59+Wna7XU8//bQGDBigb7/9Vp07d9auXbsKHB8TE6Pu3bvr559/1v33368nn3xSycnJGjFihN54443SfJlAmXnvvfcUGRkpLy8vvfDCC2aXAwAAgLJguJCvv/7aWL16dYH21atXG97e3kZYWJiRmZl53eusXLnSkGT06NHD6fjly5cbFovF6Nmzp9Px2dnZRqNGjQyr1Wps3rzZ0Z6ammpERUUZXl5exr59+656v5SUFEOSkZKSUmDfxYsXjV27dhkXL168bt0VzcMPP2xIcnyFhYUZ/fv3N+Li4srsnpMmTXK6pySjRo0ajv3169cvsF+S8bvf/e66137vvfeMyMhIw2q1Gh06dCjwd+16+wuT92f0xBNPFNj35JNPGpKMhx9++Pov3DCMO++80+jTp0+h+3755RdDkrFp06arnr99+3bDy8vLWLJkiXHs2DEjPT29SPe9mg4dOhhRUVEFvpKSkgoc+/777xutW7c2goKCjKCgIOPmm282vvvuu2te35V/NgAAAMrCtXJFfi7Vk3fvvfeqR48eBdp79Oih6OhonT17Vtu3b7/udT755BNJ0tSpU2W1Wh3tffr0Uf/+/bV69Wrt27fP0b5y5UodPHhQw4cPV/v27R3tQUFBeuWVV5STk6OZM2eW5KW5rNtvv13Hjx/X8ePHtWLFCnl5eenOO+8s03tGRUU57nn8+HGn93zDhg1O+3788UdJ0gMPPHDNay5YsEDPPPOMJk6cqC1btqhHjx664447dOTIkSLtv5aIiAjNnz9fFy9edLRlZmbqiy++UL169Yr8useMGaOVK1cqISGhwL7PPvtM7dq1U4cOHa56/rfffquOHTtq4MCBqlWrVokn+9m0aZN27NhR4Kt27doFjq1bt67efPNNbdy4URs3btStt96qu+++Wzt37ixRDQAAACjIpULetXh7e0uSvLyuvypETEyMAgIC1K1btwL7+vfvL0latWqV0/GS1K9fvwLH57XlP74ysVqtqlmzpmrWrKl27drpT3/6kxITE3X69Okyu6eXl5fjnjVr1lS1atUc+6pVq+a0b8mSJWrUqJF69ep1zWv+/e9/15gxY/TYY4+pRYsW+uc//6mIiAh98MEHRdp/LR06dFC9evW0aNEiR9uiRYsUERHh9EsD6dIacW+//bYaNmwoPz8/tW3bVl999ZUk6c4771T16tU1a9Ysp3MyMjK0YMECjRkz5qo1NGrUSBMnTtT69etlsVg0atQoxcfHy2KxaNGiRerZs6f8/PzUsWNHxcfHKyYmRl26dJG/v7/jFyglcdddd2nAgAFq2rSpmjZtqtdff12BgYFat25dia4LAACAgtwi5B05ckTLly9XzZo11bp162sem56eruPHj6tBgwaFrr3VpEkTSXKagCXv+7x9+YWGhio8PPyaE7bkSU1Ndfqy2WzXPceVXLhwQf/5z3/UuHHjq67598YbbygwMPCaXz///PM177N//37Vrl1bDRo00NChQ3Xo0KFCj8vKytLcuXP16KOPXnOmxqysLG3atKlAiO/Xr59++eWX6+4vikceecSpt/ezzz7To48+WuC4l19+WTNnztQHH3ygnTt3avz48Ro5cqRWrVolLy8vPfTQQ5o1a5YMw3Cc8+WXXyorK0sjRoy46v3Xrl2rhg0b6p133tHx48f1/vvva+vWrZKk999/X2+88YbWrl2rM2fOaNSoUXrrrbf03nvvKSYmRtu3b9enn35apNdZFHa7XfPnz1d6erpuueWWUrsuAACAu7HZbAUyRFG4/GLo2dnZGjVqlGw2m95+++3rLpqckpIiSQoJCSl0f3BwsNNxRT3n6NGj1601IiLCaXvSpEn685//fN3zKrIlS5YoMDBQ0qUAXatWLS1ZskQeHoX//mDcuHF68MEHr3nNOnXqXHXfTTfdpM8//1xNmzbVyZMnNXXqVHXt2lU7d+4sECy/+eYbnT9/XqNHj77m/ZKTk2W321WjRg2n9ho1aujEiRPX3V8Uo0aN0oQJExy9Z2vWrNH8+fMdvcTSpT+/v//971q5cqUj/DRs2FCxsbH66KOP1KtXLz366KN65513FBMTo+joaEmXAuO9996r0NDQq94/MDBQ8fHx6t69u2rWrClJiouLU2hoqObPn6/w8HBJUnR0tFauXKldu3YpICBAktS5c+civ85r2b59u2655RZlZmYqMDBQixcvVsuWLUt8XQAAAHc1bdo0TZkypdjnuXTIy83N1aOPPqrVq1dr7NixGjVqlNklXVNiYqIjREqXhjrm75HJc9e/Y3U6rfx7+aoFWfXfp7sX65zo6GjHkMWzZ8/q/fff1x133KFff/1V9evXL3B8WFiYwsLCbrjGO+64w/F969atdcstt6hRo0aaPXu2nn32WadjP/30U91xxx2FPiNWmCt7+wzDcGq73v5rCQ8P18CBAzV79mwZhqGBAwc6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psC+H374ocB1Suu+AAAAAFDWXG4x9GbNmikpKUnr1q1Tu3btJDkvSr5z507H0gfJyclKTk5WeHi4wsPDHdfJvxj68uXL5ePjI+nai6EX575XcufF0AEAAACUj6LmCpfqyfPy8tKMGTOUm5urHj166PHHH9fzzz+vtm3baufOnZo8ebJT0Jo+fbpatGih6dOnO10nOjpajz32mH7++We1b99eL774oh5++GENHDhQwcHB+uCDD0p0XwAAAAAwi0uFPOlSQIuNjVX37t21cOFCvf/++6patarmzp2riRMnFvk6H330kd59911ZLBa9++67+t///qe77rpLv/76q1q2bFlm9wUAAACAsuRSwzVdFcM1AQAAAJSUWw7XBAAAAABcGyEPAAAAANwIIQ8AAAAA3AghDwAAAADcCCEPAAAAANwIIQ8AAAAA3AghDwAAAADcCCEPAAAAANwIIQ8AAAAA3AghDwAAAADcCCGvErLZbJo8ebJsNpvZpaCc8d5XXrz3lRfvfeXFe1958d7DYhiGYXYR7i41NVUhISFKSUlRcHCw2eVUuHpQfnjvKy/e+8qL977y4r2vvHjv3VdR31t68gAAAADAjRDyAAAAAMCNeJldQGWQNyI2NTXV5EouyaujotSD8sN7X3nx3ldevPeVF+995cV7777y3tPrPXHHM3nl4OjRo4qIiDC7DAAAAABuIDExUXXr1r3qfkJeOcjNzdWxY8cUFBQki8VidjkAAAAAXJBhGEpLS1Pt2rXl4XH1J+8IeQAAAADgRph4BQAAAADcCCEPAAAAANwIIa8S2bBhgwYMGKDQ0FAFBASoS5cumjdvntlloQwlJSXpn//8p/r166d69erJx8dHNWvW1H333af169ebXR7K2dtvvy2LxSKLxaJ169aZXQ7KweLFi9W3b19VrVpVfn5+atCggYYNG6bExESzS0MZMQxDixYtUnR0tGrVqiV/f381a9ZMTzzxhA4dOmR2eSgFc+fO1RNPPKFOnTrJarXKYrFo1qxZVz0+NTVVzz77rOrXry+r1ar69evr2WefZeZNN8czeZVETEyM+vfvLx8fHw0dOlQhISFatGiRDh8+rNdff10vvfSS2SWiDPz5z3/WW2+9pUaNGqlXr16qXr269u/fr2+++UaGYeiLL77Qgw8+aHaZKAe7d+9W+/bt5eXlpfT0dK1du1Y333yz2WWhjBiGoXHjxunjjz9Wo0aN1L9/fwUFBenYsWNatWqV/vOf/6h79+5ml4ky8Nxzz+nvf/+7atWqpbvvvlvBwcGKi4vTsmXLFBgYqF9++UWtWrUyu0yUQGRkpBISEhQeHq6AgAAlJCRo5syZGj16dIFj09PT1b17d23dulV9+/ZVhw4dFBcXp6VLl6pdu3aKjY1VQEBA+b8IlD0Dbi87O9to1KiRYbVajc2bNzvaU1NTjaioKMPLy8vYt2+fiRWirHz99dfG6tWrC7SvXr3a8Pb2NsLCwozMzEwTKkN5ysnJMTp37mx06dLFGDlypCHJWLt2rdlloQz961//MiQZv//9742cnJwC+7Ozs02oCmXt+PHjhoeHhxEZGWmkpKQ47fvHP/5hSDIeeeQRk6pDafnxxx+N+Ph4wzAMY9q0aYYkY+bMmYUe++qrrxqSjBdffLHQ9ldffbWsy4VJGK5ZCaxcuVIHDx7U8OHD1b59e0d7UFCQXnnlFeXk5GjmzJkmVoiycu+996pHjx4F2nv06KHo6GidPXtW27dvN6EylKe33npLcXFx+uyzz+Tp6Wl2OShjFy9e1JQpU9SwYUP985//LPQ99/LyMqEylLX4+Hjl5uaqW7duCg4Odto3cOBASdKpU6fMKA2l6LbbblP9+vWve5xhGJoxY4YCAwP16quvOu2bMGGCQkND9emnn153UW24JkJeJRATEyNJ6tevX4F9eW2rVq0qz5JQAXh7e0viw56727Fjh6ZMmaKXX35ZUVFRZpeDcvDjjz/q7NmzGjx4sOx2uxYtWqQ333xTH374oQ4cOGB2eShDTZo0kY+Pj9asWaO0tDSnfd99950k6dZbbzWjNJhg//79OnbsmLp161ZgSKavr6969uyppKQk/l1wU3y6qwT2798v6dI//lcKDQ1VeHi44xhUDkeOHNHy5ctVs2ZNtW7d2uxyUEZycnI0evRotWjRQn/+85/NLgflZOPGjZIu/QKnbdu22rt3r2Ofh4eHxo8fr7/+9a9mlYcyVLVqVb3++ut64YUX1KJFCw0aNEhBQUHavn27li9frscff1xPP/202WWinFzr81/+9v3791/1GLguQl4lkJKSIkkKCQkpdH9wcLCOHj1aniXBRNnZ2Ro1apRsNpvefvtthu+5sTfeeENxcXFav369o+cW7i9vON7f/vY3dejQQb/++qtatGihLVu26PHHH9ff/vY3NWrUSE8++aTJlaIsPP/886pdu7aeeOIJffDBB472rl27auTIkfxbUIkU5fNf/uPgXhiuCVQiubm5evTRR7V69WqNHTtWo0aNMrsklJG4uDhNnTpVzz//vDp06GB2OShHubm5kiQfHx9988036ty5swIDA9WjRw999dVX8vDw0N/+9jeTq0RZmTp1qkaPHq0JEyYoMTFRFy5cUGxsrHJychQdHa1FixaZXSKAckDIqwTyfoNztd/UpKamXvW3PHAfhmFo7Nixmjt3rkaOHKkPP/zQ7JJQhh5++GE1atRIkydPNrsUlLO8f887deqk2rVrO+2LiopSw4YNdfDgQZ0/f96E6lCWVq5cqVdeeUVPPfWUXnrpJdWtW1cBAQHq1q2blixZIj8/P40fP97sMlFOivL5L/9xcC+EvEog/5jrK507d07JycmMxXZzubm5GjNmjD777DMNGzZMs2bNkocHP/7uLC4uTnv27JGvr69jAXSLxaLZs2dLkm655RZZLBZ988035haKUtesWTNJUpUqVQrdn9d+8eLFcqoI5eV///ufJCk6OrrAvmrVqql169Y6cuSIkpOTy7s0mOBan//yt/MZ0D3xTF4l0KtXL02bNk3Lli3T0KFDnfYtW7bMcQzcU25urh577DHNnDlTQ4YM0Zw5c3gOrxIYM2ZMoe2rV6/W/v37NWjQIFWrVk2RkZHlWxjKXN4H/N27dxfYl52drQMHDiggIEDVqlUr79JQxrKysiRJp0+fLnR/XrvVai23mmCeJk2aqHbt2lqzZo3S09OdZtjMzMzU6tWrVbt2bTVu3NjEKlFmTF6nD+UgOzvbaNiwoWG1Wo0tW7Y42vMvhr53717zCkSZsdvtxujRow1JxgMPPMACyDAefvhhFkOvBPr162dIMj755BOn9r/85S+GJGPkyJEmVYay9MUXXxiSjKioKOP8+fNO+2bNmmVIMjp27GhSdSgLLIaOq7EYBisgVgY//fST+vfvL6vVqmHDhik4OFiLFi3S4cOHNXXqVE2cONHsElEGJk+erClTpigwMFB//OMfC10Tb/DgwWrXrl35FwdTjB49WrNnz9batWt18803m10OysjBgwfVtWtXnTp1SgMHDlTz5s21ZcsWrVy5UvXr19e6detUs2ZNs8tEKbPb7brtttsUExOj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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + "ax.plot(MR[1]/km, MR[0]/Msun,lw=2,label=f'B = {B:.2f} MeV $fm^{-3}$')\n", + "ax.set_ylabel(r'M [$M_{\\odot}$]', fontsize=16)\n", + "ax.set_xlabel('R [km]', fontsize=16)\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/_sources/test_Inference.ipynb.txt b/_sources/test_Inference.ipynb.txt new file mode 100644 index 0000000..12b2412 --- /dev/null +++ b/_sources/test_Inference.ipynb.txt @@ -0,0 +1,425 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## RMF EOS inference pipeline\n", + "\n", + "This is an example notebook about how to use our tools to analysis a observation/nuclear constraint on neutron star equation of stat. \n", + "\n", + "Here in this notebook, we are using a RMF EoS model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#Package we need:\n", + "import InferenceWorkflow.BayesianSampler as sampler\n", + "import InferenceWorkflow.Likelihood as likelihood\n", + "import InferenceWorkflow.prior as prior\n", + "import math\n", + "import numpy as np\n", + "\n", + "from TOVsolver.constant import oneoverfm_MeV, m_rho, m_w,G,c\n", + "import TOVsolver.main as main\n", + "import EOSgenerators.crust_EOS as crust\n", + "import EOSgenerators.fastRMF_EoS as RMF" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We need to define the crust, this crust and interface is unversial for all the equation of state here, we just change the core part of equation of state and that is come from the RMF computation. Crust as below, \"Tolos_crust_out.txt\" is BPS crust model. Then as in README, since that file energy_density and presurssure all in MeV/fm3, so we need some conversion. then just call \n", + "\n", + " ```sh\n", + " crust.PolyInterpolate\n", + " ```\n", + "\n", + "To finish the interface and make it ready to connect with core part" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#Tolos_crust_out = np.loadtxt('Tolos_crust_out.txt', delimiter=' ')\n", + "Tolos_crust_out = np.loadtxt('Tolos_crust_out.txt', delimiter=None, comments='#', usecols=(0, 1, 2, 3, 4))\n", + "eps_crust_out = Tolos_crust_out[:,3] * G / c**2\n", + "pres_crust_out = Tolos_crust_out[:,4] * G / c**4\n", + "\n", + "eps_crust, pres_crust = crust.PolyInterpolate(eps_crust_out, pres_crust_out)\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Set up prior\n", + "\n", + "Next step, we need to set up the prior, first use parameters array to specify the variable name, should consistent with what you need to call them.\n", + "\n", + "Define a prior transform function to define prior. Cube are set of random number from 0 to 1. This prior setting is standard set-up of UltraNest package, since we are using UltraNest to do nest-sampling. We provided \n", + "\n", + "\"normal_Prior\" and \"flat_prior\"\n", + "\n", + "two options call from prior. Here then the Parameters prior should all set\n", + "\n", + "------------------\n", + "\n", + "However, since we are doing Equation of state Inference from mass radius of neutron star measurement. The center density of the star should be also sampled. Otherwise will be a partially-defined prior, did not span all parameters space, and proved to be different with full-scope inference.\n", + "\n", + "This request as randomly generate a density from a EoS range, however, this process is not that trivial, since we need to determine the upper limit of the central density of neutron star --- different equation of state will predict different upper bound, so here we need to use the prior-setting EoS parameters computing the EOS by\n", + "\n", + "```sh\n", + "RMF.compute_EOS\n", + "```\n", + "\n", + "Compute out EOS, put into\n", + "\n", + "```sh\n", + "main.OutputMR\n", + "```\n", + "\n", + "find out Mass Radius of this equation of state, find out the last stable point of this equation of state.(first mass points that give the direvative to be negative)\n", + "\n", + "found out that index by len() function, then reset this max_d to be upper limit of this density range." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "parameters = ['g_sigma', 'g_omega','g_rho', 'kappa', 'lambda_0', 'zeta', 'Lambda_w','d1']\n", + "# for two or more MR measurements, define d2 or more depend on complexity.\n", + "# parameters = ['g_sigma', 'g_omega','g_rho', 'kappa', 'lambda_0', 'zeta', 'Lambda_w','d1', 'd2']\n", + "\n", + "def prior_transform(cube):\n", + " params = cube.copy()\n", + " params[0] = math.sqrt(prior.normal_Prior(107.5, 7.5,cube[0]))\n", + " params[2] = math.sqrt(prior.flat_prior(75,210,cube[2]))\n", + " params[1] = math.sqrt(prior.flat_prior(150,210,cube[1]))\n", + " params[3] = prior.normal_Prior(2.525/oneoverfm_MeV, 1.525/oneoverfm_MeV,cube[3])\n", + " params[4] = prior.normal_Prior(0.0045, 0.0205,cube[4])\n", + " params[5] = prior.flat_prior(0,0.04,cube[5])\n", + " params[6] = prior.flat_prior(0,0.045,cube[6])\n", + " \n", + " g_sigma = params[0]\n", + " g_omega = params[1]\n", + " g_rho = params[2]\n", + "\n", + " kappa = params[3]\n", + " lambda_0 = params[4]\n", + " zeta = params[5]\n", + " Lambda_w = params[6]\n", + " m_sig = 495 / oneoverfm_MeV\n", + "\n", + " theta = np.array([m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa,\n", + " lambda_0, zeta, Lambda_w])\n", + " \n", + " ep, pr = RMF.compute_EOS(eps_crust, pres_crust, theta)\n", + "\n", + " eps_total = np.hstack((eps_crust,ep))\n", + " \n", + " pres_total = np.hstack((pres_crust,pr))\n", + " \n", + " RFSU2R = []\n", + " MFSU2R = []\n", + " density = np.logspace(14.3, 15.6, 50)\n", + " if all(x 20 and MR[1][i] - MR[1][i-1]< 0:\n", + " break\n", + " if len(MFSU2R)==False:\n", + " params[7] = 0\n", + " # params[8] = 0\n", + " # this line for showing how to add one more observation\n", + " else:\n", + " max_index = len(MFSU2R)\n", + " max_d = np.log10(density[max_index-1])\n", + " params[7] = 14.3 + (max_d - 14.3) * cube[7]\n", + " # params[8] = 14.3 + (max_d - 14.3) * cube[8]\n", + " # this line for showing how to add one more observation\n", + " return params" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Set up likelihood\n", + "\n", + "We need to set up a likelihood, Using standard definition way of UltraNest, that is below.\n", + "\n", + "Here the likelihood is generated from a simulated mass radius measurement, which is $M = 1.4 M_{\\odot}$ and $R = 13$ km, With a 5% Mass radius measurement uncertainty, so here \n", + "\n", + " ```sh\n", + " likelihood.MRlikihood_Gaussian\n", + " ```\n", + "function will be use for our likelihood, please check [likelihood.MRlikihood_Gaussian](https://github.com/ChunHuangPhy/EoS_inference/blob/main/InferenceWorkflow/Likelihood.py) to see the original code, and more choice of likelihood.\n", + "eg:\n", + "1. If we have some real mass-radius measurements, say PSR J0030 or PSR J0740, come from NICER, a KDE kernel could be trained to feed into \n", + "\n", + " ```sh\n", + " likelihood.MRlikihood_kernel(eps_total,pres_total,x,d1)\n", + " ```\n", + "set the KDE kernel as a input for this function\n", + "\n", + "2. If we gain measurement from radio-timing, say only measure the neutron star mass, then\n", + "\n", + " ```sh\n", + " likelihood.Masslikihood_Gaussian(eps_total,pres_total,x,d1)\n", + " ```\n", + "Which will give the likelihood from single mass measurement, x is the parameters of that measurement, you should specify where this measurement mass is located and what is the sigma width of this mass measurement\n", + "\n", + "3. If we have nuclear measurements, and want to constrain this RMF model by nuclear properties like K(The Incompressibility of nuclear matter),J ( the symmetry energy at saturation density) and L( the slope of symmetry energy at saturation density). You can choose:\n", + "\n", + " ```sh\n", + " likelihood.Kliklihood(theta,K_low,K_up)\n", + " likelihood.Jliklihood(theta,K_low,K_up)\n", + " likelihood.Lliklihood(theta,K_low,K_up)\n", + " ```\n", + "We are defaulting a hard-cut flat constrain, so if you don't like this default hard cut, also could define the likelihood by youself with similiar style.\n", + "\n", + "4. If we have a Tidal measurements from Gravitational wave detector, we can use it to do constraint:\n", + "\n", + " ```sh\n", + " likelihood.TidalLikihood_kernel(eps_total,pres_total,x,d1)\n", + " ```\n", + "Where x is sampled distribution from real measurements, the standard is \n", + "\n", + "kernel, chrip = x, \n", + "\n", + "where the kernel is a whole set sampling from GW event, that is [chrip mass, M2/M1, tidal of M1, tidal of M2] four quantities. Chrip is the single smapling that comes only the chrip mass sampling.\n", + "\n", + "\n", + "\n", + "5. To calculate the log-likelihood for the pure neutron matter (PNM) equation of state (EoS) using chiral effective field theory (chiEFT) constraints, the function\n", + " \n", + " `likelihood.chiEFT_PNM(EoS_PNM, type=\"Gaussian\", contraint_quantity=\"e\", enlargement=0)`\n", + "\n", + "EoS_PNM is a 3D array of number density (rho), energy density (e) and pressure (p) with unit fm^-3, MeV.fm^-3 and MeV.fm^-3. \n", + "\n", + "compares PNM EoS data with chiEFT-derived constraints for either energy per neutron \\( E/N \\) or pressure \\( p \\),\n", + "depending on the specified `contraint_quantity` parameter (\"e\" for energy or \"p\" for pressure). \n", + "\n", + "The likelihood model can be either \"Gaussian\" or \"Super Gaussian\" with an optional `enlargement` factor for the Super Gaussian to flatten its peak. e.g., 0.05 for 5% enlargement. \n", + "\n", + "The function calculates the sum of log-likelihoods over densities of 0.08, 0.12, and 0.16 fm\\(^-3\\), utilizing energy constraints from Huth et al. (Nature, 2022) and pressure constraints from Hebeler et al. (ApJ, 2013). This enables a statistical comparison of the PNM EoS data against chiEFT-derived reference values." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import scipy.stats as stats\n", + "def likelihood_transform(theta):\n", + " # This is a demonstration code for only introduce one constraint from one mass-radius observation.\n", + " # Could be very easy to implement more constraint from nuclear quantity, since that do not need to\n", + " # sample more central density of real neutron star. If user want to expand to two mass radius measurement \n", + " # the code could be:\n", + " \n", + " # g_sigma, g_omega,g_rho, kappa, lambda_0, zeta, Lambda_w, d1, d2 = theta\n", + " g_sigma, g_omega,g_rho, kappa, lambda_0, zeta, Lambda_w, d1 = theta # comment this line if you need two measuremnts.\n", + " \n", + " ####################################################################################################################\n", + " ############ This is the block to compute out all the EoS you need based on your parameters#########################\n", + " m_sig = 495 / oneoverfm_MeV\n", + " m_w = 3.96544\n", + " m_rho = 3.86662\n", + " theta1 = np.array([m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa, lambda_0, zeta, Lambda_w])\n", + " ep, pr = RMF.compute_EOS(eps_crust, pres_crust, theta1)\n", + "\n", + " eps_total = np.hstack((eps_crust,ep))\n", + " pres_total = np.hstack((pres_crust,pr))\n", + " ####################################################################################################################\n", + " \n", + " # probMRgaussian1 = likelihood.MRlikihood_Gaussian(eps_total,pres_total,(1.4,13,0.07,0.65),d1)\n", + " # probMRgaussian2 = likelihood.MRlikihood_Gaussian(eps_total,pres_total,(2.0,12,0.1,0.6),d2)\n", + " # probMR = probMRgaussian1 + probMRgaussian2\n", + " \n", + " # Same could be extended to more distributions. Notice the prior definition should be change accordingly\n", + " # by define more density parameters like here d2.\n", + " \n", + " #1. This line is to compute MR likelihood from a Simulated MR measurement:\n", + " \n", + " \n", + " probMRgaussian = likelihood.MRlikihood_Gaussian(eps_total,pres_total,(1.4,13,0.07,0.65),d1)\n", + " \n", + " #2. This is a block that constrain from given real MR measurement, say J0030:\n", + " #J0030 = numpy.loadtxt('data/PST_equal_sampled_MR.txt', delimiter=' ')\n", + " #J30R_list, J30M_list = zip(*J0030)\n", + " #J30R_list = numpy.array(J30R_list).T \n", + " #J30M_list = numpy.array(J30M_list).T\n", + " #Rmin = J30R_list.min()\n", + " #Rmax = J30R_list.max()\n", + " #Mmin = J30M_list.min()\n", + " #Mmax = J30M_list.max()\n", + " #X3, Y3 = numpy.mgrid[Rmin:Rmax:500j, Mmin:Mmax:100j]\n", + " #positions = numpy.vstack([X3.ravel(), Y3.ravel()])\n", + " #values = numpy.vstack([J30R_list, J30M_list])\n", + " #kernel3 = stats.gaussian_kde(values)\n", + " #probMRJ0030 = likelihood.MRlikelihhood_kernel(eps_total,pres_total,kernel3,d1)\n", + " \n", + " #3. This is to compute the constraint from experiment of nuclearmatter\n", + " # 250" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import corner\n", + "\n", + "figure = corner.corner(samples,labels=[ r\"$g_{\\sigma}$\", r\"$g_{\\omega}$\",r\"$g_{\\rho}$\",r\"$\\kappa$\", r\"$\\lambda_0$\",r\"$\\zeta$\",r\"$\\Lambda_w$\",\"d1\",\"d2\"],\n", + " smooth=0.9,\n", + " label_kwargs=dict(fontsize=22),\n", + " title_kwargs=dict(fontsize=22),\n", + " quantiles=[0.16, 0.84],\n", + " levels=(1 - np.exp(-0.5), 1 - np.exp(-2), 1 - np.exp(-9 / 2.)),\n", + " plot_density=False,\n", + " plot_datapoints=False,\n", + " fill_contours=True,\n", + " show_titles=True,\n", + " max_n_ticks=3,\n", + " title_fmt= '.2f')\n", + " #,range=[(10,80),(0.56,0.64),(0.10, 0.2),(150,600),(40,80),(50,75)])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + }, + "vscode": { + "interpreter": { + "hash": "e4481115b400f107b26d360e6549f546bb0e8bc1af70e4e66085bfa77a017a39" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/_sources/test_TOVsolver.ipynb.txt b/_sources/test_TOVsolver.ipynb.txt new file mode 100644 index 0000000..3c55fef --- /dev/null +++ b/_sources/test_TOVsolver.ipynb.txt @@ -0,0 +1,261 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## TOVsolver module guide\n", + "\n", + "TOV solver part we have multiple function, we can generate a Mass radius function from 'Test_EOS.csv' file here easily" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mass Radius file will be generated and stored as 2-d array. The first column is Radius, second one is mass\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "data": { + "image/png": "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R49KEwfCOk79fSAQv0vym0YNNG3aVE888YQeeughdenSRVdffbViYmK0ceNGLVq0SBMmTNB9991ndpkwydnWVqy4vuOZ1l+E9b322muSpOHDh5tcCerTs88+q6+++korV66U0+k0uxyYZPfu3crJyVHfvn01ceJEvfTSS5X29+nTRx999JHatGljUoWob3/+85+1cuVKXXfddbrmmmvUsWNHZWVl6b333lNKSooWLFhgdokIgH379mnRokVq0aKFevToISkwv0sS8mrowQcfVKtWrXT33XdXmn2zX79+GjNmjC+Ro/HJzc2VJMXFxVW7v7yLb/lxaJxeeeUVffbZZxoyZIiuvPJKs8tBPdm+fbsee+wx/e53v9Oll15qdjkwUfmwjnXr1mnLli2aM2eOrrnmGuXm5uovf/mLZs2apRtuuEGrV682uVLUl65du2r16tW68cYb9e9//9u3PT4+3jfjJqyltLRUY8eOlcvl0lNPPSW73S4pML9L0l2zhqZPn67bb79dkydPVmZmpgoKCrRy5Uq53W4NHjxY7733ntklAmigPvnkE917771KSUnRvHnzzC4H9cTr9er2229Xq1atNH36dLPLgcnKu2N6PB79+c9/1u233674+HilpqbqlVde0cUXX6w1a9Zo5cqVJleK+vLdd99pwIABSkhI0Nq1a1VYWKhdu3bprrvu0v33368bb7zR7BLhR16vV3feeaeWL1+u8ePHa+zYsQG9HiGvBr788kv98Y9/1L333qtHHnlEbdq0UVRUlPr376///Oc/ioiI0O9//3uzy4RJyv/qcrq/rpSvbXK6v87A2hYuXKjrr79ezZs315dffqmWLVuaXRLqyXPPPafVq1dr9uzZVSbiQeNT8Tvg6quvrrL/qquuklT2iz+sr7S0VKNHj5bNZtMHH3yg888/X5GRkWrXrp2efvppjR49Wu+//76WLFlidqnwA8MwNH78eM2bN09jxoyp0l07EL9LEvJq4JNPPpFUtoj6qZKSktSjRw/t27dP2dnZ9V0aGoCK/aSrc7Z+1rCuzz//XKNGjVJiYqKWLFmi9u3bm10S6tH69etlGIYGDx4sm83me5R/l7z88suy2WwaNWqUuYWiXnTs2NHXNatJkyZV9pdvO3HiRD1WBbNs3bpVu3bt0sUXX1ztH4HKJ/Rbu3ZtfZcGP/N6vbrrrrv0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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import TOVsolver.main as main\n", + "import TOVsolver.EoS_import as EoS_import\n", + "from matplotlib import pyplot\n", + "import matplotlib.pyplot as plt\n", + "import TOVsolver.constant\n", + "from itertools import repeat\n", + "import numpy\n", + "# Main has two functions\n", + "# Output.MRT() returns the mass, radius, tidal\n", + "# OutputC_s() returns the speed of sound\n", + "# Using the main functions with either arrays of density and pressure or a .csv with density and pressure columns\n", + "# Function argument is either (filename = ) OR (density = , pressure = )\n", + "# Example: main.OutputMR(filename = 'file.csv') OR main.OutputMR(density = array1, pressure = array2)\n", + "MR = main.OutputMR(\"Test_EOS.csv\").T\n", + "# Plot the Mass-Radius curve\n", + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + "ax.plot(MR[0], MR[1],lw=2)\n", + "ax.set_ylabel(r'M [$M_{\\odot}$]', fontsize=16)\n", + "ax.set_xlabel('R [km]', fontsize=16)\n", + "ax.set_xlim(8., 20.)\n", + "ax.set_ylim(0,3)\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()\n", + "\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can generate the tidal property from it also,like tidal deformability" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mass Radius and tidal will be generated as the 3-d array. The first column is Radius, second one is mass,last is tidal\n" + ] + }, + { + "data": { + "image/png": "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4/rrrzd+97vfGePHjzfi4+MNSca0adPat/NoE7/73e8MSUafPn2Mu+++23jkkUeMG264wQgPDzfCwsKMv//97x7t2/r3QkKen33zzTdGWFiYkZKSYpSUlHicmz9/viHJGD9+fIB6h7b2/vvvG7t27TIMwzBmz57d4j/qU6ZMMSQZOTk5TR6fMmWKv7sLP/D2Hti3b5/x1FNPGeXl5R7Hy8rKjIsvvtiQZLz66qvt0WW0MV/+HXD3pz/9ybBarca8efMIeUHOl3tgz549RlxcnJGammrs3r270fna2lp/dhV+4ss98POf/9yQZLz99tsex3fv3m3ExcUZUVFRRlVVlb+7jDb2+uuvG+vWrWt0fN26dYbNZjO6dOni8b9rW/9eyHBNP9u1a5ccDofS09MVFxfnce7qq6+WJB06dCgQXYMf/OxnP1NycnKr7QzD0OLFixUbG6spU6Z4nMvNzVVCQoKWLFnS5htjwv+8vQfOOOMM3XfffYqOjvY4HhMTo+zsbEnS2rVr/dJH+Je394C74uJi5ebmKicnRxdeeKGfeob24ss9MGvWLJWWlurpp59W7969G523WlkIPRj5cg/s3LlTFotFV155pcfx3r1769xzz1VlZaWOHTvmj27Cj66//noNHTq00fGhQ4dq+PDhOnz4sLZu3SrJP78XEvL8LDU1VRERESooKGj0f9B3331XkjRixIhAdA0BVFRUpAMHDig9PV0xMTEe5yIjI3X55Zdr//79Ki4uDlAPEUg2m00Sv9x1FA6HQ+PHj1dycnKjD3eENsMw9Oqrr6pr164aMWKEPv74Y82bN09//OMftWrVKjkcjkB3Ee1g4MCBMgyj0arte/fu1WeffabzzjtPp512WoB6B3/48ee8P34v5DcIP+vatatmzpyp3/72txowYICuueYaderUSVu3btWqVat077336sEHHwx0N9HOioqKJJ3Yc/HH3PdibK4NQtezzz4rSRo1alSAe4L2sGDBAv373//W+vXrZbfbA90dtKOvv/5ahw8f1iWXXKL77rtPTz/9tMf5Cy+8UO+884569uwZoB6iPfz3f/+31q9fr+uvv17XXnut+vbtq++++05vvPGGkpOT9eqrrwa6i2hDe/bs0apVq5SYmKjzzjtPkn9+LyTktYOHH35YSUlJmjhxohYuXOg6PmTIEN1xxx2uNI+Oo6SkRJIUHx/f5Hnn0F5nO3QczzzzjJYvX64RI0boqquuCnR34GdfffWVHnvsMf3qV7/SpZdeGujuoJ05p2t88skn+uKLL7R06VJde+21Kikp0axZs7Ro0SKNHTtWGzZsCHBP4U/nnHOONmzYoBtvvFGvvfaa63hCQoJrxU2EhtraWt15552qrq5WXl6ewsPDJfnn90KGa7aDxx9/XOPGjVNubq727t2rsrIyrV+/XnV1dRo+fLjeeOONQHcRgAn861//0gMPPKDk5GQtW7Ys0N2BnzkcDo0bN05JSUl6/PHHA90dBIBzOGZ9fb3++7//W+PGjVNCQoJSUlL0zDPP6Cc/+Yk++ugjrV+/PsA9hT9t2rRJl112mbp06aKPP/5Y5eXl2rlzp+655x5lZ2frxhtvDHQX0QYcDofuvvturVu3ThMmTNCdd97p1/cj5PnZ6tWr9fvf/14PPPCAHn30UfXs2VMxMTFKT0/XP//5T0VFRSkrKyvQ3UQ7c/6lprm/yDj3Q2nuLzoIPStWrNANN9yg008/XatXr1aPHj0C3SX42Z///Gdt2LBBixcvbrQADzoG93/jr7nmmkbnf/GLX0hqCAEITbW1tbr55ptlsVj01ltv6aKLLlJ0dLTOPPNM/eEPf9DNN9+sN998U2vWrAl0V3EKDMPQhAkTtGzZMt1xxx2Nhmb74/dCQp6f/etf/5IkDR8+vNG5bt266bzzztOePXv0/ffft3fXEEDuY6ub0trYbISW9957T2PGjNFpp52mNWvW6Kyzzgp0l9AOtmzZIsMwNHz4cFksFteX8/Pir3/9qywWi8aMGRPYjsJv+vbt6xqu1blz50bnnccqKyvbsVdoT9u3b9fOnTv1k5/8pMk/9jgX5/v444/bu2toIw6HQ/fcc4+effZZ3XrrrXruuecUFuYZwfzxeyFz8vyspqZGkvTdd981ed55nMn2HUtqaqqSkpJUUFCg8vJyj5WUqqqqtG7dOiUlJalv374B7CXagzPgdenSRWvWrOF/8w4kIyOjyRVUv/nmG7377rs6++yzlZ6ezpYKIcxut2vIkCH64IMP9Pnnn+uyyy7zOP/5559LklJSUgLQO7QHfk8MbQ6HQ5mZmVq6dKluvvlmvfjii64/7Ljzx++FVPL8LD09XZI0b968RiXY559/XsXFxRo0aJA6deoUiO4hQCwWizIzM1VWVqYZM2Z4nJs9e7aOHDmizMxMWSyWAPUQ7cEZ8BISErRmzRoqtx3M+PHjtXjx4kZfv/3tbyU1hMDFixfr/vvvD3BP4U/33XefJGnatGmqrq52Hd++fbuee+45derUqdH+aQgd5557ruLj41VQUNBoC4UDBw7oqaeekiQNGzYsAL3DqXBW8JYuXaobb7xRy5YtazLgSf75vdBisNuyX9XX1+tnP/uZ8vPz1a1bN11zzTVKSEhQYWGh3n//fdntdq1atarRX+8QnBYvXuyaIL9161Z98sknSk9Pd/3lZcyYMa6hV+Xl5brsssu0ZcsWjRw5UoMGDVJhYaGWL1+utLQ0rV+/vtFeKTA/b++B7du3Ky0tTdXV1brlllvUv3//Rq+VkpKicePGtWf30QZ8+XegKfn5+Ro+fLgmTpzYaN4GgoMv94BhGLrpppv02muvqX///ho9erRKSkr0+uuvq6KiQi+88IJuv/32QF0KTpIv98CSJUuUmZmpsLAwXX311RowYIC+/fZbvfnmmyotLdX999+vv/zlL4G6FJykadOmafr06YqNjdWvfvWrJkdujBkzRmlpaZL88HuhAb+rqqoy5syZY1x00UVGdHS0YbVajTPOOMO47bbbjK1btwa6e2hDv/zlLw1JzX5NnTrVo/3Ro0eNrKwso1evXobNZjN69eplZGVlGUePHg3MBeCUeXsPrFmzpsV2koyMjIyAXgtOjq//DvyY896YOHFi+3QYbc7Xe6C2ttaYN2+eMXDgQMNutxtxcXHGqFGjjPz8/MBcAE6Zr/fAqlWrjP/6r/8yunXrZoSHhxtxcXHG0KFDjeeffz4wF4BT1to9IMlYunSpx3Pa8vdCKnkAAAAAEEKYkwcAAAAAIYSQBwAAAAAhhJAHAAAAACGEkAcAAAAAIYSQBwAAAAAhhJAHAAAAACGEkAcAAAAAIYSQBwAAAAAhhJAHAAAAACGEkAcAwCkaNmyYLBaL6yslJaVRG+e5QHvrrbc8+mqxWJSfnx/obgEA2hAhDwDQYaSkpDQKOJGRkTrzzDN1xx136D//+c8pvf65556r9PR0XXLJJW3U47bXtWtXpaenKz09XXFxcYHuDgDADyyGYRiB7gQAAO0hJSVFu3fvVmpqqrp37y5JKikpUXFxsaqqqhQeHq6lS5fqzjvv9Ol1hw0bprVr12rNmjUaNmxYk22cVTwzfex6028AQPChkgcA6HAeffRRrV+/XuvXr9fWrVt14MABjR07VvX19br//vt15MiRQHcRAICTRsgDAHR4CQkJWrJkiWJiYnTs2DGtXLky0F0CAOCkEfIAAJAUFxenfv36SZJ27drVbu9rGIYeeughWSwW9e3bV7t373b1wX0Rl8WLF+vCCy9UdHS0zjjjDD300EM6duyYJKm+vl5z587VwIEDFRUVpZ49e+qRRx5RTU1Nu10HAMA8CHkAABxXUVEhSYqOjm6X96uvr9fdd9+tJ598Uueee67Wr1+v5OTkRu1+85vfaMKECTp27Jj69OmjQ4cO6cknn9SYMWPkcDg0duxYPfzwwzIMQ8nJyTpw4IDmzJmjCRMmtMt1AADMhZAHAICkoqIi7dixQ5KUlpbm9/erqanRzTffrOeee06DBw/W2rVrlZiY2Kjd/v37tWTJEq1atUrFxcXaunWrNm/erK5du2r16tW64YYbtGnTJm3evFmff/65tm/frtWrVysiIkIvvPCCPv/8c79fCwDAXAh5AIAOrbS0VKtWrdKYMWNUV1en9PR0DR061K/vWVFRoWuuuUavv/66hg0bplWrVqlLly5Ntq2rq9O0adN0xRVXuI6de+65uvfeeyU17Hv35JNPegTTYcOG6frrr5ckrVixwn8XAgAwJUIeAKDDGT9+vGufvPj4eI0cOVLbt2/XzTffrP/93//163uXlJRo9OjRWrFiha6++motX75cnTp1avE5d999d6NjzlDXpUsXjRkzptH5Cy+8UJK0c+fOU+4zACC4WAPdAQAA2ptznzzDMHTw4EHt3LlTNptNl1xyiRISEvz63iNGjNAnn3yiW265RS+88IJsNluL7bt169bkpuXdunWTJPXp06fZ50lSWVnZKfYYABBsqOQBADoc5z55BQUF2rFjh9avX69OnTrp4Ycf1rJly/z63sXFxZKk8847r9WAJzW/CIxzc/XWzptp83UAQPsg5AEAOrz09HQtWrRIkvSrX/1KpaWlfnuv5cuXKzY2VpMnT9aCBQv89j4AgI6LkAcAgKQxY8bopz/9qQ4fPqx58+b57X2GDBmif/7zn4qOjlZWVpaeeuopv70XAKBjIuQBAHDcI488Ikn685//7Ne5bBkZGXr77bcVGRmpBx54QEuWLPHbewEAOh5CHgAAx11zzTUaMGCAjhw5ooULF/r1vX72s5/pjTfekM1m07333uv3uYAAgI6DkAcAwHEWi0UPP/ywJGnevHmqqqry6/v9/Oc/16uvvqrw8HCNGzdOr776ql/fDwDQMRDyAABwc8cddygpKUkHDx7Us88+6/f3u/baa/XSSy9Jkm6//Xa99dZbfn9PAEBoY588AECHsWvXrlbbREREaP/+/W3+3i1tZTB27FjV1dV5HEtJSWnxOcOGDWvx/Lhx4zRu3Dif+wkACH6EPAAA2siDDz6o+Ph49ejRQ//4xz8C3Z0mffDBB8rNzZUkbd26NcC9AQD4AyEPAIA28tlnn0mSkpOTA9yT5v3www8qKCgIdDcAAH5kMVoa6wEAAAAACCosvAIAAAAAIYSQBwAAAAAhhJAHAAAAACGEkAcAAAAAIYSQBwAAAAAhhJAHAAAAACGEkAcAAAAAIYSQBwAAAAAhhJAHAAAAACGEkAcAAAAAIYSQBwAAAAAh5P8D7xkmh42WW1oAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# try solve tidal property\n", + "MRT = main.OutputMRT(\"Test_EOS.csv\").T\n", + "# Plot the Radius and Tidal curve\n", + "\n", + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + " \n", + "ax.plot(MRT[0], MRT[2],lw=2)\n", + "ax.set_ylabel(r'$\\Lambda$', fontsize=16)\n", + "ax.set_xlabel('R [km]', fontsize=16)\n", + "ax.set_xlim(8., 20.)\n", + "ax.set_ylim(0,1000)\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot out Tidal with mass" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot the Mass and Tidal curve\n", + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + "ax.plot(MRT[1], MRT[2],lw=2)\n", + "ax.set_ylabel(r'$\\Lambda$', fontsize=16)\n", + "ax.set_xlabel(r'M [$M_{\\odot}$]', fontsize=16)\n", + "ax.set_xlim(0., 3.)\n", + "ax.set_ylim(0,1000)\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Can generate the speed of sound from the given equation of state. This do not need to solve TOV equation, the speed of sound is defined by the derivative of P(rho) curve, this quantity is very of interest, since whether there is a upper limit of this speed of sound (except for the casaulity limit c_s < 1 ) is a very interesting and hot topic" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "from TOVsolver.constant import c,G \n", + "# here we plotting out speed of sound with Test_EOS, the density is in g/cm3\n", + "C_s,rho = main.OutputC_s(\"Test_EOS.csv\")\n", + "\n", + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + "ax.plot(rho, C_s,lw=2)\n", + "ax.set_xlabel(r'$\\epsilon$', fontsize=16)\n", + "ax.set_ylabel(r'C_s', fontsize=16)\n", + "plt.xscale(\"log\")\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This package can easily integrated into a Baysian inference flow, to do bayesian inference, Here, we generated several (50) EoSs from RMF model, and try to use a loop to compute out all of their MRT property. That could be a in-between step of doing bayesian inference of neutron star EoS. Remember these EoS could also be polytrope, or anything that generate from your own EoS computation code. Next step for us will be integrate our EoS computation into this package and also the Bayesian analysis." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + }, + "orig_nbformat": 4, + "vscode": { + "interpreter": { + "hash": "e4481115b400f107b26d360e6549f546bb0e8bc1af70e4e66085bfa77a017a39" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +} diff --git a/_static/_sphinx_javascript_frameworks_compat.js b/_static/_sphinx_javascript_frameworks_compat.js new file mode 100644 index 0000000..8141580 --- /dev/null +++ b/_static/_sphinx_javascript_frameworks_compat.js @@ -0,0 +1,123 @@ +/* Compatability shim for jQuery and underscores.js. + * + * Copyright Sphinx contributors + * Released under the two clause BSD licence + */ + +/** + * small helper function to urldecode strings + * + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/decodeURIComponent#Decoding_query_parameters_from_a_URL + */ +jQuery.urldecode = function(x) { + if (!x) { + return x + } + return decodeURIComponent(x.replace(/\+/g, ' ')); +}; + +/** + * small helper function to urlencode strings + */ +jQuery.urlencode = encodeURIComponent; + +/** + * This function returns the parsed url parameters of the + * current request. Multiple values per key are supported, + * it will always return arrays of strings for the value parts. + */ +jQuery.getQueryParameters = function(s) { + if (typeof s === 'undefined') + s = document.location.search; + var parts = s.substr(s.indexOf('?') + 1).split('&'); + var result = {}; + for (var i = 0; i < parts.length; i++) { + var tmp = parts[i].split('=', 2); + var key = jQuery.urldecode(tmp[0]); + var value = jQuery.urldecode(tmp[1]); + if (key in result) + result[key].push(value); + else + result[key] = [value]; + } + return result; +}; + +/** + * highlight a given string on a jquery object by wrapping it in + * span elements with the given class name. + */ +jQuery.fn.highlightText = function(text, className) { + function highlight(node, addItems) { + if (node.nodeType === 3) { + var val = node.nodeValue; + var pos = val.toLowerCase().indexOf(text); + if (pos >= 0 && + !jQuery(node.parentNode).hasClass(className) && + !jQuery(node.parentNode).hasClass("nohighlight")) { + var span; + var isInSVG = jQuery(node).closest("body, svg, foreignObject").is("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.className = className; + } + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + node.parentNode.insertBefore(span, node.parentNode.insertBefore( + document.createTextNode(val.substr(pos + text.length)), + node.nextSibling)); + node.nodeValue = val.substr(0, pos); + if (isInSVG) { + var rect = document.createElementNS("http://www.w3.org/2000/svg", "rect"); + var bbox = node.parentElement.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute('class', className); + addItems.push({ + "parent": node.parentNode, + "target": rect}); + } + } + } + else if (!jQuery(node).is("button, select, textarea")) { + jQuery.each(node.childNodes, function() { + highlight(this, addItems); + }); + } + } + var addItems = []; + var result = this.each(function() { + highlight(this, addItems); + }); + for (var i = 0; i < addItems.length; ++i) { + jQuery(addItems[i].parent).before(addItems[i].target); + } + return result; +}; + +/* + * backward compatibility for jQuery.browser + * This will be supported until firefox bug is fixed. + */ +if (!jQuery.browser) { + jQuery.uaMatch = function(ua) { + ua = ua.toLowerCase(); + + var match = /(chrome)[ \/]([\w.]+)/.exec(ua) || + /(webkit)[ \/]([\w.]+)/.exec(ua) || + /(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua) || + /(msie) ([\w.]+)/.exec(ua) || + ua.indexOf("compatible") < 0 && /(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua) || + []; + + return { + browser: match[ 1 ] || "", + version: match[ 2 ] || "0" + }; + }; + jQuery.browser = {}; + jQuery.browser[jQuery.uaMatch(navigator.userAgent).browser] = true; +} diff --git a/_static/basic.css b/_static/basic.css new file mode 100644 index 0000000..7ebbd6d --- /dev/null +++ b/_static/basic.css @@ -0,0 +1,914 @@ +/* + * Sphinx stylesheet -- basic theme. + */ + +/* -- main layout ----------------------------------------------------------- */ + +div.clearer { + clear: both; +} + +div.section::after { + display: block; + content: ''; + clear: left; +} + +/* -- relbar ---------------------------------------------------------------- */ + +div.related { + width: 100%; + font-size: 90%; +} + +div.related h3 { + display: none; +} + +div.related ul { + margin: 0; + padding: 0 0 0 10px; + list-style: none; +} + +div.related li { + display: inline; +} + +div.related li.right { + float: right; + margin-right: 5px; +} + +/* -- sidebar --------------------------------------------------------------- */ + +div.sphinxsidebarwrapper { + padding: 10px 5px 0 10px; +} + +div.sphinxsidebar { + float: left; + width: 230px; + margin-left: -100%; + font-size: 90%; + word-wrap: break-word; + overflow-wrap : break-word; +} + +div.sphinxsidebar ul { + list-style: none; +} + +div.sphinxsidebar ul ul, +div.sphinxsidebar ul.want-points { + margin-left: 20px; + list-style: square; +} + +div.sphinxsidebar ul ul { + margin-top: 0; + margin-bottom: 0; +} + +div.sphinxsidebar form { + margin-top: 10px; +} + +div.sphinxsidebar input { + border: 1px solid #98dbcc; + font-family: sans-serif; + font-size: 1em; +} + +div.sphinxsidebar #searchbox form.search { + overflow: hidden; +} + +div.sphinxsidebar #searchbox input[type="text"] { + float: left; + width: 80%; + padding: 0.25em; + box-sizing: border-box; +} + +div.sphinxsidebar #searchbox input[type="submit"] { + float: left; + width: 20%; + border-left: none; + padding: 0.25em; + box-sizing: border-box; +} + + +img { + border: 0; + max-width: 100%; +} + +/* -- search page ----------------------------------------------------------- */ + +ul.search { + margin-top: 10px; +} + +ul.search li { + padding: 5px 0; +} + +ul.search li a { + font-weight: bold; +} + +ul.search li p.context { + color: #888; + margin: 2px 0 0 30px; + text-align: left; +} + +ul.keywordmatches li.goodmatch a { + font-weight: bold; +} + +/* -- index page ------------------------------------------------------------ */ + +table.contentstable { + width: 90%; + margin-left: auto; + margin-right: auto; +} + +table.contentstable p.biglink { + line-height: 150%; +} + +a.biglink { + font-size: 1.3em; +} + +span.linkdescr { + font-style: italic; + padding-top: 5px; + font-size: 90%; +} + +/* -- general index --------------------------------------------------------- */ + +table.indextable { + width: 100%; +} + +table.indextable td { + text-align: left; + vertical-align: top; +} + +table.indextable ul { + margin-top: 0; + margin-bottom: 0; + list-style-type: none; +} + +table.indextable > tbody > tr > td > ul { + padding-left: 0em; +} + +table.indextable tr.pcap { + height: 10px; +} + +table.indextable tr.cap { + margin-top: 10px; + background-color: #f2f2f2; +} + +img.toggler { + margin-right: 3px; + margin-top: 3px; + cursor: pointer; +} + +div.modindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +div.genindex-jumpbox { + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; + margin: 1em 0 1em 0; + padding: 0.4em; +} + +/* -- domain module index --------------------------------------------------- */ + +table.modindextable td { + padding: 2px; + border-collapse: collapse; +} + +/* -- general body styles --------------------------------------------------- */ + +div.body { + min-width: 360px; + max-width: 800px; +} + +div.body p, div.body dd, div.body li, div.body blockquote { + -moz-hyphens: auto; + -ms-hyphens: auto; + -webkit-hyphens: auto; + hyphens: auto; +} + +a.headerlink { + visibility: hidden; +} + +a:visited { + color: #551A8B; +} + +h1:hover > a.headerlink, +h2:hover > a.headerlink, +h3:hover > a.headerlink, +h4:hover > a.headerlink, +h5:hover > a.headerlink, +h6:hover > a.headerlink, +dt:hover > a.headerlink, +caption:hover > a.headerlink, +p.caption:hover > a.headerlink, +div.code-block-caption:hover > a.headerlink { + visibility: visible; +} + +div.body p.caption { + text-align: inherit; +} + +div.body td { + text-align: left; +} + +.first { + margin-top: 0 !important; +} + +p.rubric { + margin-top: 30px; + font-weight: bold; +} + +img.align-left, figure.align-left, .figure.align-left, object.align-left { + clear: left; + float: left; + margin-right: 1em; +} + +img.align-right, figure.align-right, .figure.align-right, object.align-right { + clear: right; + float: right; + margin-left: 1em; +} + +img.align-center, figure.align-center, .figure.align-center, object.align-center { + display: block; + margin-left: auto; + margin-right: auto; +} + +img.align-default, figure.align-default, .figure.align-default { + display: block; + margin-left: auto; + margin-right: auto; +} + +.align-left { + text-align: left; +} + +.align-center { + text-align: center; +} + +.align-default { + text-align: center; +} + +.align-right { + text-align: right; +} + +/* -- sidebars -------------------------------------------------------------- */ + +div.sidebar, +aside.sidebar { + margin: 0 0 0.5em 1em; + border: 1px solid #ddb; + padding: 7px; + background-color: #ffe; + width: 40%; + float: right; + clear: right; + overflow-x: auto; +} + +p.sidebar-title { + font-weight: bold; +} + +nav.contents, +aside.topic, +div.admonition, div.topic, blockquote { + clear: left; +} + +/* -- topics ---------------------------------------------------------------- */ + +nav.contents, +aside.topic, +div.topic { + border: 1px solid #ccc; + padding: 7px; + margin: 10px 0 10px 0; +} + +p.topic-title { + font-size: 1.1em; + font-weight: bold; + margin-top: 10px; +} + +/* -- admonitions ----------------------------------------------------------- */ + +div.admonition { + margin-top: 10px; + margin-bottom: 10px; + padding: 7px; +} + +div.admonition dt { + font-weight: bold; +} + +p.admonition-title { + margin: 0px 10px 5px 0px; + font-weight: bold; +} + +div.body p.centered { + text-align: center; + margin-top: 25px; +} + +/* -- content of sidebars/topics/admonitions -------------------------------- */ + +div.sidebar > :last-child, +aside.sidebar > :last-child, +nav.contents > :last-child, +aside.topic > :last-child, +div.topic > :last-child, +div.admonition > :last-child { + margin-bottom: 0; +} + +div.sidebar::after, +aside.sidebar::after, +nav.contents::after, +aside.topic::after, +div.topic::after, +div.admonition::after, +blockquote::after { + display: block; + content: ''; + clear: both; +} + +/* -- tables ---------------------------------------------------------------- */ + +table.docutils { + margin-top: 10px; + margin-bottom: 10px; + border: 0; + border-collapse: collapse; +} + +table.align-center { + margin-left: auto; + margin-right: auto; +} + +table.align-default { + margin-left: auto; + margin-right: auto; +} + +table caption span.caption-number { + font-style: italic; +} + +table caption span.caption-text { +} + +table.docutils td, table.docutils th { + padding: 1px 8px 1px 5px; + border-top: 0; + border-left: 0; + border-right: 0; + border-bottom: 1px solid #aaa; +} + +th { + text-align: left; + padding-right: 5px; +} + +table.citation { + border-left: solid 1px gray; + margin-left: 1px; +} + +table.citation td { + border-bottom: none; +} + +th > :first-child, +td > :first-child { + margin-top: 0px; +} + +th > :last-child, +td > :last-child { + margin-bottom: 0px; +} + +/* -- figures --------------------------------------------------------------- */ + +div.figure, figure { + margin: 0.5em; + padding: 0.5em; +} + +div.figure p.caption, figcaption { + padding: 0.3em; +} + +div.figure p.caption span.caption-number, +figcaption span.caption-number { + font-style: italic; +} + +div.figure p.caption span.caption-text, +figcaption span.caption-text { +} + +/* -- field list styles ----------------------------------------------------- */ + +table.field-list td, table.field-list th { + border: 0 !important; +} + +.field-list ul { + margin: 0; + padding-left: 1em; +} + +.field-list p { + margin: 0; +} + +.field-name { + -moz-hyphens: manual; + -ms-hyphens: manual; + -webkit-hyphens: manual; + hyphens: manual; +} + +/* -- hlist styles ---------------------------------------------------------- */ + +table.hlist { + margin: 1em 0; +} + +table.hlist td { + vertical-align: top; +} + +/* -- object description styles --------------------------------------------- */ + +.sig { + font-family: 'Consolas', 'Menlo', 'DejaVu Sans Mono', 'Bitstream Vera Sans Mono', monospace; +} + +.sig-name, code.descname { + background-color: transparent; + font-weight: bold; +} + +.sig-name { + font-size: 1.1em; +} + +code.descname { + font-size: 1.2em; +} + +.sig-prename, code.descclassname { + background-color: transparent; +} + +.optional { + font-size: 1.3em; +} + +.sig-paren { + font-size: larger; +} + +.sig-param.n { + font-style: italic; +} + +/* C++ specific styling */ + +.sig-inline.c-texpr, +.sig-inline.cpp-texpr { + font-family: unset; +} + +.sig.c .k, .sig.c .kt, +.sig.cpp .k, .sig.cpp .kt { + color: #0033B3; +} + +.sig.c .m, +.sig.cpp .m { + color: #1750EB; +} + +.sig.c .s, .sig.c .sc, +.sig.cpp .s, .sig.cpp .sc { + color: #067D17; +} + + +/* -- other body styles ----------------------------------------------------- */ + +ol.arabic { + list-style: decimal; +} + +ol.loweralpha { + list-style: lower-alpha; +} + +ol.upperalpha { + list-style: upper-alpha; +} + +ol.lowerroman { + list-style: lower-roman; +} + +ol.upperroman { + list-style: upper-roman; +} + +:not(li) > ol > li:first-child > :first-child, +:not(li) > ul > li:first-child > :first-child { + margin-top: 0px; +} + +:not(li) > ol > li:last-child > :last-child, +:not(li) > ul > li:last-child > :last-child { + margin-bottom: 0px; +} + +ol.simple ol p, +ol.simple ul p, +ul.simple ol p, +ul.simple ul p { + margin-top: 0; +} + +ol.simple > li:not(:first-child) > p, +ul.simple > li:not(:first-child) > p { + margin-top: 0; +} + +ol.simple p, +ul.simple p { + margin-bottom: 0; +} + +aside.footnote > span, +div.citation > span { + float: left; +} +aside.footnote > span:last-of-type, +div.citation > span:last-of-type { + padding-right: 0.5em; +} +aside.footnote > p { + margin-left: 2em; +} +div.citation > p { + margin-left: 4em; +} +aside.footnote > p:last-of-type, +div.citation > p:last-of-type { + margin-bottom: 0em; +} +aside.footnote > p:last-of-type:after, +div.citation > p:last-of-type:after { + content: ""; + clear: both; +} + +dl.field-list { + display: grid; + grid-template-columns: fit-content(30%) auto; +} + +dl.field-list > dt { + font-weight: bold; + word-break: break-word; + padding-left: 0.5em; + padding-right: 5px; +} + +dl.field-list > dd { + padding-left: 0.5em; + margin-top: 0em; + margin-left: 0em; + margin-bottom: 0em; +} + +dl { + margin-bottom: 15px; +} + +dd > :first-child { + margin-top: 0px; +} + +dd ul, dd table { + margin-bottom: 10px; +} + +dd { + margin-top: 3px; + margin-bottom: 10px; + margin-left: 30px; +} + +.sig dd { + margin-top: 0px; + margin-bottom: 0px; +} + +.sig dl { + margin-top: 0px; + margin-bottom: 0px; +} + +dl > dd:last-child, +dl > dd:last-child > :last-child { + margin-bottom: 0; +} + +dt:target, span.highlighted { + background-color: #fbe54e; +} + +rect.highlighted { + fill: #fbe54e; +} + +dl.glossary dt { + font-weight: bold; + font-size: 1.1em; +} + +.versionmodified { + font-style: italic; +} + +.system-message { + background-color: #fda; + padding: 5px; + border: 3px solid red; +} + +.footnote:target { + background-color: #ffa; +} + +.line-block { + display: block; + margin-top: 1em; + margin-bottom: 1em; +} + +.line-block .line-block { + margin-top: 0; + margin-bottom: 0; + margin-left: 1.5em; +} + +.guilabel, .menuselection { + font-family: sans-serif; +} + +.accelerator { + text-decoration: underline; +} + +.classifier { + font-style: oblique; +} + +.classifier:before { + font-style: normal; + margin: 0 0.5em; + content: ":"; + display: inline-block; +} + +abbr, acronym { + border-bottom: dotted 1px; + cursor: help; +} + +.translated { + background-color: rgba(207, 255, 207, 0.2) +} + +.untranslated { + background-color: rgba(255, 207, 207, 0.2) +} + +/* -- code displays --------------------------------------------------------- */ + +pre { + overflow: auto; + overflow-y: hidden; /* fixes display issues on Chrome browsers */ +} + +pre, div[class*="highlight-"] { + clear: both; +} + +span.pre { + -moz-hyphens: none; + -ms-hyphens: none; + -webkit-hyphens: none; + hyphens: none; + white-space: nowrap; +} + +div[class*="highlight-"] { + margin: 1em 0; +} + +td.linenos pre { + border: 0; + background-color: transparent; + color: #aaa; +} + +table.highlighttable { + display: block; +} + +table.highlighttable tbody { + display: block; +} + +table.highlighttable tr { + display: flex; +} + +table.highlighttable td { + margin: 0; + padding: 0; +} + +table.highlighttable td.linenos { + padding-right: 0.5em; +} + +table.highlighttable td.code { + flex: 1; + overflow: hidden; +} + +.highlight .hll { + display: block; +} + +div.highlight pre, +table.highlighttable pre { + margin: 0; +} + +div.code-block-caption + div { + margin-top: 0; +} + +div.code-block-caption { + margin-top: 1em; + padding: 2px 5px; + font-size: small; +} + +div.code-block-caption code { + background-color: transparent; +} + +table.highlighttable td.linenos, +span.linenos, +div.highlight span.gp { /* gp: Generic.Prompt */ + user-select: none; + -webkit-user-select: text; /* Safari fallback only */ + -webkit-user-select: none; /* Chrome/Safari */ + -moz-user-select: none; /* Firefox */ + -ms-user-select: none; /* IE10+ */ +} + +div.code-block-caption span.caption-number { + padding: 0.1em 0.3em; + font-style: italic; +} + +div.code-block-caption span.caption-text { +} + +div.literal-block-wrapper { + margin: 1em 0; +} + +code.xref, a code { + background-color: transparent; + font-weight: bold; +} + +h1 code, h2 code, h3 code, h4 code, h5 code, h6 code { + background-color: transparent; +} + +.viewcode-link { + float: right; +} + +.viewcode-back { + float: right; + font-family: sans-serif; +} + +div.viewcode-block:target { + margin: -1px -10px; + padding: 0 10px; +} + +/* -- math display ---------------------------------------------------------- */ + +img.math { + vertical-align: middle; +} + +div.body div.math p { + text-align: center; +} + +span.eqno { + float: right; +} + +span.eqno a.headerlink { + position: absolute; + z-index: 1; +} + +div.math:hover a.headerlink { + visibility: visible; +} + +/* -- printout stylesheet --------------------------------------------------- */ + +@media print { + div.document, + div.documentwrapper, + div.bodywrapper { + margin: 0 !important; + width: 100%; + } + + div.sphinxsidebar, + div.related, + div.footer, + #top-link { + display: none; + } +} \ No newline at end of file diff --git a/_static/css/badge_only.css b/_static/css/badge_only.css new file mode 100644 index 0000000..88ba55b --- /dev/null +++ b/_static/css/badge_only.css @@ -0,0 +1 @@ +.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}@font-face{font-family:FontAwesome;font-style:normal;font-weight:400;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#FontAwesome) format("svg")}.fa:before{font-family:FontAwesome;font-style:normal;font-weight:400;line-height:1}.fa:before,a .fa{text-decoration:inherit}.fa:before,a .fa,li .fa{display:inline-block}li .fa-large:before{width:1.875em}ul.fas{list-style-type:none;margin-left:2em;text-indent:-.8em}ul.fas li .fa{width:.8em}ul.fas li .fa-large:before{vertical-align:baseline}.fa-book:before,.icon-book:before{content:"\f02d"}.fa-caret-down:before,.icon-caret-down:before{content:"\f0d7"}.fa-caret-up:before,.icon-caret-up:before{content:"\f0d8"}.fa-caret-left:before,.icon-caret-left:before{content:"\f0d9"}.fa-caret-right:before,.icon-caret-right:before{content:"\f0da"}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60}.rst-versions .rst-current-version:after{clear:both;content:"";display:block}.rst-versions .rst-current-version .fa{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions .rst-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}#flyout-search-form{padding:6px} \ No newline at end of file diff --git a/_static/css/fonts/Roboto-Slab-Bold.woff b/_static/css/fonts/Roboto-Slab-Bold.woff new file mode 100644 index 0000000..6cb6000 Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Bold.woff differ diff --git a/_static/css/fonts/Roboto-Slab-Bold.woff2 b/_static/css/fonts/Roboto-Slab-Bold.woff2 new file mode 100644 index 0000000..7059e23 Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Bold.woff2 differ diff --git a/_static/css/fonts/Roboto-Slab-Regular.woff b/_static/css/fonts/Roboto-Slab-Regular.woff new file mode 100644 index 0000000..f815f63 Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Regular.woff differ diff --git a/_static/css/fonts/Roboto-Slab-Regular.woff2 b/_static/css/fonts/Roboto-Slab-Regular.woff2 new file mode 100644 index 0000000..f2c76e5 Binary files /dev/null and b/_static/css/fonts/Roboto-Slab-Regular.woff2 differ diff --git a/_static/css/fonts/fontawesome-webfont.eot b/_static/css/fonts/fontawesome-webfont.eot new file mode 100644 index 0000000..e9f60ca Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.eot differ diff --git a/_static/css/fonts/fontawesome-webfont.svg b/_static/css/fonts/fontawesome-webfont.svg new file mode 100644 index 0000000..855c845 --- /dev/null +++ b/_static/css/fonts/fontawesome-webfont.svg @@ -0,0 +1,2671 @@ + + + + +Created by FontForge 20120731 at Mon Oct 24 17:37:40 2016 + By ,,, +Copyright Dave Gandy 2016. All rights reserved. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/_static/css/fonts/fontawesome-webfont.ttf b/_static/css/fonts/fontawesome-webfont.ttf new file mode 100644 index 0000000..35acda2 Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.ttf differ diff --git a/_static/css/fonts/fontawesome-webfont.woff b/_static/css/fonts/fontawesome-webfont.woff new file mode 100644 index 0000000..400014a Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.woff differ diff --git a/_static/css/fonts/fontawesome-webfont.woff2 b/_static/css/fonts/fontawesome-webfont.woff2 new file mode 100644 index 0000000..4d13fc6 Binary files /dev/null and b/_static/css/fonts/fontawesome-webfont.woff2 differ diff --git a/_static/css/fonts/lato-bold-italic.woff b/_static/css/fonts/lato-bold-italic.woff new file mode 100644 index 0000000..88ad05b Binary files /dev/null and b/_static/css/fonts/lato-bold-italic.woff differ diff --git a/_static/css/fonts/lato-bold-italic.woff2 b/_static/css/fonts/lato-bold-italic.woff2 new file mode 100644 index 0000000..c4e3d80 Binary files /dev/null and b/_static/css/fonts/lato-bold-italic.woff2 differ diff --git a/_static/css/fonts/lato-bold.woff b/_static/css/fonts/lato-bold.woff new file mode 100644 index 0000000..c6dff51 Binary files /dev/null and b/_static/css/fonts/lato-bold.woff differ diff --git a/_static/css/fonts/lato-bold.woff2 b/_static/css/fonts/lato-bold.woff2 new file mode 100644 index 0000000..bb19504 Binary files /dev/null and b/_static/css/fonts/lato-bold.woff2 differ diff --git a/_static/css/fonts/lato-normal-italic.woff b/_static/css/fonts/lato-normal-italic.woff new file mode 100644 index 0000000..76114bc Binary files /dev/null and b/_static/css/fonts/lato-normal-italic.woff differ diff --git a/_static/css/fonts/lato-normal-italic.woff2 b/_static/css/fonts/lato-normal-italic.woff2 new file mode 100644 index 0000000..3404f37 Binary files /dev/null and b/_static/css/fonts/lato-normal-italic.woff2 differ diff --git a/_static/css/fonts/lato-normal.woff b/_static/css/fonts/lato-normal.woff new file mode 100644 index 0000000..ae1307f Binary files /dev/null and b/_static/css/fonts/lato-normal.woff differ diff --git a/_static/css/fonts/lato-normal.woff2 b/_static/css/fonts/lato-normal.woff2 new file mode 100644 index 0000000..3bf9843 Binary files /dev/null and b/_static/css/fonts/lato-normal.woff2 differ diff --git a/_static/css/theme.css b/_static/css/theme.css new file mode 100644 index 0000000..0f14f10 --- /dev/null +++ b/_static/css/theme.css @@ -0,0 +1,4 @@ +html{box-sizing:border-box}*,:after,:before{box-sizing:inherit}article,aside,details,figcaption,figure,footer,header,hgroup,nav,section{display:block}audio,canvas,video{display:inline-block;*display:inline;*zoom:1}[hidden],audio:not([controls]){display:none}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:100%;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}blockquote{margin:0}dfn{font-style:italic}ins{background:#ff9;text-decoration:none}ins,mark{color:#000}mark{background:#ff0;font-style:italic;font-weight:700}.rst-content code,.rst-content tt,code,kbd,pre,samp{font-family:monospace,serif;_font-family:courier new,monospace;font-size:1em}pre{white-space:pre}q{quotes:none}q:after,q:before{content:"";content:none}small{font-size:85%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}dl,ol,ul{margin:0;padding:0;list-style:none;list-style-image:none}li{list-style:none}dd{margin:0}img{border:0;-ms-interpolation-mode:bicubic;vertical-align:middle;max-width:100%}svg:not(:root){overflow:hidden}figure,form{margin:0}label{cursor:pointer}button,input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}button,input{line-height:normal}button,input[type=button],input[type=reset],input[type=submit]{cursor:pointer;-webkit-appearance:button;*overflow:visible}button[disabled],input[disabled]{cursor:default}input[type=search]{-webkit-appearance:textfield;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}textarea{resize:vertical}table{border-collapse:collapse;border-spacing:0}td{vertical-align:top}.chromeframe{margin:.2em 0;background:#ccc;color:#000;padding:.2em 0}.ir{display:block;border:0;text-indent:-999em;overflow:hidden;background-color:transparent;background-repeat:no-repeat;text-align:left;direction:ltr;*line-height:0}.ir br{display:none}.hidden{display:none!important;visibility:hidden}.visuallyhidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.visuallyhidden.focusable:active,.visuallyhidden.focusable:focus{clip:auto;height:auto;margin:0;overflow:visible;position:static;width:auto}.invisible{visibility:hidden}.relative{position:relative}big,small{font-size:100%}@media print{body,html,section{background:none!important}*{box-shadow:none!important;text-shadow:none!important;filter:none!important;-ms-filter:none!important}a,a:visited{text-decoration:underline}.ir a:after,a[href^="#"]:after,a[href^="javascript:"]:after{content:""}blockquote,pre{page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}@page{margin:.5cm}.rst-content .toctree-wrapper>p.caption,h2,h3,p{orphans:3;widows:3}.rst-content .toctree-wrapper>p.caption,h2,h3{page-break-after:avoid}}.btn,.fa:before,.icon:before,.rst-content .admonition,.rst-content .admonition-title:before,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .code-block-caption .headerlink:before,.rst-content .danger,.rst-content .eqno .headerlink:before,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-alert,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before,input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week],select,textarea{-webkit-font-smoothing:antialiased}.clearfix{*zoom:1}.clearfix:after,.clearfix:before{display:table;content:""}.clearfix:after{clear:both}/*! + * Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome + * License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License) + */@font-face{font-family:FontAwesome;src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713);src:url(fonts/fontawesome-webfont.eot?674f50d287a8c48dc19ba404d20fe713?#iefix&v=4.7.0) format("embedded-opentype"),url(fonts/fontawesome-webfont.woff2?af7ae505a9eed503f8b8e6982036873e) format("woff2"),url(fonts/fontawesome-webfont.woff?fee66e712a8a08eef5805a46892932ad) format("woff"),url(fonts/fontawesome-webfont.ttf?b06871f281fee6b241d60582ae9369b9) format("truetype"),url(fonts/fontawesome-webfont.svg?912ec66d7572ff821749319396470bde#fontawesomeregular) format("svg");font-weight:400;font-style:normal}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{display:inline-block;font:normal normal normal 14px/1 FontAwesome;font-size:inherit;text-rendering:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.fa-lg{font-size:1.33333em;line-height:.75em;vertical-align:-15%}.fa-2x{font-size:2em}.fa-3x{font-size:3em}.fa-4x{font-size:4em}.fa-5x{font-size:5em}.fa-fw{width:1.28571em;text-align:center}.fa-ul{padding-left:0;margin-left:2.14286em;list-style-type:none}.fa-ul>li{position:relative}.fa-li{position:absolute;left:-2.14286em;width:2.14286em;top:.14286em;text-align:center}.fa-li.fa-lg{left:-1.85714em}.fa-border{padding:.2em .25em .15em;border:.08em solid #eee;border-radius:.1em}.fa-pull-left{float:left}.fa-pull-right{float:right}.fa-pull-left.icon,.fa.fa-pull-left,.rst-content .code-block-caption .fa-pull-left.headerlink,.rst-content .eqno .fa-pull-left.headerlink,.rst-content .fa-pull-left.admonition-title,.rst-content code.download span.fa-pull-left:first-child,.rst-content dl dt .fa-pull-left.headerlink,.rst-content h1 .fa-pull-left.headerlink,.rst-content h2 .fa-pull-left.headerlink,.rst-content h3 .fa-pull-left.headerlink,.rst-content h4 .fa-pull-left.headerlink,.rst-content h5 .fa-pull-left.headerlink,.rst-content h6 .fa-pull-left.headerlink,.rst-content p .fa-pull-left.headerlink,.rst-content table>caption .fa-pull-left.headerlink,.rst-content tt.download span.fa-pull-left:first-child,.wy-menu-vertical li.current>a button.fa-pull-left.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-left.toctree-expand,.wy-menu-vertical li button.fa-pull-left.toctree-expand{margin-right:.3em}.fa-pull-right.icon,.fa.fa-pull-right,.rst-content .code-block-caption .fa-pull-right.headerlink,.rst-content .eqno .fa-pull-right.headerlink,.rst-content .fa-pull-right.admonition-title,.rst-content code.download span.fa-pull-right:first-child,.rst-content dl dt .fa-pull-right.headerlink,.rst-content h1 .fa-pull-right.headerlink,.rst-content h2 .fa-pull-right.headerlink,.rst-content h3 .fa-pull-right.headerlink,.rst-content h4 .fa-pull-right.headerlink,.rst-content h5 .fa-pull-right.headerlink,.rst-content h6 .fa-pull-right.headerlink,.rst-content p .fa-pull-right.headerlink,.rst-content table>caption .fa-pull-right.headerlink,.rst-content tt.download span.fa-pull-right:first-child,.wy-menu-vertical li.current>a button.fa-pull-right.toctree-expand,.wy-menu-vertical li.on a button.fa-pull-right.toctree-expand,.wy-menu-vertical li button.fa-pull-right.toctree-expand{margin-left:.3em}.pull-right{float:right}.pull-left{float:left}.fa.pull-left,.pull-left.icon,.rst-content .code-block-caption .pull-left.headerlink,.rst-content .eqno .pull-left.headerlink,.rst-content .pull-left.admonition-title,.rst-content code.download span.pull-left:first-child,.rst-content dl dt .pull-left.headerlink,.rst-content h1 .pull-left.headerlink,.rst-content h2 .pull-left.headerlink,.rst-content h3 .pull-left.headerlink,.rst-content h4 .pull-left.headerlink,.rst-content h5 .pull-left.headerlink,.rst-content h6 .pull-left.headerlink,.rst-content p .pull-left.headerlink,.rst-content table>caption .pull-left.headerlink,.rst-content tt.download span.pull-left:first-child,.wy-menu-vertical li.current>a button.pull-left.toctree-expand,.wy-menu-vertical li.on a button.pull-left.toctree-expand,.wy-menu-vertical li button.pull-left.toctree-expand{margin-right:.3em}.fa.pull-right,.pull-right.icon,.rst-content .code-block-caption .pull-right.headerlink,.rst-content .eqno .pull-right.headerlink,.rst-content .pull-right.admonition-title,.rst-content code.download span.pull-right:first-child,.rst-content dl dt .pull-right.headerlink,.rst-content h1 .pull-right.headerlink,.rst-content h2 .pull-right.headerlink,.rst-content h3 .pull-right.headerlink,.rst-content h4 .pull-right.headerlink,.rst-content h5 .pull-right.headerlink,.rst-content h6 .pull-right.headerlink,.rst-content p .pull-right.headerlink,.rst-content table>caption .pull-right.headerlink,.rst-content tt.download span.pull-right:first-child,.wy-menu-vertical li.current>a button.pull-right.toctree-expand,.wy-menu-vertical li.on a button.pull-right.toctree-expand,.wy-menu-vertical li button.pull-right.toctree-expand{margin-left:.3em}.fa-spin{-webkit-animation:fa-spin 2s linear infinite;animation:fa-spin 2s linear infinite}.fa-pulse{-webkit-animation:fa-spin 1s steps(8) infinite;animation:fa-spin 1s steps(8) infinite}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0deg);transform:rotate(0deg)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}.fa-rotate-90{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";-webkit-transform:rotate(90deg);-ms-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";-webkit-transform:rotate(180deg);-ms-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";-webkit-transform:rotate(270deg);-ms-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1);transform:scaleX(-1)}.fa-flip-vertical{-ms-filter:"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";-webkit-transform:scaleY(-1);-ms-transform:scaleY(-1);transform:scaleY(-1)}:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-90,:root .fa-rotate-180,:root .fa-rotate-270{filter:none}.fa-stack{position:relative;display:inline-block;width:2em;height:2em;line-height:2em;vertical-align:middle}.fa-stack-1x,.fa-stack-2x{position:absolute;left:0;width:100%;text-align:center}.fa-stack-1x{line-height:inherit}.fa-stack-2x{font-size:2em}.fa-inverse{color:#fff}.fa-glass:before{content:""}.fa-music:before{content:""}.fa-search:before,.icon-search:before{content:""}.fa-envelope-o:before{content:""}.fa-heart:before{content:""}.fa-star:before{content:""}.fa-star-o:before{content:""}.fa-user:before{content:""}.fa-film:before{content:""}.fa-th-large:before{content:""}.fa-th:before{content:""}.fa-th-list:before{content:""}.fa-check:before{content:""}.fa-close:before,.fa-remove:before,.fa-times:before{content:""}.fa-search-plus:before{content:""}.fa-search-minus:before{content:""}.fa-power-off:before{content:""}.fa-signal:before{content:""}.fa-cog:before,.fa-gear:before{content:""}.fa-trash-o:before{content:""}.fa-home:before,.icon-home:before{content:""}.fa-file-o:before{content:""}.fa-clock-o:before{content:""}.fa-road:before{content:""}.fa-download:before,.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{content:""}.fa-arrow-circle-o-down:before{content:""}.fa-arrow-circle-o-up:before{content:""}.fa-inbox:before{content:""}.fa-play-circle-o:before{content:""}.fa-repeat:before,.fa-rotate-right:before{content:""}.fa-refresh:before{content:""}.fa-list-alt:before{content:""}.fa-lock:before{content:""}.fa-flag:before{content:""}.fa-headphones:before{content:""}.fa-volume-off:before{content:""}.fa-volume-down:before{content:""}.fa-volume-up:before{content:""}.fa-qrcode:before{content:""}.fa-barcode:before{content:""}.fa-tag:before{content:""}.fa-tags:before{content:""}.fa-book:before,.icon-book:before{content:""}.fa-bookmark:before{content:""}.fa-print:before{content:""}.fa-camera:before{content:""}.fa-font:before{content:""}.fa-bold:before{content:""}.fa-italic:before{content:""}.fa-text-height:before{content:""}.fa-text-width:before{content:""}.fa-align-left:before{content:""}.fa-align-center:before{content:""}.fa-align-right:before{content:""}.fa-align-justify:before{content:""}.fa-list:before{content:""}.fa-dedent:before,.fa-outdent:before{content:""}.fa-indent:before{content:""}.fa-video-camera:before{content:""}.fa-image:before,.fa-photo:before,.fa-picture-o:before{content:""}.fa-pencil:before{content:""}.fa-map-marker:before{content:""}.fa-adjust:before{content:""}.fa-tint:before{content:""}.fa-edit:before,.fa-pencil-square-o:before{content:""}.fa-share-square-o:before{content:""}.fa-check-square-o:before{content:""}.fa-arrows:before{content:""}.fa-step-backward:before{content:""}.fa-fast-backward:before{content:""}.fa-backward:before{content:""}.fa-play:before{content:""}.fa-pause:before{content:""}.fa-stop:before{content:""}.fa-forward:before{content:""}.fa-fast-forward:before{content:""}.fa-step-forward:before{content:""}.fa-eject:before{content:""}.fa-chevron-left:before{content:""}.fa-chevron-right:before{content:""}.fa-plus-circle:before{content:""}.fa-minus-circle:before{content:""}.fa-times-circle:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before{content:""}.fa-check-circle:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before{content:""}.fa-question-circle:before{content:""}.fa-info-circle:before{content:""}.fa-crosshairs:before{content:""}.fa-times-circle-o:before{content:""}.fa-check-circle-o:before{content:""}.fa-ban:before{content:""}.fa-arrow-left:before{content:""}.fa-arrow-right:before{content:""}.fa-arrow-up:before{content:""}.fa-arrow-down:before{content:""}.fa-mail-forward:before,.fa-share:before{content:""}.fa-expand:before{content:""}.fa-compress:before{content:""}.fa-plus:before{content:""}.fa-minus:before{content:""}.fa-asterisk:before{content:""}.fa-exclamation-circle:before,.rst-content .admonition-title:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before{content:""}.fa-gift:before{content:""}.fa-leaf:before{content:""}.fa-fire:before,.icon-fire:before{content:""}.fa-eye:before{content:""}.fa-eye-slash:before{content:""}.fa-exclamation-triangle:before,.fa-warning:before{content:""}.fa-plane:before{content:""}.fa-calendar:before{content:""}.fa-random:before{content:""}.fa-comment:before{content:""}.fa-magnet:before{content:""}.fa-chevron-up:before{content:""}.fa-chevron-down:before{content:""}.fa-retweet:before{content:""}.fa-shopping-cart:before{content:""}.fa-folder:before{content:""}.fa-folder-open:before{content:""}.fa-arrows-v:before{content:""}.fa-arrows-h:before{content:""}.fa-bar-chart-o:before,.fa-bar-chart:before{content:""}.fa-twitter-square:before{content:""}.fa-facebook-square:before{content:""}.fa-camera-retro:before{content:""}.fa-key:before{content:""}.fa-cogs:before,.fa-gears:before{content:""}.fa-comments:before{content:""}.fa-thumbs-o-up:before{content:""}.fa-thumbs-o-down:before{content:""}.fa-star-half:before{content:""}.fa-heart-o:before{content:""}.fa-sign-out:before{content:""}.fa-linkedin-square:before{content:""}.fa-thumb-tack:before{content:""}.fa-external-link:before{content:""}.fa-sign-in:before{content:""}.fa-trophy:before{content:""}.fa-github-square:before{content:""}.fa-upload:before{content:""}.fa-lemon-o:before{content:""}.fa-phone:before{content:""}.fa-square-o:before{content:""}.fa-bookmark-o:before{content:""}.fa-phone-square:before{content:""}.fa-twitter:before{content:""}.fa-facebook-f:before,.fa-facebook:before{content:""}.fa-github:before,.icon-github:before{content:""}.fa-unlock:before{content:""}.fa-credit-card:before{content:""}.fa-feed:before,.fa-rss:before{content:""}.fa-hdd-o:before{content:""}.fa-bullhorn:before{content:""}.fa-bell:before{content:""}.fa-certificate:before{content:""}.fa-hand-o-right:before{content:""}.fa-hand-o-left:before{content:""}.fa-hand-o-up:before{content:""}.fa-hand-o-down:before{content:""}.fa-arrow-circle-left:before,.icon-circle-arrow-left:before{content:""}.fa-arrow-circle-right:before,.icon-circle-arrow-right:before{content:""}.fa-arrow-circle-up:before{content:""}.fa-arrow-circle-down:before{content:""}.fa-globe:before{content:""}.fa-wrench:before{content:""}.fa-tasks:before{content:""}.fa-filter:before{content:""}.fa-briefcase:before{content:""}.fa-arrows-alt:before{content:""}.fa-group:before,.fa-users:before{content:""}.fa-chain:before,.fa-link:before,.icon-link:before{content:""}.fa-cloud:before{content:""}.fa-flask:before{content:""}.fa-cut:before,.fa-scissors:before{content:""}.fa-copy:before,.fa-files-o:before{content:""}.fa-paperclip:before{content:""}.fa-floppy-o:before,.fa-save:before{content:""}.fa-square:before{content:""}.fa-bars:before,.fa-navicon:before,.fa-reorder:before{content:""}.fa-list-ul:before{content:""}.fa-list-ol:before{content:""}.fa-strikethrough:before{content:""}.fa-underline:before{content:""}.fa-table:before{content:""}.fa-magic:before{content:""}.fa-truck:before{content:""}.fa-pinterest:before{content:""}.fa-pinterest-square:before{content:""}.fa-google-plus-square:before{content:""}.fa-google-plus:before{content:""}.fa-money:before{content:""}.fa-caret-down:before,.icon-caret-down:before,.wy-dropdown .caret:before{content:""}.fa-caret-up:before{content:""}.fa-caret-left:before{content:""}.fa-caret-right:before{content:""}.fa-columns:before{content:""}.fa-sort:before,.fa-unsorted:before{content:""}.fa-sort-desc:before,.fa-sort-down:before{content:""}.fa-sort-asc:before,.fa-sort-up:before{content:""}.fa-envelope:before{content:""}.fa-linkedin:before{content:""}.fa-rotate-left:before,.fa-undo:before{content:""}.fa-gavel:before,.fa-legal:before{content:""}.fa-dashboard:before,.fa-tachometer:before{content:""}.fa-comment-o:before{content:""}.fa-comments-o:before{content:""}.fa-bolt:before,.fa-flash:before{content:""}.fa-sitemap:before{content:""}.fa-umbrella:before{content:""}.fa-clipboard:before,.fa-paste:before{content:""}.fa-lightbulb-o:before{content:""}.fa-exchange:before{content:""}.fa-cloud-download:before{content:""}.fa-cloud-upload:before{content:""}.fa-user-md:before{content:""}.fa-stethoscope:before{content:""}.fa-suitcase:before{content:""}.fa-bell-o:before{content:""}.fa-coffee:before{content:""}.fa-cutlery:before{content:""}.fa-file-text-o:before{content:""}.fa-building-o:before{content:""}.fa-hospital-o:before{content:""}.fa-ambulance:before{content:""}.fa-medkit:before{content:""}.fa-fighter-jet:before{content:""}.fa-beer:before{content:""}.fa-h-square:before{content:""}.fa-plus-square:before{content:""}.fa-angle-double-left:before{content:""}.fa-angle-double-right:before{content:""}.fa-angle-double-up:before{content:""}.fa-angle-double-down:before{content:""}.fa-angle-left:before{content:""}.fa-angle-right:before{content:""}.fa-angle-up:before{content:""}.fa-angle-down:before{content:""}.fa-desktop:before{content:""}.fa-laptop:before{content:""}.fa-tablet:before{content:""}.fa-mobile-phone:before,.fa-mobile:before{content:""}.fa-circle-o:before{content:""}.fa-quote-left:before{content:""}.fa-quote-right:before{content:""}.fa-spinner:before{content:""}.fa-circle:before{content:""}.fa-mail-reply:before,.fa-reply:before{content:""}.fa-github-alt:before{content:""}.fa-folder-o:before{content:""}.fa-folder-open-o:before{content:""}.fa-smile-o:before{content:""}.fa-frown-o:before{content:""}.fa-meh-o:before{content:""}.fa-gamepad:before{content:""}.fa-keyboard-o:before{content:""}.fa-flag-o:before{content:""}.fa-flag-checkered:before{content:""}.fa-terminal:before{content:""}.fa-code:before{content:""}.fa-mail-reply-all:before,.fa-reply-all:before{content:""}.fa-star-half-empty:before,.fa-star-half-full:before,.fa-star-half-o:before{content:""}.fa-location-arrow:before{content:""}.fa-crop:before{content:""}.fa-code-fork:before{content:""}.fa-chain-broken:before,.fa-unlink:before{content:""}.fa-question:before{content:""}.fa-info:before{content:""}.fa-exclamation:before{content:""}.fa-superscript:before{content:""}.fa-subscript:before{content:""}.fa-eraser:before{content:""}.fa-puzzle-piece:before{content:""}.fa-microphone:before{content:""}.fa-microphone-slash:before{content:""}.fa-shield:before{content:""}.fa-calendar-o:before{content:""}.fa-fire-extinguisher:before{content:""}.fa-rocket:before{content:""}.fa-maxcdn:before{content:""}.fa-chevron-circle-left:before{content:""}.fa-chevron-circle-right:before{content:""}.fa-chevron-circle-up:before{content:""}.fa-chevron-circle-down:before{content:""}.fa-html5:before{content:""}.fa-css3:before{content:""}.fa-anchor:before{content:""}.fa-unlock-alt:before{content:""}.fa-bullseye:before{content:""}.fa-ellipsis-h:before{content:""}.fa-ellipsis-v:before{content:""}.fa-rss-square:before{content:""}.fa-play-circle:before{content:""}.fa-ticket:before{content:""}.fa-minus-square:before{content:""}.fa-minus-square-o:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before{content:""}.fa-level-up:before{content:""}.fa-level-down:before{content:""}.fa-check-square:before{content:""}.fa-pencil-square:before{content:""}.fa-external-link-square:before{content:""}.fa-share-square:before{content:""}.fa-compass:before{content:""}.fa-caret-square-o-down:before,.fa-toggle-down:before{content:""}.fa-caret-square-o-up:before,.fa-toggle-up:before{content:""}.fa-caret-square-o-right:before,.fa-toggle-right:before{content:""}.fa-eur:before,.fa-euro:before{content:""}.fa-gbp:before{content:""}.fa-dollar:before,.fa-usd:before{content:""}.fa-inr:before,.fa-rupee:before{content:""}.fa-cny:before,.fa-jpy:before,.fa-rmb:before,.fa-yen:before{content:""}.fa-rouble:before,.fa-rub:before,.fa-ruble:before{content:""}.fa-krw:before,.fa-won:before{content:""}.fa-bitcoin:before,.fa-btc:before{content:""}.fa-file:before{content:""}.fa-file-text:before{content:""}.fa-sort-alpha-asc:before{content:""}.fa-sort-alpha-desc:before{content:""}.fa-sort-amount-asc:before{content:""}.fa-sort-amount-desc:before{content:""}.fa-sort-numeric-asc:before{content:""}.fa-sort-numeric-desc:before{content:""}.fa-thumbs-up:before{content:""}.fa-thumbs-down:before{content:""}.fa-youtube-square:before{content:""}.fa-youtube:before{content:""}.fa-xing:before{content:""}.fa-xing-square:before{content:""}.fa-youtube-play:before{content:""}.fa-dropbox:before{content:""}.fa-stack-overflow:before{content:""}.fa-instagram:before{content:""}.fa-flickr:before{content:""}.fa-adn:before{content:""}.fa-bitbucket:before,.icon-bitbucket:before{content:""}.fa-bitbucket-square:before{content:""}.fa-tumblr:before{content:""}.fa-tumblr-square:before{content:""}.fa-long-arrow-down:before{content:""}.fa-long-arrow-up:before{content:""}.fa-long-arrow-left:before{content:""}.fa-long-arrow-right:before{content:""}.fa-apple:before{content:""}.fa-windows:before{content:""}.fa-android:before{content:""}.fa-linux:before{content:""}.fa-dribbble:before{content:""}.fa-skype:before{content:""}.fa-foursquare:before{content:""}.fa-trello:before{content:""}.fa-female:before{content:""}.fa-male:before{content:""}.fa-gittip:before,.fa-gratipay:before{content:""}.fa-sun-o:before{content:""}.fa-moon-o:before{content:""}.fa-archive:before{content:""}.fa-bug:before{content:""}.fa-vk:before{content:""}.fa-weibo:before{content:""}.fa-renren:before{content:""}.fa-pagelines:before{content:""}.fa-stack-exchange:before{content:""}.fa-arrow-circle-o-right:before{content:""}.fa-arrow-circle-o-left:before{content:""}.fa-caret-square-o-left:before,.fa-toggle-left:before{content:""}.fa-dot-circle-o:before{content:""}.fa-wheelchair:before{content:""}.fa-vimeo-square:before{content:""}.fa-try:before,.fa-turkish-lira:before{content:""}.fa-plus-square-o:before,.wy-menu-vertical li button.toctree-expand:before{content:""}.fa-space-shuttle:before{content:""}.fa-slack:before{content:""}.fa-envelope-square:before{content:""}.fa-wordpress:before{content:""}.fa-openid:before{content:""}.fa-bank:before,.fa-institution:before,.fa-university:before{content:""}.fa-graduation-cap:before,.fa-mortar-board:before{content:""}.fa-yahoo:before{content:""}.fa-google:before{content:""}.fa-reddit:before{content:""}.fa-reddit-square:before{content:""}.fa-stumbleupon-circle:before{content:""}.fa-stumbleupon:before{content:""}.fa-delicious:before{content:""}.fa-digg:before{content:""}.fa-pied-piper-pp:before{content:""}.fa-pied-piper-alt:before{content:""}.fa-drupal:before{content:""}.fa-joomla:before{content:""}.fa-language:before{content:""}.fa-fax:before{content:""}.fa-building:before{content:""}.fa-child:before{content:""}.fa-paw:before{content:""}.fa-spoon:before{content:""}.fa-cube:before{content:""}.fa-cubes:before{content:""}.fa-behance:before{content:""}.fa-behance-square:before{content:""}.fa-steam:before{content:""}.fa-steam-square:before{content:""}.fa-recycle:before{content:""}.fa-automobile:before,.fa-car:before{content:""}.fa-cab:before,.fa-taxi:before{content:""}.fa-tree:before{content:""}.fa-spotify:before{content:""}.fa-deviantart:before{content:""}.fa-soundcloud:before{content:""}.fa-database:before{content:""}.fa-file-pdf-o:before{content:""}.fa-file-word-o:before{content:""}.fa-file-excel-o:before{content:""}.fa-file-powerpoint-o:before{content:""}.fa-file-image-o:before,.fa-file-photo-o:before,.fa-file-picture-o:before{content:""}.fa-file-archive-o:before,.fa-file-zip-o:before{content:""}.fa-file-audio-o:before,.fa-file-sound-o:before{content:""}.fa-file-movie-o:before,.fa-file-video-o:before{content:""}.fa-file-code-o:before{content:""}.fa-vine:before{content:""}.fa-codepen:before{content:""}.fa-jsfiddle:before{content:""}.fa-life-bouy:before,.fa-life-buoy:before,.fa-life-ring:before,.fa-life-saver:before,.fa-support:before{content:""}.fa-circle-o-notch:before{content:""}.fa-ra:before,.fa-rebel:before,.fa-resistance:before{content:""}.fa-empire:before,.fa-ge:before{content:""}.fa-git-square:before{content:""}.fa-git:before{content:""}.fa-hacker-news:before,.fa-y-combinator-square:before,.fa-yc-square:before{content:""}.fa-tencent-weibo:before{content:""}.fa-qq:before{content:""}.fa-wechat:before,.fa-weixin:before{content:""}.fa-paper-plane:before,.fa-send:before{content:""}.fa-paper-plane-o:before,.fa-send-o:before{content:""}.fa-history:before{content:""}.fa-circle-thin:before{content:""}.fa-header:before{content:""}.fa-paragraph:before{content:""}.fa-sliders:before{content:""}.fa-share-alt:before{content:""}.fa-share-alt-square:before{content:""}.fa-bomb:before{content:""}.fa-futbol-o:before,.fa-soccer-ball-o:before{content:""}.fa-tty:before{content:""}.fa-binoculars:before{content:""}.fa-plug:before{content:""}.fa-slideshare:before{content:""}.fa-twitch:before{content:""}.fa-yelp:before{content:""}.fa-newspaper-o:before{content:""}.fa-wifi:before{content:""}.fa-calculator:before{content:""}.fa-paypal:before{content:""}.fa-google-wallet:before{content:""}.fa-cc-visa:before{content:""}.fa-cc-mastercard:before{content:""}.fa-cc-discover:before{content:""}.fa-cc-amex:before{content:""}.fa-cc-paypal:before{content:""}.fa-cc-stripe:before{content:""}.fa-bell-slash:before{content:""}.fa-bell-slash-o:before{content:""}.fa-trash:before{content:""}.fa-copyright:before{content:""}.fa-at:before{content:""}.fa-eyedropper:before{content:""}.fa-paint-brush:before{content:""}.fa-birthday-cake:before{content:""}.fa-area-chart:before{content:""}.fa-pie-chart:before{content:""}.fa-line-chart:before{content:""}.fa-lastfm:before{content:""}.fa-lastfm-square:before{content:""}.fa-toggle-off:before{content:""}.fa-toggle-on:before{content:""}.fa-bicycle:before{content:""}.fa-bus:before{content:""}.fa-ioxhost:before{content:""}.fa-angellist:before{content:""}.fa-cc:before{content:""}.fa-ils:before,.fa-shekel:before,.fa-sheqel:before{content:""}.fa-meanpath:before{content:""}.fa-buysellads:before{content:""}.fa-connectdevelop:before{content:""}.fa-dashcube:before{content:""}.fa-forumbee:before{content:""}.fa-leanpub:before{content:""}.fa-sellsy:before{content:""}.fa-shirtsinbulk:before{content:""}.fa-simplybuilt:before{content:""}.fa-skyatlas:before{content:""}.fa-cart-plus:before{content:""}.fa-cart-arrow-down:before{content:""}.fa-diamond:before{content:""}.fa-ship:before{content:""}.fa-user-secret:before{content:""}.fa-motorcycle:before{content:""}.fa-street-view:before{content:""}.fa-heartbeat:before{content:""}.fa-venus:before{content:""}.fa-mars:before{content:""}.fa-mercury:before{content:""}.fa-intersex:before,.fa-transgender:before{content:""}.fa-transgender-alt:before{content:""}.fa-venus-double:before{content:""}.fa-mars-double:before{content:""}.fa-venus-mars:before{content:""}.fa-mars-stroke:before{content:""}.fa-mars-stroke-v:before{content:""}.fa-mars-stroke-h:before{content:""}.fa-neuter:before{content:""}.fa-genderless:before{content:""}.fa-facebook-official:before{content:""}.fa-pinterest-p:before{content:""}.fa-whatsapp:before{content:""}.fa-server:before{content:""}.fa-user-plus:before{content:""}.fa-user-times:before{content:""}.fa-bed:before,.fa-hotel:before{content:""}.fa-viacoin:before{content:""}.fa-train:before{content:""}.fa-subway:before{content:""}.fa-medium:before{content:""}.fa-y-combinator:before,.fa-yc:before{content:""}.fa-optin-monster:before{content:""}.fa-opencart:before{content:""}.fa-expeditedssl:before{content:""}.fa-battery-4:before,.fa-battery-full:before,.fa-battery:before{content:""}.fa-battery-3:before,.fa-battery-three-quarters:before{content:""}.fa-battery-2:before,.fa-battery-half:before{content:""}.fa-battery-1:before,.fa-battery-quarter:before{content:""}.fa-battery-0:before,.fa-battery-empty:before{content:""}.fa-mouse-pointer:before{content:""}.fa-i-cursor:before{content:""}.fa-object-group:before{content:""}.fa-object-ungroup:before{content:""}.fa-sticky-note:before{content:""}.fa-sticky-note-o:before{content:""}.fa-cc-jcb:before{content:""}.fa-cc-diners-club:before{content:""}.fa-clone:before{content:""}.fa-balance-scale:before{content:""}.fa-hourglass-o:before{content:""}.fa-hourglass-1:before,.fa-hourglass-start:before{content:""}.fa-hourglass-2:before,.fa-hourglass-half:before{content:""}.fa-hourglass-3:before,.fa-hourglass-end:before{content:""}.fa-hourglass:before{content:""}.fa-hand-grab-o:before,.fa-hand-rock-o:before{content:""}.fa-hand-paper-o:before,.fa-hand-stop-o:before{content:""}.fa-hand-scissors-o:before{content:""}.fa-hand-lizard-o:before{content:""}.fa-hand-spock-o:before{content:""}.fa-hand-pointer-o:before{content:""}.fa-hand-peace-o:before{content:""}.fa-trademark:before{content:""}.fa-registered:before{content:""}.fa-creative-commons:before{content:""}.fa-gg:before{content:""}.fa-gg-circle:before{content:""}.fa-tripadvisor:before{content:""}.fa-odnoklassniki:before{content:""}.fa-odnoklassniki-square:before{content:""}.fa-get-pocket:before{content:""}.fa-wikipedia-w:before{content:""}.fa-safari:before{content:""}.fa-chrome:before{content:""}.fa-firefox:before{content:""}.fa-opera:before{content:""}.fa-internet-explorer:before{content:""}.fa-television:before,.fa-tv:before{content:""}.fa-contao:before{content:""}.fa-500px:before{content:""}.fa-amazon:before{content:""}.fa-calendar-plus-o:before{content:""}.fa-calendar-minus-o:before{content:""}.fa-calendar-times-o:before{content:""}.fa-calendar-check-o:before{content:""}.fa-industry:before{content:""}.fa-map-pin:before{content:""}.fa-map-signs:before{content:""}.fa-map-o:before{content:""}.fa-map:before{content:""}.fa-commenting:before{content:""}.fa-commenting-o:before{content:""}.fa-houzz:before{content:""}.fa-vimeo:before{content:""}.fa-black-tie:before{content:""}.fa-fonticons:before{content:""}.fa-reddit-alien:before{content:""}.fa-edge:before{content:""}.fa-credit-card-alt:before{content:""}.fa-codiepie:before{content:""}.fa-modx:before{content:""}.fa-fort-awesome:before{content:""}.fa-usb:before{content:""}.fa-product-hunt:before{content:""}.fa-mixcloud:before{content:""}.fa-scribd:before{content:""}.fa-pause-circle:before{content:""}.fa-pause-circle-o:before{content:""}.fa-stop-circle:before{content:""}.fa-stop-circle-o:before{content:""}.fa-shopping-bag:before{content:""}.fa-shopping-basket:before{content:""}.fa-hashtag:before{content:""}.fa-bluetooth:before{content:""}.fa-bluetooth-b:before{content:""}.fa-percent:before{content:""}.fa-gitlab:before,.icon-gitlab:before{content:""}.fa-wpbeginner:before{content:""}.fa-wpforms:before{content:""}.fa-envira:before{content:""}.fa-universal-access:before{content:""}.fa-wheelchair-alt:before{content:""}.fa-question-circle-o:before{content:""}.fa-blind:before{content:""}.fa-audio-description:before{content:""}.fa-volume-control-phone:before{content:""}.fa-braille:before{content:""}.fa-assistive-listening-systems:before{content:""}.fa-american-sign-language-interpreting:before,.fa-asl-interpreting:before{content:""}.fa-deaf:before,.fa-deafness:before,.fa-hard-of-hearing:before{content:""}.fa-glide:before{content:""}.fa-glide-g:before{content:""}.fa-sign-language:before,.fa-signing:before{content:""}.fa-low-vision:before{content:""}.fa-viadeo:before{content:""}.fa-viadeo-square:before{content:""}.fa-snapchat:before{content:""}.fa-snapchat-ghost:before{content:""}.fa-snapchat-square:before{content:""}.fa-pied-piper:before{content:""}.fa-first-order:before{content:""}.fa-yoast:before{content:""}.fa-themeisle:before{content:""}.fa-google-plus-circle:before,.fa-google-plus-official:before{content:""}.fa-fa:before,.fa-font-awesome:before{content:""}.fa-handshake-o:before{content:""}.fa-envelope-open:before{content:""}.fa-envelope-open-o:before{content:""}.fa-linode:before{content:""}.fa-address-book:before{content:""}.fa-address-book-o:before{content:""}.fa-address-card:before,.fa-vcard:before{content:""}.fa-address-card-o:before,.fa-vcard-o:before{content:""}.fa-user-circle:before{content:""}.fa-user-circle-o:before{content:""}.fa-user-o:before{content:""}.fa-id-badge:before{content:""}.fa-drivers-license:before,.fa-id-card:before{content:""}.fa-drivers-license-o:before,.fa-id-card-o:before{content:""}.fa-quora:before{content:""}.fa-free-code-camp:before{content:""}.fa-telegram:before{content:""}.fa-thermometer-4:before,.fa-thermometer-full:before,.fa-thermometer:before{content:""}.fa-thermometer-3:before,.fa-thermometer-three-quarters:before{content:""}.fa-thermometer-2:before,.fa-thermometer-half:before{content:""}.fa-thermometer-1:before,.fa-thermometer-quarter:before{content:""}.fa-thermometer-0:before,.fa-thermometer-empty:before{content:""}.fa-shower:before{content:""}.fa-bath:before,.fa-bathtub:before,.fa-s15:before{content:""}.fa-podcast:before{content:""}.fa-window-maximize:before{content:""}.fa-window-minimize:before{content:""}.fa-window-restore:before{content:""}.fa-times-rectangle:before,.fa-window-close:before{content:""}.fa-times-rectangle-o:before,.fa-window-close-o:before{content:""}.fa-bandcamp:before{content:""}.fa-grav:before{content:""}.fa-etsy:before{content:""}.fa-imdb:before{content:""}.fa-ravelry:before{content:""}.fa-eercast:before{content:""}.fa-microchip:before{content:""}.fa-snowflake-o:before{content:""}.fa-superpowers:before{content:""}.fa-wpexplorer:before{content:""}.fa-meetup:before{content:""}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}.fa,.icon,.rst-content .admonition-title,.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content code.download span:first-child,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink,.rst-content tt.download span:first-child,.wy-dropdown .caret,.wy-inline-validate.wy-inline-validate-danger .wy-input-context,.wy-inline-validate.wy-inline-validate-info .wy-input-context,.wy-inline-validate.wy-inline-validate-success .wy-input-context,.wy-inline-validate.wy-inline-validate-warning .wy-input-context,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li button.toctree-expand{font-family:inherit}.fa:before,.icon:before,.rst-content .admonition-title:before,.rst-content .code-block-caption .headerlink:before,.rst-content .eqno .headerlink:before,.rst-content code.download span:first-child:before,.rst-content dl dt .headerlink:before,.rst-content h1 .headerlink:before,.rst-content h2 .headerlink:before,.rst-content h3 .headerlink:before,.rst-content h4 .headerlink:before,.rst-content h5 .headerlink:before,.rst-content h6 .headerlink:before,.rst-content p.caption .headerlink:before,.rst-content p .headerlink:before,.rst-content table>caption .headerlink:before,.rst-content tt.download span:first-child:before,.wy-dropdown .caret:before,.wy-inline-validate.wy-inline-validate-danger .wy-input-context:before,.wy-inline-validate.wy-inline-validate-info .wy-input-context:before,.wy-inline-validate.wy-inline-validate-success .wy-input-context:before,.wy-inline-validate.wy-inline-validate-warning .wy-input-context:before,.wy-menu-vertical li.current>a button.toctree-expand:before,.wy-menu-vertical li.on a button.toctree-expand:before,.wy-menu-vertical li button.toctree-expand:before{font-family:FontAwesome;display:inline-block;font-style:normal;font-weight:400;line-height:1;text-decoration:inherit}.rst-content .code-block-caption a .headerlink,.rst-content .eqno a .headerlink,.rst-content a .admonition-title,.rst-content code.download a span:first-child,.rst-content dl dt a .headerlink,.rst-content h1 a .headerlink,.rst-content h2 a .headerlink,.rst-content h3 a .headerlink,.rst-content h4 a .headerlink,.rst-content h5 a .headerlink,.rst-content h6 a .headerlink,.rst-content p.caption a .headerlink,.rst-content p a .headerlink,.rst-content table>caption a .headerlink,.rst-content tt.download a span:first-child,.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand,.wy-menu-vertical li a button.toctree-expand,a .fa,a .icon,a .rst-content .admonition-title,a .rst-content .code-block-caption .headerlink,a .rst-content .eqno .headerlink,a .rst-content code.download span:first-child,a .rst-content dl dt .headerlink,a .rst-content h1 .headerlink,a .rst-content h2 .headerlink,a .rst-content h3 .headerlink,a .rst-content h4 .headerlink,a .rst-content h5 .headerlink,a .rst-content h6 .headerlink,a .rst-content p.caption .headerlink,a .rst-content p .headerlink,a .rst-content table>caption .headerlink,a .rst-content tt.download span:first-child,a .wy-menu-vertical li button.toctree-expand{display:inline-block;text-decoration:inherit}.btn .fa,.btn .icon,.btn .rst-content .admonition-title,.btn .rst-content .code-block-caption .headerlink,.btn .rst-content .eqno .headerlink,.btn .rst-content code.download span:first-child,.btn .rst-content dl dt .headerlink,.btn .rst-content h1 .headerlink,.btn .rst-content h2 .headerlink,.btn .rst-content h3 .headerlink,.btn .rst-content h4 .headerlink,.btn .rst-content h5 .headerlink,.btn .rst-content h6 .headerlink,.btn .rst-content p .headerlink,.btn .rst-content table>caption .headerlink,.btn .rst-content tt.download span:first-child,.btn .wy-menu-vertical li.current>a button.toctree-expand,.btn .wy-menu-vertical li.on a button.toctree-expand,.btn .wy-menu-vertical li button.toctree-expand,.nav .fa,.nav .icon,.nav .rst-content .admonition-title,.nav .rst-content .code-block-caption .headerlink,.nav .rst-content .eqno .headerlink,.nav .rst-content code.download span:first-child,.nav .rst-content dl dt .headerlink,.nav .rst-content h1 .headerlink,.nav .rst-content h2 .headerlink,.nav .rst-content h3 .headerlink,.nav .rst-content h4 .headerlink,.nav .rst-content h5 .headerlink,.nav .rst-content h6 .headerlink,.nav .rst-content p .headerlink,.nav .rst-content table>caption .headerlink,.nav .rst-content tt.download span:first-child,.nav .wy-menu-vertical li.current>a button.toctree-expand,.nav .wy-menu-vertical li.on a button.toctree-expand,.nav .wy-menu-vertical li button.toctree-expand,.rst-content .btn .admonition-title,.rst-content .code-block-caption .btn .headerlink,.rst-content .code-block-caption .nav .headerlink,.rst-content .eqno .btn .headerlink,.rst-content .eqno .nav .headerlink,.rst-content .nav .admonition-title,.rst-content code.download .btn span:first-child,.rst-content code.download .nav span:first-child,.rst-content dl dt .btn .headerlink,.rst-content dl dt .nav .headerlink,.rst-content h1 .btn .headerlink,.rst-content h1 .nav .headerlink,.rst-content h2 .btn .headerlink,.rst-content h2 .nav .headerlink,.rst-content h3 .btn .headerlink,.rst-content h3 .nav .headerlink,.rst-content h4 .btn .headerlink,.rst-content h4 .nav .headerlink,.rst-content h5 .btn .headerlink,.rst-content h5 .nav .headerlink,.rst-content h6 .btn .headerlink,.rst-content h6 .nav .headerlink,.rst-content p .btn .headerlink,.rst-content p .nav .headerlink,.rst-content table>caption .btn .headerlink,.rst-content table>caption .nav .headerlink,.rst-content tt.download .btn span:first-child,.rst-content tt.download .nav span:first-child,.wy-menu-vertical li .btn button.toctree-expand,.wy-menu-vertical li.current>a .btn button.toctree-expand,.wy-menu-vertical li.current>a .nav button.toctree-expand,.wy-menu-vertical li .nav button.toctree-expand,.wy-menu-vertical li.on a .btn button.toctree-expand,.wy-menu-vertical li.on a .nav button.toctree-expand{display:inline}.btn .fa-large.icon,.btn .fa.fa-large,.btn .rst-content .code-block-caption .fa-large.headerlink,.btn .rst-content .eqno .fa-large.headerlink,.btn .rst-content .fa-large.admonition-title,.btn .rst-content code.download span.fa-large:first-child,.btn .rst-content dl dt .fa-large.headerlink,.btn .rst-content h1 .fa-large.headerlink,.btn .rst-content h2 .fa-large.headerlink,.btn .rst-content h3 .fa-large.headerlink,.btn .rst-content h4 .fa-large.headerlink,.btn .rst-content h5 .fa-large.headerlink,.btn .rst-content h6 .fa-large.headerlink,.btn .rst-content p .fa-large.headerlink,.btn .rst-content table>caption .fa-large.headerlink,.btn .rst-content tt.download span.fa-large:first-child,.btn .wy-menu-vertical li button.fa-large.toctree-expand,.nav .fa-large.icon,.nav .fa.fa-large,.nav .rst-content .code-block-caption .fa-large.headerlink,.nav .rst-content .eqno .fa-large.headerlink,.nav .rst-content .fa-large.admonition-title,.nav .rst-content code.download span.fa-large:first-child,.nav .rst-content dl dt .fa-large.headerlink,.nav .rst-content h1 .fa-large.headerlink,.nav .rst-content h2 .fa-large.headerlink,.nav .rst-content h3 .fa-large.headerlink,.nav .rst-content h4 .fa-large.headerlink,.nav .rst-content h5 .fa-large.headerlink,.nav .rst-content h6 .fa-large.headerlink,.nav .rst-content p .fa-large.headerlink,.nav .rst-content table>caption .fa-large.headerlink,.nav .rst-content tt.download span.fa-large:first-child,.nav .wy-menu-vertical li button.fa-large.toctree-expand,.rst-content .btn .fa-large.admonition-title,.rst-content .code-block-caption .btn .fa-large.headerlink,.rst-content .code-block-caption .nav .fa-large.headerlink,.rst-content .eqno .btn .fa-large.headerlink,.rst-content .eqno .nav .fa-large.headerlink,.rst-content .nav .fa-large.admonition-title,.rst-content code.download .btn span.fa-large:first-child,.rst-content code.download .nav span.fa-large:first-child,.rst-content dl dt .btn .fa-large.headerlink,.rst-content dl dt .nav .fa-large.headerlink,.rst-content h1 .btn .fa-large.headerlink,.rst-content h1 .nav .fa-large.headerlink,.rst-content h2 .btn .fa-large.headerlink,.rst-content h2 .nav .fa-large.headerlink,.rst-content h3 .btn .fa-large.headerlink,.rst-content h3 .nav .fa-large.headerlink,.rst-content h4 .btn .fa-large.headerlink,.rst-content h4 .nav .fa-large.headerlink,.rst-content h5 .btn .fa-large.headerlink,.rst-content h5 .nav .fa-large.headerlink,.rst-content h6 .btn .fa-large.headerlink,.rst-content h6 .nav .fa-large.headerlink,.rst-content p .btn .fa-large.headerlink,.rst-content p .nav .fa-large.headerlink,.rst-content table>caption .btn .fa-large.headerlink,.rst-content table>caption .nav .fa-large.headerlink,.rst-content tt.download .btn span.fa-large:first-child,.rst-content tt.download .nav span.fa-large:first-child,.wy-menu-vertical li .btn button.fa-large.toctree-expand,.wy-menu-vertical li .nav button.fa-large.toctree-expand{line-height:.9em}.btn .fa-spin.icon,.btn .fa.fa-spin,.btn .rst-content .code-block-caption .fa-spin.headerlink,.btn .rst-content .eqno .fa-spin.headerlink,.btn .rst-content .fa-spin.admonition-title,.btn .rst-content code.download span.fa-spin:first-child,.btn .rst-content dl dt .fa-spin.headerlink,.btn .rst-content h1 .fa-spin.headerlink,.btn .rst-content h2 .fa-spin.headerlink,.btn .rst-content h3 .fa-spin.headerlink,.btn .rst-content h4 .fa-spin.headerlink,.btn .rst-content h5 .fa-spin.headerlink,.btn .rst-content h6 .fa-spin.headerlink,.btn .rst-content p .fa-spin.headerlink,.btn .rst-content table>caption .fa-spin.headerlink,.btn .rst-content tt.download span.fa-spin:first-child,.btn .wy-menu-vertical li button.fa-spin.toctree-expand,.nav .fa-spin.icon,.nav .fa.fa-spin,.nav .rst-content .code-block-caption .fa-spin.headerlink,.nav .rst-content .eqno .fa-spin.headerlink,.nav .rst-content .fa-spin.admonition-title,.nav .rst-content code.download span.fa-spin:first-child,.nav .rst-content dl dt .fa-spin.headerlink,.nav .rst-content h1 .fa-spin.headerlink,.nav .rst-content h2 .fa-spin.headerlink,.nav .rst-content h3 .fa-spin.headerlink,.nav .rst-content h4 .fa-spin.headerlink,.nav .rst-content h5 .fa-spin.headerlink,.nav .rst-content h6 .fa-spin.headerlink,.nav .rst-content p .fa-spin.headerlink,.nav .rst-content table>caption .fa-spin.headerlink,.nav .rst-content tt.download span.fa-spin:first-child,.nav .wy-menu-vertical li button.fa-spin.toctree-expand,.rst-content .btn .fa-spin.admonition-title,.rst-content .code-block-caption .btn .fa-spin.headerlink,.rst-content .code-block-caption .nav .fa-spin.headerlink,.rst-content .eqno .btn .fa-spin.headerlink,.rst-content .eqno .nav .fa-spin.headerlink,.rst-content .nav .fa-spin.admonition-title,.rst-content code.download .btn span.fa-spin:first-child,.rst-content code.download .nav span.fa-spin:first-child,.rst-content dl dt .btn .fa-spin.headerlink,.rst-content dl dt .nav .fa-spin.headerlink,.rst-content h1 .btn .fa-spin.headerlink,.rst-content h1 .nav .fa-spin.headerlink,.rst-content h2 .btn .fa-spin.headerlink,.rst-content h2 .nav .fa-spin.headerlink,.rst-content h3 .btn .fa-spin.headerlink,.rst-content h3 .nav .fa-spin.headerlink,.rst-content h4 .btn .fa-spin.headerlink,.rst-content h4 .nav .fa-spin.headerlink,.rst-content h5 .btn .fa-spin.headerlink,.rst-content h5 .nav .fa-spin.headerlink,.rst-content h6 .btn .fa-spin.headerlink,.rst-content h6 .nav .fa-spin.headerlink,.rst-content p .btn .fa-spin.headerlink,.rst-content p .nav .fa-spin.headerlink,.rst-content table>caption .btn .fa-spin.headerlink,.rst-content table>caption .nav .fa-spin.headerlink,.rst-content tt.download .btn span.fa-spin:first-child,.rst-content tt.download .nav span.fa-spin:first-child,.wy-menu-vertical li .btn button.fa-spin.toctree-expand,.wy-menu-vertical li .nav button.fa-spin.toctree-expand{display:inline-block}.btn.fa:before,.btn.icon:before,.rst-content .btn.admonition-title:before,.rst-content .code-block-caption .btn.headerlink:before,.rst-content .eqno .btn.headerlink:before,.rst-content code.download span.btn:first-child:before,.rst-content dl dt .btn.headerlink:before,.rst-content h1 .btn.headerlink:before,.rst-content h2 .btn.headerlink:before,.rst-content h3 .btn.headerlink:before,.rst-content h4 .btn.headerlink:before,.rst-content h5 .btn.headerlink:before,.rst-content h6 .btn.headerlink:before,.rst-content p .btn.headerlink:before,.rst-content table>caption .btn.headerlink:before,.rst-content tt.download span.btn:first-child:before,.wy-menu-vertical li button.btn.toctree-expand:before{opacity:.5;-webkit-transition:opacity .05s ease-in;-moz-transition:opacity .05s ease-in;transition:opacity .05s ease-in}.btn.fa:hover:before,.btn.icon:hover:before,.rst-content .btn.admonition-title:hover:before,.rst-content .code-block-caption .btn.headerlink:hover:before,.rst-content .eqno .btn.headerlink:hover:before,.rst-content code.download span.btn:first-child:hover:before,.rst-content dl dt .btn.headerlink:hover:before,.rst-content h1 .btn.headerlink:hover:before,.rst-content h2 .btn.headerlink:hover:before,.rst-content h3 .btn.headerlink:hover:before,.rst-content h4 .btn.headerlink:hover:before,.rst-content h5 .btn.headerlink:hover:before,.rst-content h6 .btn.headerlink:hover:before,.rst-content p .btn.headerlink:hover:before,.rst-content table>caption .btn.headerlink:hover:before,.rst-content tt.download span.btn:first-child:hover:before,.wy-menu-vertical li button.btn.toctree-expand:hover:before{opacity:1}.btn-mini .fa:before,.btn-mini .icon:before,.btn-mini .rst-content .admonition-title:before,.btn-mini .rst-content .code-block-caption .headerlink:before,.btn-mini .rst-content .eqno .headerlink:before,.btn-mini .rst-content code.download span:first-child:before,.btn-mini .rst-content dl dt .headerlink:before,.btn-mini .rst-content h1 .headerlink:before,.btn-mini .rst-content h2 .headerlink:before,.btn-mini .rst-content h3 .headerlink:before,.btn-mini .rst-content h4 .headerlink:before,.btn-mini .rst-content h5 .headerlink:before,.btn-mini .rst-content h6 .headerlink:before,.btn-mini .rst-content p .headerlink:before,.btn-mini .rst-content table>caption .headerlink:before,.btn-mini .rst-content tt.download span:first-child:before,.btn-mini .wy-menu-vertical li button.toctree-expand:before,.rst-content .btn-mini .admonition-title:before,.rst-content .code-block-caption .btn-mini .headerlink:before,.rst-content .eqno .btn-mini .headerlink:before,.rst-content code.download .btn-mini span:first-child:before,.rst-content dl dt .btn-mini .headerlink:before,.rst-content h1 .btn-mini .headerlink:before,.rst-content h2 .btn-mini .headerlink:before,.rst-content h3 .btn-mini .headerlink:before,.rst-content h4 .btn-mini .headerlink:before,.rst-content h5 .btn-mini .headerlink:before,.rst-content h6 .btn-mini .headerlink:before,.rst-content p .btn-mini .headerlink:before,.rst-content table>caption .btn-mini .headerlink:before,.rst-content tt.download .btn-mini span:first-child:before,.wy-menu-vertical li .btn-mini button.toctree-expand:before{font-size:14px;vertical-align:-15%}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning,.wy-alert{padding:12px;line-height:24px;margin-bottom:24px;background:#e7f2fa}.rst-content .admonition-title,.wy-alert-title{font-weight:700;display:block;color:#fff;background:#6ab0de;padding:6px 12px;margin:-12px -12px 12px}.rst-content .danger,.rst-content .error,.rst-content .wy-alert-danger.admonition,.rst-content .wy-alert-danger.admonition-todo,.rst-content .wy-alert-danger.attention,.rst-content .wy-alert-danger.caution,.rst-content .wy-alert-danger.hint,.rst-content .wy-alert-danger.important,.rst-content .wy-alert-danger.note,.rst-content .wy-alert-danger.seealso,.rst-content .wy-alert-danger.tip,.rst-content .wy-alert-danger.warning,.wy-alert.wy-alert-danger{background:#fdf3f2}.rst-content .danger .admonition-title,.rst-content .danger .wy-alert-title,.rst-content .error .admonition-title,.rst-content .error .wy-alert-title,.rst-content .wy-alert-danger.admonition-todo .admonition-title,.rst-content .wy-alert-danger.admonition-todo .wy-alert-title,.rst-content .wy-alert-danger.admonition .admonition-title,.rst-content .wy-alert-danger.admonition .wy-alert-title,.rst-content .wy-alert-danger.attention .admonition-title,.rst-content .wy-alert-danger.attention .wy-alert-title,.rst-content .wy-alert-danger.caution .admonition-title,.rst-content .wy-alert-danger.caution .wy-alert-title,.rst-content .wy-alert-danger.hint .admonition-title,.rst-content .wy-alert-danger.hint .wy-alert-title,.rst-content .wy-alert-danger.important .admonition-title,.rst-content .wy-alert-danger.important .wy-alert-title,.rst-content .wy-alert-danger.note .admonition-title,.rst-content .wy-alert-danger.note .wy-alert-title,.rst-content .wy-alert-danger.seealso .admonition-title,.rst-content .wy-alert-danger.seealso .wy-alert-title,.rst-content .wy-alert-danger.tip .admonition-title,.rst-content .wy-alert-danger.tip .wy-alert-title,.rst-content .wy-alert-danger.warning .admonition-title,.rst-content .wy-alert-danger.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-danger .admonition-title,.wy-alert.wy-alert-danger .rst-content .admonition-title,.wy-alert.wy-alert-danger .wy-alert-title{background:#f29f97}.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .warning,.rst-content .wy-alert-warning.admonition,.rst-content .wy-alert-warning.danger,.rst-content .wy-alert-warning.error,.rst-content .wy-alert-warning.hint,.rst-content .wy-alert-warning.important,.rst-content .wy-alert-warning.note,.rst-content .wy-alert-warning.seealso,.rst-content .wy-alert-warning.tip,.wy-alert.wy-alert-warning{background:#ffedcc}.rst-content .admonition-todo .admonition-title,.rst-content .admonition-todo .wy-alert-title,.rst-content .attention .admonition-title,.rst-content .attention .wy-alert-title,.rst-content .caution .admonition-title,.rst-content .caution .wy-alert-title,.rst-content .warning .admonition-title,.rst-content .warning .wy-alert-title,.rst-content .wy-alert-warning.admonition .admonition-title,.rst-content .wy-alert-warning.admonition .wy-alert-title,.rst-content .wy-alert-warning.danger .admonition-title,.rst-content .wy-alert-warning.danger .wy-alert-title,.rst-content .wy-alert-warning.error .admonition-title,.rst-content .wy-alert-warning.error .wy-alert-title,.rst-content .wy-alert-warning.hint .admonition-title,.rst-content .wy-alert-warning.hint .wy-alert-title,.rst-content .wy-alert-warning.important .admonition-title,.rst-content .wy-alert-warning.important .wy-alert-title,.rst-content .wy-alert-warning.note .admonition-title,.rst-content .wy-alert-warning.note .wy-alert-title,.rst-content .wy-alert-warning.seealso .admonition-title,.rst-content .wy-alert-warning.seealso .wy-alert-title,.rst-content .wy-alert-warning.tip .admonition-title,.rst-content .wy-alert-warning.tip .wy-alert-title,.rst-content .wy-alert.wy-alert-warning .admonition-title,.wy-alert.wy-alert-warning .rst-content .admonition-title,.wy-alert.wy-alert-warning .wy-alert-title{background:#f0b37e}.rst-content .note,.rst-content .seealso,.rst-content .wy-alert-info.admonition,.rst-content .wy-alert-info.admonition-todo,.rst-content .wy-alert-info.attention,.rst-content .wy-alert-info.caution,.rst-content .wy-alert-info.danger,.rst-content .wy-alert-info.error,.rst-content .wy-alert-info.hint,.rst-content .wy-alert-info.important,.rst-content .wy-alert-info.tip,.rst-content .wy-alert-info.warning,.wy-alert.wy-alert-info{background:#e7f2fa}.rst-content .note .admonition-title,.rst-content .note .wy-alert-title,.rst-content .seealso .admonition-title,.rst-content .seealso .wy-alert-title,.rst-content .wy-alert-info.admonition-todo .admonition-title,.rst-content .wy-alert-info.admonition-todo .wy-alert-title,.rst-content .wy-alert-info.admonition .admonition-title,.rst-content .wy-alert-info.admonition .wy-alert-title,.rst-content .wy-alert-info.attention .admonition-title,.rst-content .wy-alert-info.attention .wy-alert-title,.rst-content .wy-alert-info.caution .admonition-title,.rst-content .wy-alert-info.caution .wy-alert-title,.rst-content .wy-alert-info.danger .admonition-title,.rst-content .wy-alert-info.danger .wy-alert-title,.rst-content .wy-alert-info.error .admonition-title,.rst-content .wy-alert-info.error .wy-alert-title,.rst-content .wy-alert-info.hint .admonition-title,.rst-content .wy-alert-info.hint .wy-alert-title,.rst-content .wy-alert-info.important .admonition-title,.rst-content .wy-alert-info.important .wy-alert-title,.rst-content .wy-alert-info.tip .admonition-title,.rst-content .wy-alert-info.tip .wy-alert-title,.rst-content .wy-alert-info.warning .admonition-title,.rst-content .wy-alert-info.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-info .admonition-title,.wy-alert.wy-alert-info .rst-content .admonition-title,.wy-alert.wy-alert-info .wy-alert-title{background:#6ab0de}.rst-content .hint,.rst-content .important,.rst-content .tip,.rst-content .wy-alert-success.admonition,.rst-content .wy-alert-success.admonition-todo,.rst-content .wy-alert-success.attention,.rst-content .wy-alert-success.caution,.rst-content .wy-alert-success.danger,.rst-content .wy-alert-success.error,.rst-content .wy-alert-success.note,.rst-content .wy-alert-success.seealso,.rst-content .wy-alert-success.warning,.wy-alert.wy-alert-success{background:#dbfaf4}.rst-content .hint .admonition-title,.rst-content .hint .wy-alert-title,.rst-content .important .admonition-title,.rst-content .important .wy-alert-title,.rst-content .tip .admonition-title,.rst-content .tip .wy-alert-title,.rst-content .wy-alert-success.admonition-todo .admonition-title,.rst-content .wy-alert-success.admonition-todo .wy-alert-title,.rst-content .wy-alert-success.admonition .admonition-title,.rst-content .wy-alert-success.admonition .wy-alert-title,.rst-content .wy-alert-success.attention .admonition-title,.rst-content .wy-alert-success.attention .wy-alert-title,.rst-content .wy-alert-success.caution .admonition-title,.rst-content .wy-alert-success.caution .wy-alert-title,.rst-content .wy-alert-success.danger .admonition-title,.rst-content .wy-alert-success.danger .wy-alert-title,.rst-content .wy-alert-success.error .admonition-title,.rst-content .wy-alert-success.error .wy-alert-title,.rst-content .wy-alert-success.note .admonition-title,.rst-content .wy-alert-success.note .wy-alert-title,.rst-content .wy-alert-success.seealso .admonition-title,.rst-content .wy-alert-success.seealso .wy-alert-title,.rst-content .wy-alert-success.warning .admonition-title,.rst-content .wy-alert-success.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-success .admonition-title,.wy-alert.wy-alert-success .rst-content .admonition-title,.wy-alert.wy-alert-success .wy-alert-title{background:#1abc9c}.rst-content .wy-alert-neutral.admonition,.rst-content .wy-alert-neutral.admonition-todo,.rst-content .wy-alert-neutral.attention,.rst-content .wy-alert-neutral.caution,.rst-content .wy-alert-neutral.danger,.rst-content .wy-alert-neutral.error,.rst-content .wy-alert-neutral.hint,.rst-content .wy-alert-neutral.important,.rst-content .wy-alert-neutral.note,.rst-content .wy-alert-neutral.seealso,.rst-content .wy-alert-neutral.tip,.rst-content .wy-alert-neutral.warning,.wy-alert.wy-alert-neutral{background:#f3f6f6}.rst-content .wy-alert-neutral.admonition-todo .admonition-title,.rst-content .wy-alert-neutral.admonition-todo .wy-alert-title,.rst-content .wy-alert-neutral.admonition .admonition-title,.rst-content .wy-alert-neutral.admonition .wy-alert-title,.rst-content .wy-alert-neutral.attention .admonition-title,.rst-content .wy-alert-neutral.attention .wy-alert-title,.rst-content .wy-alert-neutral.caution .admonition-title,.rst-content .wy-alert-neutral.caution .wy-alert-title,.rst-content .wy-alert-neutral.danger .admonition-title,.rst-content .wy-alert-neutral.danger .wy-alert-title,.rst-content .wy-alert-neutral.error .admonition-title,.rst-content .wy-alert-neutral.error .wy-alert-title,.rst-content .wy-alert-neutral.hint .admonition-title,.rst-content .wy-alert-neutral.hint .wy-alert-title,.rst-content .wy-alert-neutral.important .admonition-title,.rst-content .wy-alert-neutral.important .wy-alert-title,.rst-content .wy-alert-neutral.note .admonition-title,.rst-content .wy-alert-neutral.note .wy-alert-title,.rst-content .wy-alert-neutral.seealso .admonition-title,.rst-content .wy-alert-neutral.seealso .wy-alert-title,.rst-content .wy-alert-neutral.tip .admonition-title,.rst-content .wy-alert-neutral.tip .wy-alert-title,.rst-content .wy-alert-neutral.warning .admonition-title,.rst-content .wy-alert-neutral.warning .wy-alert-title,.rst-content .wy-alert.wy-alert-neutral .admonition-title,.wy-alert.wy-alert-neutral .rst-content .admonition-title,.wy-alert.wy-alert-neutral .wy-alert-title{color:#404040;background:#e1e4e5}.rst-content .wy-alert-neutral.admonition-todo a,.rst-content .wy-alert-neutral.admonition a,.rst-content .wy-alert-neutral.attention a,.rst-content .wy-alert-neutral.caution a,.rst-content .wy-alert-neutral.danger a,.rst-content .wy-alert-neutral.error a,.rst-content .wy-alert-neutral.hint a,.rst-content .wy-alert-neutral.important a,.rst-content .wy-alert-neutral.note a,.rst-content .wy-alert-neutral.seealso a,.rst-content .wy-alert-neutral.tip a,.rst-content .wy-alert-neutral.warning a,.wy-alert.wy-alert-neutral a{color:#2980b9}.rst-content .admonition-todo p:last-child,.rst-content .admonition p:last-child,.rst-content .attention p:last-child,.rst-content .caution p:last-child,.rst-content .danger p:last-child,.rst-content .error p:last-child,.rst-content .hint p:last-child,.rst-content .important p:last-child,.rst-content .note p:last-child,.rst-content .seealso p:last-child,.rst-content .tip p:last-child,.rst-content .warning p:last-child,.wy-alert p:last-child{margin-bottom:0}.wy-tray-container{position:fixed;bottom:0;left:0;z-index:600}.wy-tray-container li{display:block;width:300px;background:transparent;color:#fff;text-align:center;box-shadow:0 5px 5px 0 rgba(0,0,0,.1);padding:0 24px;min-width:20%;opacity:0;height:0;line-height:56px;overflow:hidden;-webkit-transition:all .3s ease-in;-moz-transition:all .3s ease-in;transition:all .3s ease-in}.wy-tray-container li.wy-tray-item-success{background:#27ae60}.wy-tray-container li.wy-tray-item-info{background:#2980b9}.wy-tray-container li.wy-tray-item-warning{background:#e67e22}.wy-tray-container li.wy-tray-item-danger{background:#e74c3c}.wy-tray-container li.on{opacity:1;height:56px}@media screen and (max-width:768px){.wy-tray-container{bottom:auto;top:0;width:100%}.wy-tray-container li{width:100%}}button{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle;cursor:pointer;line-height:normal;-webkit-appearance:button;*overflow:visible}button::-moz-focus-inner,input::-moz-focus-inner{border:0;padding:0}button[disabled]{cursor:default}.btn{display:inline-block;border-radius:2px;line-height:normal;white-space:nowrap;text-align:center;cursor:pointer;font-size:100%;padding:6px 12px 8px;color:#fff;border:1px solid rgba(0,0,0,.1);background-color:#27ae60;text-decoration:none;font-weight:400;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 2px -1px hsla(0,0%,100%,.5),inset 0 -2px 0 0 rgba(0,0,0,.1);outline-none:false;vertical-align:middle;*display:inline;zoom:1;-webkit-user-drag:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;-webkit-transition:all .1s linear;-moz-transition:all .1s linear;transition:all .1s linear}.btn-hover{background:#2e8ece;color:#fff}.btn:hover{background:#2cc36b;color:#fff}.btn:focus{background:#2cc36b;outline:0}.btn:active{box-shadow:inset 0 -1px 0 0 rgba(0,0,0,.05),inset 0 2px 0 0 rgba(0,0,0,.1);padding:8px 12px 6px}.btn:visited{color:#fff}.btn-disabled,.btn-disabled:active,.btn-disabled:focus,.btn-disabled:hover,.btn:disabled{background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled = false);filter:alpha(opacity=40);opacity:.4;cursor:not-allowed;box-shadow:none}.btn::-moz-focus-inner{padding:0;border:0}.btn-small{font-size:80%}.btn-info{background-color:#2980b9!important}.btn-info:hover{background-color:#2e8ece!important}.btn-neutral{background-color:#f3f6f6!important;color:#404040!important}.btn-neutral:hover{background-color:#e5ebeb!important;color:#404040}.btn-neutral:visited{color:#404040!important}.btn-success{background-color:#27ae60!important}.btn-success:hover{background-color:#295!important}.btn-danger{background-color:#e74c3c!important}.btn-danger:hover{background-color:#ea6153!important}.btn-warning{background-color:#e67e22!important}.btn-warning:hover{background-color:#e98b39!important}.btn-invert{background-color:#222}.btn-invert:hover{background-color:#2f2f2f!important}.btn-link{background-color:transparent!important;color:#2980b9;box-shadow:none;border-color:transparent!important}.btn-link:active,.btn-link:hover{background-color:transparent!important;color:#409ad5!important;box-shadow:none}.btn-link:visited{color:#9b59b6}.wy-btn-group .btn,.wy-control .btn{vertical-align:middle}.wy-btn-group{margin-bottom:24px;*zoom:1}.wy-btn-group:after,.wy-btn-group:before{display:table;content:""}.wy-btn-group:after{clear:both}.wy-dropdown{position:relative;display:inline-block}.wy-dropdown-active .wy-dropdown-menu{display:block}.wy-dropdown-menu{position:absolute;left:0;display:none;float:left;top:100%;min-width:100%;background:#fcfcfc;z-index:100;border:1px solid #cfd7dd;box-shadow:0 2px 2px 0 rgba(0,0,0,.1);padding:12px}.wy-dropdown-menu>dd>a{display:block;clear:both;color:#404040;white-space:nowrap;font-size:90%;padding:0 12px;cursor:pointer}.wy-dropdown-menu>dd>a:hover{background:#2980b9;color:#fff}.wy-dropdown-menu>dd.divider{border-top:1px solid #cfd7dd;margin:6px 0}.wy-dropdown-menu>dd.search{padding-bottom:12px}.wy-dropdown-menu>dd.search input[type=search]{width:100%}.wy-dropdown-menu>dd.call-to-action{background:#e3e3e3;text-transform:uppercase;font-weight:500;font-size:80%}.wy-dropdown-menu>dd.call-to-action:hover{background:#e3e3e3}.wy-dropdown-menu>dd.call-to-action .btn{color:#fff}.wy-dropdown.wy-dropdown-up .wy-dropdown-menu{bottom:100%;top:auto;left:auto;right:0}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu{background:#fcfcfc;margin-top:2px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a{padding:6px 12px}.wy-dropdown.wy-dropdown-bubble .wy-dropdown-menu a:hover{background:#2980b9;color:#fff}.wy-dropdown.wy-dropdown-left .wy-dropdown-menu{right:0;left:auto;text-align:right}.wy-dropdown-arrow:before{content:" ";border-bottom:5px solid #f5f5f5;border-left:5px solid transparent;border-right:5px solid transparent;position:absolute;display:block;top:-4px;left:50%;margin-left:-3px}.wy-dropdown-arrow.wy-dropdown-arrow-left:before{left:11px}.wy-form-stacked select{display:block}.wy-form-aligned .wy-help-inline,.wy-form-aligned input,.wy-form-aligned label,.wy-form-aligned select,.wy-form-aligned textarea{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-form-aligned .wy-control-group>label{display:inline-block;vertical-align:middle;width:10em;margin:6px 12px 0 0;float:left}.wy-form-aligned .wy-control{float:left}.wy-form-aligned .wy-control label{display:block}.wy-form-aligned .wy-control select{margin-top:6px}fieldset{margin:0}fieldset,legend{border:0;padding:0}legend{width:100%;white-space:normal;margin-bottom:24px;font-size:150%;*margin-left:-7px}label,legend{display:block}label{margin:0 0 .3125em;color:#333;font-size:90%}input,select,textarea{font-size:100%;margin:0;vertical-align:baseline;*vertical-align:middle}.wy-control-group{margin-bottom:24px;max-width:1200px;margin-left:auto;margin-right:auto;*zoom:1}.wy-control-group:after,.wy-control-group:before{display:table;content:""}.wy-control-group:after{clear:both}.wy-control-group.wy-control-group-required>label:after{content:" *";color:#e74c3c}.wy-control-group .wy-form-full,.wy-control-group .wy-form-halves,.wy-control-group .wy-form-thirds{padding-bottom:12px}.wy-control-group .wy-form-full input[type=color],.wy-control-group .wy-form-full input[type=date],.wy-control-group .wy-form-full input[type=datetime-local],.wy-control-group .wy-form-full input[type=datetime],.wy-control-group .wy-form-full input[type=email],.wy-control-group .wy-form-full input[type=month],.wy-control-group .wy-form-full input[type=number],.wy-control-group .wy-form-full input[type=password],.wy-control-group .wy-form-full input[type=search],.wy-control-group .wy-form-full input[type=tel],.wy-control-group .wy-form-full input[type=text],.wy-control-group .wy-form-full input[type=time],.wy-control-group .wy-form-full input[type=url],.wy-control-group .wy-form-full input[type=week],.wy-control-group .wy-form-full select,.wy-control-group .wy-form-halves input[type=color],.wy-control-group .wy-form-halves input[type=date],.wy-control-group .wy-form-halves input[type=datetime-local],.wy-control-group .wy-form-halves input[type=datetime],.wy-control-group .wy-form-halves input[type=email],.wy-control-group .wy-form-halves input[type=month],.wy-control-group .wy-form-halves input[type=number],.wy-control-group .wy-form-halves input[type=password],.wy-control-group .wy-form-halves input[type=search],.wy-control-group .wy-form-halves input[type=tel],.wy-control-group .wy-form-halves input[type=text],.wy-control-group .wy-form-halves input[type=time],.wy-control-group .wy-form-halves input[type=url],.wy-control-group .wy-form-halves input[type=week],.wy-control-group .wy-form-halves select,.wy-control-group .wy-form-thirds input[type=color],.wy-control-group .wy-form-thirds input[type=date],.wy-control-group .wy-form-thirds input[type=datetime-local],.wy-control-group .wy-form-thirds input[type=datetime],.wy-control-group .wy-form-thirds input[type=email],.wy-control-group .wy-form-thirds input[type=month],.wy-control-group .wy-form-thirds input[type=number],.wy-control-group .wy-form-thirds input[type=password],.wy-control-group .wy-form-thirds input[type=search],.wy-control-group .wy-form-thirds input[type=tel],.wy-control-group .wy-form-thirds input[type=text],.wy-control-group .wy-form-thirds input[type=time],.wy-control-group .wy-form-thirds input[type=url],.wy-control-group .wy-form-thirds input[type=week],.wy-control-group .wy-form-thirds select{width:100%}.wy-control-group .wy-form-full{float:left;display:block;width:100%;margin-right:0}.wy-control-group .wy-form-full:last-child{margin-right:0}.wy-control-group .wy-form-halves{float:left;display:block;margin-right:2.35765%;width:48.82117%}.wy-control-group .wy-form-halves:last-child,.wy-control-group .wy-form-halves:nth-of-type(2n){margin-right:0}.wy-control-group .wy-form-halves:nth-of-type(odd){clear:left}.wy-control-group .wy-form-thirds{float:left;display:block;margin-right:2.35765%;width:31.76157%}.wy-control-group .wy-form-thirds:last-child,.wy-control-group .wy-form-thirds:nth-of-type(3n){margin-right:0}.wy-control-group .wy-form-thirds:nth-of-type(3n+1){clear:left}.wy-control-group.wy-control-group-no-input .wy-control,.wy-control-no-input{margin:6px 0 0;font-size:90%}.wy-control-no-input{display:inline-block}.wy-control-group.fluid-input input[type=color],.wy-control-group.fluid-input input[type=date],.wy-control-group.fluid-input input[type=datetime-local],.wy-control-group.fluid-input input[type=datetime],.wy-control-group.fluid-input input[type=email],.wy-control-group.fluid-input input[type=month],.wy-control-group.fluid-input input[type=number],.wy-control-group.fluid-input input[type=password],.wy-control-group.fluid-input input[type=search],.wy-control-group.fluid-input input[type=tel],.wy-control-group.fluid-input input[type=text],.wy-control-group.fluid-input input[type=time],.wy-control-group.fluid-input input[type=url],.wy-control-group.fluid-input input[type=week]{width:100%}.wy-form-message-inline{padding-left:.3em;color:#666;font-size:90%}.wy-form-message{display:block;color:#999;font-size:70%;margin-top:.3125em;font-style:italic}.wy-form-message p{font-size:inherit;font-style:italic;margin-bottom:6px}.wy-form-message p:last-child{margin-bottom:0}input{line-height:normal}input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;*overflow:visible}input[type=color],input[type=date],input[type=datetime-local],input[type=datetime],input[type=email],input[type=month],input[type=number],input[type=password],input[type=search],input[type=tel],input[type=text],input[type=time],input[type=url],input[type=week]{-webkit-appearance:none;padding:6px;display:inline-block;border:1px solid #ccc;font-size:80%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;box-shadow:inset 0 1px 3px #ddd;border-radius:0;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}input[type=datetime-local]{padding:.34375em .625em}input[disabled]{cursor:default}input[type=checkbox],input[type=radio]{padding:0;margin-right:.3125em;*height:13px;*width:13px}input[type=checkbox],input[type=radio],input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}input[type=color]:focus,input[type=date]:focus,input[type=datetime-local]:focus,input[type=datetime]:focus,input[type=email]:focus,input[type=month]:focus,input[type=number]:focus,input[type=password]:focus,input[type=search]:focus,input[type=tel]:focus,input[type=text]:focus,input[type=time]:focus,input[type=url]:focus,input[type=week]:focus{outline:0;outline:thin dotted\9;border-color:#333}input.no-focus:focus{border-color:#ccc!important}input[type=checkbox]:focus,input[type=file]:focus,input[type=radio]:focus{outline:thin dotted #333;outline:1px auto #129fea}input[type=color][disabled],input[type=date][disabled],input[type=datetime-local][disabled],input[type=datetime][disabled],input[type=email][disabled],input[type=month][disabled],input[type=number][disabled],input[type=password][disabled],input[type=search][disabled],input[type=tel][disabled],input[type=text][disabled],input[type=time][disabled],input[type=url][disabled],input[type=week][disabled]{cursor:not-allowed;background-color:#fafafa}input:focus:invalid,select:focus:invalid,textarea:focus:invalid{color:#e74c3c;border:1px solid #e74c3c}input:focus:invalid:focus,select:focus:invalid:focus,textarea:focus:invalid:focus{border-color:#e74c3c}input[type=checkbox]:focus:invalid:focus,input[type=file]:focus:invalid:focus,input[type=radio]:focus:invalid:focus{outline-color:#e74c3c}input.wy-input-large{padding:12px;font-size:100%}textarea{overflow:auto;vertical-align:top;width:100%;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif}select,textarea{padding:.5em .625em;display:inline-block;border:1px solid #ccc;font-size:80%;box-shadow:inset 0 1px 3px #ddd;-webkit-transition:border .3s linear;-moz-transition:border .3s linear;transition:border .3s linear}select{border:1px solid #ccc;background-color:#fff}select[multiple]{height:auto}select:focus,textarea:focus{outline:0}input[readonly],select[disabled],select[readonly],textarea[disabled],textarea[readonly]{cursor:not-allowed;background-color:#fafafa}input[type=checkbox][disabled],input[type=radio][disabled]{cursor:not-allowed}.wy-checkbox,.wy-radio{margin:6px 0;color:#404040;display:block}.wy-checkbox input,.wy-radio input{vertical-align:baseline}.wy-form-message-inline{display:inline-block;*display:inline;*zoom:1;vertical-align:middle}.wy-input-prefix,.wy-input-suffix{white-space:nowrap;padding:6px}.wy-input-prefix .wy-input-context,.wy-input-suffix .wy-input-context{line-height:27px;padding:0 8px;display:inline-block;font-size:80%;background-color:#f3f6f6;border:1px solid #ccc;color:#999}.wy-input-suffix .wy-input-context{border-left:0}.wy-input-prefix .wy-input-context{border-right:0}.wy-switch{position:relative;display:block;height:24px;margin-top:12px;cursor:pointer}.wy-switch:before{left:0;top:0;width:36px;height:12px;background:#ccc}.wy-switch:after,.wy-switch:before{position:absolute;content:"";display:block;border-radius:4px;-webkit-transition:all .2s ease-in-out;-moz-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.wy-switch:after{width:18px;height:18px;background:#999;left:-3px;top:-3px}.wy-switch span{position:absolute;left:48px;display:block;font-size:12px;color:#ccc;line-height:1}.wy-switch.active:before{background:#1e8449}.wy-switch.active:after{left:24px;background:#27ae60}.wy-switch.disabled{cursor:not-allowed;opacity:.8}.wy-control-group.wy-control-group-error .wy-form-message,.wy-control-group.wy-control-group-error>label{color:#e74c3c}.wy-control-group.wy-control-group-error input[type=color],.wy-control-group.wy-control-group-error input[type=date],.wy-control-group.wy-control-group-error input[type=datetime-local],.wy-control-group.wy-control-group-error input[type=datetime],.wy-control-group.wy-control-group-error input[type=email],.wy-control-group.wy-control-group-error input[type=month],.wy-control-group.wy-control-group-error input[type=number],.wy-control-group.wy-control-group-error input[type=password],.wy-control-group.wy-control-group-error input[type=search],.wy-control-group.wy-control-group-error input[type=tel],.wy-control-group.wy-control-group-error input[type=text],.wy-control-group.wy-control-group-error input[type=time],.wy-control-group.wy-control-group-error input[type=url],.wy-control-group.wy-control-group-error input[type=week],.wy-control-group.wy-control-group-error textarea{border:1px solid #e74c3c}.wy-inline-validate{white-space:nowrap}.wy-inline-validate .wy-input-context{padding:.5em .625em;display:inline-block;font-size:80%}.wy-inline-validate.wy-inline-validate-success .wy-input-context{color:#27ae60}.wy-inline-validate.wy-inline-validate-danger .wy-input-context{color:#e74c3c}.wy-inline-validate.wy-inline-validate-warning .wy-input-context{color:#e67e22}.wy-inline-validate.wy-inline-validate-info .wy-input-context{color:#2980b9}.rotate-90{-webkit-transform:rotate(90deg);-moz-transform:rotate(90deg);-ms-transform:rotate(90deg);-o-transform:rotate(90deg);transform:rotate(90deg)}.rotate-180{-webkit-transform:rotate(180deg);-moz-transform:rotate(180deg);-ms-transform:rotate(180deg);-o-transform:rotate(180deg);transform:rotate(180deg)}.rotate-270{-webkit-transform:rotate(270deg);-moz-transform:rotate(270deg);-ms-transform:rotate(270deg);-o-transform:rotate(270deg);transform:rotate(270deg)}.mirror{-webkit-transform:scaleX(-1);-moz-transform:scaleX(-1);-ms-transform:scaleX(-1);-o-transform:scaleX(-1);transform:scaleX(-1)}.mirror.rotate-90{-webkit-transform:scaleX(-1) rotate(90deg);-moz-transform:scaleX(-1) rotate(90deg);-ms-transform:scaleX(-1) rotate(90deg);-o-transform:scaleX(-1) rotate(90deg);transform:scaleX(-1) rotate(90deg)}.mirror.rotate-180{-webkit-transform:scaleX(-1) rotate(180deg);-moz-transform:scaleX(-1) rotate(180deg);-ms-transform:scaleX(-1) rotate(180deg);-o-transform:scaleX(-1) rotate(180deg);transform:scaleX(-1) rotate(180deg)}.mirror.rotate-270{-webkit-transform:scaleX(-1) rotate(270deg);-moz-transform:scaleX(-1) rotate(270deg);-ms-transform:scaleX(-1) rotate(270deg);-o-transform:scaleX(-1) rotate(270deg);transform:scaleX(-1) rotate(270deg)}@media only screen and (max-width:480px){.wy-form button[type=submit]{margin:.7em 0 0}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=text],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week],.wy-form label{margin-bottom:.3em;display:block}.wy-form input[type=color],.wy-form input[type=date],.wy-form input[type=datetime-local],.wy-form input[type=datetime],.wy-form input[type=email],.wy-form input[type=month],.wy-form input[type=number],.wy-form input[type=password],.wy-form input[type=search],.wy-form input[type=tel],.wy-form input[type=time],.wy-form input[type=url],.wy-form input[type=week]{margin-bottom:0}.wy-form-aligned .wy-control-group label{margin-bottom:.3em;text-align:left;display:block;width:100%}.wy-form-aligned .wy-control{margin:1.5em 0 0}.wy-form-message,.wy-form-message-inline,.wy-form .wy-help-inline{display:block;font-size:80%;padding:6px 0}}@media screen and (max-width:768px){.tablet-hide{display:none}}@media screen and (max-width:480px){.mobile-hide{display:none}}.float-left{float:left}.float-right{float:right}.full-width{width:100%}.rst-content table.docutils,.rst-content table.field-list,.wy-table{border-collapse:collapse;border-spacing:0;empty-cells:show;margin-bottom:24px}.rst-content table.docutils caption,.rst-content table.field-list caption,.wy-table caption{color:#000;font:italic 85%/1 arial,sans-serif;padding:1em 0;text-align:center}.rst-content table.docutils td,.rst-content table.docutils th,.rst-content table.field-list td,.rst-content table.field-list th,.wy-table td,.wy-table th{font-size:90%;margin:0;overflow:visible;padding:8px 16px}.rst-content table.docutils td:first-child,.rst-content table.docutils th:first-child,.rst-content table.field-list td:first-child,.rst-content table.field-list th:first-child,.wy-table td:first-child,.wy-table th:first-child{border-left-width:0}.rst-content table.docutils thead,.rst-content table.field-list thead,.wy-table thead{color:#000;text-align:left;vertical-align:bottom;white-space:nowrap}.rst-content table.docutils thead th,.rst-content table.field-list thead th,.wy-table thead th{font-weight:700;border-bottom:2px solid #e1e4e5}.rst-content table.docutils td,.rst-content table.field-list td,.wy-table td{background-color:transparent;vertical-align:middle}.rst-content table.docutils td p,.rst-content table.field-list td p,.wy-table td p{line-height:18px}.rst-content table.docutils td p:last-child,.rst-content table.field-list td p:last-child,.wy-table td p:last-child{margin-bottom:0}.rst-content table.docutils .wy-table-cell-min,.rst-content table.field-list .wy-table-cell-min,.wy-table .wy-table-cell-min{width:1%;padding-right:0}.rst-content table.docutils .wy-table-cell-min input[type=checkbox],.rst-content table.field-list .wy-table-cell-min input[type=checkbox],.wy-table .wy-table-cell-min input[type=checkbox]{margin:0}.wy-table-secondary{color:grey;font-size:90%}.wy-table-tertiary{color:grey;font-size:80%}.rst-content table.docutils:not(.field-list) tr:nth-child(2n-1) td,.wy-table-backed,.wy-table-odd td,.wy-table-striped tr:nth-child(2n-1) td{background-color:#f3f6f6}.rst-content table.docutils,.wy-table-bordered-all{border:1px solid #e1e4e5}.rst-content table.docutils td,.wy-table-bordered-all td{border-bottom:1px solid #e1e4e5;border-left:1px solid #e1e4e5}.rst-content table.docutils tbody>tr:last-child td,.wy-table-bordered-all tbody>tr:last-child td{border-bottom-width:0}.wy-table-bordered{border:1px solid #e1e4e5}.wy-table-bordered-rows td{border-bottom:1px solid #e1e4e5}.wy-table-bordered-rows tbody>tr:last-child td{border-bottom-width:0}.wy-table-horizontal td,.wy-table-horizontal th{border-width:0 0 1px;border-bottom:1px solid #e1e4e5}.wy-table-horizontal tbody>tr:last-child td{border-bottom-width:0}.wy-table-responsive{margin-bottom:24px;max-width:100%;overflow:auto}.wy-table-responsive table{margin-bottom:0!important}.wy-table-responsive table td,.wy-table-responsive table th{white-space:nowrap}a{color:#2980b9;text-decoration:none;cursor:pointer}a:hover{color:#3091d1}a:visited{color:#9b59b6}html{height:100%}body,html{overflow-x:hidden}body{font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-weight:400;color:#404040;min-height:100%;background:#edf0f2}.wy-text-left{text-align:left}.wy-text-center{text-align:center}.wy-text-right{text-align:right}.wy-text-large{font-size:120%}.wy-text-normal{font-size:100%}.wy-text-small,small{font-size:80%}.wy-text-strike{text-decoration:line-through}.wy-text-warning{color:#e67e22!important}a.wy-text-warning:hover{color:#eb9950!important}.wy-text-info{color:#2980b9!important}a.wy-text-info:hover{color:#409ad5!important}.wy-text-success{color:#27ae60!important}a.wy-text-success:hover{color:#36d278!important}.wy-text-danger{color:#e74c3c!important}a.wy-text-danger:hover{color:#ed7669!important}.wy-text-neutral{color:#404040!important}a.wy-text-neutral:hover{color:#595959!important}.rst-content .toctree-wrapper>p.caption,h1,h2,h3,h4,h5,h6,legend{margin-top:0;font-weight:700;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif}p{line-height:24px;font-size:16px;margin:0 0 24px}h1{font-size:175%}.rst-content .toctree-wrapper>p.caption,h2{font-size:150%}h3{font-size:125%}h4{font-size:115%}h5{font-size:110%}h6{font-size:100%}hr{display:block;height:1px;border:0;border-top:1px solid #e1e4e5;margin:24px 0;padding:0}.rst-content code,.rst-content tt,code{white-space:nowrap;max-width:100%;background:#fff;border:1px solid #e1e4e5;font-size:75%;padding:0 5px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#e74c3c;overflow-x:auto}.rst-content tt.code-large,code.code-large{font-size:90%}.rst-content .section ul,.rst-content .toctree-wrapper ul,.rst-content section ul,.wy-plain-list-disc,article ul{list-style:disc;line-height:24px;margin-bottom:24px}.rst-content .section ul li,.rst-content .toctree-wrapper ul li,.rst-content section ul li,.wy-plain-list-disc li,article ul li{list-style:disc;margin-left:24px}.rst-content .section ul li p:last-child,.rst-content .section ul li ul,.rst-content .toctree-wrapper ul li p:last-child,.rst-content .toctree-wrapper ul li ul,.rst-content section ul li p:last-child,.rst-content section ul li ul,.wy-plain-list-disc li p:last-child,.wy-plain-list-disc li ul,article ul li p:last-child,article ul li ul{margin-bottom:0}.rst-content .section ul li li,.rst-content .toctree-wrapper ul li li,.rst-content section ul li li,.wy-plain-list-disc li li,article ul li li{list-style:circle}.rst-content .section ul li li li,.rst-content .toctree-wrapper ul li li li,.rst-content section ul li li li,.wy-plain-list-disc li li li,article ul li li li{list-style:square}.rst-content .section ul li ol li,.rst-content .toctree-wrapper ul li ol li,.rst-content section ul li ol li,.wy-plain-list-disc li ol li,article ul li ol li{list-style:decimal}.rst-content .section ol,.rst-content .section ol.arabic,.rst-content .toctree-wrapper ol,.rst-content .toctree-wrapper ol.arabic,.rst-content section ol,.rst-content section ol.arabic,.wy-plain-list-decimal,article ol{list-style:decimal;line-height:24px;margin-bottom:24px}.rst-content .section ol.arabic li,.rst-content .section ol li,.rst-content .toctree-wrapper ol.arabic li,.rst-content .toctree-wrapper ol li,.rst-content section ol.arabic li,.rst-content section ol li,.wy-plain-list-decimal li,article ol li{list-style:decimal;margin-left:24px}.rst-content .section ol.arabic li ul,.rst-content .section ol li p:last-child,.rst-content .section ol li ul,.rst-content .toctree-wrapper ol.arabic li ul,.rst-content .toctree-wrapper ol li p:last-child,.rst-content .toctree-wrapper ol li ul,.rst-content section ol.arabic li ul,.rst-content section ol li p:last-child,.rst-content section ol li ul,.wy-plain-list-decimal li p:last-child,.wy-plain-list-decimal li ul,article ol li p:last-child,article ol li ul{margin-bottom:0}.rst-content .section ol.arabic li ul li,.rst-content .section ol li ul li,.rst-content .toctree-wrapper ol.arabic li ul li,.rst-content .toctree-wrapper ol li ul li,.rst-content section ol.arabic li ul li,.rst-content section ol li ul li,.wy-plain-list-decimal li ul li,article ol li ul li{list-style:disc}.wy-breadcrumbs{*zoom:1}.wy-breadcrumbs:after,.wy-breadcrumbs:before{display:table;content:""}.wy-breadcrumbs:after{clear:both}.wy-breadcrumbs>li{display:inline-block;padding-top:5px}.wy-breadcrumbs>li.wy-breadcrumbs-aside{float:right}.rst-content .wy-breadcrumbs>li code,.rst-content .wy-breadcrumbs>li tt,.wy-breadcrumbs>li .rst-content tt,.wy-breadcrumbs>li code{all:inherit;color:inherit}.breadcrumb-item:before{content:"/";color:#bbb;font-size:13px;padding:0 6px 0 3px}.wy-breadcrumbs-extra{margin-bottom:0;color:#b3b3b3;font-size:80%;display:inline-block}@media screen and (max-width:480px){.wy-breadcrumbs-extra,.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}@media print{.wy-breadcrumbs li.wy-breadcrumbs-aside{display:none}}html{font-size:16px}.wy-affix{position:fixed;top:1.618em}.wy-menu a:hover{text-decoration:none}.wy-menu-horiz{*zoom:1}.wy-menu-horiz:after,.wy-menu-horiz:before{display:table;content:""}.wy-menu-horiz:after{clear:both}.wy-menu-horiz li,.wy-menu-horiz ul{display:inline-block}.wy-menu-horiz li:hover{background:hsla(0,0%,100%,.1)}.wy-menu-horiz li.divide-left{border-left:1px solid #404040}.wy-menu-horiz li.divide-right{border-right:1px solid #404040}.wy-menu-horiz a{height:32px;display:inline-block;line-height:32px;padding:0 16px}.wy-menu-vertical{width:300px}.wy-menu-vertical header,.wy-menu-vertical p.caption{color:#55a5d9;height:32px;line-height:32px;padding:0 1.618em;margin:12px 0 0;display:block;font-weight:700;text-transform:uppercase;font-size:85%;white-space:nowrap}.wy-menu-vertical ul{margin-bottom:0}.wy-menu-vertical li.divide-top{border-top:1px solid #404040}.wy-menu-vertical li.divide-bottom{border-bottom:1px solid #404040}.wy-menu-vertical li.current{background:#e3e3e3}.wy-menu-vertical li.current a{color:grey;border-right:1px solid #c9c9c9;padding:.4045em 2.427em}.wy-menu-vertical li.current a:hover{background:#d6d6d6}.rst-content .wy-menu-vertical li tt,.wy-menu-vertical li .rst-content tt,.wy-menu-vertical li code{border:none;background:inherit;color:inherit;padding-left:0;padding-right:0}.wy-menu-vertical li button.toctree-expand{display:block;float:left;margin-left:-1.2em;line-height:18px;color:#4d4d4d;border:none;background:none;padding:0}.wy-menu-vertical li.current>a,.wy-menu-vertical li.on a{color:#404040;font-weight:700;position:relative;background:#fcfcfc;border:none;padding:.4045em 1.618em}.wy-menu-vertical li.current>a:hover,.wy-menu-vertical li.on a:hover{background:#fcfcfc}.wy-menu-vertical li.current>a:hover button.toctree-expand,.wy-menu-vertical li.on a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.current>a button.toctree-expand,.wy-menu-vertical li.on a button.toctree-expand{display:block;line-height:18px;color:#333}.wy-menu-vertical li.toctree-l1.current>a{border-bottom:1px solid #c9c9c9;border-top:1px solid #c9c9c9}.wy-menu-vertical .toctree-l1.current .toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .toctree-l11>ul{display:none}.wy-menu-vertical .toctree-l1.current .current.toctree-l2>ul,.wy-menu-vertical .toctree-l2.current .current.toctree-l3>ul,.wy-menu-vertical .toctree-l3.current .current.toctree-l4>ul,.wy-menu-vertical .toctree-l4.current .current.toctree-l5>ul,.wy-menu-vertical .toctree-l5.current .current.toctree-l6>ul,.wy-menu-vertical .toctree-l6.current .current.toctree-l7>ul,.wy-menu-vertical .toctree-l7.current .current.toctree-l8>ul,.wy-menu-vertical .toctree-l8.current .current.toctree-l9>ul,.wy-menu-vertical .toctree-l9.current .current.toctree-l10>ul,.wy-menu-vertical .toctree-l10.current .current.toctree-l11>ul{display:block}.wy-menu-vertical li.toctree-l3,.wy-menu-vertical li.toctree-l4{font-size:.9em}.wy-menu-vertical li.toctree-l2 a,.wy-menu-vertical li.toctree-l3 a,.wy-menu-vertical li.toctree-l4 a,.wy-menu-vertical li.toctree-l5 a,.wy-menu-vertical li.toctree-l6 a,.wy-menu-vertical li.toctree-l7 a,.wy-menu-vertical li.toctree-l8 a,.wy-menu-vertical li.toctree-l9 a,.wy-menu-vertical li.toctree-l10 a{color:#404040}.wy-menu-vertical li.toctree-l2 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l3 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l4 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l5 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l6 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l7 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l8 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l9 a:hover button.toctree-expand,.wy-menu-vertical li.toctree-l10 a:hover button.toctree-expand{color:grey}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a,.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a,.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a,.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a,.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a,.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a,.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a,.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{display:block}.wy-menu-vertical li.toctree-l2.current>a{padding:.4045em 2.427em}.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{padding:.4045em 1.618em .4045em 4.045em}.wy-menu-vertical li.toctree-l3.current>a{padding:.4045em 4.045em}.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{padding:.4045em 1.618em .4045em 5.663em}.wy-menu-vertical li.toctree-l4.current>a{padding:.4045em 5.663em}.wy-menu-vertical li.toctree-l4.current li.toctree-l5>a{padding:.4045em 1.618em .4045em 7.281em}.wy-menu-vertical li.toctree-l5.current>a{padding:.4045em 7.281em}.wy-menu-vertical li.toctree-l5.current li.toctree-l6>a{padding:.4045em 1.618em .4045em 8.899em}.wy-menu-vertical li.toctree-l6.current>a{padding:.4045em 8.899em}.wy-menu-vertical li.toctree-l6.current li.toctree-l7>a{padding:.4045em 1.618em .4045em 10.517em}.wy-menu-vertical li.toctree-l7.current>a{padding:.4045em 10.517em}.wy-menu-vertical li.toctree-l7.current li.toctree-l8>a{padding:.4045em 1.618em .4045em 12.135em}.wy-menu-vertical li.toctree-l8.current>a{padding:.4045em 12.135em}.wy-menu-vertical li.toctree-l8.current li.toctree-l9>a{padding:.4045em 1.618em .4045em 13.753em}.wy-menu-vertical li.toctree-l9.current>a{padding:.4045em 13.753em}.wy-menu-vertical li.toctree-l9.current li.toctree-l10>a{padding:.4045em 1.618em .4045em 15.371em}.wy-menu-vertical li.toctree-l10.current>a{padding:.4045em 15.371em}.wy-menu-vertical li.toctree-l10.current li.toctree-l11>a{padding:.4045em 1.618em .4045em 16.989em}.wy-menu-vertical li.toctree-l2.current>a,.wy-menu-vertical li.toctree-l2.current li.toctree-l3>a{background:#c9c9c9}.wy-menu-vertical li.toctree-l2 button.toctree-expand{color:#a3a3a3}.wy-menu-vertical li.toctree-l3.current>a,.wy-menu-vertical li.toctree-l3.current li.toctree-l4>a{background:#bdbdbd}.wy-menu-vertical li.toctree-l3 button.toctree-expand{color:#969696}.wy-menu-vertical li.current ul{display:block}.wy-menu-vertical li ul{margin-bottom:0;display:none}.wy-menu-vertical li ul li a{margin-bottom:0;color:#d9d9d9;font-weight:400}.wy-menu-vertical a{line-height:18px;padding:.4045em 1.618em;display:block;position:relative;font-size:90%;color:#d9d9d9}.wy-menu-vertical a:hover{background-color:#4e4a4a;cursor:pointer}.wy-menu-vertical a:hover button.toctree-expand{color:#d9d9d9}.wy-menu-vertical a:active{background-color:#2980b9;cursor:pointer;color:#fff}.wy-menu-vertical a:active button.toctree-expand{color:#fff}.wy-side-nav-search{display:block;width:300px;padding:.809em;margin-bottom:.809em;z-index:200;background-color:#2980b9;text-align:center;color:#fcfcfc}.wy-side-nav-search input[type=text]{width:100%;border-radius:50px;padding:6px 12px;border-color:#2472a4}.wy-side-nav-search img{display:block;margin:auto auto .809em;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-side-nav-search .wy-dropdown>a,.wy-side-nav-search>a{color:#fcfcfc;font-size:100%;font-weight:700;display:inline-block;padding:4px 6px;margin-bottom:.809em;max-width:100%}.wy-side-nav-search .wy-dropdown>a:hover,.wy-side-nav-search .wy-dropdown>aactive,.wy-side-nav-search .wy-dropdown>afocus,.wy-side-nav-search>a:hover,.wy-side-nav-search>aactive,.wy-side-nav-search>afocus{background:hsla(0,0%,100%,.1)}.wy-side-nav-search .wy-dropdown>a img.logo,.wy-side-nav-search>a img.logo{display:block;margin:0 auto;height:auto;width:auto;border-radius:0;max-width:100%;background:transparent}.wy-side-nav-search .wy-dropdown>a.icon,.wy-side-nav-search>a.icon{display:block}.wy-side-nav-search .wy-dropdown>a.icon img.logo,.wy-side-nav-search>a.icon img.logo{margin-top:.85em}.wy-side-nav-search>div.switch-menus{position:relative;display:block;margin-top:-.4045em;margin-bottom:.809em;font-weight:400;color:hsla(0,0%,100%,.3)}.wy-side-nav-search>div.switch-menus>div.language-switch,.wy-side-nav-search>div.switch-menus>div.version-switch{display:inline-block;padding:.2em}.wy-side-nav-search>div.switch-menus>div.language-switch select,.wy-side-nav-search>div.switch-menus>div.version-switch select{display:inline-block;margin-right:-2rem;padding-right:2rem;max-width:240px;text-align-last:center;background:none;border:none;border-radius:0;box-shadow:none;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;font-size:1em;font-weight:400;color:hsla(0,0%,100%,.3);cursor:pointer;appearance:none;-webkit-appearance:none;-moz-appearance:none}.wy-side-nav-search>div.switch-menus>div.language-switch select:active,.wy-side-nav-search>div.switch-menus>div.language-switch select:focus,.wy-side-nav-search>div.switch-menus>div.language-switch select:hover,.wy-side-nav-search>div.switch-menus>div.version-switch select:active,.wy-side-nav-search>div.switch-menus>div.version-switch select:focus,.wy-side-nav-search>div.switch-menus>div.version-switch select:hover{background:hsla(0,0%,100%,.1);color:hsla(0,0%,100%,.5)}.wy-side-nav-search>div.switch-menus>div.language-switch select option,.wy-side-nav-search>div.switch-menus>div.version-switch select option{color:#000}.wy-side-nav-search>div.switch-menus>div.language-switch:has(>select):after,.wy-side-nav-search>div.switch-menus>div.version-switch:has(>select):after{display:inline-block;width:1.5em;height:100%;padding:.1em;content:"\f0d7";font-size:1em;line-height:1.2em;font-family:FontAwesome;text-align:center;pointer-events:none;box-sizing:border-box}.wy-nav .wy-menu-vertical header{color:#2980b9}.wy-nav .wy-menu-vertical a{color:#b3b3b3}.wy-nav .wy-menu-vertical a:hover{background-color:#2980b9;color:#fff}[data-menu-wrap]{-webkit-transition:all .2s ease-in;-moz-transition:all .2s ease-in;transition:all .2s ease-in;position:absolute;opacity:1;width:100%;opacity:0}[data-menu-wrap].move-center{left:0;right:auto;opacity:1}[data-menu-wrap].move-left{right:auto;left:-100%;opacity:0}[data-menu-wrap].move-right{right:-100%;left:auto;opacity:0}.wy-body-for-nav{background:#fcfcfc}.wy-grid-for-nav{position:absolute;width:100%;height:100%}.wy-nav-side{position:fixed;top:0;bottom:0;left:0;padding-bottom:2em;width:300px;overflow-x:hidden;overflow-y:hidden;min-height:100%;color:#9b9b9b;background:#343131;z-index:200}.wy-side-scroll{width:320px;position:relative;overflow-x:hidden;overflow-y:scroll;height:100%}.wy-nav-top{display:none;background:#2980b9;color:#fff;padding:.4045em .809em;position:relative;line-height:50px;text-align:center;font-size:100%;*zoom:1}.wy-nav-top:after,.wy-nav-top:before{display:table;content:""}.wy-nav-top:after{clear:both}.wy-nav-top a{color:#fff;font-weight:700}.wy-nav-top img{margin-right:12px;height:45px;width:45px;background-color:#2980b9;padding:5px;border-radius:100%}.wy-nav-top i{font-size:30px;float:left;cursor:pointer;padding-top:inherit}.wy-nav-content-wrap{margin-left:300px;background:#fcfcfc;min-height:100%}.wy-nav-content{padding:1.618em 3.236em;height:100%;max-width:800px;margin:auto}.wy-body-mask{position:fixed;width:100%;height:100%;background:rgba(0,0,0,.2);display:none;z-index:499}.wy-body-mask.on{display:block}footer{color:grey}footer p{margin-bottom:12px}.rst-content footer span.commit tt,footer span.commit .rst-content tt,footer span.commit code{padding:0;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:1em;background:none;border:none;color:grey}.rst-footer-buttons{*zoom:1}.rst-footer-buttons:after,.rst-footer-buttons:before{width:100%;display:table;content:""}.rst-footer-buttons:after{clear:both}.rst-breadcrumbs-buttons{margin-top:12px;*zoom:1}.rst-breadcrumbs-buttons:after,.rst-breadcrumbs-buttons:before{display:table;content:""}.rst-breadcrumbs-buttons:after{clear:both}#search-results .search li{margin-bottom:24px;border-bottom:1px solid #e1e4e5;padding-bottom:24px}#search-results .search li:first-child{border-top:1px solid #e1e4e5;padding-top:24px}#search-results .search li a{font-size:120%;margin-bottom:12px;display:inline-block}#search-results .context{color:grey;font-size:90%}.genindextable li>ul{margin-left:24px}@media screen and (max-width:768px){.wy-body-for-nav{background:#fcfcfc}.wy-nav-top{display:block}.wy-nav-side{left:-300px}.wy-nav-side.shift{width:85%;left:0}.wy-menu.wy-menu-vertical,.wy-side-nav-search,.wy-side-scroll{width:auto}.wy-nav-content-wrap{margin-left:0}.wy-nav-content-wrap .wy-nav-content{padding:1.618em}.wy-nav-content-wrap.shift{position:fixed;min-width:100%;left:85%;top:0;height:100%;overflow:hidden}}@media screen and (min-width:1100px){.wy-nav-content-wrap{background:rgba(0,0,0,.05)}.wy-nav-content{margin:0;background:#fcfcfc}}@media print{.rst-versions,.wy-nav-side,footer{display:none}.wy-nav-content-wrap{margin-left:0}}.rst-versions{position:fixed;bottom:0;left:0;width:300px;color:#fcfcfc;background:#1f1d1d;font-family:Lato,proxima-nova,Helvetica Neue,Arial,sans-serif;z-index:400}.rst-versions a{color:#2980b9;text-decoration:none}.rst-versions .rst-badge-small{display:none}.rst-versions .rst-current-version{padding:12px;background-color:#272525;display:block;text-align:right;font-size:90%;cursor:pointer;color:#27ae60;*zoom:1}.rst-versions .rst-current-version:after,.rst-versions .rst-current-version:before{display:table;content:""}.rst-versions .rst-current-version:after{clear:both}.rst-content .code-block-caption .rst-versions .rst-current-version .headerlink,.rst-content .eqno .rst-versions .rst-current-version .headerlink,.rst-content .rst-versions .rst-current-version .admonition-title,.rst-content code.download .rst-versions .rst-current-version span:first-child,.rst-content dl dt .rst-versions .rst-current-version .headerlink,.rst-content h1 .rst-versions .rst-current-version .headerlink,.rst-content h2 .rst-versions .rst-current-version .headerlink,.rst-content h3 .rst-versions .rst-current-version .headerlink,.rst-content h4 .rst-versions .rst-current-version .headerlink,.rst-content h5 .rst-versions .rst-current-version .headerlink,.rst-content h6 .rst-versions .rst-current-version .headerlink,.rst-content p .rst-versions .rst-current-version .headerlink,.rst-content table>caption .rst-versions .rst-current-version .headerlink,.rst-content tt.download .rst-versions .rst-current-version span:first-child,.rst-versions .rst-current-version .fa,.rst-versions .rst-current-version .icon,.rst-versions .rst-current-version .rst-content .admonition-title,.rst-versions .rst-current-version .rst-content .code-block-caption .headerlink,.rst-versions .rst-current-version .rst-content .eqno .headerlink,.rst-versions .rst-current-version .rst-content code.download span:first-child,.rst-versions .rst-current-version .rst-content dl dt .headerlink,.rst-versions .rst-current-version .rst-content h1 .headerlink,.rst-versions .rst-current-version .rst-content h2 .headerlink,.rst-versions .rst-current-version .rst-content h3 .headerlink,.rst-versions .rst-current-version .rst-content h4 .headerlink,.rst-versions .rst-current-version .rst-content h5 .headerlink,.rst-versions .rst-current-version .rst-content h6 .headerlink,.rst-versions .rst-current-version .rst-content p .headerlink,.rst-versions .rst-current-version .rst-content table>caption .headerlink,.rst-versions .rst-current-version .rst-content tt.download span:first-child,.rst-versions .rst-current-version .wy-menu-vertical li button.toctree-expand,.wy-menu-vertical li .rst-versions .rst-current-version button.toctree-expand{color:#fcfcfc}.rst-versions .rst-current-version .fa-book,.rst-versions .rst-current-version .icon-book{float:left}.rst-versions .rst-current-version.rst-out-of-date{background-color:#e74c3c;color:#fff}.rst-versions .rst-current-version.rst-active-old-version{background-color:#f1c40f;color:#000}.rst-versions.shift-up{height:auto;max-height:100%;overflow-y:scroll}.rst-versions.shift-up .rst-other-versions{display:block}.rst-versions .rst-other-versions{font-size:90%;padding:12px;color:grey;display:none}.rst-versions .rst-other-versions hr{display:block;height:1px;border:0;margin:20px 0;padding:0;border-top:1px solid #413d3d}.rst-versions .rst-other-versions dd{display:inline-block;margin:0}.rst-versions .rst-other-versions dd a{display:inline-block;padding:6px;color:#fcfcfc}.rst-versions .rst-other-versions .rtd-current-item{font-weight:700}.rst-versions.rst-badge{width:auto;bottom:20px;right:20px;left:auto;border:none;max-width:300px;max-height:90%}.rst-versions.rst-badge .fa-book,.rst-versions.rst-badge .icon-book{float:none;line-height:30px}.rst-versions.rst-badge.shift-up .rst-current-version{text-align:right}.rst-versions.rst-badge.shift-up .rst-current-version .fa-book,.rst-versions.rst-badge.shift-up .rst-current-version .icon-book{float:left}.rst-versions.rst-badge>.rst-current-version{width:auto;height:30px;line-height:30px;padding:0 6px;display:block;text-align:center}@media screen and (max-width:768px){.rst-versions{width:85%;display:none}.rst-versions.shift{display:block}}#flyout-search-form{padding:6px}.rst-content .toctree-wrapper>p.caption,.rst-content h1,.rst-content h2,.rst-content h3,.rst-content h4,.rst-content h5,.rst-content h6{margin-bottom:24px}.rst-content img{max-width:100%;height:auto}.rst-content div.figure,.rst-content figure{margin-bottom:24px}.rst-content div.figure .caption-text,.rst-content figure .caption-text{font-style:italic}.rst-content div.figure p:last-child.caption,.rst-content figure p:last-child.caption{margin-bottom:0}.rst-content div.figure.align-center,.rst-content figure.align-center{text-align:center}.rst-content .section>a>img,.rst-content .section>img,.rst-content section>a>img,.rst-content section>img{margin-bottom:24px}.rst-content abbr[title]{text-decoration:none}.rst-content.style-external-links a.reference.external:after{font-family:FontAwesome;content:"\f08e";color:#b3b3b3;vertical-align:super;font-size:60%;margin:0 .2em}.rst-content blockquote{margin-left:24px;line-height:24px;margin-bottom:24px}.rst-content pre.literal-block{white-space:pre;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;display:block;overflow:auto}.rst-content div[class^=highlight],.rst-content pre.literal-block{border:1px solid #e1e4e5;overflow-x:auto;margin:1px 0 24px}.rst-content div[class^=highlight] div[class^=highlight],.rst-content pre.literal-block div[class^=highlight]{padding:0;border:none;margin:0}.rst-content div[class^=highlight] td.code{width:100%}.rst-content .linenodiv pre{border-right:1px solid #e6e9ea;margin:0;padding:12px;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;user-select:none;pointer-events:none}.rst-content div[class^=highlight] pre{white-space:pre;margin:0;padding:12px;display:block;overflow:auto}.rst-content div[class^=highlight] pre .hll{display:block;margin:0 -12px;padding:0 12px}.rst-content .linenodiv pre,.rst-content div[class^=highlight] pre,.rst-content pre.literal-block{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;font-size:12px;line-height:1.4}.rst-content div.highlight .gp,.rst-content div.highlight span.linenos{user-select:none;pointer-events:none}.rst-content div.highlight span.linenos{display:inline-block;padding-left:0;padding-right:12px;margin-right:12px;border-right:1px solid #e6e9ea}.rst-content .code-block-caption{font-style:italic;font-size:85%;line-height:1;padding:1em 0;text-align:center}@media print{.rst-content .codeblock,.rst-content div[class^=highlight],.rst-content div[class^=highlight] pre{white-space:pre-wrap}}.rst-content .admonition,.rst-content .admonition-todo,.rst-content .attention,.rst-content .caution,.rst-content .danger,.rst-content .error,.rst-content .hint,.rst-content .important,.rst-content .note,.rst-content .seealso,.rst-content .tip,.rst-content .warning{clear:both}.rst-content .admonition-todo .last,.rst-content .admonition-todo>:last-child,.rst-content .admonition .last,.rst-content .admonition>:last-child,.rst-content .attention .last,.rst-content .attention>:last-child,.rst-content .caution .last,.rst-content .caution>:last-child,.rst-content .danger .last,.rst-content .danger>:last-child,.rst-content .error .last,.rst-content .error>:last-child,.rst-content .hint .last,.rst-content .hint>:last-child,.rst-content .important .last,.rst-content .important>:last-child,.rst-content .note .last,.rst-content .note>:last-child,.rst-content .seealso .last,.rst-content .seealso>:last-child,.rst-content .tip .last,.rst-content .tip>:last-child,.rst-content .warning .last,.rst-content .warning>:last-child{margin-bottom:0}.rst-content .admonition-title:before{margin-right:4px}.rst-content .admonition table{border-color:rgba(0,0,0,.1)}.rst-content .admonition table td,.rst-content .admonition table th{background:transparent!important;border-color:rgba(0,0,0,.1)!important}.rst-content .section ol.loweralpha,.rst-content .section ol.loweralpha>li,.rst-content .toctree-wrapper ol.loweralpha,.rst-content .toctree-wrapper ol.loweralpha>li,.rst-content section ol.loweralpha,.rst-content section ol.loweralpha>li{list-style:lower-alpha}.rst-content .section ol.upperalpha,.rst-content .section ol.upperalpha>li,.rst-content .toctree-wrapper ol.upperalpha,.rst-content .toctree-wrapper ol.upperalpha>li,.rst-content section ol.upperalpha,.rst-content section ol.upperalpha>li{list-style:upper-alpha}.rst-content .section ol li>*,.rst-content .section ul li>*,.rst-content .toctree-wrapper ol li>*,.rst-content .toctree-wrapper ul li>*,.rst-content section ol li>*,.rst-content section ul li>*{margin-top:12px;margin-bottom:12px}.rst-content .section ol li>:first-child,.rst-content .section ul li>:first-child,.rst-content .toctree-wrapper ol li>:first-child,.rst-content .toctree-wrapper ul li>:first-child,.rst-content section ol li>:first-child,.rst-content section ul li>:first-child{margin-top:0}.rst-content .section ol li>p,.rst-content .section ol li>p:last-child,.rst-content .section ul li>p,.rst-content .section ul li>p:last-child,.rst-content .toctree-wrapper ol li>p,.rst-content .toctree-wrapper ol li>p:last-child,.rst-content .toctree-wrapper ul li>p,.rst-content .toctree-wrapper ul li>p:last-child,.rst-content section ol li>p,.rst-content section ol li>p:last-child,.rst-content section ul li>p,.rst-content section ul li>p:last-child{margin-bottom:12px}.rst-content .section ol li>p:only-child,.rst-content .section ol li>p:only-child:last-child,.rst-content .section ul li>p:only-child,.rst-content .section ul li>p:only-child:last-child,.rst-content .toctree-wrapper ol li>p:only-child,.rst-content .toctree-wrapper ol li>p:only-child:last-child,.rst-content .toctree-wrapper ul li>p:only-child,.rst-content .toctree-wrapper ul li>p:only-child:last-child,.rst-content section ol li>p:only-child,.rst-content section ol li>p:only-child:last-child,.rst-content section ul li>p:only-child,.rst-content section ul li>p:only-child:last-child{margin-bottom:0}.rst-content .section ol li>ol,.rst-content .section ol li>ul,.rst-content .section ul li>ol,.rst-content .section ul li>ul,.rst-content .toctree-wrapper ol li>ol,.rst-content .toctree-wrapper ol li>ul,.rst-content .toctree-wrapper ul li>ol,.rst-content .toctree-wrapper ul li>ul,.rst-content section ol li>ol,.rst-content section ol li>ul,.rst-content section ul li>ol,.rst-content section ul li>ul{margin-bottom:12px}.rst-content .section ol.simple li>*,.rst-content .section ol.simple li ol,.rst-content .section ol.simple li ul,.rst-content .section ul.simple li>*,.rst-content .section ul.simple li ol,.rst-content .section ul.simple li ul,.rst-content .toctree-wrapper ol.simple li>*,.rst-content .toctree-wrapper ol.simple li ol,.rst-content .toctree-wrapper ol.simple li ul,.rst-content .toctree-wrapper ul.simple li>*,.rst-content .toctree-wrapper ul.simple li ol,.rst-content .toctree-wrapper ul.simple li ul,.rst-content section ol.simple li>*,.rst-content section ol.simple li ol,.rst-content section ol.simple li ul,.rst-content section ul.simple li>*,.rst-content section ul.simple li ol,.rst-content section ul.simple li ul{margin-top:0;margin-bottom:0}.rst-content .line-block{margin-left:0;margin-bottom:24px;line-height:24px}.rst-content .line-block .line-block{margin-left:24px;margin-bottom:0}.rst-content .topic-title{font-weight:700;margin-bottom:12px}.rst-content .toc-backref{color:#404040}.rst-content .align-right{float:right;margin:0 0 24px 24px}.rst-content .align-left{float:left;margin:0 24px 24px 0}.rst-content .align-center{margin:auto}.rst-content .align-center:not(table){display:block}.rst-content .code-block-caption .headerlink,.rst-content .eqno .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink,.rst-content dl dt .headerlink,.rst-content h1 .headerlink,.rst-content h2 .headerlink,.rst-content h3 .headerlink,.rst-content h4 .headerlink,.rst-content h5 .headerlink,.rst-content h6 .headerlink,.rst-content p.caption .headerlink,.rst-content p .headerlink,.rst-content table>caption .headerlink{opacity:0;font-size:14px;font-family:FontAwesome;margin-left:.5em}.rst-content .code-block-caption .headerlink:focus,.rst-content .code-block-caption:hover .headerlink,.rst-content .eqno .headerlink:focus,.rst-content .eqno:hover .headerlink,.rst-content .toctree-wrapper>p.caption .headerlink:focus,.rst-content .toctree-wrapper>p.caption:hover .headerlink,.rst-content dl dt .headerlink:focus,.rst-content dl dt:hover .headerlink,.rst-content h1 .headerlink:focus,.rst-content h1:hover .headerlink,.rst-content h2 .headerlink:focus,.rst-content h2:hover .headerlink,.rst-content h3 .headerlink:focus,.rst-content h3:hover .headerlink,.rst-content h4 .headerlink:focus,.rst-content h4:hover .headerlink,.rst-content h5 .headerlink:focus,.rst-content h5:hover .headerlink,.rst-content h6 .headerlink:focus,.rst-content h6:hover .headerlink,.rst-content p.caption .headerlink:focus,.rst-content p.caption:hover .headerlink,.rst-content p .headerlink:focus,.rst-content p:hover .headerlink,.rst-content table>caption .headerlink:focus,.rst-content table>caption:hover .headerlink{opacity:1}.rst-content p a{overflow-wrap:anywhere}.rst-content .wy-table td p,.rst-content .wy-table td ul,.rst-content .wy-table th p,.rst-content .wy-table th ul,.rst-content table.docutils td p,.rst-content table.docutils td ul,.rst-content table.docutils th p,.rst-content table.docutils th ul,.rst-content table.field-list td p,.rst-content table.field-list td ul,.rst-content table.field-list th p,.rst-content table.field-list th ul{font-size:inherit}.rst-content .btn:focus{outline:2px solid}.rst-content table>caption .headerlink:after{font-size:12px}.rst-content .centered{text-align:center}.rst-content .sidebar{float:right;width:40%;display:block;margin:0 0 24px 24px;padding:24px;background:#f3f6f6;border:1px solid #e1e4e5}.rst-content .sidebar dl,.rst-content .sidebar p,.rst-content .sidebar ul{font-size:90%}.rst-content .sidebar .last,.rst-content .sidebar>:last-child{margin-bottom:0}.rst-content .sidebar .sidebar-title{display:block;font-family:Roboto Slab,ff-tisa-web-pro,Georgia,Arial,sans-serif;font-weight:700;background:#e1e4e5;padding:6px 12px;margin:-24px -24px 24px;font-size:100%}.rst-content .highlighted{background:#f1c40f;box-shadow:0 0 0 2px #f1c40f;display:inline;font-weight:700}.rst-content .citation-reference,.rst-content .footnote-reference{vertical-align:baseline;position:relative;top:-.4em;line-height:0;font-size:90%}.rst-content .citation-reference>span.fn-bracket,.rst-content .footnote-reference>span.fn-bracket{display:none}.rst-content .hlist{width:100%}.rst-content dl dt span.classifier:before{content:" : "}.rst-content dl dt span.classifier-delimiter{display:none!important}html.writer-html4 .rst-content table.docutils.citation,html.writer-html4 .rst-content table.docutils.footnote{background:none;border:none}html.writer-html4 .rst-content table.docutils.citation td,html.writer-html4 .rst-content table.docutils.citation tr,html.writer-html4 .rst-content table.docutils.footnote td,html.writer-html4 .rst-content table.docutils.footnote tr{border:none;background-color:transparent!important;white-space:normal}html.writer-html4 .rst-content table.docutils.citation td.label,html.writer-html4 .rst-content table.docutils.footnote td.label{padding-left:0;padding-right:0;vertical-align:top}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{display:grid;grid-template-columns:auto minmax(80%,95%)}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{display:inline-grid;grid-template-columns:max-content auto}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{display:grid;grid-template-columns:auto auto minmax(.65rem,auto) minmax(40%,95%)}html.writer-html5 .rst-content aside.citation>span.label,html.writer-html5 .rst-content aside.footnote>span.label,html.writer-html5 .rst-content div.citation>span.label{grid-column-start:1;grid-column-end:2}html.writer-html5 .rst-content aside.citation>span.backrefs,html.writer-html5 .rst-content aside.footnote>span.backrefs,html.writer-html5 .rst-content div.citation>span.backrefs{grid-column-start:2;grid-column-end:3;grid-row-start:1;grid-row-end:3}html.writer-html5 .rst-content aside.citation>p,html.writer-html5 .rst-content aside.footnote>p,html.writer-html5 .rst-content div.citation>p{grid-column-start:4;grid-column-end:5}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.field-list,html.writer-html5 .rst-content dl.footnote{margin-bottom:24px}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dt{padding-left:1rem}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.field-list>dd,html.writer-html5 .rst-content dl.field-list>dt,html.writer-html5 .rst-content dl.footnote>dd,html.writer-html5 .rst-content dl.footnote>dt{margin-bottom:0}html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{font-size:.9rem}html.writer-html5 .rst-content dl.citation>dt,html.writer-html5 .rst-content dl.footnote>dt{margin:0 .5rem .5rem 0;line-height:1.2rem;word-break:break-all;font-weight:400}html.writer-html5 .rst-content dl.citation>dt>span.brackets:before,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:before{content:"["}html.writer-html5 .rst-content dl.citation>dt>span.brackets:after,html.writer-html5 .rst-content dl.footnote>dt>span.brackets:after{content:"]"}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a{word-break:keep-all}html.writer-html5 .rst-content dl.citation>dt>span.fn-backref>a:not(:first-child):before,html.writer-html5 .rst-content dl.footnote>dt>span.fn-backref>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content dl.citation>dd,html.writer-html5 .rst-content dl.footnote>dd{margin:0 0 .5rem;line-height:1.2rem}html.writer-html5 .rst-content dl.citation>dd p,html.writer-html5 .rst-content dl.footnote>dd p{font-size:.9rem}html.writer-html5 .rst-content aside.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content div.citation{padding-left:1rem;padding-right:1rem;font-size:.9rem;line-height:1.2rem}html.writer-html5 .rst-content aside.citation p,html.writer-html5 .rst-content aside.footnote p,html.writer-html5 .rst-content div.citation p{font-size:.9rem;line-height:1.2rem;margin-bottom:12px}html.writer-html5 .rst-content aside.citation span.backrefs,html.writer-html5 .rst-content aside.footnote span.backrefs,html.writer-html5 .rst-content div.citation span.backrefs{text-align:left;font-style:italic;margin-left:.65rem;word-break:break-word;word-spacing:-.1rem;max-width:5rem}html.writer-html5 .rst-content aside.citation span.backrefs>a,html.writer-html5 .rst-content aside.footnote span.backrefs>a,html.writer-html5 .rst-content div.citation span.backrefs>a{word-break:keep-all}html.writer-html5 .rst-content aside.citation span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content aside.footnote span.backrefs>a:not(:first-child):before,html.writer-html5 .rst-content div.citation span.backrefs>a:not(:first-child):before{content:" "}html.writer-html5 .rst-content aside.citation span.label,html.writer-html5 .rst-content aside.footnote span.label,html.writer-html5 .rst-content div.citation span.label{line-height:1.2rem}html.writer-html5 .rst-content aside.citation-list,html.writer-html5 .rst-content aside.footnote-list,html.writer-html5 .rst-content div.citation-list{margin-bottom:24px}html.writer-html5 .rst-content dl.option-list kbd{font-size:.9rem}.rst-content table.docutils.footnote,html.writer-html4 .rst-content table.docutils.citation,html.writer-html5 .rst-content aside.footnote,html.writer-html5 .rst-content aside.footnote-list aside.footnote,html.writer-html5 .rst-content div.citation-list>div.citation,html.writer-html5 .rst-content dl.citation,html.writer-html5 .rst-content dl.footnote{color:grey}.rst-content table.docutils.footnote code,.rst-content table.docutils.footnote tt,html.writer-html4 .rst-content table.docutils.citation code,html.writer-html4 .rst-content table.docutils.citation tt,html.writer-html5 .rst-content aside.footnote-list aside.footnote code,html.writer-html5 .rst-content aside.footnote-list aside.footnote tt,html.writer-html5 .rst-content aside.footnote code,html.writer-html5 .rst-content aside.footnote tt,html.writer-html5 .rst-content div.citation-list>div.citation code,html.writer-html5 .rst-content div.citation-list>div.citation tt,html.writer-html5 .rst-content dl.citation code,html.writer-html5 .rst-content dl.citation tt,html.writer-html5 .rst-content dl.footnote code,html.writer-html5 .rst-content dl.footnote tt{color:#555}.rst-content .wy-table-responsive.citation,.rst-content .wy-table-responsive.footnote{margin-bottom:0}.rst-content .wy-table-responsive.citation+:not(.citation),.rst-content .wy-table-responsive.footnote+:not(.footnote){margin-top:24px}.rst-content .wy-table-responsive.citation:last-child,.rst-content .wy-table-responsive.footnote:last-child{margin-bottom:24px}.rst-content table.docutils th{border-color:#e1e4e5}html.writer-html5 .rst-content table.docutils th{border:1px solid #e1e4e5}html.writer-html5 .rst-content table.docutils td>p,html.writer-html5 .rst-content table.docutils th>p{line-height:1rem;margin-bottom:0;font-size:.9rem}.rst-content table.docutils td .last,.rst-content table.docutils td .last>:last-child{margin-bottom:0}.rst-content table.field-list,.rst-content table.field-list td{border:none}.rst-content table.field-list td p{line-height:inherit}.rst-content table.field-list td>strong{display:inline-block}.rst-content table.field-list .field-name{padding-right:10px;text-align:left;white-space:nowrap}.rst-content table.field-list .field-body{text-align:left}.rst-content code,.rst-content tt{color:#000;font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;padding:2px 5px}.rst-content code big,.rst-content code em,.rst-content tt big,.rst-content tt em{font-size:100%!important;line-height:normal}.rst-content code.literal,.rst-content tt.literal{color:#e74c3c;white-space:normal}.rst-content code.xref,.rst-content tt.xref,a .rst-content code,a .rst-content tt{font-weight:700;color:#404040;overflow-wrap:normal}.rst-content kbd,.rst-content pre,.rst-content samp{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace}.rst-content a code,.rst-content a tt{color:#2980b9}.rst-content dl{margin-bottom:24px}.rst-content dl dt{font-weight:700;margin-bottom:12px}.rst-content dl ol,.rst-content dl p,.rst-content dl table,.rst-content dl ul{margin-bottom:12px}.rst-content dl dd{margin:0 0 12px 24px;line-height:24px}.rst-content dl dd>ol:last-child,.rst-content dl dd>p:last-child,.rst-content dl dd>table:last-child,.rst-content dl dd>ul:last-child{margin-bottom:0}html.writer-html4 .rst-content dl:not(.docutils),html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple){margin-bottom:24px}html.writer-html4 .rst-content dl:not(.docutils)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{display:table;margin:6px 0;font-size:90%;line-height:normal;background:#e7f2fa;color:#2980b9;border-top:3px solid #6ab0de;padding:6px;position:relative}html.writer-html4 .rst-content dl:not(.docutils)>dt:before,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:before{color:#6ab0de}html.writer-html4 .rst-content dl:not(.docutils)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt{margin-bottom:6px;border:none;border-left:3px solid #ccc;background:#f0f0f0;color:#555}html.writer-html4 .rst-content dl:not(.docutils) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) dl:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt .headerlink{color:#404040;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils)>dt:first-child,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple)>dt:first-child{margin-top:0}html.writer-html4 .rst-content dl:not(.docutils) code.descclassname,html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descclassname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{background-color:transparent;border:none;padding:0;font-size:100%!important}html.writer-html4 .rst-content dl:not(.docutils) code.descname,html.writer-html4 .rst-content dl:not(.docutils) tt.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) code.descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) tt.descname{font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .optional,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .optional{display:inline-block;padding:0 4px;color:#000;font-weight:700}html.writer-html4 .rst-content dl:not(.docutils) .property,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .property{display:inline-block;padding-right:8px;max-width:100%}html.writer-html4 .rst-content dl:not(.docutils) .k,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .k{font-style:italic}html.writer-html4 .rst-content dl:not(.docutils) .descclassname,html.writer-html4 .rst-content dl:not(.docutils) .descname,html.writer-html4 .rst-content dl:not(.docutils) .sig-name,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descclassname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .descname,html.writer-html5 .rst-content dl[class]:not(.option-list):not(.field-list):not(.footnote):not(.citation):not(.glossary):not(.simple) .sig-name{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,Courier,monospace;color:#000}.rst-content .viewcode-back,.rst-content .viewcode-link{display:inline-block;color:#27ae60;font-size:80%;padding-left:24px}.rst-content .viewcode-back{display:block;float:right}.rst-content p.rubric{margin-bottom:12px;font-weight:700}.rst-content code.download,.rst-content tt.download{background:inherit;padding:inherit;font-weight:400;font-family:inherit;font-size:inherit;color:inherit;border:inherit;white-space:inherit}.rst-content code.download span:first-child,.rst-content tt.download span:first-child{-webkit-font-smoothing:subpixel-antialiased}.rst-content code.download span:first-child:before,.rst-content tt.download span:first-child:before{margin-right:4px}.rst-content .guilabel,.rst-content .menuselection{font-size:80%;font-weight:700;border-radius:4px;padding:2.4px 6px;margin:auto 2px}.rst-content .guilabel,.rst-content .menuselection{border:1px solid #7fbbe3;background:#e7f2fa}.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>.kbd,.rst-content :not(dl.option-list)>:not(dt):not(kbd):not(.kbd)>kbd{color:inherit;font-size:80%;background-color:#fff;border:1px solid #a6a6a6;border-radius:4px;box-shadow:0 2px grey;padding:2.4px 6px;margin:auto 0}.rst-content .versionmodified{font-style:italic}@media screen and (max-width:480px){.rst-content .sidebar{width:100%}}span[id*=MathJax-Span]{color:#404040}.math{text-align:center}@font-face{font-family:Lato;src:url(fonts/lato-normal.woff2?bd03a2cc277bbbc338d464e679fe9942) format("woff2"),url(fonts/lato-normal.woff?27bd77b9162d388cb8d4c4217c7c5e2a) format("woff");font-weight:400;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold.woff2?cccb897485813c7c256901dbca54ecf2) format("woff2"),url(fonts/lato-bold.woff?d878b6c29b10beca227e9eef4246111b) format("woff");font-weight:700;font-style:normal;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-bold-italic.woff2?0b6bb6725576b072c5d0b02ecdd1900d) format("woff2"),url(fonts/lato-bold-italic.woff?9c7e4e9eb485b4a121c760e61bc3707c) format("woff");font-weight:700;font-style:italic;font-display:block}@font-face{font-family:Lato;src:url(fonts/lato-normal-italic.woff2?4eb103b4d12be57cb1d040ed5e162e9d) format("woff2"),url(fonts/lato-normal-italic.woff?f28f2d6482446544ef1ea1ccc6dd5892) format("woff");font-weight:400;font-style:italic;font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:400;src:url(fonts/Roboto-Slab-Regular.woff2?7abf5b8d04d26a2cafea937019bca958) format("woff2"),url(fonts/Roboto-Slab-Regular.woff?c1be9284088d487c5e3ff0a10a92e58c) format("woff");font-display:block}@font-face{font-family:Roboto Slab;font-style:normal;font-weight:700;src:url(fonts/Roboto-Slab-Bold.woff2?9984f4a9bda09be08e83f2506954adbe) format("woff2"),url(fonts/Roboto-Slab-Bold.woff?bed5564a116b05148e3b3bea6fb1162a) format("woff");font-display:block} \ No newline at end of file diff --git a/_static/doctools.js b/_static/doctools.js new file mode 100644 index 0000000..0398ebb --- /dev/null +++ b/_static/doctools.js @@ -0,0 +1,149 @@ +/* + * Base JavaScript utilities for all Sphinx HTML documentation. + */ +"use strict"; + +const BLACKLISTED_KEY_CONTROL_ELEMENTS = new Set([ + "TEXTAREA", + "INPUT", + "SELECT", + "BUTTON", +]); + +const _ready = (callback) => { + if (document.readyState !== "loading") { + callback(); + } else { + document.addEventListener("DOMContentLoaded", callback); + } +}; + +/** + * Small JavaScript module for the documentation. + */ +const Documentation = { + init: () => { + Documentation.initDomainIndexTable(); + Documentation.initOnKeyListeners(); + }, + + /** + * i18n support + */ + TRANSLATIONS: {}, + PLURAL_EXPR: (n) => (n === 1 ? 0 : 1), + LOCALE: "unknown", + + // gettext and ngettext don't access this so that the functions + // can safely bound to a different name (_ = Documentation.gettext) + gettext: (string) => { + const translated = Documentation.TRANSLATIONS[string]; + switch (typeof translated) { + case "undefined": + return string; // no translation + case "string": + return translated; // translation exists + default: + return translated[0]; // (singular, plural) translation tuple exists + } + }, + + ngettext: (singular, plural, n) => { + const translated = Documentation.TRANSLATIONS[singular]; + if (typeof translated !== "undefined") + return translated[Documentation.PLURAL_EXPR(n)]; + return n === 1 ? singular : plural; + }, + + addTranslations: (catalog) => { + Object.assign(Documentation.TRANSLATIONS, catalog.messages); + Documentation.PLURAL_EXPR = new Function( + "n", + `return (${catalog.plural_expr})` + ); + Documentation.LOCALE = catalog.locale; + }, + + /** + * helper function to focus on search bar + */ + focusSearchBar: () => { + document.querySelectorAll("input[name=q]")[0]?.focus(); + }, + + /** + * Initialise the domain index toggle buttons + */ + initDomainIndexTable: () => { + const toggler = (el) => { + const idNumber = el.id.substr(7); + const toggledRows = document.querySelectorAll(`tr.cg-${idNumber}`); + if (el.src.substr(-9) === "minus.png") { + el.src = `${el.src.substr(0, el.src.length - 9)}plus.png`; + toggledRows.forEach((el) => (el.style.display = "none")); + } else { + el.src = `${el.src.substr(0, el.src.length - 8)}minus.png`; + toggledRows.forEach((el) => (el.style.display = "")); + } + }; + + const togglerElements = document.querySelectorAll("img.toggler"); + togglerElements.forEach((el) => + el.addEventListener("click", (event) => toggler(event.currentTarget)) + ); + togglerElements.forEach((el) => (el.style.display = "")); + if (DOCUMENTATION_OPTIONS.COLLAPSE_INDEX) togglerElements.forEach(toggler); + }, + + initOnKeyListeners: () => { + // only install a listener if it is really needed + if ( + !DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS && + !DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS + ) + return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.altKey || event.ctrlKey || event.metaKey) return; + + if (!event.shiftKey) { + switch (event.key) { + case "ArrowLeft": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const prevLink = document.querySelector('link[rel="prev"]'); + if (prevLink && prevLink.href) { + window.location.href = prevLink.href; + event.preventDefault(); + } + break; + case "ArrowRight": + if (!DOCUMENTATION_OPTIONS.NAVIGATION_WITH_KEYS) break; + + const nextLink = document.querySelector('link[rel="next"]'); + if (nextLink && nextLink.href) { + window.location.href = nextLink.href; + event.preventDefault(); + } + break; + } + } + + // some keyboard layouts may need Shift to get / + switch (event.key) { + case "/": + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) break; + Documentation.focusSearchBar(); + event.preventDefault(); + } + }); + }, +}; + +// quick alias for translations +const _ = Documentation.gettext; + +_ready(Documentation.init); diff --git a/_static/documentation_options.js b/_static/documentation_options.js new file mode 100644 index 0000000..72513f8 --- /dev/null +++ b/_static/documentation_options.js @@ -0,0 +1,13 @@ +const DOCUMENTATION_OPTIONS = { + VERSION: '1.9.1', + LANGUAGE: 'en', + COLLAPSE_INDEX: false, + BUILDER: 'html', + FILE_SUFFIX: '.html', + LINK_SUFFIX: '.html', + HAS_SOURCE: true, + SOURCELINK_SUFFIX: '.txt', + NAVIGATION_WITH_KEYS: false, + SHOW_SEARCH_SUMMARY: true, + ENABLE_SEARCH_SHORTCUTS: true, +}; \ No newline at end of file diff --git a/_static/file.png b/_static/file.png new file mode 100644 index 0000000..a858a41 Binary files /dev/null and b/_static/file.png differ diff --git a/_static/fonts/Lato/lato-bold.eot b/_static/fonts/Lato/lato-bold.eot new file mode 100644 index 0000000..3361183 Binary files /dev/null and b/_static/fonts/Lato/lato-bold.eot differ diff --git a/_static/fonts/Lato/lato-bold.ttf b/_static/fonts/Lato/lato-bold.ttf new file mode 100644 index 0000000..29f691d Binary files /dev/null and b/_static/fonts/Lato/lato-bold.ttf differ diff --git a/_static/fonts/Lato/lato-bold.woff b/_static/fonts/Lato/lato-bold.woff new file mode 100644 index 0000000..c6dff51 Binary files /dev/null and b/_static/fonts/Lato/lato-bold.woff differ diff --git a/_static/fonts/Lato/lato-bold.woff2 b/_static/fonts/Lato/lato-bold.woff2 new file mode 100644 index 0000000..bb19504 Binary files /dev/null and b/_static/fonts/Lato/lato-bold.woff2 differ diff --git a/_static/fonts/Lato/lato-bolditalic.eot b/_static/fonts/Lato/lato-bolditalic.eot new file mode 100644 index 0000000..3d41549 Binary files /dev/null and b/_static/fonts/Lato/lato-bolditalic.eot differ diff --git a/_static/fonts/Lato/lato-bolditalic.ttf b/_static/fonts/Lato/lato-bolditalic.ttf new file mode 100644 index 0000000..f402040 Binary files /dev/null and b/_static/fonts/Lato/lato-bolditalic.ttf differ diff --git a/_static/fonts/Lato/lato-bolditalic.woff b/_static/fonts/Lato/lato-bolditalic.woff new file mode 100644 index 0000000..88ad05b Binary files /dev/null and b/_static/fonts/Lato/lato-bolditalic.woff differ diff --git a/_static/fonts/Lato/lato-bolditalic.woff2 b/_static/fonts/Lato/lato-bolditalic.woff2 new file mode 100644 index 0000000..c4e3d80 Binary files /dev/null and b/_static/fonts/Lato/lato-bolditalic.woff2 differ diff --git a/_static/fonts/Lato/lato-italic.eot b/_static/fonts/Lato/lato-italic.eot new file mode 100644 index 0000000..3f82642 Binary files /dev/null and b/_static/fonts/Lato/lato-italic.eot differ diff --git a/_static/fonts/Lato/lato-italic.ttf b/_static/fonts/Lato/lato-italic.ttf new file mode 100644 index 0000000..b4bfc9b Binary files /dev/null and b/_static/fonts/Lato/lato-italic.ttf differ diff --git a/_static/fonts/Lato/lato-italic.woff b/_static/fonts/Lato/lato-italic.woff new file mode 100644 index 0000000..76114bc Binary files /dev/null and b/_static/fonts/Lato/lato-italic.woff differ diff --git a/_static/fonts/Lato/lato-italic.woff2 b/_static/fonts/Lato/lato-italic.woff2 new file mode 100644 index 0000000..3404f37 Binary files /dev/null and b/_static/fonts/Lato/lato-italic.woff2 differ diff --git a/_static/fonts/Lato/lato-regular.eot b/_static/fonts/Lato/lato-regular.eot new file mode 100644 index 0000000..11e3f2a Binary files /dev/null and b/_static/fonts/Lato/lato-regular.eot differ diff --git a/_static/fonts/Lato/lato-regular.ttf b/_static/fonts/Lato/lato-regular.ttf new file mode 100644 index 0000000..74decd9 Binary files /dev/null and b/_static/fonts/Lato/lato-regular.ttf differ diff --git a/_static/fonts/Lato/lato-regular.woff b/_static/fonts/Lato/lato-regular.woff new file mode 100644 index 0000000..ae1307f Binary files /dev/null and b/_static/fonts/Lato/lato-regular.woff differ diff --git a/_static/fonts/Lato/lato-regular.woff2 b/_static/fonts/Lato/lato-regular.woff2 new file mode 100644 index 0000000..3bf9843 Binary files /dev/null and b/_static/fonts/Lato/lato-regular.woff2 differ diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot new file mode 100644 index 0000000..79dc8ef Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.eot differ diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf new file mode 100644 index 0000000..df5d1df Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.ttf differ diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff new file mode 100644 index 0000000..6cb6000 Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff differ diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 new file mode 100644 index 0000000..7059e23 Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-bold.woff2 differ diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot new file mode 100644 index 0000000..2f7ca78 Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.eot differ diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf new file mode 100644 index 0000000..eb52a79 Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.ttf differ diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff new file mode 100644 index 0000000..f815f63 Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff differ diff --git a/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 new file mode 100644 index 0000000..f2c76e5 Binary files /dev/null and b/_static/fonts/RobotoSlab/roboto-slab-v7-regular.woff2 differ diff --git a/_static/jquery.js b/_static/jquery.js new file mode 100644 index 0000000..c4c6022 --- /dev/null +++ b/_static/jquery.js @@ -0,0 +1,2 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0"),n("table.docutils.footnote").wrap("
"),n("table.docutils.citation").wrap("
"),n(".wy-menu-vertical ul").not(".simple").siblings("a").each((function(){var t=n(this);expand=n(''),expand.on("click",(function(n){return e.toggleCurrent(t),n.stopPropagation(),!1})),t.prepend(expand)}))},reset:function(){var n=encodeURI(window.location.hash)||"#";try{var e=$(".wy-menu-vertical"),t=e.find('[href="'+n+'"]');if(0===t.length){var i=$('.document [id="'+n.substring(1)+'"]').closest("div.section");0===(t=e.find('[href="#'+i.attr("id")+'"]')).length&&(t=e.find('[href="#"]'))}if(t.length>0){$(".wy-menu-vertical .current").removeClass("current").attr("aria-expanded","false"),t.addClass("current").attr("aria-expanded","true"),t.closest("li.toctree-l1").parent().addClass("current").attr("aria-expanded","true");for(let n=1;n<=10;n++)t.closest("li.toctree-l"+n).addClass("current").attr("aria-expanded","true");t[0].scrollIntoView()}}catch(n){console.log("Error expanding nav for anchor",n)}},onScroll:function(){this.winScroll=!1;var n=this.win.scrollTop(),e=n+this.winHeight,t=this.navBar.scrollTop()+(n-this.winPosition);n<0||e>this.docHeight||(this.navBar.scrollTop(t),this.winPosition=n)},onResize:function(){this.winResize=!1,this.winHeight=this.win.height(),this.docHeight=$(document).height()},hashChange:function(){this.linkScroll=!0,this.win.one("hashchange",(function(){this.linkScroll=!1}))},toggleCurrent:function(n){var e=n.closest("li");e.siblings("li.current").removeClass("current").attr("aria-expanded","false"),e.siblings().find("li.current").removeClass("current").attr("aria-expanded","false");var t=e.find("> ul li");t.length&&(t.removeClass("current").attr("aria-expanded","false"),e.toggleClass("current").attr("aria-expanded",(function(n,e){return"true"==e?"false":"true"})))}},"undefined"!=typeof window&&(window.SphinxRtdTheme={Navigation:n.exports.ThemeNav,StickyNav:n.exports.ThemeNav}),function(){for(var n=0,e=["ms","moz","webkit","o"],t=0;t +
Languages
+ ${config.projects.translations + .map( + (translation) => ` +
+ ${translation.language.code} +
+ `, + ) + .join("\n")} + + `; + return languagesHTML; + } + + function renderVersions(config) { + if (!config.versions.active.length) { + return ""; + } + const versionsHTML = ` +
+
Versions
+ ${config.versions.active + .map( + (version) => ` +
+ ${version.slug} +
+ `, + ) + .join("\n")} +
+ `; + return versionsHTML; + } + + function renderDownloads(config) { + if (!Object.keys(config.versions.current.downloads).length) { + return ""; + } + const downloadsNameDisplay = { + pdf: "PDF", + epub: "Epub", + htmlzip: "HTML", + }; + + const downloadsHTML = ` +
+
Downloads
+ ${Object.entries(config.versions.current.downloads) + .map( + ([name, url]) => ` +
+ ${downloadsNameDisplay[name]} +
+ `, + ) + .join("\n")} +
+ `; + return downloadsHTML; + } + + document.addEventListener("readthedocs-addons-data-ready", function (event) { + const config = event.detail.data(); + + const flyout = ` +
+ + Read the Docs + v: ${config.versions.current.slug} + + +
+
+ ${renderLanguages(config)} + ${renderVersions(config)} + ${renderDownloads(config)} +
+
On Read the Docs
+
+ Project Home +
+
+ Builds +
+
+ Downloads +
+
+
+
Search
+
+
+ +
+
+
+
+ + Hosted by Read the Docs + +
+
+ `; + + // Inject the generated flyout into the body HTML element. + document.body.insertAdjacentHTML("beforeend", flyout); + + // Trigger the Read the Docs Addons Search modal when clicking on the "Search docs" input from inside the flyout. + document + .querySelector("#flyout-search-form") + .addEventListener("focusin", () => { + const event = new CustomEvent("readthedocs-search-show"); + document.dispatchEvent(event); + }); + }) +} + +if (themeLanguageSelector || themeVersionSelector) { + function onSelectorSwitch(event) { + const option = event.target.selectedIndex; + const item = event.target.options[option]; + window.location.href = item.dataset.url; + } + + document.addEventListener("readthedocs-addons-data-ready", function (event) { + const config = event.detail.data(); + + const versionSwitch = document.querySelector( + "div.switch-menus > div.version-switch", + ); + if (themeVersionSelector) { + let versions = config.versions.active; + if (config.versions.current.hidden || config.versions.current.type === "external") { + versions.unshift(config.versions.current); + } + const versionSelect = ` + + `; + + versionSwitch.innerHTML = versionSelect; + versionSwitch.firstElementChild.addEventListener("change", onSelectorSwitch); + } + + const languageSwitch = document.querySelector( + "div.switch-menus > div.language-switch", + ); + + if (themeLanguageSelector) { + if (config.projects.translations.length) { + // Add the current language to the options on the selector + let languages = config.projects.translations.concat( + config.projects.current, + ); + languages = languages.sort((a, b) => + a.language.name.localeCompare(b.language.name), + ); + + const languageSelect = ` + + `; + + languageSwitch.innerHTML = languageSelect; + languageSwitch.firstElementChild.addEventListener("change", onSelectorSwitch); + } + else { + languageSwitch.remove(); + } + } + }); +} + +document.addEventListener("readthedocs-addons-data-ready", function (event) { + // Trigger the Read the Docs Addons Search modal when clicking on "Search docs" input from the topnav. + document + .querySelector("[role='search'] input") + .addEventListener("focusin", () => { + const event = new CustomEvent("readthedocs-search-show"); + document.dispatchEvent(event); + }); +}); \ No newline at end of file diff --git a/_static/language_data.js b/_static/language_data.js new file mode 100644 index 0000000..c7fe6c6 --- /dev/null +++ b/_static/language_data.js @@ -0,0 +1,192 @@ +/* + * This script contains the language-specific data used by searchtools.js, + * namely the list of stopwords, stemmer, scorer and splitter. + */ + +var stopwords = ["a", "and", "are", "as", "at", "be", "but", "by", "for", "if", "in", "into", "is", "it", "near", "no", "not", "of", "on", "or", "such", "that", "the", "their", "then", "there", "these", "they", "this", "to", "was", "will", "with"]; + + +/* Non-minified version is copied as a separate JS file, if available */ + +/** + * Porter Stemmer + */ +var Stemmer = function() { + + var step2list = { + ational: 'ate', + tional: 'tion', + enci: 'ence', + anci: 'ance', + izer: 'ize', + bli: 'ble', + alli: 'al', + entli: 'ent', + eli: 'e', + ousli: 'ous', + ization: 'ize', + ation: 'ate', + ator: 'ate', + alism: 'al', + iveness: 'ive', + fulness: 'ful', + ousness: 'ous', + aliti: 'al', + iviti: 'ive', + biliti: 'ble', + logi: 'log' + }; + + var step3list = { + icate: 'ic', + ative: '', + alize: 'al', + iciti: 'ic', + ical: 'ic', + ful: '', + ness: '' + }; + + var c = "[^aeiou]"; // consonant + var v = "[aeiouy]"; // vowel + var C = c + "[^aeiouy]*"; // consonant sequence + var V = v + "[aeiou]*"; // vowel sequence + + var mgr0 = "^(" + C + ")?" + V + C; // [C]VC... is m>0 + var meq1 = "^(" + C + ")?" + V + C + "(" + V + ")?$"; // [C]VC[V] is m=1 + var mgr1 = "^(" + C + ")?" + V + C + V + C; // [C]VCVC... is m>1 + var s_v = "^(" + C + ")?" + v; // vowel in stem + + this.stemWord = function (w) { + var stem; + var suffix; + var firstch; + var origword = w; + + if (w.length < 3) + return w; + + var re; + var re2; + var re3; + var re4; + + firstch = w.substr(0,1); + if (firstch == "y") + w = firstch.toUpperCase() + w.substr(1); + + // Step 1a + re = /^(.+?)(ss|i)es$/; + re2 = /^(.+?)([^s])s$/; + + if (re.test(w)) + w = w.replace(re,"$1$2"); + else if (re2.test(w)) + w = w.replace(re2,"$1$2"); + + // Step 1b + re = /^(.+?)eed$/; + re2 = /^(.+?)(ed|ing)$/; + if (re.test(w)) { + var fp = re.exec(w); + re = new RegExp(mgr0); + if (re.test(fp[1])) { + re = /.$/; + w = w.replace(re,""); + } + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1]; + re2 = new RegExp(s_v); + if (re2.test(stem)) { + w = stem; + re2 = /(at|bl|iz)$/; + re3 = new RegExp("([^aeiouylsz])\\1$"); + re4 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re2.test(w)) + w = w + "e"; + else if (re3.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + else if (re4.test(w)) + w = w + "e"; + } + } + + // Step 1c + re = /^(.+?)y$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(s_v); + if (re.test(stem)) + w = stem + "i"; + } + + // Step 2 + re = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step2list[suffix]; + } + + // Step 3 + re = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + suffix = fp[2]; + re = new RegExp(mgr0); + if (re.test(stem)) + w = stem + step3list[suffix]; + } + + // Step 4 + re = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/; + re2 = /^(.+?)(s|t)(ion)$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + if (re.test(stem)) + w = stem; + } + else if (re2.test(w)) { + var fp = re2.exec(w); + stem = fp[1] + fp[2]; + re2 = new RegExp(mgr1); + if (re2.test(stem)) + w = stem; + } + + // Step 5 + re = /^(.+?)e$/; + if (re.test(w)) { + var fp = re.exec(w); + stem = fp[1]; + re = new RegExp(mgr1); + re2 = new RegExp(meq1); + re3 = new RegExp("^" + C + v + "[^aeiouwxy]$"); + if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) + w = stem; + } + re = /ll$/; + re2 = new RegExp(mgr1); + if (re.test(w) && re2.test(w)) { + re = /.$/; + w = w.replace(re,""); + } + + // and turn initial Y back to y + if (firstch == "y") + w = firstch.toLowerCase() + w.substr(1); + return w; + } +} + diff --git a/_static/minus.png b/_static/minus.png new file mode 100644 index 0000000..d96755f Binary files /dev/null and b/_static/minus.png differ diff --git a/_static/nbsphinx-broken-thumbnail.svg b/_static/nbsphinx-broken-thumbnail.svg new file mode 100644 index 0000000..4919ca8 --- /dev/null +++ b/_static/nbsphinx-broken-thumbnail.svg @@ -0,0 +1,9 @@ + + + + diff --git a/_static/nbsphinx-code-cells.css b/_static/nbsphinx-code-cells.css new file mode 100644 index 0000000..a3fb27c --- /dev/null +++ b/_static/nbsphinx-code-cells.css @@ -0,0 +1,259 @@ +/* remove conflicting styling from Sphinx themes */ +div.nbinput.container div.prompt *, +div.nboutput.container div.prompt *, +div.nbinput.container div.input_area pre, +div.nboutput.container div.output_area pre, +div.nbinput.container div.input_area .highlight, +div.nboutput.container div.output_area .highlight { + border: none; + padding: 0; + margin: 0; + box-shadow: none; +} + +div.nbinput.container > div[class*=highlight], +div.nboutput.container > div[class*=highlight] { + margin: 0; +} + +div.nbinput.container div.prompt *, +div.nboutput.container div.prompt * { + background: none; +} + +div.nboutput.container div.output_area .highlight, +div.nboutput.container div.output_area pre { + background: unset; +} + +div.nboutput.container div.output_area div.highlight { + color: unset; /* override Pygments text color */ +} + +/* avoid gaps between output lines */ +div.nboutput.container div[class*=highlight] pre { + line-height: normal; +} + +/* input/output containers */ +div.nbinput.container, +div.nboutput.container { + display: -webkit-flex; + display: flex; + align-items: flex-start; + margin: 0; + width: 100%; +} +@media (max-width: 540px) { + div.nbinput.container, + div.nboutput.container { + flex-direction: column; + } +} + +/* input container */ +div.nbinput.container { + padding-top: 5px; +} + +/* last container */ +div.nblast.container { + padding-bottom: 5px; +} + +/* input prompt */ +div.nbinput.container div.prompt pre, +/* for sphinx_immaterial theme: */ +div.nbinput.container div.prompt pre > code { + color: #307FC1; +} + +/* output prompt */ +div.nboutput.container div.prompt pre, +/* for sphinx_immaterial theme: */ +div.nboutput.container div.prompt pre > code { + color: #BF5B3D; +} + +/* all prompts */ +div.nbinput.container div.prompt, +div.nboutput.container div.prompt { + width: 4.5ex; + padding-top: 5px; + position: relative; + user-select: none; +} + +div.nbinput.container div.prompt > div, +div.nboutput.container div.prompt > div { + position: absolute; + right: 0; + margin-right: 0.3ex; +} + +@media (max-width: 540px) { + div.nbinput.container div.prompt, + div.nboutput.container div.prompt { + width: unset; + text-align: left; + padding: 0.4em; + } + div.nboutput.container div.prompt.empty { + padding: 0; + } + + div.nbinput.container div.prompt > div, + div.nboutput.container div.prompt > div { + position: unset; + } +} + +/* disable scrollbars and line breaks on prompts */ +div.nbinput.container div.prompt pre, +div.nboutput.container div.prompt pre { + overflow: hidden; + white-space: pre; +} + +/* input/output area */ +div.nbinput.container div.input_area, +div.nboutput.container div.output_area { + -webkit-flex: 1; + flex: 1; + overflow: auto; +} +@media (max-width: 540px) { + div.nbinput.container div.input_area, + div.nboutput.container div.output_area { + width: 100%; + } +} + +/* input area */ +div.nbinput.container div.input_area { + border: 1px solid #e0e0e0; + border-radius: 2px; + /*background: #f5f5f5;*/ +} + +/* override MathJax center alignment in output cells */ +div.nboutput.container div[class*=MathJax] { + text-align: left !important; +} + +/* override sphinx.ext.imgmath center alignment in output cells */ +div.nboutput.container div.math p { + text-align: left; +} + +/* standard error */ +div.nboutput.container div.output_area.stderr { + background: #fdd; +} + +/* ANSI colors */ +.ansi-black-fg { color: #3E424D; } +.ansi-black-bg { background-color: #3E424D; } +.ansi-black-intense-fg { color: #282C36; } +.ansi-black-intense-bg { background-color: #282C36; } +.ansi-red-fg { color: #E75C58; } +.ansi-red-bg { background-color: #E75C58; } +.ansi-red-intense-fg { color: #B22B31; } +.ansi-red-intense-bg { background-color: #B22B31; } +.ansi-green-fg { color: #00A250; } +.ansi-green-bg { background-color: #00A250; } +.ansi-green-intense-fg { color: #007427; } +.ansi-green-intense-bg { background-color: #007427; } +.ansi-yellow-fg { color: #DDB62B; } +.ansi-yellow-bg { background-color: #DDB62B; } +.ansi-yellow-intense-fg { color: #B27D12; } +.ansi-yellow-intense-bg { background-color: #B27D12; } +.ansi-blue-fg { color: #208FFB; } +.ansi-blue-bg { background-color: #208FFB; } +.ansi-blue-intense-fg { color: #0065CA; } +.ansi-blue-intense-bg { background-color: #0065CA; } +.ansi-magenta-fg { color: #D160C4; } +.ansi-magenta-bg { background-color: #D160C4; } +.ansi-magenta-intense-fg { color: #A03196; } +.ansi-magenta-intense-bg { background-color: #A03196; } +.ansi-cyan-fg { color: #60C6C8; } +.ansi-cyan-bg { background-color: #60C6C8; } +.ansi-cyan-intense-fg { color: #258F8F; } +.ansi-cyan-intense-bg { background-color: #258F8F; } +.ansi-white-fg { color: #C5C1B4; } +.ansi-white-bg { background-color: #C5C1B4; } +.ansi-white-intense-fg { color: #A1A6B2; } +.ansi-white-intense-bg { background-color: #A1A6B2; } + +.ansi-default-inverse-fg { color: #FFFFFF; } +.ansi-default-inverse-bg { background-color: #000000; } + +.ansi-bold { font-weight: bold; } +.ansi-underline { text-decoration: underline; } + + +div.nbinput.container div.input_area div[class*=highlight] > pre, +div.nboutput.container div.output_area div[class*=highlight] > pre, +div.nboutput.container div.output_area div[class*=highlight].math, +div.nboutput.container div.output_area.rendered_html, +div.nboutput.container div.output_area > div.output_javascript, +div.nboutput.container div.output_area:not(.rendered_html) > img{ + padding: 5px; + margin: 0; +} + +/* fix copybtn overflow problem in chromium (needed for 'sphinx_copybutton') */ +div.nbinput.container div.input_area > div[class^='highlight'], +div.nboutput.container div.output_area > div[class^='highlight']{ + overflow-y: hidden; +} + +/* hide copy button on prompts for 'sphinx_copybutton' extension ... */ +.prompt .copybtn, +/* ... and 'sphinx_immaterial' theme */ +.prompt .md-clipboard.md-icon { + display: none; +} + +/* Some additional styling taken form the Jupyter notebook CSS */ +.jp-RenderedHTMLCommon table, +div.rendered_html table { + border: none; + border-collapse: collapse; + border-spacing: 0; + color: black; + font-size: 12px; + table-layout: fixed; +} +.jp-RenderedHTMLCommon thead, +div.rendered_html thead { + border-bottom: 1px solid black; + vertical-align: bottom; +} +.jp-RenderedHTMLCommon tr, +.jp-RenderedHTMLCommon th, +.jp-RenderedHTMLCommon td, +div.rendered_html tr, +div.rendered_html th, +div.rendered_html td { + text-align: right; + vertical-align: middle; + padding: 0.5em 0.5em; + line-height: normal; + white-space: normal; + max-width: none; + border: none; +} +.jp-RenderedHTMLCommon th, +div.rendered_html th { + font-weight: bold; +} +.jp-RenderedHTMLCommon tbody tr:nth-child(odd), +div.rendered_html tbody tr:nth-child(odd) { + background: #f5f5f5; +} +.jp-RenderedHTMLCommon tbody tr:hover, +div.rendered_html tbody tr:hover { + background: rgba(66, 165, 245, 0.2); +} + diff --git a/_static/nbsphinx-gallery.css b/_static/nbsphinx-gallery.css new file mode 100644 index 0000000..365c27a --- /dev/null +++ b/_static/nbsphinx-gallery.css @@ -0,0 +1,31 @@ +.nbsphinx-gallery { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(160px, 1fr)); + gap: 5px; + margin-top: 1em; + margin-bottom: 1em; +} + +.nbsphinx-gallery > a { + padding: 5px; + border: 1px dotted currentColor; + border-radius: 2px; + text-align: center; +} + +.nbsphinx-gallery > a:hover { + border-style: solid; +} + +.nbsphinx-gallery img { + max-width: 100%; + max-height: 100%; +} + +.nbsphinx-gallery > a > div:first-child { + display: flex; + align-items: start; + justify-content: center; + height: 120px; + margin-bottom: 5px; +} diff --git a/_static/nbsphinx-no-thumbnail.svg b/_static/nbsphinx-no-thumbnail.svg new file mode 100644 index 0000000..9dca758 --- /dev/null +++ b/_static/nbsphinx-no-thumbnail.svg @@ -0,0 +1,9 @@ + + + + diff --git a/_static/plus.png b/_static/plus.png new file mode 100644 index 0000000..7107cec Binary files /dev/null and b/_static/plus.png differ diff --git a/_static/pygments.css b/_static/pygments.css new file mode 100644 index 0000000..0d49244 --- /dev/null +++ b/_static/pygments.css @@ -0,0 +1,75 @@ +pre { line-height: 125%; } +td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; } +td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; } +.highlight .hll { background-color: #ffffcc } +.highlight { background: #eeffcc; } +.highlight .c { color: #408090; font-style: italic } /* Comment */ +.highlight .err { border: 1px solid #FF0000 } /* Error */ +.highlight .k { color: #007020; font-weight: bold } /* Keyword */ +.highlight .o { color: #666666 } /* Operator */ +.highlight .ch { color: #408090; font-style: italic } /* Comment.Hashbang */ +.highlight .cm { color: #408090; font-style: italic } /* Comment.Multiline */ +.highlight .cp { color: #007020 } /* Comment.Preproc */ +.highlight .cpf { color: #408090; font-style: italic } /* Comment.PreprocFile */ +.highlight .c1 { color: #408090; font-style: italic } /* Comment.Single */ +.highlight .cs { color: #408090; background-color: #fff0f0 } /* Comment.Special */ +.highlight .gd { color: #A00000 } /* Generic.Deleted */ +.highlight .ge { font-style: italic } /* Generic.Emph */ +.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */ +.highlight .gr { color: #FF0000 } /* Generic.Error */ +.highlight .gh { color: #000080; font-weight: bold } /* Generic.Heading */ +.highlight .gi { color: #00A000 } /* Generic.Inserted */ +.highlight .go { color: #333333 } /* Generic.Output */ +.highlight .gp { color: #c65d09; font-weight: bold } /* Generic.Prompt */ +.highlight .gs { font-weight: bold } /* Generic.Strong */ +.highlight .gu { color: #800080; font-weight: bold } /* Generic.Subheading */ +.highlight .gt { color: #0044DD } /* Generic.Traceback */ +.highlight .kc { color: #007020; font-weight: bold } /* Keyword.Constant */ +.highlight .kd { color: #007020; font-weight: bold } /* Keyword.Declaration */ +.highlight .kn { color: #007020; font-weight: bold } /* Keyword.Namespace */ +.highlight .kp { color: #007020 } /* Keyword.Pseudo */ +.highlight .kr { color: #007020; font-weight: bold } /* Keyword.Reserved */ +.highlight .kt { color: #902000 } /* Keyword.Type */ +.highlight .m { color: #208050 } /* Literal.Number */ +.highlight .s { color: #4070a0 } /* Literal.String */ +.highlight .na { color: #4070a0 } /* Name.Attribute */ +.highlight .nb { color: #007020 } /* Name.Builtin */ +.highlight .nc { color: #0e84b5; font-weight: bold } /* Name.Class */ +.highlight .no { color: #60add5 } /* Name.Constant */ +.highlight .nd { color: #555555; font-weight: bold } /* Name.Decorator */ +.highlight .ni { color: #d55537; font-weight: bold } /* Name.Entity */ +.highlight .ne { color: #007020 } /* Name.Exception */ +.highlight .nf { color: #06287e } /* Name.Function */ +.highlight .nl { color: #002070; font-weight: bold } /* Name.Label */ +.highlight .nn { color: #0e84b5; font-weight: bold } /* Name.Namespace */ +.highlight .nt { color: #062873; font-weight: bold } /* Name.Tag */ +.highlight .nv { color: #bb60d5 } /* Name.Variable */ +.highlight .ow { color: #007020; font-weight: bold } /* Operator.Word */ +.highlight .w { color: #bbbbbb } /* Text.Whitespace */ +.highlight .mb { color: #208050 } /* Literal.Number.Bin */ +.highlight .mf { color: #208050 } /* Literal.Number.Float */ +.highlight .mh { color: #208050 } /* Literal.Number.Hex */ +.highlight .mi { color: #208050 } /* Literal.Number.Integer */ +.highlight .mo { color: #208050 } /* Literal.Number.Oct */ +.highlight .sa { color: #4070a0 } /* Literal.String.Affix */ +.highlight .sb { color: #4070a0 } /* Literal.String.Backtick */ +.highlight .sc { color: #4070a0 } /* Literal.String.Char */ +.highlight .dl { color: #4070a0 } /* Literal.String.Delimiter */ +.highlight .sd { color: #4070a0; font-style: italic } /* Literal.String.Doc */ +.highlight .s2 { color: #4070a0 } /* Literal.String.Double */ +.highlight .se { color: #4070a0; font-weight: bold } /* Literal.String.Escape */ +.highlight .sh { color: #4070a0 } /* Literal.String.Heredoc */ +.highlight .si { color: #70a0d0; font-style: italic } /* Literal.String.Interpol */ +.highlight .sx { color: #c65d09 } /* Literal.String.Other */ +.highlight .sr { color: #235388 } /* Literal.String.Regex */ +.highlight .s1 { color: #4070a0 } /* Literal.String.Single */ +.highlight .ss { color: #517918 } /* Literal.String.Symbol */ +.highlight .bp { color: #007020 } /* Name.Builtin.Pseudo */ +.highlight .fm { color: #06287e } /* Name.Function.Magic */ +.highlight .vc { color: #bb60d5 } /* Name.Variable.Class */ +.highlight .vg { color: #bb60d5 } /* Name.Variable.Global */ +.highlight .vi { color: #bb60d5 } /* Name.Variable.Instance */ +.highlight .vm { color: #bb60d5 } /* Name.Variable.Magic */ +.highlight .il { color: #208050 } /* Literal.Number.Integer.Long */ \ No newline at end of file diff --git a/_static/searchtools.js b/_static/searchtools.js new file mode 100644 index 0000000..2c774d1 --- /dev/null +++ b/_static/searchtools.js @@ -0,0 +1,632 @@ +/* + * Sphinx JavaScript utilities for the full-text search. + */ +"use strict"; + +/** + * Simple result scoring code. + */ +if (typeof Scorer === "undefined") { + var Scorer = { + // Implement the following function to further tweak the score for each result + // The function takes a result array [docname, title, anchor, descr, score, filename] + // and returns the new score. + /* + score: result => { + const [docname, title, anchor, descr, score, filename, kind] = result + return score + }, + */ + + // query matches the full name of an object + objNameMatch: 11, + // or matches in the last dotted part of the object name + objPartialMatch: 6, + // Additive scores depending on the priority of the object + objPrio: { + 0: 15, // used to be importantResults + 1: 5, // used to be objectResults + 2: -5, // used to be unimportantResults + }, + // Used when the priority is not in the mapping. + objPrioDefault: 0, + + // query found in title + title: 15, + partialTitle: 7, + // query found in terms + term: 5, + partialTerm: 2, + }; +} + +// Global search result kind enum, used by themes to style search results. +class SearchResultKind { + static get index() { return "index"; } + static get object() { return "object"; } + static get text() { return "text"; } + static get title() { return "title"; } +} + +const _removeChildren = (element) => { + while (element && element.lastChild) element.removeChild(element.lastChild); +}; + +/** + * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping + */ +const _escapeRegExp = (string) => + string.replace(/[.*+\-?^${}()|[\]\\]/g, "\\$&"); // $& means the whole matched string + +const _displayItem = (item, searchTerms, highlightTerms) => { + const docBuilder = DOCUMENTATION_OPTIONS.BUILDER; + const docFileSuffix = DOCUMENTATION_OPTIONS.FILE_SUFFIX; + const docLinkSuffix = DOCUMENTATION_OPTIONS.LINK_SUFFIX; + const showSearchSummary = DOCUMENTATION_OPTIONS.SHOW_SEARCH_SUMMARY; + const contentRoot = document.documentElement.dataset.content_root; + + const [docName, title, anchor, descr, score, _filename, kind] = item; + + let listItem = document.createElement("li"); + // Add a class representing the item's type: + // can be used by a theme's CSS selector for styling + // See SearchResultKind for the class names. + listItem.classList.add(`kind-${kind}`); + let requestUrl; + let linkUrl; + if (docBuilder === "dirhtml") { + // dirhtml builder + let dirname = docName + "/"; + if (dirname.match(/\/index\/$/)) + dirname = dirname.substring(0, dirname.length - 6); + else if (dirname === "index/") dirname = ""; + requestUrl = contentRoot + dirname; + linkUrl = requestUrl; + } else { + // normal html builders + requestUrl = contentRoot + docName + docFileSuffix; + linkUrl = docName + docLinkSuffix; + } + let linkEl = listItem.appendChild(document.createElement("a")); + linkEl.href = linkUrl + anchor; + linkEl.dataset.score = score; + linkEl.innerHTML = title; + if (descr) { + listItem.appendChild(document.createElement("span")).innerHTML = + " (" + descr + ")"; + // highlight search terms in the description + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + } + else if (showSearchSummary) + fetch(requestUrl) + .then((responseData) => responseData.text()) + .then((data) => { + if (data) + listItem.appendChild( + Search.makeSearchSummary(data, searchTerms, anchor) + ); + // highlight search terms in the summary + if (SPHINX_HIGHLIGHT_ENABLED) // set in sphinx_highlight.js + highlightTerms.forEach((term) => _highlightText(listItem, term, "highlighted")); + }); + Search.output.appendChild(listItem); +}; +const _finishSearch = (resultCount) => { + Search.stopPulse(); + Search.title.innerText = _("Search Results"); + if (!resultCount) + Search.status.innerText = Documentation.gettext( + "Your search did not match any documents. Please make sure that all words are spelled correctly and that you've selected enough categories." + ); + else + Search.status.innerText = Documentation.ngettext( + "Search finished, found one page matching the search query.", + "Search finished, found ${resultCount} pages matching the search query.", + resultCount, + ).replace('${resultCount}', resultCount); +}; +const _displayNextItem = ( + results, + resultCount, + searchTerms, + highlightTerms, +) => { + // results left, load the summary and display it + // this is intended to be dynamic (don't sub resultsCount) + if (results.length) { + _displayItem(results.pop(), searchTerms, highlightTerms); + setTimeout( + () => _displayNextItem(results, resultCount, searchTerms, highlightTerms), + 5 + ); + } + // search finished, update title and status message + else _finishSearch(resultCount); +}; +// Helper function used by query() to order search results. +// Each input is an array of [docname, title, anchor, descr, score, filename, kind]. +// Order the results by score (in opposite order of appearance, since the +// `_displayNextItem` function uses pop() to retrieve items) and then alphabetically. +const _orderResultsByScoreThenName = (a, b) => { + const leftScore = a[4]; + const rightScore = b[4]; + if (leftScore === rightScore) { + // same score: sort alphabetically + const leftTitle = a[1].toLowerCase(); + const rightTitle = b[1].toLowerCase(); + if (leftTitle === rightTitle) return 0; + return leftTitle > rightTitle ? -1 : 1; // inverted is intentional + } + return leftScore > rightScore ? 1 : -1; +}; + +/** + * Default splitQuery function. Can be overridden in ``sphinx.search`` with a + * custom function per language. + * + * The regular expression works by splitting the string on consecutive characters + * that are not Unicode letters, numbers, underscores, or emoji characters. + * This is the same as ``\W+`` in Python, preserving the surrogate pair area. + */ +if (typeof splitQuery === "undefined") { + var splitQuery = (query) => query + .split(/[^\p{Letter}\p{Number}_\p{Emoji_Presentation}]+/gu) + .filter(term => term) // remove remaining empty strings +} + +/** + * Search Module + */ +const Search = { + _index: null, + _queued_query: null, + _pulse_status: -1, + + htmlToText: (htmlString, anchor) => { + const htmlElement = new DOMParser().parseFromString(htmlString, 'text/html'); + for (const removalQuery of [".headerlink", "script", "style"]) { + htmlElement.querySelectorAll(removalQuery).forEach((el) => { el.remove() }); + } + if (anchor) { + const anchorContent = htmlElement.querySelector(`[role="main"] ${anchor}`); + if (anchorContent) return anchorContent.textContent; + + console.warn( + `Anchored content block not found. Sphinx search tries to obtain it via DOM query '[role=main] ${anchor}'. Check your theme or template.` + ); + } + + // if anchor not specified or not found, fall back to main content + const docContent = htmlElement.querySelector('[role="main"]'); + if (docContent) return docContent.textContent; + + console.warn( + "Content block not found. Sphinx search tries to obtain it via DOM query '[role=main]'. Check your theme or template." + ); + return ""; + }, + + init: () => { + const query = new URLSearchParams(window.location.search).get("q"); + document + .querySelectorAll('input[name="q"]') + .forEach((el) => (el.value = query)); + if (query) Search.performSearch(query); + }, + + loadIndex: (url) => + (document.body.appendChild(document.createElement("script")).src = url), + + setIndex: (index) => { + Search._index = index; + if (Search._queued_query !== null) { + const query = Search._queued_query; + Search._queued_query = null; + Search.query(query); + } + }, + + hasIndex: () => Search._index !== null, + + deferQuery: (query) => (Search._queued_query = query), + + stopPulse: () => (Search._pulse_status = -1), + + startPulse: () => { + if (Search._pulse_status >= 0) return; + + const pulse = () => { + Search._pulse_status = (Search._pulse_status + 1) % 4; + Search.dots.innerText = ".".repeat(Search._pulse_status); + if (Search._pulse_status >= 0) window.setTimeout(pulse, 500); + }; + pulse(); + }, + + /** + * perform a search for something (or wait until index is loaded) + */ + performSearch: (query) => { + // create the required interface elements + const searchText = document.createElement("h2"); + searchText.textContent = _("Searching"); + const searchSummary = document.createElement("p"); + searchSummary.classList.add("search-summary"); + searchSummary.innerText = ""; + const searchList = document.createElement("ul"); + searchList.setAttribute("role", "list"); + searchList.classList.add("search"); + + const out = document.getElementById("search-results"); + Search.title = out.appendChild(searchText); + Search.dots = Search.title.appendChild(document.createElement("span")); + Search.status = out.appendChild(searchSummary); + Search.output = out.appendChild(searchList); + + const searchProgress = document.getElementById("search-progress"); + // Some themes don't use the search progress node + if (searchProgress) { + searchProgress.innerText = _("Preparing search..."); + } + Search.startPulse(); + + // index already loaded, the browser was quick! + if (Search.hasIndex()) Search.query(query); + else Search.deferQuery(query); + }, + + _parseQuery: (query) => { + // stem the search terms and add them to the correct list + const stemmer = new Stemmer(); + const searchTerms = new Set(); + const excludedTerms = new Set(); + const highlightTerms = new Set(); + const objectTerms = new Set(splitQuery(query.toLowerCase().trim())); + splitQuery(query.trim()).forEach((queryTerm) => { + const queryTermLower = queryTerm.toLowerCase(); + + // maybe skip this "word" + // stopwords array is from language_data.js + if ( + stopwords.indexOf(queryTermLower) !== -1 || + queryTerm.match(/^\d+$/) + ) + return; + + // stem the word + let word = stemmer.stemWord(queryTermLower); + // select the correct list + if (word[0] === "-") excludedTerms.add(word.substr(1)); + else { + searchTerms.add(word); + highlightTerms.add(queryTermLower); + } + }); + + if (SPHINX_HIGHLIGHT_ENABLED) { // set in sphinx_highlight.js + localStorage.setItem("sphinx_highlight_terms", [...highlightTerms].join(" ")) + } + + // console.debug("SEARCH: searching for:"); + // console.info("required: ", [...searchTerms]); + // console.info("excluded: ", [...excludedTerms]); + + return [query, searchTerms, excludedTerms, highlightTerms, objectTerms]; + }, + + /** + * execute search (requires search index to be loaded) + */ + _performSearch: (query, searchTerms, excludedTerms, highlightTerms, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + const allTitles = Search._index.alltitles; + const indexEntries = Search._index.indexentries; + + // Collect multiple result groups to be sorted separately and then ordered. + // Each is an array of [docname, title, anchor, descr, score, filename, kind]. + const normalResults = []; + const nonMainIndexResults = []; + + _removeChildren(document.getElementById("search-progress")); + + const queryLower = query.toLowerCase().trim(); + for (const [title, foundTitles] of Object.entries(allTitles)) { + if (title.toLowerCase().trim().includes(queryLower) && (queryLower.length >= title.length/2)) { + for (const [file, id] of foundTitles) { + const score = Math.round(Scorer.title * queryLower.length / title.length); + const boost = titles[file] === title ? 1 : 0; // add a boost for document titles + normalResults.push([ + docNames[file], + titles[file] !== title ? `${titles[file]} > ${title}` : title, + id !== null ? "#" + id : "", + null, + score + boost, + filenames[file], + SearchResultKind.title, + ]); + } + } + } + + // search for explicit entries in index directives + for (const [entry, foundEntries] of Object.entries(indexEntries)) { + if (entry.includes(queryLower) && (queryLower.length >= entry.length/2)) { + for (const [file, id, isMain] of foundEntries) { + const score = Math.round(100 * queryLower.length / entry.length); + const result = [ + docNames[file], + titles[file], + id ? "#" + id : "", + null, + score, + filenames[file], + SearchResultKind.index, + ]; + if (isMain) { + normalResults.push(result); + } else { + nonMainIndexResults.push(result); + } + } + } + } + + // lookup as object + objectTerms.forEach((term) => + normalResults.push(...Search.performObjectSearch(term, objectTerms)) + ); + + // lookup as search terms in fulltext + normalResults.push(...Search.performTermsSearch(searchTerms, excludedTerms)); + + // let the scorer override scores with a custom scoring function + if (Scorer.score) { + normalResults.forEach((item) => (item[4] = Scorer.score(item))); + nonMainIndexResults.forEach((item) => (item[4] = Scorer.score(item))); + } + + // Sort each group of results by score and then alphabetically by name. + normalResults.sort(_orderResultsByScoreThenName); + nonMainIndexResults.sort(_orderResultsByScoreThenName); + + // Combine the result groups in (reverse) order. + // Non-main index entries are typically arbitrary cross-references, + // so display them after other results. + let results = [...nonMainIndexResults, ...normalResults]; + + // remove duplicate search results + // note the reversing of results, so that in the case of duplicates, the highest-scoring entry is kept + let seen = new Set(); + results = results.reverse().reduce((acc, result) => { + let resultStr = result.slice(0, 4).concat([result[5]]).map(v => String(v)).join(','); + if (!seen.has(resultStr)) { + acc.push(result); + seen.add(resultStr); + } + return acc; + }, []); + + return results.reverse(); + }, + + query: (query) => { + const [searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms] = Search._parseQuery(query); + const results = Search._performSearch(searchQuery, searchTerms, excludedTerms, highlightTerms, objectTerms); + + // for debugging + //Search.lastresults = results.slice(); // a copy + // console.info("search results:", Search.lastresults); + + // print the results + _displayNextItem(results, results.length, searchTerms, highlightTerms); + }, + + /** + * search for object names + */ + performObjectSearch: (object, objectTerms) => { + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const objects = Search._index.objects; + const objNames = Search._index.objnames; + const titles = Search._index.titles; + + const results = []; + + const objectSearchCallback = (prefix, match) => { + const name = match[4] + const fullname = (prefix ? prefix + "." : "") + name; + const fullnameLower = fullname.toLowerCase(); + if (fullnameLower.indexOf(object) < 0) return; + + let score = 0; + const parts = fullnameLower.split("."); + + // check for different match types: exact matches of full name or + // "last name" (i.e. last dotted part) + if (fullnameLower === object || parts.slice(-1)[0] === object) + score += Scorer.objNameMatch; + else if (parts.slice(-1)[0].indexOf(object) > -1) + score += Scorer.objPartialMatch; // matches in last name + + const objName = objNames[match[1]][2]; + const title = titles[match[0]]; + + // If more than one term searched for, we require other words to be + // found in the name/title/description + const otherTerms = new Set(objectTerms); + otherTerms.delete(object); + if (otherTerms.size > 0) { + const haystack = `${prefix} ${name} ${objName} ${title}`.toLowerCase(); + if ( + [...otherTerms].some((otherTerm) => haystack.indexOf(otherTerm) < 0) + ) + return; + } + + let anchor = match[3]; + if (anchor === "") anchor = fullname; + else if (anchor === "-") anchor = objNames[match[1]][1] + "-" + fullname; + + const descr = objName + _(", in ") + title; + + // add custom score for some objects according to scorer + if (Scorer.objPrio.hasOwnProperty(match[2])) + score += Scorer.objPrio[match[2]]; + else score += Scorer.objPrioDefault; + + results.push([ + docNames[match[0]], + fullname, + "#" + anchor, + descr, + score, + filenames[match[0]], + SearchResultKind.object, + ]); + }; + Object.keys(objects).forEach((prefix) => + objects[prefix].forEach((array) => + objectSearchCallback(prefix, array) + ) + ); + return results; + }, + + /** + * search for full-text terms in the index + */ + performTermsSearch: (searchTerms, excludedTerms) => { + // prepare search + const terms = Search._index.terms; + const titleTerms = Search._index.titleterms; + const filenames = Search._index.filenames; + const docNames = Search._index.docnames; + const titles = Search._index.titles; + + const scoreMap = new Map(); + const fileMap = new Map(); + + // perform the search on the required terms + searchTerms.forEach((word) => { + const files = []; + const arr = [ + { files: terms[word], score: Scorer.term }, + { files: titleTerms[word], score: Scorer.title }, + ]; + // add support for partial matches + if (word.length > 2) { + const escapedWord = _escapeRegExp(word); + if (!terms.hasOwnProperty(word)) { + Object.keys(terms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: terms[term], score: Scorer.partialTerm }); + }); + } + if (!titleTerms.hasOwnProperty(word)) { + Object.keys(titleTerms).forEach((term) => { + if (term.match(escapedWord)) + arr.push({ files: titleTerms[term], score: Scorer.partialTitle }); + }); + } + } + + // no match but word was a required one + if (arr.every((record) => record.files === undefined)) return; + + // found search word in contents + arr.forEach((record) => { + if (record.files === undefined) return; + + let recordFiles = record.files; + if (recordFiles.length === undefined) recordFiles = [recordFiles]; + files.push(...recordFiles); + + // set score for the word in each file + recordFiles.forEach((file) => { + if (!scoreMap.has(file)) scoreMap.set(file, {}); + scoreMap.get(file)[word] = record.score; + }); + }); + + // create the mapping + files.forEach((file) => { + if (!fileMap.has(file)) fileMap.set(file, [word]); + else if (fileMap.get(file).indexOf(word) === -1) fileMap.get(file).push(word); + }); + }); + + // now check if the files don't contain excluded terms + const results = []; + for (const [file, wordList] of fileMap) { + // check if all requirements are matched + + // as search terms with length < 3 are discarded + const filteredTermCount = [...searchTerms].filter( + (term) => term.length > 2 + ).length; + if ( + wordList.length !== searchTerms.size && + wordList.length !== filteredTermCount + ) + continue; + + // ensure that none of the excluded terms is in the search result + if ( + [...excludedTerms].some( + (term) => + terms[term] === file || + titleTerms[term] === file || + (terms[term] || []).includes(file) || + (titleTerms[term] || []).includes(file) + ) + ) + break; + + // select one (max) score for the file. + const score = Math.max(...wordList.map((w) => scoreMap.get(file)[w])); + // add result to the result list + results.push([ + docNames[file], + titles[file], + "", + null, + score, + filenames[file], + SearchResultKind.text, + ]); + } + return results; + }, + + /** + * helper function to return a node containing the + * search summary for a given text. keywords is a list + * of stemmed words. + */ + makeSearchSummary: (htmlText, keywords, anchor) => { + const text = Search.htmlToText(htmlText, anchor); + if (text === "") return null; + + const textLower = text.toLowerCase(); + const actualStartPosition = [...keywords] + .map((k) => textLower.indexOf(k.toLowerCase())) + .filter((i) => i > -1) + .slice(-1)[0]; + const startWithContext = Math.max(actualStartPosition - 120, 0); + + const top = startWithContext === 0 ? "" : "..."; + const tail = startWithContext + 240 < text.length ? "..." : ""; + + let summary = document.createElement("p"); + summary.classList.add("context"); + summary.textContent = top + text.substr(startWithContext, 240).trim() + tail; + + return summary; + }, +}; + +_ready(Search.init); diff --git a/_static/sphinx_highlight.js b/_static/sphinx_highlight.js new file mode 100644 index 0000000..8a96c69 --- /dev/null +++ b/_static/sphinx_highlight.js @@ -0,0 +1,154 @@ +/* Highlighting utilities for Sphinx HTML documentation. */ +"use strict"; + +const SPHINX_HIGHLIGHT_ENABLED = true + +/** + * highlight a given string on a node by wrapping it in + * span elements with the given class name. + */ +const _highlight = (node, addItems, text, className) => { + if (node.nodeType === Node.TEXT_NODE) { + const val = node.nodeValue; + const parent = node.parentNode; + const pos = val.toLowerCase().indexOf(text); + if ( + pos >= 0 && + !parent.classList.contains(className) && + !parent.classList.contains("nohighlight") + ) { + let span; + + const closestNode = parent.closest("body, svg, foreignObject"); + const isInSVG = closestNode && closestNode.matches("svg"); + if (isInSVG) { + span = document.createElementNS("http://www.w3.org/2000/svg", "tspan"); + } else { + span = document.createElement("span"); + span.classList.add(className); + } + + span.appendChild(document.createTextNode(val.substr(pos, text.length))); + const rest = document.createTextNode(val.substr(pos + text.length)); + parent.insertBefore( + span, + parent.insertBefore( + rest, + node.nextSibling + ) + ); + node.nodeValue = val.substr(0, pos); + /* There may be more occurrences of search term in this node. So call this + * function recursively on the remaining fragment. + */ + _highlight(rest, addItems, text, className); + + if (isInSVG) { + const rect = document.createElementNS( + "http://www.w3.org/2000/svg", + "rect" + ); + const bbox = parent.getBBox(); + rect.x.baseVal.value = bbox.x; + rect.y.baseVal.value = bbox.y; + rect.width.baseVal.value = bbox.width; + rect.height.baseVal.value = bbox.height; + rect.setAttribute("class", className); + addItems.push({ parent: parent, target: rect }); + } + } + } else if (node.matches && !node.matches("button, select, textarea")) { + node.childNodes.forEach((el) => _highlight(el, addItems, text, className)); + } +}; +const _highlightText = (thisNode, text, className) => { + let addItems = []; + _highlight(thisNode, addItems, text, className); + addItems.forEach((obj) => + obj.parent.insertAdjacentElement("beforebegin", obj.target) + ); +}; + +/** + * Small JavaScript module for the documentation. + */ +const SphinxHighlight = { + + /** + * highlight the search words provided in localstorage in the text + */ + highlightSearchWords: () => { + if (!SPHINX_HIGHLIGHT_ENABLED) return; // bail if no highlight + + // get and clear terms from localstorage + const url = new URL(window.location); + const highlight = + localStorage.getItem("sphinx_highlight_terms") + || url.searchParams.get("highlight") + || ""; + localStorage.removeItem("sphinx_highlight_terms") + url.searchParams.delete("highlight"); + window.history.replaceState({}, "", url); + + // get individual terms from highlight string + const terms = highlight.toLowerCase().split(/\s+/).filter(x => x); + if (terms.length === 0) return; // nothing to do + + // There should never be more than one element matching "div.body" + const divBody = document.querySelectorAll("div.body"); + const body = divBody.length ? divBody[0] : document.querySelector("body"); + window.setTimeout(() => { + terms.forEach((term) => _highlightText(body, term, "highlighted")); + }, 10); + + const searchBox = document.getElementById("searchbox"); + if (searchBox === null) return; + searchBox.appendChild( + document + .createRange() + .createContextualFragment( + '" + ) + ); + }, + + /** + * helper function to hide the search marks again + */ + hideSearchWords: () => { + document + .querySelectorAll("#searchbox .highlight-link") + .forEach((el) => el.remove()); + document + .querySelectorAll("span.highlighted") + .forEach((el) => el.classList.remove("highlighted")); + localStorage.removeItem("sphinx_highlight_terms") + }, + + initEscapeListener: () => { + // only install a listener if it is really needed + if (!DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS) return; + + document.addEventListener("keydown", (event) => { + // bail for input elements + if (BLACKLISTED_KEY_CONTROL_ELEMENTS.has(document.activeElement.tagName)) return; + // bail with special keys + if (event.shiftKey || event.altKey || event.ctrlKey || event.metaKey) return; + if (DOCUMENTATION_OPTIONS.ENABLE_SEARCH_SHORTCUTS && (event.key === "Escape")) { + SphinxHighlight.hideSearchWords(); + event.preventDefault(); + } + }); + }, +}; + +_ready(() => { + /* Do not call highlightSearchWords() when we are on the search page. + * It will highlight words from the *previous* search query. + */ + if (typeof Search === "undefined") SphinxHighlight.highlightSearchWords(); + SphinxHighlight.initEscapeListener(); +}); diff --git a/cluster.html b/cluster.html new file mode 100644 index 0000000..cc08409 --- /dev/null +++ b/cluster.html @@ -0,0 +1,222 @@ + + + + + + + + + Computation Guide — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Computation Guide

+
+

Computation Time Scaling

+

Fully converged Bayesian inference requires numerous iterations to explore the entire prior parameter space. This process demands substantial computation time, which can be very expensive depending on the Equation of State (EOS) you are using.

+
+

1. Using Integrated EOS Models

+
+

If you are utilizing the EOS models integrated into this package, here is an overview of the computational resources required:

+
    +
  1. Relativistic Mean Field (RMF) Model

    +
      +
    • Optimization: Please use the Numba-accelerated version of EOS computation.

    • +
    • Resources: With one NICER observation constraint and utilizing 256 CPU cores, the computation can be completed within approximately 1 hour.

    • +
    • Scalability: The computation time will increase as you include more observations.

    • +
    +
  2. +
  3. Speed of Sound Model and Polytropic Model

    +
      +
    • Nature: These are meta-models with explicit mathematical formulas, allowing for analytical computations.

    • +
    • Resources: Using 24 CPU cores, the inference can be completed within 6 hours.

    • +
    • Scalability: The computation time scales with the number of observations included.

    • +
    +
  4. +
  5. Strangeon Model and MIT Bag Model

    +
      +
    • Nature: Although these are physics-based models, the computations are relatively straightforward and fast.

    • +
    • Resources: On a laptop with 24 cores, the computation can be completed within 5-6 hours.

    • +
    • Scalability: The computation time increases with the addition of more observations.

    • +
    +
  6. +
+

2. Using Custom EOS Models

+

If you are defining your own EOS and wish to perform inference using this package:

+
    +
  • Performance Requirement: Ensure that the computation time for your EOS is less than 1 second per evaluation. Otherwise, the overall computation will become prohibitively expensive due to the large number of samples required for Bayesian inference.

  • +
+
+
+

Parallelization

+

Given the computational intensity of Bayesian inference, parallelization strategies are essential to optimize performance. Below are the steps to parallelize computations using UltraNest without modifying the package’s code.

+

Requirements

+
    +
  • OpenMPI: Ensure that OpenMPI is installed and available on your system.

  • +
  • Python Packages: Install h5py and mpi4py.

  • +
+

Steps to Parallelize

+
    +
  1. Set the Number of Threads

    +

    Control the number of threads per process by setting the OMP_NUM_THREADS environment variable. For example, to set it to 1:

    +
    export OMP_NUM_THREADS=1
    +
    +
    +
  2. +
  3. Run the Inference Script with MPI

    +

    Use mpiexec to execute your inference script across multiple cores. Replace inference.py with the name of your inference script.

    +
    mpiexec -np 4 python inference.py
    +
    +
    +
      +
    • Explanation: This command runs the inference using 4 CPU cores. Adjust the -np value according to the number of available cores you wish to utilize.

    • +
    +
  4. +
+

Recommendations

+
    +
  • Virtual Environment: Regardless of where you are running the code, it is highly recommended to use a virtual environment to manage your installations. This practice helps maintain dependencies and avoids conflicts with other projects.

  • +
+

Additional Resources

+

For more detailed information on performance and parallelization strategies with UltraNest, refer to the UltraNest Performance Page.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/crust_EOS.html b/crust_EOS.html new file mode 100644 index 0000000..b834454 --- /dev/null +++ b/crust_EOS.html @@ -0,0 +1,176 @@ + + + + + + + + + Crust Equation of state interpolation — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Crust Equation of state interpolation

+

Function to connect the crust EoS given by user with the core part by function calls

+
+
+EOSgenerators.crust_EOS.PolyInterpolate(eps_crust, pressure_crust)[source]
+

Polytrope connecting crust part of equation of state to core part

+
+
Parameters:
+
    +
  • eps_crust (array) – the energy density of crust EoS in MeV/fm3, times a G/c**2 factor

  • +
  • pres_crust (array) – the pressure from crust EoS model in MeV/fm3, times a G/c**4 factor

  • +
+
+
Returns:
+

EOS ingredient, combined crust and inter-crust part energy density in +MeV/fm3, times a G/c**2 factor +pres_combine (float): EOS ingredient, combined crust and inter-crust part pressure in MeV/fm3, +times a G/c**2 factor

+
+
Return type:
+

eps_combine (float)

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/fastRMF_EoS.html b/fastRMF_EoS.html new file mode 100644 index 0000000..7b878d8 --- /dev/null +++ b/fastRMF_EoS.html @@ -0,0 +1,230 @@ + + + + + + + + + RMF EOS solver (numba speed up version) — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

RMF EOS solver (numba speed up version)

+

Functions to compute RMF Equation of state from given parameters. (numba speed up)

+
+
+EOSgenerators.fastRMF_EoS.Energy_density_Pressure(x, rho, theta)[source]
+

Generate pressure and energy density two EOS ingredient from given RMF term and given parameters, +(fast version)

+
+
Parameters:
+
    +
  • x (array) – An array that consists of the initial values of sigma, omega, rho, and chemical

  • +
  • function. (potential obtained from the initial_values)

  • +
  • rho (float) – The central density from which the computation of the equation of state begins.

  • +
  • theta (array) – An array representing the parameters used to determine a RMF model in the

  • +
  • case (Lagrangian. In this)

  • +
  • parameters. (the RMF model is defined by 10)

  • +
+
+
Returns:
+

EOS ingredient, energy density in g/cm3 +pressure (float): EOS ingredient, pressure in dyn/cm3

+
+
Return type:
+

energy_density (float)

+
+
+
+ +
+
+EOSgenerators.fastRMF_EoS.compute_EOS(eps_crust, pres_crust, theta)[source]
+

Generate core part equation of state, main function, from RMF model (fast version)

+
+
Parameters:
+
    +
  • eps_crust (array) – the energy density of crust EoS in MeV/fm3, times a G/c**2 factor

  • +
  • pres_crust (array) – the pressure from crust EoS model in MeV/fm3, times a G/c**4 factor

  • +
  • theta (array) – An array representing the parameters used to determine a RMF model in the

  • +
  • case (Lagrangian. In this)

  • +
  • parameters. (the RMF model is defined by 10)

  • +
+
+
Returns:
+

EOS ingredient, energy density in g/cm3 +pressure (float): EOS ingredient, pressure in dyn/cm3

+
+
Return type:
+

energy_density (float)

+
+
+
+ +
+
+EOSgenerators.fastRMF_EoS.initial_values(rho, theta)[source]
+

Outputs the the sigma, omega, rho term and chemical potential of electron and neutron at +given initial density (fast version)

+
+
Parameters:
+
    +
  • rho (float) – given nuclear density

  • +
  • theta (array) – paramters of determine a RMF model in lagrangian, here we have 10 parameters.

  • +
+
+
Returns:
+

sigma term in lagrangian +omega (float): omega term in lagrangian +rho_03 (float): rho term in lagrangian +mu_n (float): chemical potential of neutron matter +mu_e (float): chemical potential of electron portion

+
+
Return type:
+

sigma (float)

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/genindex.html b/genindex.html new file mode 100644 index 0000000..f1bb1fe --- /dev/null +++ b/genindex.html @@ -0,0 +1,437 @@ + + + + + + + + Index — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + +

Index

+ +
+ C + | E + | F + | I + | J + | K + | L + | M + | N + | O + | P + | S + | T + | U + +
+

C

+ + + +
    +
  • + CompactObject + +
  • +
+ +

E

+ + + +
    +
  • + EOSgenerators.fastRMF_EoS + +
  • +
  • + EOSgenerators.RMF_EOS + +
  • +
+ +

F

+ + + +
+ +

I

+ + + +
    +
  • + InferenceWorkflow.BayesianSampler + +
  • +
  • + InferenceWorkflow.Likelihood + +
  • +
+ +

J

+ + +
+ +

K

+ + +
+ +

L

+ + +
+ +

M

+ + + +
+ +

N

+ + +
+ +

O

+ + + +
+ +

P

+ + +
+ +

S

+ + + +
+ +

T

+ + + +
    +
  • + TOVsolver.main + +
  • +
  • + TOVsolver.solver_code + +
  • +
  • + TOVsolver.speed_of_sound + +
  • +
+ +

U

+ + + +
+ + + +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/index.html b/index.html new file mode 100644 index 0000000..b8237dd --- /dev/null +++ b/index.html @@ -0,0 +1,463 @@ + + + + + + + + + CompactObject Package Tutorials — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CompactObject Package Tutorials

+

An Open-Source Package for Neutron Stars +Comprehensive Workflow for Bayesian Inference Constraining +Neutron Star EOS Package

+

CompactObject is an open-source package designed to perform Bayesian inference +on neutron star equation of state (EOS) constraints. It offers a comprehensive workflow +that integrates astrophysical observations and nuclear measurements to explore the interior +composition of neutron stars. The package is built to be user-friendly, easily extendable, +and thoroughly documented, making it an essential tool for researchers in nuclear astrophysics. +The package integrates three independent modules:

+
    +
  1. Tolman–Oppenheimer–Volkoff (TOV) Equation Solver +A user-friendly solver for determining neutron star structure based on a given EOS.

  2. +
  3. Neutron Star EOS Generator +Generates EOS across the full density range. Currently, it includes the relativistic mean +field theory EOS solver and will support polytropes and additional EOS models in the future.

  4. +
  5. Bayesian Inference Workflow +A complete package for constraining the EOS of neutron stars. This includes defining the +likelihood from observations (X-ray timing, gravitational waves, radio timing) and nuclear +experiments (nuclear quantities, pQCD, chiral EFT), as well as from simulated astrophysical +observations. It also involves defining priors for the parameters and running nested sampling +of the posterior space.

  6. +
+

These three components are independent, allowing users to integrate them into their workflows +seamlessly. The package’s functionality extends beyond inference studies, and we welcome +contributions of new features.

+

For installation instructions, please refer to the Installation Page.

+

Publications

+

Papers generated using this package include:

+ +

If you use our software, please consider citing us with the following standard citation:

+

The inference conducted here relies on the framework in the \(\textit{CompactObject}\) package [CompactObject]. +This is an open-source, full-scope package designed to implement Bayesian constraints on the neutron star EOS. Other work based on this package is ….

+
+

Concept

+

Bayesian inference studies of the neutron star equation of state have become a trending +field, particularly due to significant advancements such as the Neutron Star +Interior Composition Explorer (NICER) measuring neutron star masses and radii through X-ray timing, and the detection of neutron star merger events through gravitational wave observations by the LIGO detector.

+

Below is the overall pipeline of this field:

+Workflow Diagram +

As depicted in this diagram, fundamental physics provides the EOS for neutron stars. By inputting the EOS into the Tolman–Oppenheimer–Volkoff (TOV) equation, we can obtain parameters related to the neutron star structure, such as mass, radius, and tidal properties. Instruments like NICER and LIGO measure these properties, providing data for Bayesian inference. This process constrains the EOS by determining the region in the Mass-Radius space where neutron stars can exist, ultimately offering insights into the fundamental composition of their interiors.

+
+
+

Equation of State

+

The neutron star equation of state (EOS) plays a crucial role in determining the composition of a neutron star. It is closely connected to the microphysical properties of neutron stars. Here, we introduce an EOS derived from the Relativistic Mean Field (RMF) theory. The Lagrangian of this model is represented as follows:

+
+\[\mathcal{L} = \sum_N \mathcal{L}_N + \mathcal{L}_{\mathcal{M}} + \sum_l \mathcal{L}_l\]
+

Where:

+
    +
  • \(\mathcal{L}_N\) is the nucleonic Lagrangian

  • +
  • \(\mathcal{L}_{\mathcal{M}}\) is the meson part of the Lagrangian

  • +
  • \(\mathcal{L}_l\) is the lepton Lagrangian

  • +
+

Details of the Lagrangian are illustrated below:

+Lagrangian Diagram +

In the equation:

+
    +
  • \(\Psi_{N}\) and \(\psi_{l}\) are the nucleon and lepton spinors

  • +
  • \(\bar{I}_{N}\) is the nucleon isospin operator

  • +
  • \(g\) denotes the strong interaction coupling of a meson to a nucleon

  • +
  • \(m\) represents the masses of the nucleons, mesons, and leptons

  • +
  • The parameters \(\kappa\), \(\lambda_0\), \(\zeta\), and \(\Lambda_{\omega}\) are coupling constants to be determined by the inference method

  • +
+

These free parameters represent the degrees of freedom in the RMF model and can be determined through nuclear experiments. Additionally, astrophysical observations can help constrain these parameters. The complete list of parameters includes:

+Free Parameters Diagram +

These parameters should be inputted to generate the EOS using our EOS generators module. Different EOS parameters will affect mass-radius relations, as demonstrated here. For more details on the physics, refer to Glendenning (1996).

+
+
+

Tolman–Oppenheimer–Volkoff (TOV) Equation

+

The TOV equation is a general relativity equation that constrains the structure of a spherically symmetrical body under gravity. The original equation is:

+
+\[\frac{d P}{d r} = -\frac{G m}{r^2} \rho \left(1 + \frac{P}{\rho c^2}\right) \left(1 + \frac{4 \pi r^3 P}{m c^2}\right) \left(1 - \frac{2 G m}{r c^2}\right)^{-1}\]
+

To solve this equation, the essential ingredient is the EOS. The basic strategy is as follows: at a given central density, input it into the neutron star EOS to obtain the pressure. Then, integrate the density from the center to the boundary, repeating this process across the entire possible density range.

+

In our code, we provide two different functions:

+
    +
  1. Default Solver: +Solves the TOV equation within a predefined density range (log(14.3, 15.6) on a scale of 10).

  2. +
  3. Point-by-Point Solver: +Allows solving the equation for any chosen central density range.

  4. +
+

For more information on the TOV equation, visit the Wikipedia page.

+
+
+

Bayesian Inference

+

Using Bayesian inference tools to explore constraints on the neutron star EOS is increasingly common. The foundational equation is Bayes’ Theorem:

+
+\[P(A \mid B) = \frac{P(B \mid A) P(A)}{P(B)}\]
+

Where:

+
    +
  • Posterior Probability (\(P(A \mid B)\)): The probability of hypothesis A after observing B.

  • +
  • Prior Probability (\(P(A)\)): The initial probability of hypothesis A before observing B.

  • +
  • Likelihood (\(P(B \mid A)\)): The probability of observing B given that hypothesis A is true.

  • +
  • Evidence (\(P(B)\)): The probability of observing B under all possible hypotheses.

  • +
+

In this context:

+
    +
  • Posterior is the updated probability after considering new observations or experiments.

  • +
  • Prior is the initial belief before new data is considered.

  • +
  • Likelihood is the influence of new data on the belief.

  • +
+

The likelihood in our studies primarily comes from four sources:

+
    +
  1. Mass-Radius Measurements from X-ray Timing (e.g., NICER)

  2. +
  3. Tidal Measurements from Gravitational Wave Detection

  4. +
  5. Mass Measurements from Radio Timing

  6. +
  7. Nuclear Physics Constraints from Experiments

  8. +
+

NICER’s mass-radius measurements are a significant achievement in neutron star physics, comparable to gravitational wave detections. For the connection between our EOS and nuclear quantities, refer to Chen & Piekarewicz (2014a).

+

The nuclear physics quantities we consider are:

+
    +
  • K: Compressibility of nuclear matter

  • +
  • J: Symmetry energy at saturation density

  • +
  • L: Slope of symmetry energy at saturation density

  • +
+

There are more on constraining the EOS by Pure neutron matter (PNM):

+
    +
  • chiral EFT constraint

  • +
  • pQCD constraint

  • +
+

These can be computed from posterior samples (we will add the nuclear properties computation code in the near future). They also serve as independent constraints on the neutron star EOS.

+

When performing real astrophysical sampling, it is crucial to sample the neutron star central density corresponding to each measurement used. For instance, if investigating the constraining effect of two mass-radius measurements on the EOS, you need to define two additional free parameters—the central densities for each measurement. Otherwise, the inference would not represent a full-scope EOS analysis. Therefore, our likelihood functions include a parameter \(d_1\), representing the density parameter of each observation.

+
+
+

Summary

+

CompactObject provides a comprehensive suite of tools for Bayesian inference on neutron star EOS constraints. By integrating astrophysical observations with nuclear experiments, it facilitates a deeper understanding of neutron star interiors.

+

For more information, tutorials, and support, please refer to our documentation or contact the development team.

+ + + + + + +
+

Postprocessing module

+ +
+
+
+

Indices and tables

+ +
+
+ + +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/installation.html b/installation.html new file mode 100644 index 0000000..943342e --- /dev/null +++ b/installation.html @@ -0,0 +1,261 @@ + + + + + + + + + Installation — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Installation

+

CompactObject is an open-source tool designed for comprehensive neutron star equation inference. It is built to be easy to install and use. Follow the step-by-step installation guide below to get started.

+ +
+

Optional: Using Python Virtual Environment

+

If you are not using Anaconda, you can create a virtual environment using Python’s venv module:

+
    +
  1. Create a Virtual Environment

    +

    Run the following command to create a virtual environment named CompactObject:

    +
    python3 -m venv CompactObject
    +
    +
    +

    You can specify a different path by replacing `CompactObject` with your desired directory name.

    +
  2. +
  3. Activate the Environment

    +

    Activate the virtual environment with:

    +
    source CompactObject/bin/activate
    +
    +
    +
  4. +
  5. Install CompactObject

    +

    Once the environment is activated, install CompactObject using pip:

    +
    pip install CompactObject-TOV
    +
    +
    +

    To upgrade to the latest version, run:

    +
    pip install CompactObject-TOV --upgrade
    +
    +
    +
  6. +
  7. Using the Package

    +

    You are now ready to use CompactObject. Each time you want to use the package, ensure you activate the environment:

    +
    source CompactObject/bin/activate
    +
    +
    +
  8. +
+
+
+

Summary

+
    +
  • Using Anaconda: +1. Create and activate the CompactObject environment. +2. Install CompactObject with pip. +3. Activate the environment whenever you use the package.

  • +
  • Using Python Virtual Environment: +1. Create and activate the CompactObject virtual environment. +2. Install CompactObject with pip. +3. Activate the environment whenever you use the package.

  • +
+

If you encounter any issues or have questions, feel free to reach out for support. Happy computing!

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/intro.html b/intro.html new file mode 100644 index 0000000..10c4792 --- /dev/null +++ b/intro.html @@ -0,0 +1,294 @@ + + + + + + + + + CompactObject Package Tutorials — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

CompactObject Package Tutorials

+

An Open-Source Package for Neutron Stars +Comprehensive Workflow for Bayesian Inference Constraining +Neutron Star EOS Package

+

CompactObject is an open-source package designed to perform Bayesian inference +on neutron star equation of state (EOS) constraints. It offers a comprehensive workflow +that integrates astrophysical observations and nuclear measurements to explore the interior +composition of neutron stars. The package is built to be user-friendly, easily extendable, +and thoroughly documented, making it an essential tool for researchers in nuclear astrophysics. +The package integrates three independent modules:

+
    +
  1. Tolman–Oppenheimer–Volkoff (TOV) Equation Solver +A user-friendly solver for determining neutron star structure based on a given EOS.

  2. +
  3. Neutron Star EOS Generator +Generates EOS across the full density range. Currently, it includes the relativistic mean +field theory EOS solver and will support polytropes and additional EOS models in the future.

  4. +
  5. Bayesian Inference Workflow +A complete package for constraining the EOS of neutron stars. This includes defining the +likelihood from observations (X-ray timing, gravitational waves, radio timing) and nuclear +experiments (nuclear quantities, pQCD, chiral EFT), as well as from simulated astrophysical +observations. It also involves defining priors for the parameters and running nested sampling +of the posterior space.

  6. +
+

These three components are independent, allowing users to integrate them into their workflows +seamlessly. The package’s functionality extends beyond inference studies, and we welcome +contributions of new features.

+

For installation instructions, please refer to the Installation Page.

+

Publications

+

Papers generated using this package include:

+ +

If you use our software, please consider citing us with the following standard citation:

+

The inference conducted here relies on the framework in the \(\textit{CompactObject}\) package [CompactObject]. +This is an open-source, full-scope package designed to implement Bayesian constraints on the neutron star EOS. Other work based on this package is ….

+
+

Concept

+

Bayesian inference studies of the neutron star equation of state have become a trending +field, particularly due to significant advancements such as the Neutron Star +Interior Composition Explorer (NICER) measuring neutron star masses and radii through X-ray timing, and the detection of neutron star merger events through gravitational wave observations by the LIGO detector.

+

Below is the overall pipeline of this field:

+Workflow Diagram +

As depicted in this diagram, fundamental physics provides the EOS for neutron stars. By inputting the EOS into the Tolman–Oppenheimer–Volkoff (TOV) equation, we can obtain parameters related to the neutron star structure, such as mass, radius, and tidal properties. Instruments like NICER and LIGO measure these properties, providing data for Bayesian inference. This process constrains the EOS by determining the region in the Mass-Radius space where neutron stars can exist, ultimately offering insights into the fundamental composition of their interiors.

+
+
+

Equation of State

+

The neutron star equation of state (EOS) plays a crucial role in determining the composition of a neutron star. It is closely connected to the microphysical properties of neutron stars. Here, we introduce an EOS derived from the Relativistic Mean Field (RMF) theory. The Lagrangian of this model is represented as follows:

+
+\[\mathcal{L} = \sum_N \mathcal{L}_N + \mathcal{L}_{\mathcal{M}} + \sum_l \mathcal{L}_l\]
+

Where:

+
    +
  • \(\mathcal{L}_N\) is the nucleonic Lagrangian

  • +
  • \(\mathcal{L}_{\mathcal{M}}\) is the meson part of the Lagrangian

  • +
  • \(\mathcal{L}_l\) is the lepton Lagrangian

  • +
+

Details of the Lagrangian are illustrated below:

+Lagrangian Diagram +

In the equation:

+
    +
  • \(\Psi_{N}\) and \(\psi_{l}\) are the nucleon and lepton spinors

  • +
  • \(\bar{I}_{N}\) is the nucleon isospin operator

  • +
  • \(g\) denotes the strong interaction coupling of a meson to a nucleon

  • +
  • \(m\) represents the masses of the nucleons, mesons, and leptons

  • +
  • The parameters \(\kappa\), \(\lambda_0\), \(\zeta\), and \(\Lambda_{\omega}\) are coupling constants to be determined by the inference method

  • +
+

These free parameters represent the degrees of freedom in the RMF model and can be determined through nuclear experiments. Additionally, astrophysical observations can help constrain these parameters. The complete list of parameters includes:

+Free Parameters Diagram +

These parameters should be inputted to generate the EOS using our EOS generators module. Different EOS parameters will affect mass-radius relations, as demonstrated here. For more details on the physics, refer to Glendenning (1996).

+
+
+

Tolman–Oppenheimer–Volkoff (TOV) Equation

+

The TOV equation is a general relativity equation that constrains the structure of a spherically symmetrical body under gravity. The original equation is:

+
+\[\frac{d P}{d r} = -\frac{G m}{r^2} \rho \left(1 + \frac{P}{\rho c^2}\right) \left(1 + \frac{4 \pi r^3 P}{m c^2}\right) \left(1 - \frac{2 G m}{r c^2}\right)^{-1}\]
+

To solve this equation, the essential ingredient is the EOS. The basic strategy is as follows: at a given central density, input it into the neutron star EOS to obtain the pressure. Then, integrate the density from the center to the boundary, repeating this process across the entire possible density range.

+

In our code, we provide two different functions:

+
    +
  1. Default Solver: +Solves the TOV equation within a predefined density range (log(14.3, 15.6) on a scale of 10).

  2. +
  3. Point-by-Point Solver: +Allows solving the equation for any chosen central density range.

  4. +
+

For more information on the TOV equation, visit the Wikipedia page.

+
+
+

Bayesian Inference

+

Using Bayesian inference tools to explore constraints on the neutron star EOS is increasingly common. The foundational equation is Bayes’ Theorem:

+
+\[P(A \mid B) = \frac{P(B \mid A) P(A)}{P(B)}\]
+

Where:

+
    +
  • Posterior Probability (\(P(A \mid B)\)): The probability of hypothesis A after observing B.

  • +
  • Prior Probability (\(P(A)\)): The initial probability of hypothesis A before observing B.

  • +
  • Likelihood (\(P(B \mid A)\)): The probability of observing B given that hypothesis A is true.

  • +
  • Evidence (\(P(B)\)): The probability of observing B under all possible hypotheses.

  • +
+

In this context:

+
    +
  • Posterior is the updated probability after considering new observations or experiments.

  • +
  • Prior is the initial belief before new data is considered.

  • +
  • Likelihood is the influence of new data on the belief.

  • +
+

The likelihood in our studies primarily comes from four sources:

+
    +
  1. Mass-Radius Measurements from X-ray Timing (e.g., NICER)

  2. +
  3. Tidal Measurements from Gravitational Wave Detection

  4. +
  5. Mass Measurements from Radio Timing

  6. +
  7. Nuclear Physics Constraints from Experiments

  8. +
+

NICER’s mass-radius measurements are a significant achievement in neutron star physics, comparable to gravitational wave detections. For the connection between our EOS and nuclear quantities, refer to Chen & Piekarewicz (2014a).

+

The nuclear physics quantities we consider are:

+
    +
  • K: Compressibility of nuclear matter

  • +
  • J: Symmetry energy at saturation density

  • +
  • L: Slope of symmetry energy at saturation density

  • +
+

There are more on constraining the EOS by Pure neutron matter (PNM):

+
    +
  • chiral EFT constraint

  • +
  • pQCD constraint

  • +
+

These can be computed from posterior samples (we will add the nuclear properties computation code in the near future). They also serve as independent constraints on the neutron star EOS.

+

When performing real astrophysical sampling, it is crucial to sample the neutron star central density corresponding to each measurement used. For instance, if investigating the constraining effect of two mass-radius measurements on the EOS, you need to define two additional free parameters—the central densities for each measurement. Otherwise, the inference would not represent a full-scope EOS analysis. Therefore, our likelihood functions include a parameter \(d_1\), representing the density parameter of each observation.

+
+
+

Summary

+

CompactObject provides a comprehensive suite of tools for Bayesian inference on neutron star EOS constraints. By integrating astrophysical observations with nuclear experiments, it facilitates a deeper understanding of neutron star interiors.

+

For more information, tutorials, and support, please refer to our documentation or contact the development team.

+
+
+ + +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/main.html b/main.html new file mode 100644 index 0000000..d94a833 --- /dev/null +++ b/main.html @@ -0,0 +1,264 @@ + + + + + + + + + Main functions — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Main functions

+

Controls most functionality of package by calling the following functions. +* :ref:’EoS_importing’ +* :ref: ‘TOV_solving’ +* :ref: ‘__s’

+
+
+TOVsolver.main.OutputC_s(input_file='', density=[], pressure=[])[source]
+
+
Calls function to open csv (if needed) and check equation of state validity.

Then calls function to calculate speed of sound.

+
+
+
+
Parameters:
+
    +
  • file_name (string, optional) – string. CSV file to be opened.

  • +
  • density (array, optional) – numpy 1Darray. Passed into a check function and returned if valid.

  • +
  • pressure (array, optional) – numpy 1Darray. Passed into a check function and returned if valid.

  • +
+
+
Returns:
+

numpy 1D array. List of speeds of sound.

+
+
Return type:
+

C_s (array)

+
+
+
+ +
+
+TOVsolver.main.OutputMR(input_file='', density=[], pressure=[])[source]
+

Outputs the mass, radius, and tidal deformability +:param file_name: string. CSV file to be opened. +:type file_name: string, optional +:param density: numpy 1Darray. Passed into a check function and returned if valid. +:type density: array, optional +:param pressure: numpy 1Darray. Passed into a check function and returned if valid. +:type pressure: array, optional

+
+
Returns:
+

tuple with mass, radius.

+
+
Return type:
+

MR (tuple)

+
+
+
+ +
+
+TOVsolver.main.OutputMRT(input_file='', density=[], pressure=[])[source]
+

Outputs the mass, radius, and tidal deformability +:param file_name: string. CSV file to be opened. +:type file_name: string, optional +:param density: numpy 1Darray. Passed into a check function and returned if valid. +:type density: array, optional +:param pressure: numpy 1Darray. Passed into a check function and returned if valid. +:type pressure: array, optional

+
+
Returns:
+

tuple with mass, radius, and tidal deformability.

+
+
Return type:
+

MRT (tuple)

+
+
+
+ +
+
+TOVsolver.main.OutputMRTpoint(central_density, energy_density, pressure)[source]
+

Outputs the mass, radius, and tidal deformability (single point) +:param central_density: central density that we want to compute +:type central_density: float +:param density: numpy 1Darray. Density of EoS +:type density: array, optional +:param pressure: numpy 1Darray. pressure of EoS +:type pressure: array, optional

+
+
Returns:
+

tuple with mass, radius and tidal.

+
+
Return type:
+

MRT (tuple)

+
+
+
+ +
+
+TOVsolver.main.OutputMRpoint(central_density, energy_density, pressure)[source]
+

Outputs the mass, radius, and tidal deformability (single point) +:param central_density: central density that we want to compute +:type central_density: float +:param density: numpy 1Darray. Density of EoS +:type density: array, optional +:param pressure: numpy 1Darray. pressure of EoS +:type pressure: array, optional

+
+
Returns:
+

tuple with mass, radius.

+
+
Return type:
+

MR (tuple)

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/objects.inv b/objects.inv new file mode 100644 index 0000000..976fa6c Binary files /dev/null and b/objects.inv differ diff --git a/prior.html b/prior.html new file mode 100644 index 0000000..d3c9f05 --- /dev/null +++ b/prior.html @@ -0,0 +1,200 @@ + + + + + + + + + Prior Definition Module — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Prior Definition Module

+

Functions to define prior distribution of parameters

+
+
+InferenceWorkflow.prior.flat_prior(low, up, random)[source]
+

Generate a flat prior distribution for a given parameter,

+
+
Parameters:
+
    +
  • low (float) – lower bound of this flat distribution.

  • +
  • up (float) – upper bound of this flat distribution.

  • +
  • random (float) – random number generated to do inference, this is follow the

  • +
  • UltraNest (definition of baysian workflow of)

  • +
  • cube[i] (here default to be)

  • +
+
+
Returns:
+

ppf of this distribution function

+
+
Return type:
+

ppf (float)

+
+
+
+ +
+
+InferenceWorkflow.prior.normal_Prior(center, width, random)[source]
+

Generate a normal prior distribution for a given parameter,

+
+
Parameters:
+
    +
  • center (float) – center value of this gaussian distribution.

  • +
  • width (float) – width of this gaussian distribution, this is the 1-sigma width.

  • +
  • random (float) – random number generated to do inference, this is follow the

  • +
  • UltraNest (definition of baysian workflow of)

  • +
  • cube[i] (here default to be)

  • +
+
+
Returns:
+

ppf of this distribution function

+
+
Return type:
+

ppf (float)

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/publications.html b/publications.html new file mode 100644 index 0000000..a83886b --- /dev/null +++ b/publications.html @@ -0,0 +1,255 @@ + + + + + + + + + Publications — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Publications

+

CompactObject has been implemented in several studies and ongoing research projects. If your work is based on or has contributed to our package and you would like to be mentioned on this page, please send us an email at chun.h@wustl.edu. This allows us to promote your work within our documentation, thereby extending the impact of the CompactObject package. Please ensure you specifically cite us if you are using this package, even if you utilize only one functionality, so that we can acknowledge your contribution. We greatly appreciate feedback and contributions to enhance our functionalities.

+

The initial papers based on or contributing to this package are listed below:

+

1. Definition of RMF Models

+ +

2. Application of Likelihood Functions and analysis glitch data

+ +

3. Strangeon Star EOS Inference

+ +

4. pQCD Computation Implementation

+ +

5. Chiral Effective Field Theory Constraint Implementation

+ +

6. Density-dependent RMF Implementation

+ +

If your work relates to pQCD computations, chiral effective field theory constraints, or density-function implementations within the CompactObject framework, please ensure to update the corresponding sections with your publications.

+
+

Citing CompactObject

+
If you use our software, please consider citing us with the following standard citation:
+
+The inference conducted here relies on the framework in the :math:`\textit{CompactObject}` package [CompactObject]_.
+This is an open-source, full-scope package designed to implement Bayesian constraints on the neutron star EOS. Other work based on this package is ....
+
+
+ +
+
+

Acknowledgements

+

We welcome feedback and contributions to expand the functionalities of CompactObject. Your support helps enhance the tool for the entire research community.

+
+
+

Contact

+

For inquiries, contributions, or to be featured in our publications list, please contact us at chun.h@wustl.edu.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/py-modindex.html b/py-modindex.html new file mode 100644 index 0000000..3e36d5d --- /dev/null +++ b/py-modindex.html @@ -0,0 +1,239 @@ + + + + + + + + Python Module Index — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + +

Python Module Index

+ +
+ c | + e | + i | + t +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
 
+ c
+ CompactObject +
 
+ e
+ EOSgenerators +
    + EOSgenerators.crust_EOS +
    + EOSgenerators.fastRMF_EoS +
    + EOSgenerators.RMF_EOS +
 
+ i
+ InferenceWorkflow +
    + InferenceWorkflow.BayesianSampler +
    + InferenceWorkflow.Likelihood +
    + InferenceWorkflow.prior +
 
+ t
+ TOVsolver +
    + TOVsolver.EoS_import +
    + TOVsolver.main +
    + TOVsolver.solver_code +
    + TOVsolver.speed_of_sound +
+ + +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + \ No newline at end of file diff --git a/search.html b/search.html new file mode 100644 index 0000000..d763185 --- /dev/null +++ b/search.html @@ -0,0 +1,160 @@ + + + + + + + + Search — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+
    +
  • + +
  • +
  • +
+
+
+
+
+ + + + +
+ +
+ +
+
+
+ +
+ +
+

© Copyright 2023, Chun Huang, Nicole Obsborn, Nathan Whitsett.

+
+ + Built with Sphinx using a + theme + provided by Read the Docs. + + +
+
+
+
+
+ + + + + + + + + \ No newline at end of file diff --git a/searchindex.js b/searchindex.js new file mode 100644 index 0000000..47b3fad --- /dev/null +++ b/searchindex.js @@ -0,0 +1 @@ +Search.setIndex({"alltitles": {"(a) Comparing the time it takes to generate the EoS": [[23, "(a)-Comparing-the-time-it-takes-to-generate-the-EoS"]], "(a) Connecting outer crust with polytropic part": [[23, "(a)-Connecting-outer-crust-with-polytropic-part"]], "(a) Defining the EOS parameters": [[23, "(a)-Defining-the-EOS-parameters"], [23, "id2"]], "(a) Defining the parameter": [[23, "(a)-Defining-the-parameter"]], "(a) Import packages": [[21, "(a)-Import-packages"]], "(a) Load crust EOS and prepare interface EOS": [[23, "(a)-Load-crust-EOS-and-prepare-interface-EOS"]], "(b) Computing the mass-radius relation": [[23, "(b)-Computing-the-mass-radius-relation"]], "(b) Defining the paramters": [[23, "(b)-Defining-the-paramters"]], "(b) Set up priors": [[21, "(b)-Set-up-priors"]], "(b) Solve TOV with this EOS": [[23, "(b)-Solve-TOV-with-this-EOS"], [23, "id1"], [23, "id3"]], "(c) Connecting Core and crust EOS": [[23, "(c)-Connecting-Core-and-crust-EOS"]], "(c) Set up likehood": [[21, "(c)-Set-up-likehood"]], "(d) Set up sampler": [[21, "(d)-Set-up-sampler"]], "Acknowledgements": [[1, "acknowledgements"], [18, "acknowledgements"], [20, "acknowledgements"]], "Bayesian Inference": [[13, "bayesian-inference"], [15, "bayesian-inference"]], "Bayesian Inference module": [[13, null]], "Bayesian Inference smapler setup module": [[0, null]], "Calculate Speed of Sound": [[19, null]], "Call for Contributions": [[1, null]], "Citing CompactObject": [[18, "citing-compactobject"]], "CompactObject Package Tutorials": [[13, null], [15, null]], "Computation Guide": [[10, null]], "Computation Time Scaling": [[10, "computation-time-scaling"]], "Concept": [[13, "concept"], [15, "concept"]], "Contact": [[1, "contact"], [18, "contact"], [20, "contact"]], "Contributing Inference Components": [[1, "contributing-inference-components"]], "Contributing an Equation of State (EOS)": [[1, "contributing-an-equation-of-state-eos"]], "Crust Equation of state interpolation": [[11, null]], "Depends on Your Scientific Goal": [[20, "depends-on-your-scientific-goal"]], "Development": [[13, null]], "EOS generators module": [[13, null]], "EOS solver": [[4, null]], "Equation of State": [[13, "equation-of-state"], [15, "equation-of-state"]], "Equation of State Generators illustration notebook": [[23, null]], "Example of RMF": [[23, "Example-of-RMF"]], "Guidelines for Key Functions and Permissions": [[1, "guidelines-for-key-functions-and-permissions"]], "Illustrating the power of Numba accelerated EoS Generation": [[23, "Illustrating-the-power-of-Numba-accelerated-EoS-Generation"]], "Import Equation of State": [[5, null]], "Indices and tables": [[13, "indices-and-tables"]], "Installation": [[14, null]], "Introduction": [[1, "introduction"]], "Likelihood function definition module": [[6, null]], "MIT bag EOS Inference pipline": [[21, null]], "MIT bag model EOS": [[23, "MIT-bag-model-EOS"]], "Main functions": [[16, null]], "Optional: Using Python Virtual Environment": [[14, "optional-using-python-virtual-environment"]], "Parallelization": [[10, "parallelization"]], "Polytrope EOS": [[23, "Polytrope-EOS"]], "Posterior plot": [[24, "Posterior-plot"]], "Postprocessing module": [[13, null]], "Postprocessing module: Cornerplot": [[2, null]], "Prerequisites": [[20, "prerequisites"]], "Prior Definition Module": [[17, null]], "Publications": [[18, null]], "RMF EOS": [[23, "RMF-EOS"]], "RMF EOS inference pipeline": [[24, null]], "RMF EOS solver": [[7, null]], "RMF EOS solver (numba speed up version)": [[12, null]], "Set up likehood": [[22, "Set-up-likehood"]], "Set up likelihood": [[24, "Set-up-likelihood"]], "Set up prior": [[22, "Set-up-prior"], [24, "Set-up-prior"]], "Set up sampler": [[22, "Set-up-sampler"], [24, "Set-up-sampler"]], "Solve TOV Equation": [[8, null]], "Speed of sound EOS": [[23, "Speed-of-sound-EOS"]], "Start Here!": [[20, null]], "Strangeon EOS inference pipeline": [[22, null]], "Strangeon matter EOS": [[23, "Strangeon-matter-EOS"]], "Summary": [[13, "summary"], [14, "summary"], [15, "summary"]], "TOV solver module": [[13, null]], "TOVsolver module guide": [[25, null]], "Tolman\u2013Oppenheimer\u2013Volkoff (TOV) Equation": [[13, "tolmanoppenheimervolkoff-tov-equation"], [15, "tolmanoppenheimervolkoff-tov-equation"]], "Tutorials": [[13, null]], "Unit Convention for Developer": [[9, null]], "Usage of download_compose Module": [[3, null]], "User Guide": [[13, null]], "Using Anaconda (Recommended)": [[14, "using-anaconda-recommended"]]}, "docnames": ["BayesianSampler", "Contributor", "Cornerplot", "DownloadCompose", "EOS", "EoS_import", "Likelihood", "RMF_EOS", "TOV_solver", "UnitConventionForDeveloper", "cluster", "crust_EOS", "fastRMF_EoS", "index", "installation", "intro", "main", "prior", "publications", "speed_of_sound", "starthere", "test_Bayesian_inference_MITbag_EOS", "test_Bayesian_inference_Strangeon_EOS", "test_EOSgenerators", "test_Inference", "test_TOVsolver"], "envversion": {"nbsphinx": 4, "sphinx": 64, "sphinx.domains.c": 3, "sphinx.domains.changeset": 1, "sphinx.domains.citation": 1, "sphinx.domains.cpp": 9, "sphinx.domains.index": 1, "sphinx.domains.javascript": 3, "sphinx.domains.math": 2, "sphinx.domains.python": 4, "sphinx.domains.rst": 2, "sphinx.domains.std": 2, "sphinx.ext.intersphinx": 1, "sphinx.ext.viewcode": 1}, "filenames": ["BayesianSampler.rst", "Contributor.rst", "Cornerplot.rst", "DownloadCompose.ipynb", "EOS.rst", "EoS_import.rst", "Likelihood.rst", "RMF_EOS.rst", "TOV_solver.rst", "UnitConventionForDeveloper.ipynb", "cluster.rst", "crust_EOS.rst", "fastRMF_EoS.rst", "index.rst", "installation.rst", "intro.rst", "main.rst", "prior.rst", "publications.rst", "speed_of_sound.rst", "starthere.rst", "test_Bayesian_inference_MITbag_EOS.ipynb", "test_Bayesian_inference_Strangeon_EOS.ipynb", "test_EOSgenerators.ipynb", "test_Inference.ipynb", "test_TOVsolver.ipynb"], "indexentries": {"compactobject": [[13, "module-CompactObject", false]], "compute_eos() (in module eosgenerators.fastrmf_eos)": [[12, "EOSgenerators.fastRMF_EoS.compute_EOS", false]], "compute_eos() (in module eosgenerators.rmf_eos)": [[7, "EOSgenerators.RMF_EOS.compute_EOS", false]], "energy_density_pressure() (in module eosgenerators.fastrmf_eos)": [[12, "EOSgenerators.fastRMF_EoS.Energy_density_Pressure", false]], "energy_density_pressure() (in module eosgenerators.rmf_eos)": [[7, "EOSgenerators.RMF_EOS.Energy_density_Pressure", false]], "eos_check() (in module tovsolver.eos_import)": [[5, "TOVsolver.EoS_import.EOS_check", false]], "eos_import() (in module tovsolver.eos_import)": [[5, "TOVsolver.EoS_import.EOS_import", false]], "eosgenerators.crust_eos": [[11, "module-EOSgenerators.crust_EOS", false]], "eosgenerators.fastrmf_eos": [[12, "module-EOSgenerators.fastRMF_EoS", false]], "eosgenerators.rmf_eos": [[7, "module-EOSgenerators.RMF_EOS", false]], "file_read() (in module tovsolver.eos_import)": [[5, "TOVsolver.EoS_import.file_read", false]], "flat_prior() (in module inferenceworkflow.prior)": [[17, "InferenceWorkflow.prior.flat_prior", false]], "functie() (in module eosgenerators.rmf_eos)": [[7, "EOSgenerators.RMF_EOS.functie", false]], "inferenceworkflow.bayesiansampler": [[0, "module-InferenceWorkflow.BayesianSampler", false]], "inferenceworkflow.likelihood": [[6, "module-InferenceWorkflow.Likelihood", false]], "inferenceworkflow.prior": [[17, "module-InferenceWorkflow.prior", false]], "initial_values() (in module eosgenerators.fastrmf_eos)": [[12, "EOSgenerators.fastRMF_EoS.initial_values", false]], "initial_values() (in module eosgenerators.rmf_eos)": [[7, "EOSgenerators.RMF_EOS.initial_values", false]], "jliklihood() (in module inferenceworkflow.likelihood)": [[6, "InferenceWorkflow.Likelihood.Jliklihood", false]], "kliklihood() (in module inferenceworkflow.likelihood)": [[6, "InferenceWorkflow.Likelihood.Kliklihood", false]], "lliklihood() (in module inferenceworkflow.likelihood)": [[6, "InferenceWorkflow.Likelihood.Lliklihood", false]], "m1_from_mc_m2() (in module tovsolver.solver_code)": [[8, "TOVsolver.solver_code.m1_from_mc_m2", false]], "masslikihood_gaussian() (in module inferenceworkflow.likelihood)": [[6, "InferenceWorkflow.Likelihood.Masslikihood_Gaussian", false]], "module": [[0, "module-InferenceWorkflow.BayesianSampler", false], [5, "module-TOVsolver.EoS_import", false], [6, "module-InferenceWorkflow.Likelihood", false], [7, "module-EOSgenerators.RMF_EOS", false], [8, "module-TOVsolver.solver_code", false], [11, "module-EOSgenerators.crust_EOS", false], [12, "module-EOSgenerators.fastRMF_EoS", false], [13, "module-CompactObject", false], [16, "module-TOVsolver.main", false], [17, "module-InferenceWorkflow.prior", false], [19, "module-TOVsolver.speed_of_sound", false]], "mrlikihood_gaussian() (in module inferenceworkflow.likelihood)": [[6, "InferenceWorkflow.Likelihood.MRlikihood_Gaussian", false]], "mrlikihood_kernel() (in module inferenceworkflow.likelihood)": [[6, "InferenceWorkflow.Likelihood.MRlikihood_kernel", false]], "normal_prior() (in module inferenceworkflow.prior)": [[17, "InferenceWorkflow.prior.normal_Prior", false]], "outputc_s() (in module tovsolver.main)": [[16, "TOVsolver.main.OutputC_s", false]], "outputmr() (in module tovsolver.main)": [[16, "TOVsolver.main.OutputMR", false]], "outputmrpoint() (in module tovsolver.main)": [[16, "TOVsolver.main.OutputMRpoint", false]], "outputmrt() (in module tovsolver.main)": [[16, "TOVsolver.main.OutputMRT", false]], "outputmrtpoint() (in module tovsolver.main)": [[16, "TOVsolver.main.OutputMRTpoint", false]], "polyinterpolate() (in module eosgenerators.crust_eos)": [[11, "EOSgenerators.crust_EOS.PolyInterpolate", false]], "solvetov() (in module tovsolver.solver_code)": [[8, "TOVsolver.solver_code.solveTOV", false]], "solvetov_tidal() (in module tovsolver.solver_code)": [[8, "TOVsolver.solver_code.solveTOV_tidal", false]], "speed_of_sound_calc() (in module tovsolver.speed_of_sound)": [[19, "TOVsolver.speed_of_sound.speed_of_sound_calc", false]], "tidal_deformability() (in module tovsolver.solver_code)": [[8, "TOVsolver.solver_code.tidal_deformability", false]], "tidallikihood_kernel() (in module inferenceworkflow.likelihood)": [[6, "InferenceWorkflow.Likelihood.TidalLikihood_kernel", false]], "tov_def() (in module tovsolver.solver_code)": [[8, "TOVsolver.solver_code.TOV_def", false]], "tovsolver.eos_import": [[5, "module-TOVsolver.EoS_import", false]], "tovsolver.main": [[16, "module-TOVsolver.main", false]], "tovsolver.solver_code": [[8, "module-TOVsolver.solver_code", false]], "tovsolver.speed_of_sound": [[19, "module-TOVsolver.speed_of_sound", false]], "ultranestsampler() (in module inferenceworkflow.bayesiansampler)": [[0, "InferenceWorkflow.BayesianSampler.UltranestSampler", false]], "ultranestsamplerresume() (in module inferenceworkflow.bayesiansampler)": [[0, "InferenceWorkflow.BayesianSampler.UltranestSamplerResume", false]]}, "objects": {"": [[13, 0, 0, "-", "CompactObject"]], "EOSgenerators": [[7, 0, 0, "-", "RMF_EOS"], [11, 0, 0, "-", "crust_EOS"], [12, 0, 0, "-", "fastRMF_EoS"]], "EOSgenerators.RMF_EOS": [[7, 1, 1, "", "Energy_density_Pressure"], [7, 1, 1, "", "compute_EOS"], [7, 1, 1, "", "functie"], [7, 1, 1, "", "initial_values"]], "EOSgenerators.crust_EOS": [[11, 1, 1, "", "PolyInterpolate"]], "EOSgenerators.fastRMF_EoS": [[12, 1, 1, "", "Energy_density_Pressure"], [12, 1, 1, "", "compute_EOS"], [12, 1, 1, "", "initial_values"]], "InferenceWorkflow": [[0, 0, 0, "-", "BayesianSampler"], [6, 0, 0, "-", "Likelihood"], [17, 0, 0, "-", "prior"]], "InferenceWorkflow.BayesianSampler": [[0, 1, 1, "", "UltranestSampler"], [0, 1, 1, "", "UltranestSamplerResume"]], "InferenceWorkflow.Likelihood": [[6, 1, 1, "", "Jliklihood"], [6, 1, 1, "", "Kliklihood"], [6, 1, 1, "", "Lliklihood"], [6, 1, 1, "", "MRlikihood_Gaussian"], [6, 1, 1, "", "MRlikihood_kernel"], [6, 1, 1, "", "Masslikihood_Gaussian"], [6, 1, 1, "", "TidalLikihood_kernel"]], "InferenceWorkflow.prior": [[17, 1, 1, "", "flat_prior"], [17, 1, 1, "", "normal_Prior"]], "TOVsolver": [[5, 0, 0, "-", "EoS_import"], [16, 0, 0, "-", "main"], [8, 0, 0, "-", "solver_code"], [19, 0, 0, "-", "speed_of_sound"]], "TOVsolver.EoS_import": [[5, 1, 1, "", "EOS_check"], [5, 1, 1, "", "EOS_import"], [5, 1, 1, "", "file_read"]], "TOVsolver.main": [[16, 1, 1, "", "OutputC_s"], [16, 1, 1, "", "OutputMR"], [16, 1, 1, "", "OutputMRT"], [16, 1, 1, "", "OutputMRTpoint"], [16, 1, 1, "", "OutputMRpoint"]], "TOVsolver.solver_code": [[8, 1, 1, "", "TOV_def"], [8, 1, 1, "", "m1_from_mc_m2"], [8, 1, 1, "", "solveTOV"], [8, 1, 1, "", "solveTOV_tidal"], [8, 1, 1, "", "tidal_deformability"]], "TOVsolver.speed_of_sound": [[19, 1, 1, "", "speed_of_sound_calc"]]}, "objnames": {"0": ["py", "module", "Python module"], "1": ["py", "function", "Python function"]}, "objtypes": {"0": "py:module", "1": "py:function"}, "terms": {"": [8, 9, 10, 13, 14, 15, 20], "0": [3, 5, 9, 21, 22, 23, 24, 25], "00": 23, "00000000e": 23, "00168015405": 23, "0045": 24, "00749542e": 23, "01": 23, "0205": 24, "024": 23, "03": 23, "04": [23, 24], "04008671": 23, "04017342": 23, "045": [23, 24], "05": [23, 24], "0506417v1": 9, "05086": 18, "063040": 18, "0631334": 23, "07": [21, 22, 24], "08": [22, 24], "08188": 23, "087e13": 23, "09114168": 23, "0f": 23, "1": [3, 6, 9, 10, 13, 14, 15, 17, 18, 21, 22, 23, 24, 25], "10": [3, 7, 9, 12, 13, 15, 18, 22, 23, 24], "100": [3, 9, 21, 22, 23], "1000": [23, 25], "10000": [9, 21, 22, 24], "10099": 23, "100j": [22, 24], "101": 3, "1027": 23, "104": 3, "105": 3, "106": 3, "10649": 23, "107": [3, 18, 23, 24], "108": 3, "109": 3, "1093": [13, 15, 18], "11": [3, 9, 23], "110": [3, 18], "1103": 18, "111": 3, "112": 3, "113": 3, "114": 3, "115": 3, "116": 3, "117": 3, "118": 3, "11877": 18, "119": 3, "12": [3, 23, 24], "120": 3, "1201": 18, "121": 3, "123": 3, "13": [3, 21, 22, 23, 24], "1315": 23, "134": 3, "136": 3, "137": 3, "138": 3, "139": 3, "14": [3, 13, 15, 21, 22, 23, 24, 25], "140": 3, "141": 3, "142": 3, "143": 3, "144": 3, "145": 3, "14572": [13, 15, 18], "146": 3, "147": 3, "148": 3, "149": 3, "15": [3, 9, 13, 15, 21, 22, 23, 24], "150": [3, 24], "151": 3, "152": 3, "1538": 18, "154": 3, "155": 3, "1554421785237932": 23, "156": 3, "157": 3, "158": 3, "159": 3, "16": [3, 9, 22, 23, 24, 25], "160": 3, "1606005": 23, "161": 3, "162": 3, "163": 3, "164": 3, "165": 3, "166": 3, "167": 3, "168": 3, "169": 3, "17": [3, 18, 22, 23], "170": [3, 22], "170mev": 22, "171": 3, "172": 3, "173": 3, "174": 3, "175": 3, "176": 3, "177": 3, "178": 3, "18": [3, 22, 23], "180": 3, "181": 3, "1812": 23, "182": [3, 23], "183": 3, "184": 3, "18432": [13, 15, 18], "18452": 18, "185": 3, "186": 3, "187": 3, "188": 3, "189": 3, "19": [3, 23], "190": 3, "191": 3, "192": 3, "193": 3, "194": 3, "195": 3, "196": 3, "197": [3, 23], "197327053": 9, "1974": [21, 23], "198": 3, "1986": 23, "199": 3, "1996": [13, 15], "1d": [3, 16], "1darrai": [5, 16, 19], "1e": 9, "1e13": 9, "1e14": 9, "1e18": 9, "1e3": 9, "1e4": 9, "1e5": 9, "2": [3, 6, 7, 9, 10, 11, 12, 13, 14, 15, 18, 21, 22, 23, 24, 25], "20": [3, 21, 22, 23, 24, 25], "200": [3, 23], "2000": [21, 22, 23, 24], "201": 3, "2013": 24, "2014a": [13, 15], "202": 3, "2022": [18, 24], "2023": [18, 23], "2024": [3, 9, 13, 15, 18], "203": 3, "204": [3, 23], "205": [3, 23], "206": [3, 23], "207": 3, "208": 3, "209": 3, "21": [3, 23], "210": [3, 24], "211": 3, "212": 3, "213": 3, "21315991": 23, "21324662": 23, "21333333": 23, "214": 3, "215": 3, "216": 3, "217": 3, "218": 3, "219": 3, "22": [3, 23, 24], "220": 3, "2204": 18, "221": 3, "222": 3, "223": 3, "224": 3, "225": 3, "227": 3, "228": 3, "229": 3, "23": [3, 23], "230": 3, "2307": 18, "231": 3, "232": 3, "233": 3, "234": 3, "235": 3, "236": 3, "237": 3, "238": 3, "239": 3, "24": [3, 9, 10, 23], "240": 3, "2407": 18, "2409": [13, 15, 18], "241": 3, "2410": [13, 15, 18], "242": 3, "243": 3, "244": 3, "245": 3, "246": 3, "247": 3, "248": 3, "249": 3, "25": [3, 22, 24], "250": [3, 22, 24], "251": 3, "252": 3, "253": 3, "254": 3, "255": 3, "256": [3, 10], "257": 3, "258": 3, "259": 3, "26": [3, 9], "260": 3, "261": 3, "262": 3, "263": 3, "264": 3, "265": 3, "266": 3, "267": 3, "268": 3, "269": 3, "27": [3, 9, 23], "270": 3, "271": 3, "272": 3, "273": 3, "274": 3, "275": 3, "276": 3, "277": 3, "278": 3, "279": 3, "28": 3, "280": 3, "281": 3, "282": 3, "283": 3, "284": 3, "285": 3, "286": 3, "287": [3, 23], "288": 3, "289": 3, "29": 3, "290": 3, "291": 3, "292": 3, "293": 3, "294": 3, "295": 3, "296": 3, "297": 3, "298": 3, "299": 3, "2d": 2, "2e16": 23, "2f": [23, 24], "3": [3, 8, 9, 13, 14, 15, 18, 21, 22, 23, 24, 25], "30": [3, 22, 23, 24], "300": 3, "301": 3, "302": 3, "303": 3, "304": 3, "305": 3, "306": 3, "307": 3, "308": 3, "309": 3, "30pi": 3, "31": 3, "310": 3, "311": 3, "312": 3, "313": 3, "314": [3, 22], "315": 3, "316": 3, "317": 3, "318": 3, "319": 3, "32": [3, 23], "320": 3, "321": 3, "322": 3, "323": 3, "324": 3, "325": 3, "33": [3, 23], "34": [3, 22], "35": [3, 23], "36": [3, 22], "36fm": 22, "37": 3, "38": [3, 22, 23, 24], "3847": 18, "39": [3, 22], "3949": 23, "3d": 24, "3e10": 9, "4": [3, 6, 7, 8, 9, 10, 11, 12, 13, 15, 18, 21, 22, 23, 24, 25], "40": [3, 24], "400": [9, 21, 22, 24], "41": 3, "42": 3, "4260": 23, "43": 3, "433772787333139e": 9, "4357": 18, "44": 3, "441e": 9, "45": 3, "46": [3, 9], "46616": 23, "46711": 23, "46807": 23, "47": 3, "4751": 18, "48": 3, "49": 3, "495": [23, 24], "4b": [21, 23], "4\ud835\udc40": [21, 22], "5": [3, 9, 10, 18, 21, 22, 23, 24, 25], "50": [3, 21, 22, 23, 24, 25], "5000": [21, 22, 24], "500j": [22, 24], "505": 23, "50734538": 23, "51": 3, "52": 3, "525": 24, "529": [13, 15, 18], "53": 3, "54": 3, "55": 3, "550": 23, "56": [3, 24], "565": 9, "57": [3, 23], "5751": 23, "5777210892618965": 23, "58": 3, "59": 3, "6": [3, 9, 10, 13, 15, 18, 21, 22, 23, 24, 25], "60": 3, "600": 24, "60000": [21, 22, 24], "61": 3, "61935484": 23, "62": [3, 23], "625e26": 9, "63": 3, "64": [3, 24], "65": [3, 21, 22, 24], "66": 3, "67": 3, "670337777777778e": 9, "6743e": 9, "67e": 9, "68": 3, "69": 3, "7": [3, 6, 18, 21, 22, 23, 24], "70": 3, "71": 3, "72": 3, "73": 3, "74": 3, "75": [3, 24], "76": 3, "77": 3, "78": 3, "79": 3, "8": [3, 9, 18, 22, 23, 24, 25], "80": [3, 24], "8078e15": 23, "81": 3, "82": 3, "83": 3, "84": [3, 23, 24], "85": 3, "86": [3, 22, 24], "86662": [23, 24], "87": 3, "88": 3, "88749504e": 23, "888605446309483": 23, "89": 3, "89139331e": 23, "89529799e": 23, "9": [3, 23, 24, 25], "90": 3, "90000": 3, "91": 3, "92": 3, "93": 3, "930": 18, "938": 3, "939": 9, "94": 3, "95": 3, "950": 18, "96": 3, "96367981": 23, "96544": [23, 24], "97": 3, "9781003306580": 18, "98": 3, "98281964": 23, "98864796e": 23, "989e33": 9, "99": 3, "A": [3, 13, 15, 18, 23], "As": [13, 15], "By": [13, 15], "For": [1, 10, 13, 15, 18, 20, 21, 22, 23, 24], "If": [1, 10, 13, 14, 15, 18, 20, 21, 22, 23, 24], "In": [3, 6, 7, 12, 13, 15, 18, 21, 22, 23], "It": [0, 13, 14, 15], "No": 25, "OR": 25, "On": 10, "That": [21, 22, 24, 25], "The": [1, 7, 8, 9, 10, 12, 13, 14, 15, 18, 20, 21, 22, 23, 24, 25], "Then": [3, 13, 15, 16, 22, 23, 24], "There": [13, 15, 20, 21, 23], "These": [8, 10, 13, 15, 23], "To": [9, 13, 14, 15, 20, 23, 24], "With": [10, 21, 22, 24], "_": [13, 15, 18, 23], "__": 16, "_eo": 1, "_l": [13, 15], "_n": [13, 15], "a9": 22, "ab": [13, 15, 18, 23], "abht": 3, "about": [22, 23, 24], "abov": [21, 22], "ac5d3c": 18, "acce3a": 18, "acceler": [10, 13], "access": 1, "accord": 10, "accordingli": 24, "accuraci": 20, "achiev": [13, 15, 20], "acknowledg": 13, "across": [10, 13, 15], "activ": [14, 20], "actual": 3, "ad_index": 8, "add": [13, 15, 21, 22, 24], "addit": [1, 9, 10, 13, 15, 20], "addition": [13, 15], "adjoint": [21, 22], "adjust": 10, "advanc": [13, 15, 20], "advantag": 23, "affect": [13, 15], "after": [0, 1, 13, 15, 20, 21, 22, 23, 24], "again": 14, "against": 24, "agraw": 18, "aim": 20, "al": [21, 23, 24], "albino": 18, "alcock": 23, "all": [1, 3, 8, 9, 13, 14, 15, 20, 21, 22, 23, 24, 25], "allow": [10, 13, 15, 18], "alpha": [23, 24], "alreadi": [3, 20, 23], "also": [1, 8, 13, 15, 20, 21, 22, 24, 25], "although": 10, "alwai": [1, 9], "an": [3, 6, 7, 10, 12, 13, 14, 15, 18, 19, 20, 21, 22, 23, 24, 25], "anaconda": 13, "analysi": [13, 15, 18, 21, 22, 24, 25], "analyt": 10, "ani": [1, 7, 13, 14, 15], "anoth": [21, 22, 23], "anyth": 25, "api": 20, "apj": 24, "append": [21, 22, 23, 24], "appli": [20, 21, 23], "applic": [3, 18], "appreci": 18, "approach": 18, "approxim": 10, "apr": 3, "ar": [0, 1, 8, 10, 13, 14, 15, 18, 20, 21, 22, 23, 24, 25], "arg": 7, "argument": 25, "arrai": [0, 2, 5, 6, 7, 8, 9, 11, 12, 16, 19, 20, 21, 22, 23, 24, 25], "array1": 25, "array2": 25, "art": 3, "artist": 25, "arxiv": [9, 13, 15, 18, 23], "as_posix": 3, "assum": 23, "astro": [6, 9], "astronom": [13, 15, 18], "astrophys": [3, 13, 15, 18, 20, 23], "automat": [3, 14], "avail": [1, 3, 10, 20], "avoid": [1, 9, 10, 20], "awar": 9, "ax": [23, 25], "axi": 9, "b": [3, 8, 13, 15, 18], "b165": 3, "back": [6, 8, 9, 20], "bad": 9, "bag": [10, 13, 20], "bar": [13, 15], "bare": 23, "base": [0, 10, 13, 15, 18, 20, 21, 22, 23, 24], "basic": [13, 15, 20], "basto": 18, "bay": [13, 15], "bayesian": [10, 18, 20, 21, 22, 25], "bayesiansampl": [0, 21, 22, 24], "baysian": [17, 25], "bbb": 3, "bbb2": 3, "bbkf": 3, "becaus": [9, 22], "becom": [10, 13, 15], "been": [18, 21, 23], "befor": [13, 15, 21, 22, 24], "begin": [7, 12], "belief": [13, 15], "below": [1, 9, 10, 13, 14, 15, 18, 20, 21, 22, 23, 24], "better": [21, 22, 24], "between": [13, 15, 22, 23, 25], "beyond": [3, 13, 15, 20], "bfh": 3, "bhb": 3, "bhblphik": 3, "bhf": 3, "bhk": 3, "bin": 14, "bl": 3, "block": [21, 22, 24], "bodi": [13, 15], "boost": 20, "both": [23, 25], "bound": [6, 17, 21, 22, 23, 24], "boundari": [13, 15], "bp": 24, "break": [21, 22, 24], "broken": [21, 22, 24], "bsk14": 3, "bsk16": 3, "bsk22": 3, "bsk24": 3, "bsk25": 3, "bsk26": 3, "build": 20, "built": [13, 14, 15], "c": [3, 6, 7, 8, 9, 11, 12, 13, 15, 18, 22, 24, 25], "c_": [16, 25], "cal_core_p": 23, "cal_mr": 9, "calcul": [9, 13, 16, 18, 23, 24], "calcut": 23, "call": [0, 9, 11, 13, 16, 21, 22, 23, 24, 25], "can": [1, 3, 10, 13, 14, 15, 18, 20, 21, 22, 23, 24, 25], "capabl": 23, "care": 1, "carri": 22, "casaul": 25, "case": [6, 7, 12], "caution": [1, 20], "cell": 23, "center": [6, 13, 15, 17, 22, 24], "center_rho": 8, "centimet": 9, "centr": [21, 22], "central": [7, 12, 13, 15, 16, 21, 22, 23, 24], "central_dens": 16, "cg": [1, 9], "chain": 0, "chang": [1, 20, 23, 24], "characterist": 18, "check": [0, 5, 8, 16, 20, 21, 22, 23, 24], "check_a": 23, "chemic": [7, 12], "chen": [13, 15], "chieft": 24, "chieft_pnm": 24, "chiral": [3, 13, 15, 18, 24], "chirp": 6, "chodo": [21, 23], "choic": [21, 22, 24], "choos": [21, 22, 24], "chosen": [13, 15], "chrip": [6, 8, 21, 22, 24], "chrip170817": [22, 24], "chun": [1, 18, 20], "chunhuangphi": 18, "citat": [13, 15, 18], "cite": [13, 15], "class": 3, "clone": [1, 20], "close": [13, 15], "cluster": 0, "cm": [3, 8, 9, 23], "cm3": [7, 8, 12, 25], "cmf": 3, "cmgo": 3, "code": [1, 10, 13, 15, 20, 21, 22, 23, 24, 25], "cold": 3, "collabor": [1, 20], "column": 25, "combin": 11, "come": [9, 13, 15, 21, 22, 24], "command": [10, 14], "comment": [22, 24], "commit": [1, 20], "common": [13, 15], "commonli": [21, 23], "commun": [1, 18, 20], "compact": [21, 22, 23], "compactobject": [1, 14, 20], "compactoject": 22, "companion": 8, "compar": [13, 15, 24], "compare_fig1": 23, "compare_fig2": 23, "comparion": 23, "comparison": [13, 15, 18, 24], "compat": [1, 18], "compil": 23, "complet": [10, 13, 15, 23], "complex": 24, "complier": 14, "compon": [13, 15], "compos": [3, 23], "compose_eo": 3, "composit": [13, 15], "comprehens": [13, 14, 15], "compress": [13, 15], "compstar": 3, "comput": [1, 4, 6, 7, 8, 12, 13, 14, 15, 16, 18, 20, 21, 22, 24, 25], "compute_eo": [1, 7, 12, 13, 22, 23, 24], "compute_tov_properti": 9, "concat": 23, "concaten": 23, "concept": 20, "conda": 14, "conduct": [13, 15, 18], "confin": [21, 23], "conflict": [10, 20], "connect": [11, 13, 15, 24], "consid": [13, 15, 18, 20, 21, 22, 24], "consider": [1, 20, 23], "consist": [7, 12, 21, 22, 24], "constant": [9, 13, 15, 21, 22, 23, 24, 25], "constrain": [0, 13, 15, 18, 21, 22, 24], "constraint": [1, 6, 10, 13, 15, 18, 21, 22, 24], "construct": [20, 23], "consult": 20, "contact": [13, 15], "contain": [6, 8], "context": [13, 15], "contraint_quant": 24, "contribut": [13, 15, 18, 20], "contributor": [1, 20], "control": [10, 16, 23], "convent": [1, 13], "converg": [10, 21, 22, 24], "convers": [8, 23, 24], "convert": [8, 24], "copi": [21, 22, 24], "core": [3, 7, 8, 10, 11, 12, 24], "core_": 23, "core_e_max": 23, "core_e_min": 23, "core_p": 23, "corner": [2, 14, 24], "cornerplot": 13, "correctli": 1, "correpsond": 8, "correspond": [3, 5, 9, 13, 15, 18, 23], "cosntrain": [22, 24], "could": [0, 8, 21, 22, 23, 24, 25], "coupl": [13, 15], "cover": 20, "cpu": 10, "crab": [13, 15, 18], "creat": [1, 3, 14, 21, 23], "crucial": [13, 15], "crust": [3, 7, 12, 13, 24], "crust_eo": [11, 23, 24], "cs_a": 23, "cs_eo": 23, "csv": [5, 8, 14, 16, 25], "cube": [0, 17, 21, 22, 24], "current": [1, 13, 15, 20], "curv": [1, 21, 23, 25], "custom": 10, "cut": [6, 21, 22, 24], "d": [3, 13, 15, 18, 25], "d1": [6, 21, 22, 24], "d1m": 3, "d1mstar": 3, "d2": [21, 22, 24], "d_1": [13, 15], "data": [3, 13, 15, 18, 21, 22, 24], "databas": 3, "dc": 3, "dd": 3, "dd2": 3, "dd2_frg": 3, "dd2f": 3, "dd2k": 3, "dd2l": 3, "dd2lphi": 3, "dd2y": 3, "dd2ydelta": 3, "ddhdelta": 3, "ddhdeltay4": 3, "ddl": 3, "ddme": 3, "ddme2": 3, "decad": [13, 15, 18], "deeper": [13, 15], "def": [9, 21, 22, 24], "default": [1, 13, 15, 17, 21, 22, 24], "defin": [0, 1, 6, 7, 9, 10, 12, 13, 15, 17, 20, 21, 22, 24, 25], "definit": [13, 18, 21, 22, 23, 24], "deform": [8, 16, 20, 25], "degre": [13, 15], "dej": 3, "delimit": [22, 24], "demand": 10, "demonstr": [1, 3, 13, 15, 20, 21, 22, 24], "denisti": 5, "denot": [13, 15], "dens": 18, "densiti": [1, 3, 5, 6, 7, 8, 9, 11, 12, 13, 15, 16, 18, 19, 20, 21, 22, 23, 24, 25], "depend": [10, 13, 14, 18, 24], "depict": [13, 15], "deriv": [5, 13, 15, 24, 25], "describ": 23, "descript": 18, "design": [13, 14, 15, 18], "desir": 14, "desiti": 8, "detail": [1, 9, 10, 13, 15, 20, 23], "detect": [13, 15], "detector": [13, 15, 21, 22, 24], "determin": [6, 7, 8, 12, 13, 15, 21, 22, 24], "develop": [1, 15, 20], "devid": [0, 9], "dhsl59": 3, "dhsl69": 3, "diagram": [13, 15], "dict": 24, "did": [21, 22, 23, 24], "differ": [3, 13, 14, 15, 20, 21, 22, 24], "dimens": [8, 21, 22, 24], "dirctori": 0, "direct": [23, 25], "directori": [1, 14], "direv": [21, 22, 24], "distribut": [6, 17, 21, 22, 24], "divid": 9, "dmdr": 9, "dn": 3, "do": [0, 17, 20, 21, 22, 23, 24, 25], "document": [13, 14, 15, 18, 20, 21, 22, 23, 24], "doi": [13, 15, 18], "don": [14, 21, 22, 24], "dop853": 9, "doubl": [8, 20], "download": 3, "download_id": 3, "downloadcompos": 3, "dp": 5, "dpdr": 9, "dpi": [3, 9, 23], "dr": 9, "drho": 5, "due": [10, 13, 15, 21, 22, 23], "dydx_last": 23, "dyn": [3, 7, 8, 9, 12, 23], "dyn_cm_2": [9, 21, 23], "dynam": [13, 15, 18], "dyne": 9, "e": [9, 13, 15, 18, 21, 22, 23, 24], "e0": 9, "e_grid": 9, "e_max": 9, "e_min": 9, "each": [3, 13, 14, 15, 23], "eager": 1, "easi": [14, 21, 22, 24], "easier": [0, 23], "easili": [13, 15, 21, 22, 23, 24, 25], "edu": [1, 18, 20], "effect": [13, 15, 18, 24], "effici": 20, "eft": [13, 15], "eg": [21, 22, 24], "either": [24, 25], "electron": [3, 7, 12], "electronvolt": 9, "els": [21, 22, 24], "email": [1, 18], "enabl": 24, "encount": 14, "end": [5, 9], "energi": [3, 6, 7, 8, 9, 11, 12, 13, 15, 20, 21, 22, 23, 24], "energy_dens": [7, 8, 12, 16, 22, 23, 24], "energy_density_pressur": [7, 12, 13], "energy_density_tot": 22, "enhanc": [1, 18, 20], "enlarg": 24, "ensur": [1, 3, 9, 10, 14, 18, 20], "enter": 14, "entir": [1, 10, 13, 15, 18, 20], "environ": [10, 13, 20], "eo": [3, 6, 8, 10, 11, 15, 16, 18, 20, 25], "eofp": 9, "eos_check": [5, 13], "eos_download_dir": 3, "eos_import": [5, 13, 16, 23, 25], "eos_nam": 3, "eos_p": 9, "eos_pnm": 24, "eosdir": 3, "eosgener": [3, 7, 11, 12, 21, 22, 23, 24], "eosnam": 3, "eoss": 25, "ep": [3, 23, 24], "eps_com": 23, "eps_combin": 11, "eps_crust": [7, 11, 12, 24], "eps_crust_out": 24, "eps_crust_t_out": 23, "eps_fast": 23, "eps_set": 23, "eps_tot": [6, 21, 22, 23, 24], "eps_total_fast": 23, "epsilon": [21, 22, 23, 25], "equaiton": 19, "equal": 0, "equal_weighted_sampl": 0, "equat": [3, 4, 7, 10, 12, 14, 16, 18, 20, 21, 22, 24, 25], "erg": 9, "error": 9, "escap": 22, "essenti": [10, 13, 15], "establish": 9, "et": [21, 23, 24], "etc": 4, "euqat": 19, "evalu": 10, "even": 18, "event": [6, 8, 13, 15, 21, 22, 24], "evid": [13, 15], "exampl": [9, 10, 13, 20, 21, 22, 24, 25], "except": [21, 22, 25], "execut": 10, "exist": [3, 13, 15, 20], "exp": 24, "expand": [1, 18, 20, 21, 22, 24], "expens": 10, "experi": [6, 13, 15, 21, 22, 24], "explan": 10, "explic": 9, "explicit": 10, "explor": [0, 10, 13, 15, 20], "export": 10, "extend": [3, 13, 15, 18, 24], "extens": [1, 20], "extract": 3, "f": [9, 23], "f0": 3, "facilit": [13, 15], "fact": 23, "factor": [6, 7, 11, 12, 24], "fals": [21, 22, 24], "familiar": 20, "fast": [10, 12, 23], "faster": 23, "fastrmf": 23, "fastrmf_eo": [12, 14, 23, 24], "featur": [1, 13, 15, 18, 20], "feed": [6, 8, 21, 22, 24], "feedback": [1, 18, 20], "feel": 14, "ferreira": 18, "fetch": 3, "field": [10, 13, 15, 18, 20, 24], "fig": [23, 25], "figsiz": [23, 25], "figur": [3, 9, 23, 24], "file": [0, 1, 3, 5, 16, 21, 22, 23, 24, 25], "file_nam": [5, 16], "file_read": [5, 13], "filenam": 25, "fill_contour": 24, "final": [3, 23], "find": [3, 21, 22, 24], "fine": 23, "finish": 24, "first": [3, 9, 14, 21, 22, 23, 24, 25], "first_run_tim": 23, "first_run_time_norm": 23, "fix": 8, "flat": [17, 21, 22, 24], "flat_prior": [13, 17, 21, 22, 24], "flat_sampl": 0, "flatten": 24, "flavor": 3, "float": [6, 7, 8, 11, 12, 16, 17], "flow": 25, "flucatu": 24, "fluid": 20, "fm": [8, 9, 21, 23, 24], "fm3": [6, 7, 11, 12, 24], "folder": 0, "follow": [1, 9, 13, 14, 15, 16, 17, 18, 20, 22, 23], "fontsiz": [23, 24, 25], "fop": 3, "form": [9, 20, 23], "formula": [9, 10], "fortran": 14, "found": [24, 25], "foundat": [9, 13, 15, 20], "four": [13, 15, 21, 22, 24], "fr": 3, "frac": [13, 15, 21, 23], "framework": [13, 15, 18], "free": [13, 14, 15, 23], "freedom": [13, 15], "frg": 3, "friendli": [13, 15], "from": [0, 3, 4, 5, 6, 7, 8, 9, 11, 12, 13, 15, 18, 19, 21, 22, 23, 24, 25], "fsg": 3, "fsu1": 3, "fsu2": 3, "fsu2h": 3, "fsu2r": 3, "ftn": 3, "full": [6, 9, 13, 15, 18, 21, 22, 23, 24], "full_": 23, "full_p": 23, "fulli": 10, "functi": 7, "function": [0, 2, 3, 4, 5, 7, 8, 9, 11, 12, 13, 15, 17, 18, 19, 20, 21, 22, 23, 24, 25], "fundament": [1, 13, 15, 18], "further": [3, 21, 22], "futur": [13, 15], "fyss": 3, "g": [3, 6, 7, 8, 9, 11, 12, 13, 15, 18, 21, 22, 23, 24, 25], "g_": 24, "g_cm_3": [9, 21, 23], "g_omega": [23, 24], "g_rho": [23, 24], "g_sigma": [23, 24], "gain": [21, 22, 24], "gamma": 23, "gaussian": [6, 17, 24], "gaussian_kd": [22, 24], "gdfm": 3, "gdtb": 3, "gen_a": 23, "gener": [0, 7, 12, 15, 17, 20, 21, 22, 24, 25], "geometr": 23, "geomspac": [9, 23], "get": [14, 20], "get_eos_alpha": 24, "gev": 9, "giga": 9, "github": [1, 18, 20], "give": [21, 22, 24], "given": [0, 4, 5, 6, 7, 8, 10, 11, 12, 13, 15, 17, 21, 22, 23, 24, 25], "glenden": [13, 15], "glitch": [13, 15, 18, 20], "gm": 3, "gm1": 3, "gm1y4": 3, "gm1y5": 3, "gm1y6": 3, "gmsr": 3, "goal": 13, "gone": 23, "good": 9, "gorda": 18, "gppva": 3, "gradient": 19, "gram": 9, "gravit": [6, 9, 13, 15, 21, 22, 24], "graviti": [13, 15], "grdf1_dd2": 3, "grdf2": 3, "grdf2_dd2": 3, "greatli": [18, 23], "grid": [9, 23], "grom": 3, "guid": [14, 20], "guidelin": 13, "gw": [6, 8, 21, 22, 24], "gw170817": [22, 24], "gw170817_mcql1l2weight": [22, 24], "gw190814": 18, "h": [1, 3, 8, 18, 20], "h1": 3, "h2": 3, "h3": 3, "h4": 3, "h5": 3, "h5py": 10, "h7": 3, "ha": [18, 21, 23, 25], "hadron": [3, 18], "handl": 20, "happi": 14, "hard": [6, 14, 21, 22, 24], "have": [1, 7, 12, 13, 14, 15, 20, 21, 22, 24, 25], "hbar": 9, "hbarc": 9, "hebel": 24, "help": [1, 9, 10, 13, 15, 18, 20], "hep": 9, "here": [0, 7, 8, 10, 12, 13, 15, 17, 18, 21, 22, 23, 24, 25], "high": [9, 20], "higher": [21, 22, 24], "highli": [1, 10], "hint": [22, 24], "hjjstv": 3, "hot": 25, "hour": 10, "how": [0, 1, 3, 9, 20, 21, 22, 23, 24], "howev": [21, 22, 24], "hsdd2k": 3, "hstack": [23, 24], "http": [3, 9, 13, 14, 15, 18, 23], "huang": [13, 15, 18, 23], "huth": 24, "hybrid": 3, "hyperon": [3, 13, 15, 18], "hypothes": [13, 15], "hypothesi": [13, 15], "i": [0, 1, 3, 5, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17, 18, 20, 21, 22, 23, 24, 25], "id": 3, "identifi": [3, 18, 20], "ignor": 25, "ii": [3, 13, 15, 18], "illustr": [13, 15], "impact": 18, "implement": [13, 15, 18, 21, 22, 24], "import": [3, 9, 13, 22, 23, 24, 25], "includ": [1, 10, 13, 14, 15, 20], "incompress": [21, 22, 24], "inconsist": 9, "increas": 10, "increasingli": [13, 15], "independ": [13, 15], "index": [13, 20, 21, 22, 24], "infer": [10, 14, 17, 18, 20, 25], "inferenceworkflow": [0, 1, 6, 17, 21, 22, 24], "influenc": [13, 15, 20, 21, 22, 24], "inform": [10, 13, 15], "ingredi": [7, 11, 12, 13, 15], "initi": [7, 12, 13, 15, 18], "initial_valu": [7, 12, 13], "initio": 18, "inner": 3, "input": [0, 1, 2, 13, 15, 19, 20, 21, 22, 23, 24], "input_fil": [5, 16], "inquiri": [1, 18, 20], "insid": 9, "insight": [13, 15, 18], "instal": [10, 13, 15, 20], "instanc": [3, 13, 15], "instead": 20, "instruct": [13, 15, 20], "instrument": [13, 15], "int": 0, "integ": [22, 23], "integr": [1, 8, 9, 10, 13, 15, 20, 23, 25], "intens": 10, "inter": 11, "interact": [3, 13, 15, 23], "interest": [1, 25], "interfac": 24, "intergart": 8, "interior": [13, 15], "intermedi": 3, "intern": 20, "interp": 9, "interpol": [8, 13], "intro": 23, "introduc": [13, 15, 21, 22, 24], "introduct": [13, 20], "invalid": [5, 22], "inveo": 8, "invert": 8, "investig": [13, 15, 20], "invit": 20, "involv": [13, 15], "io": 18, "iotsi": 3, "ipynb": 0, "isospin": [13, 15], "issu": [1, 14], "iter": [7, 10, 21, 22, 24], "itertool": [14, 23, 25], "its": [20, 23, 24], "iuf": 3, "j": [6, 13, 15, 21, 22, 24], "j0030": [21, 22, 24], "j0437": 18, "j0740": [21, 22, 24], "j30m_list": [22, 24], "j30r_list": [22, 24], "j_low": 6, "j_up": 6, "jj": 3, "jliklihood": [6, 13, 21, 22, 24], "jona": 18, "journal": 18, "jupyt": 1, "just": [23, 24], "k": [6, 13, 15, 18, 21, 22, 24], "k_low": [6, 21, 22, 24], "k_nrel": 9, "k_up": [6, 21, 22, 24], "kappa": [13, 15, 23, 24], "kbh": 3, "kde": [6, 21, 22, 24], "kde0v": 3, "kde0v1": 3, "keep": 23, "kei": [13, 20], "kernel": [6, 21, 22, 24], "kernel3": [22, 24], "kernelgw": [6, 22, 24], "kg": 9, "kilogram": 9, "kilomet": 9, "kliklihood": [6, 13, 21, 22, 24], "km": [8, 9, 21, 22, 23, 24, 25], "know": 9, "komoltsev": 18, "kost2": 3, "krt": 3, "kurkela": 18, "l": [3, 6, 13, 15, 18, 21, 22, 24], "l_low": 6, "l_up": 6, "label": [23, 24, 25], "label_kwarg": 24, "labels": [23, 25], "labtob": 24, "lack": [21, 22], "lagrangian": [6, 7, 12, 13, 15], "lambda": [3, 25], "lambda_": [13, 15], "lambda_0": [13, 15, 23, 24], "lambda_w": [23, 24], "laptop": 10, "larg": 10, "lasinio": 18, "last": [21, 22, 23, 24, 25], "later": 3, "latest": [3, 14], "leav": 9, "left": [13, 15], "legend": [23, 25], "len": [9, 21, 22, 24], "lepton": [3, 13, 15], "less": [8, 10], "level": 24, "light": 9, "ligo": [13, 15], "like": [1, 4, 13, 14, 15, 18, 21, 22, 24, 25], "likehood": 13, "likehood_transform": 22, "likelihood": [0, 1, 13, 15, 18, 21, 22], "likelihood_transform": [21, 22, 24], "limit": [21, 22, 24, 25], "line": [9, 21, 22, 23, 24], "link": 3, "linspac": [22, 23], "list": [1, 3, 13, 15, 16, 18, 20, 23], "liter": 9, "live": 0, "live_point": [0, 21, 22, 24], "lliklihood": [6, 13, 21, 22, 24], "ln": 3, "lns5": 3, "load": [21, 22, 24], "loadtxt": [22, 23, 24], "local": [1, 20], "locat": [21, 22, 24], "log": [3, 13, 15, 23, 24, 25], "log10": [21, 22, 24], "logspac": [8, 21, 22, 23, 24], "long": [9, 13, 15, 18], "longer": 23, "loop": 25, "lot": 24, "low": [3, 17], "lower": [6, 17], "lpb": 3, "ls220": 3, "ls220l": 3, "lw": [23, 25], "lz1": 3, "m": [9, 13, 14, 15, 18, 23, 24, 25], "m0": 9, "m1": [3, 6, 8, 21, 22, 24], "m1_from_mc_m2": [8, 13], "m2": [3, 6, 8, 21, 22, 24], "m3": 3, "m4": 3, "m5": 3, "m_": [23, 24, 25], "m_n": [3, 9], "m_p": 3, "m_rho": [22, 23, 24], "m_sig": [23, 24], "m_sun": 8, "m_w": [22, 23, 24], "magnitud": 8, "mai": [1, 14, 20], "main": [1, 7, 8, 12, 13, 21, 22, 23, 24, 25], "maintain": 10, "make": [1, 13, 15, 20, 24], "malik": 18, "manag": 10, "mani": [0, 21, 22, 24], "marquez": 18, "mass": [1, 3, 6, 8, 9, 13, 15, 16, 18, 20, 21, 22, 24, 25], "masslikihood_gaussian": [6, 13, 21, 22, 24], "math": [14, 18, 21, 22, 23, 24], "mathcal": [13, 15], "mathemat": 10, "matplotlib": [3, 9, 14, 23, 25], "matter": [3, 7, 12, 13, 15, 18, 21, 22, 24], "max": [22, 24], "max_cal": [0, 21, 22, 24], "max_d": [21, 22, 24], "max_index": [21, 22, 24], "max_n_tick": 24, "max_ncal": 0, "maximum": 23, "maxium_central_dens": 23, "mayb": [21, 22, 24], "mbb": 3, "mc": 8, "mean": [10, 13, 15, 18, 20, 23], "meantim": [21, 22], "measur": [6, 8, 13, 15, 18, 21, 22, 24], "measuremnt": [22, 24], "mega": 9, "member": [1, 20], "menez": 18, "mention": 18, "merger": [13, 15], "meson": [13, 15], "meta": 10, "meter": 9, "method": [13, 15], "mev": [3, 6, 7, 8, 9, 11, 12, 21, 23, 24], "mevfm": 23, "mfsu2r": [21, 22, 24], "mgrid": [22, 24], "microphys": [13, 15], "mid": [13, 15], "midiat": 8, "million": 20, "min": [22, 24], "mind": 23, "minimum": 23, "mit": [10, 13, 20], "mitbag": 21, "mitbag_compute_eo": [21, 23], "mitbag_eo": [21, 23], "mmax": [22, 24], "mmin": [22, 24], "mn": 8, "mnra": [13, 15, 18], "model": [3, 6, 7, 10, 11, 12, 13, 15, 18, 20, 21, 22, 24, 25], "modifi": [1, 10, 20, 22], "modul": [1, 14, 15, 20], "monthli": [13, 15, 18], "more": [9, 10, 13, 15, 20, 21, 22, 24], "most": [1, 16, 23], "mpi": 10, "mpi4pi": 10, "mpiexec": 10, "mr": [6, 9, 16, 21, 22, 23, 24, 25], "mr_fast": 23, "mrlikelihhood_kernel": [22, 24], "mrlikihood_gaussian": [6, 13, 21, 22, 24], "mrlikihood_kernel": [6, 13, 21, 22, 24], "mrt": [16, 25], "msun": [9, 21, 23], "mtvtc": 3, "mu_e": [7, 12], "mu_n": [7, 12], "multipl": [4, 10, 25], "multipli": 9, "must": 20, "mvalu": 6, "mwidth": 6, "my": [21, 22, 24], "n": [3, 13, 14, 15, 22, 23, 24], "n0": 9, "n_core_": 23, "n_max": [22, 23], "n_min": [22, 23], "n_valu": [22, 23], "nambu": 18, "name": [1, 3, 10, 14, 21, 22, 24], "natur": [9, 10, 23, 24], "nautral": 8, "nb": 3, "necessari": [14, 20], "necessit": 1, "need": [1, 3, 9, 13, 14, 15, 16, 20, 21, 22, 23, 24, 25], "neg": [21, 22, 24], "nest": [0, 13, 15, 21, 22, 24], "neutrino": 3, "neutron": [3, 7, 8, 9, 12, 13, 14, 15, 18, 20, 21, 22, 24, 25], "never": 9, "new": [1, 3, 13, 15, 18, 20], "newli": 14, "next": [21, 22, 23, 24, 25], "nicer": [10, 13, 15, 18, 21, 22, 24], "nl3": 3, "nl3wrl55": 3, "none": 24, "normal": [17, 23], "normal_prior": [13, 17, 21, 22, 24], "note": [14, 20, 21, 22, 23, 25], "notebook": [1, 3, 13, 20, 21, 22, 24], "notic": [8, 9, 13, 15, 18, 24], "now": [3, 9, 14, 23], "np": [8, 9, 10, 21, 22, 23, 24], "npy": [22, 24], "nq": [22, 23], "nrapr": 3, "nse": 3, "nstep": 0, "nucl": 18, "nuclear": [3, 6, 7, 12, 13, 15, 18, 21, 22, 24], "nuclearmatt": [22, 24], "nucleon": [3, 13, 15, 18], "numba": [10, 13, 14], "numbaminpack": 14, "number": [10, 17, 21, 22, 23, 24], "numer": 10, "numpi": [5, 8, 9, 14, 16, 19, 21, 22, 23, 24, 25], "o": [14, 18], "obei": 9, "observ": [6, 10, 13, 15, 18, 21, 22, 24], "obspm": 3, "obtain": [7, 12, 13, 15, 23], "od": [9, 23], "odot": [23, 24, 25], "offer": [13, 15, 20], "old": 3, "omega": [7, 12, 13, 15, 24], "omhn": 3, "omit": 8, "omp_num_thread": 10, "onc": [14, 23], "one": [5, 8, 10, 18, 21, 22, 23, 24, 25], "oneoverfm_mev": [22, 24], "ongo": 18, "onli": [1, 9, 18, 20, 21, 22, 23, 24], "onlin": 3, "oo": 3, "opac": 3, "open": [1, 5, 13, 14, 15, 16, 18], "openmpi": 10, "oper": [13, 15], "opgr": 3, "oppenheim": 20, "optim": 10, "option": [5, 13, 16, 21, 22, 24], "order": [8, 23], "org": [9, 13, 14, 15, 18, 23], "origan": [22, 24], "origin": [1, 3, 13, 15, 20, 21, 22, 23, 24], "other": [9, 10, 13, 15, 18, 20, 21, 22, 23], "otherwis": [10, 13, 15, 21, 22, 24], "our": [0, 1, 13, 14, 15, 18, 20, 21, 22, 23, 24, 25], "out": [8, 14, 20, 21, 22, 23, 24, 25], "outlin": 1, "output": [0, 1, 7, 12, 16, 23, 25], "outputc_": [13, 16, 25], "outputmr": [1, 13, 16, 21, 22, 23, 24, 25], "outputmrpoint": [13, 16], "outputmrt": [13, 16, 25], "outputmrtpoint": [13, 16], "outsid": 20, "over": 24, "overal": [10, 13, 15], "overlap": 2, "overview": [10, 20], "own": [1, 10, 20, 25], "p": [3, 9, 13, 15, 18, 21, 23, 24, 25], "p0": 9, "p_c": 9, "p_grid": 9, "pack": 8, "packag": [0, 1, 10, 14, 16, 18, 20, 22, 23, 24, 25], "page": [1, 9, 10, 13, 14, 15, 18, 20], "pai": 18, "panda": 14, "paper": [13, 15, 18, 23], "parallel": [13, 21, 22, 24], "param": [9, 16, 19, 21, 22, 24], "paramet": [0, 1, 4, 5, 6, 7, 8, 10, 11, 12, 13, 15, 16, 17, 18, 21, 22, 24], "paramt": [6, 7, 12], "pars": 5, "part": [7, 11, 12, 13, 15, 21, 22, 24, 25], "partial": [21, 22, 24], "particularli": [13, 15], "pass": [5, 16], "path": 14, "pcg": 3, "pcp": 3, "pcsb0": 3, "pcsb1": 3, "pcsb2": 3, "pdf": 9, "peak": 24, "per": [10, 24], "perform": [10, 13, 15, 20], "permiss": [13, 20], "ph": 9, "phyiscal": [21, 22, 24], "physic": [3, 9, 10, 13, 15, 18, 20], "physrevd": 18, "pi": [9, 13, 15], "pick": 3, "piekarewicz": [13, 15], "pion": 3, "pip": 14, "pipelin": [13, 15, 20], "piplin": 13, "pk1": 3, "pkdd": 3, "plai": [13, 15], "planck": 9, "pleas": [0, 1, 8, 10, 13, 14, 15, 18, 20, 21, 22, 24], "plot": [1, 2, 3, 9, 13, 23, 25], "plot_datapoint": 24, "plot_dens": 24, "plt": [3, 9, 23, 25], "pmin": 9, "pnm": [13, 15, 24], "pofe": 9, "point": [0, 13, 15, 16, 20, 21, 22, 23, 24], "polyinterpol": [11, 13, 23, 24], "polytrop": [4, 10, 11, 13, 15, 20, 25], "polytrope_eo": 23, "portion": [7, 12], "posit": [5, 22, 24], "possibl": [13, 15, 22, 23], "post": [13, 15, 18], "posteior": 0, "posterior": [2, 13, 15], "potenti": [3, 7, 12], "power": 13, "ppf": 17, "pqcd": [13, 14, 15, 18], "pr": 24, "practic": 10, "pramet": 23, "pre": 23, "precis": [21, 22, 24], "predefin": [13, 15], "predict": [21, 22, 24], "prefer": 20, "prepar": 18, "preprint": [13, 15, 18], "prerequisit": 13, "pres_com": 23, "pres_combin": 11, "pres_crust": [7, 11, 12, 24], "pres_crust_out": 24, "pres_crust_t_out": 23, "pres_fast": 23, "pres_out": 23, "pres_tot": [6, 21, 22, 23, 24], "pres_total_fast": 23, "present": [9, 23], "press": 14, "pressrur": 5, "pressur": [1, 3, 5, 6, 7, 8, 11, 12, 13, 15, 16, 19, 20, 21, 22, 23, 24, 25], "pressure_crust": 11, "pressure_tot": 22, "presurssur": 24, "previou": [0, 3, 23], "primari": 20, "primarili": [13, 15], "print": [3, 5, 9, 18, 23], "print_eos_list": 3, "prior": [0, 1, 10, 13, 15], "prior_transform": [21, 22, 24], "prob": [21, 22, 24], "probabl": [13, 15], "probgw": [22, 24], "probj": [22, 24], "probk": [22, 24], "probl": [22, 24], "probmr": 24, "probmrgaussian": [21, 22, 24], "probmrgaussian1": 24, "probmrgaussian2": 24, "probmrj0030": [22, 24], "probpnm": 24, "proce": [1, 14, 20], "procedur": 9, "process": [10, 13, 15, 21, 22, 24], "prohibit": 10, "project": [1, 9, 10, 14, 18, 20], "promot": [18, 20], "prompt": 14, "properti": [8, 13, 15, 21, 22, 24, 25], "prove": [21, 22, 24], "provid": [3, 13, 15, 21, 22, 23, 24], "provid\u00eancia": [13, 15, 18], "psi_": [13, 15], "psr": [21, 22, 24], "pst_equal_sampled_mr": [22, 24], "psudo": 8, "pt": 3, "public": [1, 13, 15, 20], "publish": 18, "pulsar": [13, 15, 18], "pure": [13, 15, 24], "purpos": 20, "put": [22, 24, 25], "py": [1, 10, 22], "pypi": 14, "pyplot": [3, 9, 23, 25], "python": [10, 13], "python3": 14, "qcd": 18, "qhc18": 3, "qhc19": 3, "qhc21_a": 3, "qhc21_at": 3, "qhc21_b": 3, "qhc21_bt": 3, "qhc21_c": 3, "qhc21_ct": 3, "qhc21_d": 3, "qhc21_dt": 3, "qmc": 3, "quad": 23, "quantil": 24, "quantiti": [9, 13, 15, 20, 21, 22, 24, 25], "quark": [3, 20, 21, 23], "quentiti": 23, "question": 14, "r": [3, 8, 9, 13, 15, 18, 23, 24, 25], "raaijmak": [13, 15, 18], "radii": [13, 15], "radio": [13, 15, 21, 22, 24], "radiu": [1, 6, 8, 9, 13, 15, 16, 18, 20, 21, 22, 24, 25], "rai": [13, 15], "raiu": 8, "random": [17, 21, 22, 23, 24], "randomli": [21, 22, 24], "rang": [8, 9, 13, 15, 20, 21, 22, 23, 24], "ratp": 3, "ravel": [22, 24], "rdf": 3, "re": 14, "reach": 14, "read": 5, "read_compos": 3, "readi": [3, 14, 24], "readm": [20, 24], "real": [13, 15, 21, 22, 24], "reason": 23, "rebuild": [1, 20], "recommend": [1, 10, 13], "redifin": [22, 24], "reduc": 9, "ref": 16, "refer": [1, 10, 13, 14, 15, 20, 24], "regardless": 10, "region": [13, 15], "rel": [10, 13, 15], "relat": [1, 3, 8, 9, 13, 15, 18, 20, 21], "relativist": [10, 13, 15, 18, 20], "relev": 1, "reli": [13, 15, 18], "rememb": [14, 25], "repeat": [13, 15, 23, 25], "replac": [10, 14], "repositori": [1, 20], "repres": [6, 7, 12, 13, 15, 21, 23], "request": [1, 21, 22, 24], "requir": [1, 10, 20, 23], "rerun": 23, "rescal": 9, "research": [1, 13, 15, 18, 20], "reset": [21, 22, 24], "resourc": [10, 21, 22, 24], "restart": 0, "restructur": [1, 20], "result": [0, 20, 21, 22, 24], "resum": [0, 21, 22, 24], "return": [0, 5, 6, 7, 8, 9, 11, 12, 16, 17, 19, 21, 22, 23, 24, 25], "review": [1, 18, 20], "rfsu2r": [21, 22, 24], "rg": 3, "rho": [7, 12, 13, 15, 24, 25], "rho_03": [7, 12], "rho_c": 9, "rho_t": 23, "right": [13, 15, 23, 25], "rmax": [22, 24], "rmf": [4, 6, 10, 13, 15, 18, 20, 21, 22, 25], "rmf1": 3, "rmf2": 3, "rmf3": 3, "rmf4": 3, "rmf_eo": [7, 23], "rmin": [22, 24], "rn": 8, "ro": 9, "robust": 20, "role": [13, 15], "royal": [13, 15, 18], "rule": [9, 23], "run": [0, 10, 13, 14, 15, 21, 22, 23, 24], "rvalu": 6, "rwidth": 6, "sai": [21, 22, 24], "same": [0, 9, 23, 24], "sampl": [0, 1, 6, 8, 10, 13, 15, 20, 21, 22, 24], "sampler": [0, 1, 13], "satur": [9, 13, 15, 21, 22, 24], "scalabl": 10, "scale": [13, 15], "scatter": 23, "scenario": 20, "scientif": 13, "scipi": [9, 14, 21, 22, 23, 24], "scope": [1, 13, 15, 18, 21, 22, 23, 24], "script": [1, 10], "sdgtt": 3, "seamlessli": [13, 15], "search": 13, "second": [9, 10, 20, 25], "section": 18, "see": [9, 21, 22, 23, 24], "segment": 23, "self": 23, "send": [1, 18], "sequenc": [6, 22], "serv": [13, 15], "set": [6, 8, 9, 10, 13, 23], "set_f_param": 9, "set_initial_valu": 9, "set_integr": 9, "set_xlabel": [23, 25], "set_xlim": [23, 25], "set_ylabel": [23, 25], "set_ylim": [23, 25], "setup": 13, "sever": [18, 25], "sf": 3, "sfh": 3, "sfho": 3, "sfhoi": 3, "sfhpst": 3, "sfhx": 3, "shall": 23, "shape": 23, "sho": 3, "should": [1, 9, 13, 15, 21, 22, 23, 24], "show": [3, 9, 21, 22, 23, 24, 25], "show_titl": 24, "showcas": 20, "sht": 3, "sigma": [3, 6, 7, 12, 17, 21, 22, 24], "signific": [1, 13, 15], "significantli": [21, 22, 24], "similiar": [21, 22, 24], "simipl": 8, "simpl": [21, 23], "simpli": 14, "simul": [6, 13, 15, 21, 22, 23, 24], "sinc": [21, 22, 23, 24, 25], "singl": [16, 20, 21, 22, 23, 24], "sk255": 3, "sk272": 3, "ska": 3, "skapr": 3, "skb": 3, "ski2": 3, "ski3": 3, "ski4": 3, "ski5": 3, "ski6": 3, "skip": [3, 14], "skmp": 3, "skop": 3, "slice": [21, 22, 24], "slicesampl": [21, 22, 24], "slope": [13, 15, 21, 22, 23, 24], "sly2": 3, "sly230a": 3, "sly4": 3, "sly5": 3, "sly9": 3, "smapl": [21, 22, 24], "smapler": 13, "smooth": 24, "sna": 3, "snsh": 3, "so": [1, 8, 18, 21, 22, 23, 24], "societi": [13, 15, 18], "soft": 3, "softwar": [13, 15, 18], "solar": 8, "sole": 6, "solid": [9, 23], "solv": [1, 13, 15, 20, 25], "solver": [1, 15, 20, 25], "solver_cod": 8, "solvetov": [8, 13], "solvetov1": 9, "solvetov_tid": [8, 13], "some": [14, 21, 22, 24], "sound": [4, 10, 13, 16, 20, 25], "sourc": [0, 5, 6, 7, 8, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20], "space": [0, 10, 13, 15, 21, 22, 24], "span": [21, 22, 24], "special": 23, "specif": [3, 18, 20], "specifi": [14, 21, 22, 23, 24], "speed": [4, 9, 10, 13, 16, 20, 21, 22, 24, 25], "speed_of_sound": 19, "speed_of_sound_calc": [13, 19], "speedofsound_eo": 23, "spg": 3, "spheric": [13, 15], "spinor": [13, 15], "sqrt": [23, 24], "srangeon": 23, "sro": 3, "stabl": [21, 22, 24], "stae844": [13, 15, 18], "standard": [13, 15, 18, 21, 22, 24], "star": [3, 8, 13, 14, 15, 18, 20, 21, 22, 23, 24, 25], "start": [0, 13, 14, 25], "stat": [21, 22, 24], "state": [3, 4, 7, 8, 10, 12, 16, 18, 19, 20, 21, 22, 24, 25], "statetov": 9, "statist": 24, "statu": 1, "step": [0, 1, 3, 10, 14, 20, 21, 22, 23, 24, 25], "stiff": 3, "still": [8, 23, 24], "sto": 3, "stop": [0, 21, 22, 24], "store": 25, "straightforward": 10, "strang": [21, 23], "strangeon": [10, 13, 18, 20, 21], "strangeon_compute_eo": [22, 23], "strangeon_eo": [22, 23], "strategi": [10, 13, 15], "string": [5, 16], "strong": [13, 15], "strongli": 23, "structur": [1, 13, 15], "studi": [13, 15, 18, 20], "style": [21, 22, 24], "sub": 20, "subplot": [23, 25], "substanti": [10, 20], "success": [3, 9], "successfulli": 20, "suggest": [1, 21, 22, 24], "suit": [13, 15], "suitabl": 1, "sum": 24, "sum_l": [13, 15], "sum_n": [13, 15], "sun": 9, "super": 24, "supernova": 3, "support": [1, 13, 14, 15, 18, 20], "sy": [9, 14], "symmetr": [13, 15], "symmetri": [13, 15, 21, 22, 24], "syntaxwarn": 22, "system": [9, 10, 23], "t": [3, 9, 14, 18, 21, 22, 23, 24, 25], "tabl": [3, 20, 23], "take": 19, "taken": 23, "team": [13, 15], "temperatur": 3, "term": [6, 7, 9, 12], "terrestri": [21, 22], "test": [20, 23], "test_cas": 23, "test_eo": [8, 25], "test_infer": 0, "textit": [13, 15, 18], "th": 18, "than": 10, "thei": [13, 15], "them": [5, 13, 15, 20, 21, 22, 23, 24], "theorem": [13, 15], "theori": [13, 15, 18, 24], "therebi": 18, "therefor": [13, 15, 20, 23], "thermo": 3, "theta": [0, 6, 7, 12, 21, 22, 23, 24], "theta1": [22, 24], "thi": [0, 1, 3, 6, 7, 8, 9, 10, 12, 13, 14, 15, 17, 18, 20, 21, 22, 24, 25], "thoroughli": [13, 15], "thread": 10, "three": [2, 13, 15, 23], "through": [13, 15], "throughout": 9, "thu": 23, "tianzh": [3, 9], "tick_param": [23, 25], "tidal": [6, 8, 13, 15, 16, 20, 21, 22, 24, 25], "tidal_def": 8, "tidal_deform": [8, 13], "tidallikihood_kernel": [6, 13, 21, 22, 24], "tight_layout": [23, 25], "time": [6, 7, 11, 12, 13, 14, 15, 20, 21, 22, 24], "time_for_20_run": 23, "time_for_20_runs_norm": 23, "titl": 3, "title_fmt": 24, "title_kwarg": 24, "tm1": 3, "tm1b139": 3, "tm1b145": 3, "tm1b155": 3, "tm1b165": 3, "tm1e": 3, "tm1l": 3, "tm1y": 3, "tm1y0": 3, "tm1y0pi": 3, "tm1y30": 3, "tm1y30pi": 3, "tm1y90": 3, "tm1y90pi": 3, "tma": 3, "tntyst": 3, "tolman": 20, "tolo": [13, 15, 18], "tolos_crust_out": [23, 24], "tool": [1, 13, 14, 15, 18, 20, 22, 24], "top": [23, 25], "topic": 25, "total": [21, 22, 23, 24], "tov": [1, 14, 20, 25], "tov1": 9, "tov_def": [8, 13], "tov_solv": 16, "tovsolv": [1, 5, 8, 13, 16, 19, 20, 21, 22, 23, 24], "track": 1, "train": [21, 22, 24], "transform": [21, 22, 24], "transit": 23, "treatment": 23, "trend": [13, 15], "trivial": [21, 22, 24], "true": [0, 13, 15, 23, 24], "try": 25, "tso": 3, "tupl": 16, "tutori": 20, "tw": 3, "tw99": 3, "two": [2, 5, 7, 12, 13, 15, 20, 21, 22, 23, 24, 25], "txt": [22, 23, 24], "type": [0, 5, 6, 7, 8, 11, 12, 14, 16, 17, 19, 24], "typic": 23, "u": [1, 13, 15, 18, 20, 23, 25], "ultim": [13, 15], "ultranest": [0, 10, 14, 17, 21, 22, 24], "ultranestsampl": [0, 13, 21, 22, 24], "ultranestsamplerresum": [0, 13, 21, 22, 24], "un": [21, 22, 24], "uncertainti": [21, 22, 24], "under": [13, 15], "undergo": 20, "underscor": 25, "understand": [13, 15, 20], "unifi": 3, "uniform": [21, 22, 23], "unit": [1, 8, 13, 21, 23, 24], "unitconventionfordevelop": 1, "unversi": 24, "up": [6, 9, 13, 17, 23], "updat": [13, 15, 18], "upgrad": 14, "upper": [6, 17, 21, 22, 24, 25], "us": [0, 1, 3, 6, 7, 8, 9, 10, 12, 13, 15, 18, 20, 21, 22, 23, 24, 25], "usag": 20, "usecol": 24, "user": [0, 5, 8, 11, 15, 19, 21, 22, 24], "util": [10, 18, 20, 24], "vacuum": [21, 23], "valid": [5, 16, 23], "valu": [1, 6, 7, 8, 10, 12, 17, 21, 22, 23, 24], "variabl": [10, 21, 22, 24], "variat": 3, "varibl": 8, "varribl": 8, "vector": 3, "venv": 14, "veri": [10, 21, 22, 23, 24, 25], "verion": 0, "version": [3, 10, 13, 14, 23], "vgbcmr": 3, "virtual": [10, 13, 20], "visit": [1, 13, 15, 20], "volkoff": 20, "vqcd": 3, "vstack": [22, 24], "w": 18, "wa": 9, "wai": [21, 22, 24], "want": [0, 9, 14, 16, 21, 22, 24], "warn": 23, "watt": [13, 15, 18], "wave": [6, 13, 15, 21, 22, 24], "we": [1, 3, 7, 8, 9, 12, 13, 14, 15, 16, 18, 20, 21, 22, 23, 24, 25], "websit": 3, "weight": [0, 22, 24], "welcom": [1, 13, 15, 18, 20], "well": [1, 13, 15], "were": 3, "what": [21, 22, 23, 24], "when": [9, 13, 14, 15, 22, 23, 25], "whenev": [9, 14], "where": [10, 13, 15, 20, 21, 22, 23, 24], "whether": 25, "which": [3, 7, 9, 10, 12, 20, 21, 22, 23, 24, 25], "while": [9, 23], "whole": [0, 8, 9, 21, 22, 24], "whose": 25, "why": 23, "wide": 9, "width": [6, 17, 21, 22, 24], "wikipedia": [13, 15], "wish": [1, 10, 20], "within": [1, 3, 10, 13, 15, 18, 20], "without": [3, 10, 20, 23], "work": [0, 9, 13, 15, 18, 20], "workflow": [13, 15, 17, 20], "worri": 23, "would": [1, 13, 15, 18], "wustl": [1, 18, 20], "x": [3, 6, 7, 12, 13, 15, 18, 21, 22, 23, 24], "x3": [22, 24], "x_last": 23, "xlabel": [3, 9, 23], "xlim": 23, "xmlslz": 3, "xscale": [3, 23, 25], "xu": 18, "y": [3, 8, 9, 14, 21, 22, 24], "y2": 8, "y3": [22, 24], "y_last": 23, "ylabel": [3, 9, 23], "ylim": 23, "you": [0, 1, 9, 10, 13, 14, 15, 18, 20, 21, 22, 23, 24], "your": [0, 1, 9, 10, 13, 14, 18, 21, 22, 24, 25], "youreosnam": 1, "yourself": 20, "youself": [21, 22, 24], "yscale": [3, 23], "yuan": 18, "zero": [3, 23], "zeros_lik": 9, "zeta": [13, 15, 23, 24], "zhang": 18, "zheng": [13, 15, 18], "zhou": [3, 9, 18], "zip": [21, 22, 24], "\u1f10\u03c1\u03b3\u03bf\u03bd": 9, "\ud835\udc40": [21, 22], "\ud835\udc45": [21, 22]}, "titles": ["Bayesian Inference smapler setup module", "Call for Contributions", "Postprocessing module: Cornerplot", "Usage of download_compose Module", "EOS solver", "Import Equation of State", "Likelihood function definition module", "RMF EOS solver", "Solve TOV Equation", "Unit Convention for Developer", "Computation Guide", "Crust Equation of state interpolation", "RMF EOS solver (numba speed up version)", "CompactObject Package Tutorials", "Installation", "CompactObject Package Tutorials", "Main functions", "Prior Definition Module", "Publications", "Calculate Speed of Sound", "Start Here!", "MIT bag EOS Inference pipline", "Strangeon EOS inference pipeline", "Equation of State Generators illustration notebook", "RMF EOS inference pipeline", "TOVsolver module guide"], "titleterms": {"acceler": 23, "acknowledg": [1, 18, 20], "an": 1, "anaconda": 14, "b": [21, 23], "bag": [21, 23], "bayesian": [0, 13, 15], "c": [21, 23], "calcul": 19, "call": 1, "cite": 18, "compactobject": [13, 15, 18], "compar": 23, "compon": 1, "comput": [10, 23], "concept": [13, 15], "connect": 23, "contact": [1, 18, 20], "contribut": 1, "convent": 9, "core": 23, "cornerplot": 2, "crust": [11, 23], "d": 21, "defin": 23, "definit": [6, 17], "depend": 20, "develop": [9, 13], "download_compos": 3, "environ": 14, "eo": [1, 4, 7, 12, 13, 21, 22, 23, 24], "equat": [1, 5, 8, 11, 13, 15, 23], "exampl": 23, "function": [1, 6, 16], "gener": [13, 23], "goal": 20, "guid": [10, 13, 25], "guidelin": 1, "here": 20, "illustr": 23, "import": [5, 21], "indic": 13, "infer": [0, 1, 13, 15, 21, 22, 24], "instal": 14, "interfac": 23, "interpol": 11, "introduct": 1, "kei": 1, "likehood": [21, 22], "likelihood": [6, 24], "load": 23, "main": 16, "mass": 23, "matter": 23, "mit": [21, 23], "model": 23, "modul": [0, 2, 3, 6, 13, 17, 25], "notebook": 23, "numba": [12, 23], "oppenheim": [13, 15], "option": 14, "outer": 23, "packag": [13, 15, 21], "parallel": 10, "paramet": 23, "paramt": 23, "part": 23, "permiss": 1, "pipelin": [22, 24], "piplin": 21, "plot": 24, "polytrop": 23, "posterior": 24, "postprocess": [2, 13], "power": 23, "prepar": 23, "prerequisit": 20, "prior": [17, 21, 22, 24], "public": 18, "python": 14, "radiu": 23, "recommend": 14, "relat": 23, "rmf": [7, 12, 23, 24], "sampler": [21, 22, 24], "scale": 10, "scientif": 20, "set": [21, 22, 24], "setup": 0, "smapler": 0, "solv": [8, 23], "solver": [4, 7, 12, 13], "sound": [19, 23], "speed": [12, 19, 23], "start": 20, "state": [1, 5, 11, 13, 15, 23], "strangeon": [22, 23], "summari": [13, 14, 15], "tabl": 13, "take": 23, "thi": 23, "time": [10, 23], "tolman": [13, 15], "tov": [8, 13, 15, 23], "tovsolv": 25, "tutori": [13, 15], "unit": 9, "up": [12, 21, 22, 24], "us": 14, "usag": 3, "user": 13, "version": 12, "virtual": 14, "volkoff": [13, 15], "your": 20}}) \ No newline at end of file diff --git a/speed_of_sound.html b/speed_of_sound.html new file mode 100644 index 0000000..11865be --- /dev/null +++ b/speed_of_sound.html @@ -0,0 +1,171 @@ + + + + + + + + + Calculate Speed of Sound — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Calculate Speed of Sound

+

Calculates and returns speed of sound from an equaiton of state inputed by the user.

+
+
+TOVsolver.speed_of_sound.speed_of_sound_calc(density, pressure)[source]
+

Function that calculates the speed of sound by taking the gradient of the euqation of state. +:param density: numpy 1Darray. +:type density: array +:param pressure: numpy 1Darray. +:type pressure: array

+
+
Returns:
+

numpy 1Darray.

+
+
Return type:
+

speed_of_sound (array)

+
+
+
+ +
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/starthere.html b/starthere.html new file mode 100644 index 0000000..4d23ab0 --- /dev/null +++ b/starthere.html @@ -0,0 +1,269 @@ + + + + + + + + + Start Here! — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Start Here!

+

Welcome to CompactObject! This guide will help you get started after successfully installing the package and activating your virtual environment. Follow the steps below to achieve your scientific goals using the functionalities of the CompactObject package.

+
+

Prerequisites

+
    +
  • Package Installation: Ensure you have installed CompactObject successfully.

  • +
  • Virtual Environment: Activate your virtual environment where CompactObject is installed.

  • +
+
+
+

Depends on Your Scientific Goal

+
+
    +
  1. Understanding Basic Concepts

  2. +
+
+

If you are new to CompactObject and wish to familiarize yourself with its basic concepts and introduction:

+
    +
  • Index Page: Explore the Index Page for an overview of the package.

  • +
  • README: Review the README on GitHub to understand the package’s purpose and features.

  • +
+
+
    +
  1. Generating Equations of State (EOS)

  2. +
+
+

To use CompactObject for generating equations of state:

+
    +
  • EOS Generators Tutorial: Start with the EOS Generators Tutorial which showcases all currently integrated EOS computations in the package. The supported EOS models include: +- Relativistic Mean Field (RMF) Model +- Strangeon Star Model +- Quark Star Model: MIT Bag Model +- Polytropic Model +- Speed of Sound Model +- Density-Dependent EOS Model +- …and more

  • +
+
+
    +
  1. Using the Tolman–Oppenheimer–Volkoff (TOV) Solver

  2. +
+
+

To utilize the TOV solver integrated within CompactObject:

+
    +
  • TOV Solver Tutorial: Refer to the TOV Solver Tutorial. This tutorial demonstrates how to perform TOV computations using table-based EOS.

  • +
  • Inputting an Array: If you prefer to input an array instead of a table, refer back to the EOS Generators Tutorial. The quantities currently available are: +- Mass +- Radius +- Tidal Deformability

  • +
+
+
    +
  1. Performing Bayesian Inference on the EOS

  2. +
+
+

CompactObject offers robust tools for Bayesian inference related to neutron star EOS. There are two primary scenarios:

+
+
    +
  1. Using Integrated EOS for Inference

  2. +
+
+

If you wish to perform Bayesian inference using the EOS models already integrated into CompactObject, follow these examples:

+
    +
  1. RMF EOS Inference Pipeline: Explore the RMF EOS Inference Pipeline.

  2. +
  3. Strangeon EOS Inference Pipeline: Check out the Strangeon EOS Inference Pipeline.

  4. +
  5. …and more examples

  6. +
+
+
    +
  1. Using Your Own EOS for Inference

  2. +
+
+

If you have developed your own EOS and wish to perform Bayesian inference:

+
    +
  1. Contributor Instructions: Follow the Instructions for Contributors to define your EOS without conflicts and understand the necessary tests to ensure computational accuracy.

  2. +
  3. Constructing a New Pipeline: Utilize the existing inference pipelines, such as the RMF EOS Inference Pipeline and Strangeon EOS Inference Pipeline, as reference points to build your own inference workflow based on CompactObject.

  4. +
  5. Performance Considerations: Ensure that the computation time for a single EOS is within the sub-second range to handle millions of samples required for Bayesian inference efficiently.

  6. +
+

Contribution Invitation: +Consider contributing your EOS to our community if you are using our package! This will boost the influence of your work and make you a collaborator on this project. We can also promote your results on our page. Please check the Instructions for Contributors if you wish to contribute.

+
+
    +
  1. Performing Bayesian Inference in Other Fields

  2. +
+
+

If you aim to use the inference modules of CompactObject for Bayesian inference outside of EOS studies, such as in high-energy physics or other astrophysical fields:

+ +
+
    +
  1. Advanced Usage: Modifying Solvers or APIs

  2. +
+
+

If the existing tutorials do not cover your specific needs, such as:

+
    +
  • Modifying the TOV Solver: For example, changing to a double-fluid TOV solver.

  • +
  • Investigating Additional EOS-Related Quantities: Beyond pressure and density used in TOV solving.

  • +
+

You can:

+
    +
  • API Documentation: Consult the detailed API documentation in this documentation to identify and utilize the functions you need.

  • +
  • GitHub Repository: Visit our GitHub Page to explore the source code and understand the internal workings of CompactObject.

  • +
+

Note: +The key functions, including the TOVsolver module code, form the foundation for all inference and computations. Modifying them may require substantial code restructuring. Therefore, if you clone the repository locally and need to make changes to the TOVsolver, proceed with caution to avoid extensive code rebuilding. Only original contributors have permission to modify the TOVsolver module code, and such commits must undergo detailed reviews by the original members of the project.

+
+
+

Acknowledgements

+

We welcome feedback and contributions to expand the functionalities of CompactObject. Your support helps enhance the tool for the entire research community.

+
+
+

Contact

+

For inquiries, contributions, or to be featured in our publications list, please contact us at chun.h@wustl.edu.

+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/test_Bayesian_inference_MITbag_EOS.html b/test_Bayesian_inference_MITbag_EOS.html new file mode 100644 index 0000000..fdc3c55 --- /dev/null +++ b/test_Bayesian_inference_MITbag_EOS.html @@ -0,0 +1,311 @@ + + + + + + + + + MIT bag EOS Inference pipline — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

MIT bag EOS Inference pipline

+

The MIT bag model, which has commonly been applied to strange quark stars, relates pressure to energy density with the simple equation of state \(p=\frac{\epsilon}{3}-\frac{4B}{3}\). There is only one parameter, the “bag constant” \(B\). This represents the vacuum energy density, which creates a “bag” in which quarks are confined. See Chodos et al. (1974).

+

In this notebook, we use our Bayesian inference code to constrain the value of \(B\) using observations.

+
+

(a) Import packages

+
+
[ ]:
+
+
+
import InferenceWorkflow.BayesianSampler as sampler
+import InferenceWorkflow.Likelihood as likelihood
+import InferenceWorkflow.prior as prior
+import math
+import numpy as np
+import EOSgenerators.MITbag_EOS as MITbag
+from TOVsolver.unit import MeV, fm, g_cm_3, dyn_cm_2, km, Msun
+import TOVsolver.main as main
+
+
+
+
+
+

(b) Set up priors

+

Next, we need to set up the priors. We first use a parameters array to specify the variable name. This process should be consistent with what you need to call them.

+

Define a prior transform function to define prior. Cube is a set of random numbers from 0 to 1. This prior setting is the standard set-up of UltraNest package, since we are using UltraNest to do nest-sampling.

+

We provided two options call from prior:”normal_Prior” and “flat_prior”.

+

We note that since we are doing Equation of state inference from mass-radius data of neutron star measurement. The central density of the star should be also sampled. Otherwise, this will be a partially-defined prior that did not span all of the parameter space, and proved to be different from full-scope inference.

+

This request will randomly generate a density from a EoS range, however, this process is not that trivial, since we need to determine the upper limit of the central density of the compact star — different equations of state will predict different upper bounds, so here we need to use the prior-setting EoS parameters computing the mass-radius curve for this equation of state, then find out the last stable point of this equation of state (first mass points that give the direvative to be +negative). We can find that index with the len() function, then reset this max_d to be upper limit of this density range.

+
+
[ ]:
+
+
+
parameters = ['B','d1']
+
+def prior_transform(cube):
+    params = cube.copy()
+    params[0] = prior.flat_prior(20,100,cube[0])
+
+    B = params[0]
+
+    epsilon,p = MITbag.MITbag_compute_EOS(B)
+
+    RFSU2R = []
+    MFSU2R = []
+    density = np.logspace(14.3, 15.6, 50)
+    if all(x<y for x,y in zip(epsilon[:], epsilon[1:])) and all(x<y for x, y in zip(p[:], p[1:])):
+        MR = main.OutputMR("",epsilon,p).T
+
+    else:
+        MR = []
+    if len(MR) == False:
+        params[1] = 0
+        #this line for showing how to add one more observation
+    else:
+
+        for i in range(len(MR[1])):
+            RFSU2R.append(MR[1][i])
+            MFSU2R.append(MR[0][i])
+            if i > 20 and MR[0][i] - MR[0][i-1]< 0:
+                break
+    if len(MFSU2R)==False:
+        params[1] = 0
+        #params[3] = 0
+        #this line for showing how to add one more observation
+    else:
+        max_index = len(MFSU2R)
+        max_d = np.log10(density[max_index-1])
+        params[1] = 14.3 + (max_d - 14.3) * cube[1]
+        #params[3] = 14.3 + (max_d - 14.3) * cube[3]
+        #this line for showing how to add one more observation
+    return params
+
+
+
+

In the upper part, we define a flat (uniform) prior for the parameters in the strangeon matter equation of state, due to the lack of constraints from terrestrial experiments.

+

Note that the above code is an example of Bayesian analysis for a given mass and radius observation measurement. For example, if you use the NICER data for the measurements of J0030, then you should define another parameter, except the strangeon EOS parameters, e.g. “d1” for the centre density of this measurement, in the meantime add “params[2]” to this code.

+

If you further consider the adjoint analysis with J0030+J0740, then you should define the other two parameters, e.g. “d1” and “d2” for the centre density of these two measurements, in the meantime add “params[3]” to the above code.

+
+
+

(c) Set up likehood

+

We need to set up a likelihood, Using standard definition way of UltraNest, that is below.

+

Here the likelihood is generated from a simulated mass radius measurement, which is 𝑀=1.4𝑀⊙ and 𝑅=13 km, With a 5% Mass radius measurement uncertainty,

+

so here

+
likelihood.MRlikihood_Gaussian
+
+
+

function will be use for our likelihood, please check likelihood.MRlikihood_Gaussian to see the original code, and more choice of likelihood. eg:

+

1.If we have some real mass-radius measurements, say PSR J0030 or PSR J0740, come from NICER, a KDE kernel could be trained to feed into

+

likelihood.MRlikihood_kernel(eps_total,pres_total,x,d1)

+

set the KDE kernel as a input for this function

+

2.If we gain measurement from radio-timing, say only measure the neutron star mass, then

+

likelihood.Masslikihood_Gaussian(eps_total,pres_total,x,d1)

+

Which will give the likelihood from single mass measurement, x is the parameters of that measurement, you should specify where this measurement mass is located and what is the sigma width of this mass measurement.

+

3.If we have nuclear measurements, and want to constrain this RMF model by nuclear properties like K(The Incompressibility of nuclear matter),J ( the symmetry energy at saturation density) and L( the slope of symmetry energy at saturation density). You can choose:

+

likelihood.Kliklihood(theta,K_low,K_up) likelihood.Jliklihood(theta,K_low,K_up) likelihood.Lliklihood(theta,K_low,K_up)

+

We are defaulting a hard-cut flat constrain, so if you don’t like this default hard cut, also could define the likelihood by youself with similiar style.

+

4.If we have a Tidal measurements from Gravitational wave detector, we can use it to do constraint:

+

likelihood.TidalLikihood_kernel(eps_total,pres_total,x,d1)

+

Where x is sampled distribution from real measurements, the standard is

+

kernel, chrip = x,

+

where the kernel is a whole set sampling from GW event, that is [chrip mass, M2/M1, tidal of M1, tidal of M2] four quantities. Chrip is the single smapling that comes only the chrip mass sampling.

+
+
[ ]:
+
+
+
import scipy.stats as stats
+
+
+def likelihood_transform(theta):
+    # This is a demonstration code for only introduce one constraint from one mass-radius observation.
+    # Could be very easy to implement more constraint from nuclear quantity, since that do not need to
+    # sample more central density of real neutron star. If user want to expand to two mass radius measurement
+    # the code could be:
+
+    B, d1 = theta
+
+    ####################################################################################################################
+    ############ This is the block to compute out all the EoS you need based on your parameters#########################
+
+    epsilon,p = MITbag.MITbag_compute_EOS(B)
+
+    ####################################################################################################################
+
+    probMRgaussian = likelihood.MRlikihood_Gaussian(epsilon,p,(1.4,13,0.07,0.65),d1)
+
+    prob = probMRgaussian
+
+    return prob
+
+
+
+
+
+

(d) Set up sampler

+

Here next, we define sampler, there is two different sampler we provided for.

+

Considering where you need resume file:

+

sampler.UltranestSampler and sampler.UltranestSamplerResume

+

Here since it is our first run, so we only use first one. Some of the sampler parameters is requested, first is step number, our choice for UltraNest sampler is slicesampler, which could easily be sliced up your total computation load, and parallelize, speed up sampling. So step as suggested by documentation of UltraNest, we use 2*len(parameters).

+

live_point we set 2000, it will influence the sampling precision, We suggest for 7 dimension space, maybe 5000 is a better choice, however, since my computer only have limited resources, we set 2000.

+

max_calls set 10000, it is how many iteration after it will stop, we suggest to set this number significantly higher, otherwise maybe will broken before the inference converging to a definite value. That result will be un-phyiscal.

+
+
[5]:
+
+
+
step = 2 * len(parameters)
+live_point = 400
+
+max_calls = 60000
+samples = sampler.UltranestSampler(parameters,likelihood_transform,prior_transform,step,live_point,max_calls)
+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/test_Bayesian_inference_MITbag_EOS.ipynb b/test_Bayesian_inference_MITbag_EOS.ipynb new file mode 100644 index 0000000..c733e26 --- /dev/null +++ b/test_Bayesian_inference_MITbag_EOS.ipynb @@ -0,0 +1,281 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "edb2cf2a", + "metadata": {}, + "source": [ + "## MIT bag EOS Inference pipline" + ] + }, + { + "cell_type": "markdown", + "id": "7bc633d3", + "metadata": {}, + "source": [ + "The MIT bag model, which has commonly been applied to strange quark stars, relates pressure to energy density with the simple equation of state $p=\\frac{\\epsilon}{3}-\\frac{4B}{3}$. There is only one parameter, the \"bag constant\" $B$. This represents the vacuum energy density, which creates a \"bag\" in which quarks are confined. See [Chodos et al. (1974)](https://doi.org/10.1103/PhysRevD.9.3471).\n", + "\n", + "In this notebook, we use our Bayesian inference code to constrain the value of $B$ using observations." + ] + }, + { + "cell_type": "markdown", + "id": "acdcb64a", + "metadata": {}, + "source": [ + "### (a) Import packages" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "f6f20856", + "metadata": {}, + "outputs": [], + "source": [ + "import InferenceWorkflow.BayesianSampler as sampler\n", + "import InferenceWorkflow.Likelihood as likelihood\n", + "import InferenceWorkflow.prior as prior\n", + "import math\n", + "import numpy as np\n", + "import EOSgenerators.MITbag_EOS as MITbag\n", + "from TOVsolver.unit import MeV, fm, g_cm_3, dyn_cm_2, km, Msun\n", + "import TOVsolver.main as main" + ] + }, + { + "cell_type": "markdown", + "id": "edfa0f72", + "metadata": {}, + "source": [ + "### (b) Set up priors" + ] + }, + { + "cell_type": "markdown", + "id": "38136542", + "metadata": {}, + "source": [ + "Next, we need to set up the priors. We first use a parameters array to specify the variable name. This process should be consistent with what you need to call them.\n", + "\n", + "Define a prior transform function to define prior. Cube is a set of random numbers from 0 to 1. This prior setting is the standard set-up of UltraNest package, since we are using UltraNest to do nest-sampling.\n", + "\n", + "We provided two options call from prior:\"normal_Prior\" and \"flat_prior\".\n", + "\n", + "We note that since we are doing Equation of state inference from mass-radius data of neutron star measurement. The central density of the star should be also sampled. Otherwise, this will be a partially-defined prior that did not span all of the parameter space, and proved to be different from full-scope inference.\n", + "\n", + "This request will randomly generate a density from a EoS range, however, this process is not that trivial, since we need to determine the upper limit of the central density of the compact star --- different equations of state will predict different upper bounds, so here we need to use the prior-setting EoS parameters computing the mass-radius curve for this equation of state, then find out the last stable point of this equation of state (first mass points that give the direvative to be negative). We can find that index with the len() function, then reset this max_d to be upper limit of this density range.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2b87dd3b", + "metadata": {}, + "outputs": [], + "source": [ + "parameters = ['B','d1']\n", + "\n", + "def prior_transform(cube):\n", + " params = cube.copy()\n", + " params[0] = prior.flat_prior(20,100,cube[0])\n", + "\n", + " B = params[0]\n", + " \n", + " epsilon,p = MITbag.MITbag_compute_EOS(B)\n", + "\n", + " RFSU2R = [] \n", + " MFSU2R = []\n", + " density = np.logspace(14.3, 15.6, 50) \n", + " if all(x 20 and MR[0][i] - MR[0][i-1]< 0: \n", + " break\n", + " if len(MFSU2R)==False:\n", + " params[1] = 0\n", + " #params[3] = 0\n", + " #this line for showing how to add one more observation\n", + " else:\n", + " max_index = len(MFSU2R)\n", + " max_d = np.log10(density[max_index-1])\n", + " params[1] = 14.3 + (max_d - 14.3) * cube[1]\n", + " #params[3] = 14.3 + (max_d - 14.3) * cube[3]\n", + " #this line for showing how to add one more observation\n", + " return params" + ] + }, + { + "cell_type": "markdown", + "id": "6f8e4822", + "metadata": {}, + "source": [ + "In the upper part, we define a flat (uniform) prior for the parameters in the strangeon matter equation of state, due to the lack of constraints from terrestrial experiments.\n", + "\n", + "Note that the above code is an example of Bayesian analysis for a given mass and radius observation measurement.\n", + "For example, if you use the NICER data for the measurements of J0030, then you should define another parameter, except the strangeon EOS parameters, e.g. \"d1\" for the centre density of this measurement, in the meantime add \"params[2]\" to this code.\n", + "\n", + "If you further consider the adjoint analysis with J0030+J0740, then you should define the other two parameters, e.g. \"d1\" and \"d2\" for the centre density of these two measurements, in the meantime add \"params[3]\" to the above code." + ] + }, + { + "cell_type": "markdown", + "id": "53ab6d43", + "metadata": {}, + "source": [ + "### (c) Set up likehood" + ] + }, + { + "cell_type": "markdown", + "id": "3bfd12ff", + "metadata": {}, + "source": [ + "We need to set up a likelihood, Using standard definition way of UltraNest, that is below.\n", + "\n", + "Here the likelihood is generated from a simulated mass radius measurement, which is 𝑀=1.4𝑀⊙\n", + " and 𝑅=13\n", + " km, With a 5% Mass radius measurement uncertainty, \n", + " \n", + " so here\n", + " \n", + " likelihood.MRlikihood_Gaussian\n", + " \n", + "function will be use for our likelihood, please check [likelihood.MRlikihood_Gaussian](https://github.com/ChunHuangPhy/CompactOject/blob/main/InferenceWorkflow/Likelihood.py) to see the original code, and more choice of likelihood. eg:\n", + "\n", + "1.If we have some real mass-radius measurements, say PSR J0030 or PSR J0740, come from NICER, a KDE kernel could be trained to feed into\n", + "\n", + "likelihood.MRlikihood_kernel(eps_total,pres_total,x,d1)\n", + "\n", + "set the KDE kernel as a input for this function\n", + "\n", + "2.If we gain measurement from radio-timing, say only measure the neutron star mass, then\n", + "\n", + "likelihood.Masslikihood_Gaussian(eps_total,pres_total,x,d1)\n", + "\n", + "Which will give the likelihood from single mass measurement, x is the parameters of that measurement, you should specify where this measurement mass is located and what is the sigma width of this mass measurement.\n", + "\n", + "3.If we have nuclear measurements, and want to constrain this RMF model by nuclear properties like K(The Incompressibility of nuclear matter),J ( the symmetry energy at saturation density) and L( the slope of symmetry energy at saturation density). You can choose:\n", + "\n", + "likelihood.Kliklihood(theta,K_low,K_up)\n", + "likelihood.Jliklihood(theta,K_low,K_up)\n", + "likelihood.Lliklihood(theta,K_low,K_up)\n", + "\n", + "We are defaulting a hard-cut flat constrain, so if you don't like this default hard cut, also could define the likelihood by youself with similiar style.\n", + "\n", + "4.If we have a Tidal measurements from Gravitational wave detector, we can use it to do constraint:\n", + "\n", + "likelihood.TidalLikihood_kernel(eps_total,pres_total,x,d1)\n", + "\n", + "Where x is sampled distribution from real measurements, the standard is\n", + "\n", + "kernel, chrip = x,\n", + "\n", + "where the kernel is a whole set sampling from GW event, that is [chrip mass, M2/M1, tidal of M1, tidal of M2] four quantities. Chrip is the single smapling that comes only the chrip mass sampling." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "0d3a8359", + "metadata": {}, + "outputs": [], + "source": [ + "import scipy.stats as stats\n", + "\n", + "\n", + "def likelihood_transform(theta):\n", + " # This is a demonstration code for only introduce one constraint from one mass-radius observation.\n", + " # Could be very easy to implement more constraint from nuclear quantity, since that do not need to\n", + " # sample more central density of real neutron star. If user want to expand to two mass radius measurement \n", + " # the code could be:\n", + " \n", + " B, d1 = theta\n", + " \n", + " ####################################################################################################################\n", + " ############ This is the block to compute out all the EoS you need based on your parameters#########################\n", + "\n", + " epsilon,p = MITbag.MITbag_compute_EOS(B)\n", + "\n", + " ####################################################################################################################\n", + " \n", + " probMRgaussian = likelihood.MRlikihood_Gaussian(epsilon,p,(1.4,13,0.07,0.65),d1)\n", + " \n", + " prob = probMRgaussian\n", + " \n", + " return prob" + ] + }, + { + "cell_type": "markdown", + "id": "4a3802c4", + "metadata": {}, + "source": [ + "### (d) Set up sampler" + ] + }, + { + "cell_type": "markdown", + "id": "76bce7fb", + "metadata": {}, + "source": [ + "Here next, we define sampler, there is two different sampler we provided for. \n", + "\n", + "Considering where you need resume file:\n", + "\n", + "sampler.UltranestSampler and sampler.UltranestSamplerResume\n", + "\n", + "Here since it is our first run, so we only use first one. Some of the sampler parameters is requested, first is step number, our choice for UltraNest sampler is slicesampler, which could easily be sliced up your total computation load, and parallelize, speed up sampling. So step as suggested by documentation of UltraNest, we use 2*len(parameters).\n", + "\n", + "live_point we set 2000, it will influence the sampling precision, We suggest for 7 dimension space, maybe 5000 is a better choice, however, since my computer only have limited resources, we set 2000.\n", + "\n", + "max_calls set 10000, it is how many iteration after it will stop, we suggest to set this number significantly higher, otherwise maybe will broken before the inference converging to a definite value. That result will be un-phyiscal." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "id": "f05849a0", + "metadata": {}, + "outputs": [], + "source": [ + "step = 2 * len(parameters)\n", + "live_point = 400\n", + "\n", + "max_calls = 60000\n", + "samples = sampler.UltranestSampler(parameters,likelihood_transform,prior_transform,step,live_point,max_calls)\n" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 5 +} diff --git a/test_Bayesian_inference_Strangeon_EOS.html b/test_Bayesian_inference_Strangeon_EOS.html new file mode 100644 index 0000000..8d5c7aa --- /dev/null +++ b/test_Bayesian_inference_Strangeon_EOS.html @@ -0,0 +1,416 @@ + + + + + + + + + Strangeon EOS inference pipeline — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Strangeon EOS inference pipeline

+

This is an example notebook about how to use our tools to analysis a observation constraint on strangeon star equation of state.

+

Here in this notebook, we are using a strangeon matter EOS.

+

The following is the package that we need.

+
+
[1]:
+
+
+
import InferenceWorkflow.BayesianSampler as sampler
+import InferenceWorkflow.Likelihood as likelihood
+import InferenceWorkflow.prior as prior
+import math
+import numpy as np
+import EOSgenerators.Strangeon_EOS as Strangeon
+from TOVsolver.constant import oneoverfm_MeV, m_rho, m_w,G,c
+import TOVsolver.main as main
+
+
+
+
+
+
+
+
+/Users/a9/CompactOject/InferenceWorkflow/Likelihood.py:314: SyntaxWarning: invalid escape sequence '\('
+  """
+
+
+

The following is the strangeon matter EOS function.

+

We note that because the parameter Nq is an integer in the strangeon matter EOS.

+

In the following, we use a possible value of this parameter, Nq=18, as an example to carry out the Bayesian analysis.

+
+
[2]:
+
+
+
Nq=18
+
+
+
+
+

Set up prior

+

Next step, we need to set up the prior, first use parameters array to specify the variable name, this process should consistent with what you need to call them.

+

Define a prior transform function to define prior. Cube are set of random number from 0 to 1. This prior setting is standard set-up of UltraNest package, since we are using UltraNest to do nest-sampling.

+

We provided two options call from prior:”normal_Prior” and “flat_prior”.

+

Then the Parameters prior should all set.

+

We note that since we are doing Equation of state Inference from mass-radius data of neutron star measurement. The center density of the star should be also sampled. Otherwise will be a partially-defined prior, did not span all parameters space, and proved to be different with full-scope inference.

+

This request as randomly generate a density from a EoS range, however, this process is not that trivial, since we need to determine the upper limit of the central density of compact star — different equation of state will predict different upper bound, so here we need to use the prior-setting EoS parameters computing the EOS by

+

strangeon.compute_EOS Compute out EOS, put into

+

main.OutputMR

+

find out Mass Radius of this equation of state, then find out the last stable point of this equation of state.(first mass points that give the direvative to be negative)

+

and find out that index by len() function, then reset this max_d to be upper limit of this density range.

+
+
[ ]:
+
+
+
parameters = [ 'epsilon', 'ns', 'd1']
+# for two or more MR measurements, define
+# parameters = ['epsilon', 'ns', 'd1', 'd2']
+
+def prior_transform(cube):
+    params = cube.copy()
+    params[0] = prior.flat_prior(10, 170,cube[0])   #epsilon=10-170MeV
+    params[1] = prior.flat_prior(0.17,0.36,cube[1]) #ns=0.17-0.36fm^-3
+
+    epsilon = params[0]
+    ns = params[1]
+
+    theta1 = np.array([Nq, epsilon, ns])
+    n_min = 3 * theta1[2] / theta1[0]
+    n_max = 0.16 * 8 * 3 / theta1[0]
+    n_values = np.linspace(n_min, n_max, 2000)
+    energy_density, pressure = Strangeon.compute_EOS(n_values, theta1)
+
+
+
+    eps_total=energy_density
+
+    pres_total=pressure
+
+    RFSU2R = []
+    MFSU2R = []
+    density = np.logspace(14.3, 15.6, 50)
+    if all(x<y for x,y in zip(eps_total[:], eps_total[1:])) and all(x<y for x, y in zip(pres_total[:], pres_total[1:])):
+        MR = main.OutputMR('',energy_density,pressure).T
+
+    else:
+        MR = []
+    if len(MR) == False:
+        params[2] = 0
+        #params[3] = 0
+        #this line for showing how to add one more observation
+    else:
+
+        for i in range(len(MR[0])):
+            RFSU2R.append(MR[1][i])
+            MFSU2R.append(MR[0][i])
+            if i > 20 and MR[0][i] - MR[0][i-1]< 0:
+                break
+    if len(MFSU2R)==False:
+        params[2] = 0
+        #params[3] = 0
+        #this line for showing how to add one more observation
+    else:
+        max_index = len(MFSU2R)
+        max_d = np.log10(density[max_index-1])
+        params[2] = 14.3 + (max_d - 14.3) * cube[2]
+        #params[3] = 14.3 + (max_d - 14.3) * cube[3]
+        #this line for showing how to add one more observation
+    return params
+
+
+
+

In the upper part, we define a flat (uniform) prior for the parameters in the strangeon matter equation of state, due to the lack of constraints from terrestrial experiments.

+

Note that the above code is an example of Bayesian analysis for a given mass and radius observation measurement. For example, if you use the NICER data for the measurements of J0030, then you should define another parameter, except the strangeon EOS parameters, e.g. “d1” for the centre density of this measurement, in the meantime add “params[2]” to this code.

+

If you further consider the adjoint analysis with J0030+J0740, then you should define the other two parameters, e.g. “d1” and “d2” for the centre density of these two measurements, in the meantime add “params[3]” to the above code.

+
+
+

Set up likehood

+

We need to set up a likelihood, Using standard definition way of UltraNest, that is below.

+

Here the likelihood is generated from a simulated mass radius measurement, which is 𝑀=1.4𝑀⊙ and 𝑅=13 km, With a 5% Mass radius measurement uncertainty,

+

so here

+
likelihood.MRlikihood_Gaussian
+
+
+

function will be use for our likelihood, please check likelihood.MRlikihood_Gaussian to see the original code, and more choice of likelihood. eg:

+

1.If we have some real mass-radius measurements, say PSR J0030 or PSR J0740, come from NICER, a KDE kernel could be trained to feed into

+

likelihood.MRlikihood_kernel(eps_total,pres_total,x,d1)

+

set the KDE kernel as a input for this function

+

2.If we gain measurement from radio-timing, say only measure the neutron star mass, then

+

likelihood.Masslikihood_Gaussian(eps_total,pres_total,x,d1)

+

Which will give the likelihood from single mass measurement, x is the parameters of that measurement, you should specify where this measurement mass is located and what is the sigma width of this mass measurement.

+

3.If we have nuclear measurements, and want to constrain this RMF model by nuclear properties like K(The Incompressibility of nuclear matter),J ( the symmetry energy at saturation density) and L( the slope of symmetry energy at saturation density). You can choose:

+

likelihood.Kliklihood(theta,K_low,K_up) likelihood.Jliklihood(theta,K_low,K_up) likelihood.Lliklihood(theta,K_low,K_up)

+

We are defaulting a hard-cut flat constrain, so if you don’t like this default hard cut, also could define the likelihood by youself with similiar style.

+

4.If we have a Tidal measurements from Gravitational wave detector, we can use it to do constraint:

+

likelihood.TidalLikihood_kernel(eps_total,pres_total,x,d1)

+

Where x is sampled distribution from real measurements, the standard is

+

kernel, chrip = x,

+

where the kernel is a whole set sampling from GW event, that is [chrip mass, M2/M1, tidal of M1, tidal of M2] four quantities. Chrip is the single smapling that comes only the chrip mass sampling.

+
+
[4]:
+
+
+
import scipy.stats as stats
+
+
+def likelihood_transform(theta):
+    # This is a demonstration code for only introduce one constraint from one mass-radius observation.
+    # Could be very easy to implement more constraint from nuclear quantity, since that do not need to
+    # sample more central density of real neutron star. If user want to expand to two mass radius measurement
+    # the code could be:
+
+    epsilon, ns, d1 = theta
+    # comment this line if you need two measuremnts.
+    #epsilon, ns, d1, d2 = theta
+
+    ####################################################################################################################
+    ############ This is the block to compute out all the EoS you need based on your parameters#########################
+
+
+    theta1 = np.array([Nq, epsilon, ns])
+    n_min = 3 * theta1[2] / theta1[0]
+    n_max = 0.16 * 8 * 3 / theta1[0]
+    n_values = np.linspace(n_min, n_max, 2000)
+    energy_density, pressure = Strangeon.compute_EOS(n_values, theta1)
+
+    ####################################################################################################################
+
+    probMRgaussian = likelihood.MRlikihood_Gaussian(energy_density,pressure,(1.4,13,0.07,0.65),d1)
+
+    prob = probMRgaussian
+
+    return prob
+
+
+
+

In the following, we will show how to modify the likehood_transform function when considering more observations.

+

def likelihood_transform(theta):

+
Nq, epsilon, ns, d1 = theta
+theta = np.array([epsilon, ns])
+n_min = 3 * theta[1] / Nq      #n_min=3*ns/Nq
+n_max = 0.16 * 8 * 3 / Nq      #n_max=0.16*8*3/Nq
+n_values = np.linspace(n_min, n_max, 100)  # 100 points between n_min and n_max
+energy_density_total, pressure_total = Strangeon_compute_EOS(n_values, theta)
+
+#1. This line is to compute MR likelihood from a Simulated MR measurement:
+
+probMRgaussian = MRlikihood_Gaussian(energy_density_total,pressure_total,(1.4,13,0.07,0.65),d1)
+
+#probMRgaussian = likelihood.MRlikihood_Gaussian(energy_density_total,pressure_total,(2.08,13,0.08,0.65),d2)
+
+#2. This is  a block that constrain from given real MR measurement, say J0030:
+
+#J0030 = numpy.loadtxt('data/PST_equal_sampled_MR.txt', delimiter=' ')
+#J30R_list, J30M_list = zip(*J0030)
+#J30R_list = numpy.array(J30R_list).T
+#J30M_list = numpy.array(J30M_list).T
+#Rmin = J30R_list.min()
+#Rmax = J30R_list.max()
+#Mmin = J30M_list.min()
+#Mmax = J30M_list.max()
+#X3, Y3 = numpy.mgrid[Rmin:Rmax:500j, Mmin:Mmax:100j]
+#positions = numpy.vstack([X3.ravel(), Y3.ravel()])
+#values = numpy.vstack([J30R_list, J30M_list])
+#kernel3 = stats.gaussian_kde(values)
+#probMRJ0030 = likelihood.MRlikelihhood_kernel(eps_total,pres_total,kernel3,d1)
+
+#3. This is to compute the constraint from experiment of nuclearmatter
+# 250<K<400, 25<J<38, 30<L<86:
+# hint: since this K,J,L sampling don't need to sample central density so this
+# theta should be redifined.
+#probK = likelihood.Kliklihood(theta,250,400)
+#probJ = likelihood.Jliklihood(theta,250,400)
+#probL = likelihood.Lliklihood(theta,250,400)
+
+#4. This is block to cosntrain from a GW event, say GW170817, here the file of this
+# event is origanized by [chrip mass, M2/M1, tidal of M1, tidal of M2, sampling weight]:
+#GW170817 = np.load('GW170817_McQL1L2weights.npy')
+#chrip170817 = stats.gaussian_kde(GW170817[:,0],weights = GW170817[:,4])
+#kernelGW = stats.gaussian_kde(GW170817.T[0:4],weights = GW170817[:,4])
+#probGW = likelihood.TidalLikihood_kernel(eps_total,pres_total,(kernelGW,chrip170817),d1)
+
+
+prob = probMRgaussian
+
+#prob =  probGW#+ probMRJ0030 + probK + probJ + probL + probGW
+
+return prob
+
+
+
+
+

Set up sampler

+

Here next, we define sampler, there is two different sampler we provided for.

+

Considering where you need resume file:

+

sampler.UltranestSampler and sampler.UltranestSamplerResume

+

Here since it is our first run, so we only use first one. Some of the sampler parameters is requested, first is step number, our choice for UltraNest sampler is slicesampler, which could easily be sliced up your total computation load, and parallelize, speed up sampling. So step as suggested by documentation of UltraNest, we use 2*len(parameters).

+

live_point we set 2000, it will influence the sampling precision, We suggest for 7 dimension space, maybe 5000 is a better choice, however, since my computer only have limited resources, we set 2000.

+

max_calls set 10000, it is how many iteration after it will stop, we suggest to set this number significantly higher, otherwise maybe will broken before the inference converging to a definite value. That result will be un-phyiscal.

+
+
[ ]:
+
+
+
step = 2 * len(parameters)
+live_point = 400
+
+max_calls = 60000
+samples = sampler.UltranestSampler(parameters,likelihood_transform,prior_transform,step,live_point,max_calls)
+
+
+
+
+
[ ]:
+
+
+

+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/test_Bayesian_inference_Strangeon_EOS.ipynb b/test_Bayesian_inference_Strangeon_EOS.ipynb new file mode 100644 index 0000000..3d57d0d --- /dev/null +++ b/test_Bayesian_inference_Strangeon_EOS.ipynb @@ -0,0 +1,408 @@ +{ + "cells": [ + { + "cell_type": "markdown", + "id": "edb2cf2a", + "metadata": {}, + "source": [ + "## Strangeon EOS inference pipeline" + ] + }, + { + "cell_type": "markdown", + "id": "7bc633d3", + "metadata": {}, + "source": [ + "This is an example notebook about how to use our tools to analysis a observation constraint on strangeon star equation of state.\n", + "\n", + "Here in this notebook, we are using a strangeon matter EOS.\n", + "\n", + "The following is the package that we need." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "id": "f6f20856", + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/a9/CompactOject/InferenceWorkflow/Likelihood.py:314: SyntaxWarning: invalid escape sequence '\\('\n", + " \"\"\"\n" + ] + } + ], + "source": [ + "import InferenceWorkflow.BayesianSampler as sampler\n", + "import InferenceWorkflow.Likelihood as likelihood\n", + "import InferenceWorkflow.prior as prior\n", + "import math\n", + "import numpy as np\n", + "import EOSgenerators.Strangeon_EOS as Strangeon\n", + "from TOVsolver.constant import oneoverfm_MeV, m_rho, m_w,G,c\n", + "import TOVsolver.main as main" + ] + }, + { + "cell_type": "markdown", + "id": "2b494a39", + "metadata": {}, + "source": [ + "The following is the strangeon matter EOS function.\n", + "\n", + "We note that because the parameter Nq is an integer in the strangeon matter EOS.\n", + "\n", + "In the following, we use a possible value of this parameter, Nq=18, as an example to carry out the Bayesian analysis." + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "id": "c9d879d4", + "metadata": {}, + "outputs": [], + "source": [ + "Nq=18\n" + ] + }, + { + "cell_type": "markdown", + "id": "edfa0f72", + "metadata": {}, + "source": [ + "### Set up prior" + ] + }, + { + "cell_type": "markdown", + "id": "38136542", + "metadata": {}, + "source": [ + "Next step, we need to set up the prior, first use parameters array to specify the variable name, this process should consistent with what you need to call them.\n", + "\n", + "Define a prior transform function to define prior. Cube are set of random number from 0 to 1. This prior setting is standard set-up of UltraNest package, since we are using UltraNest to do nest-sampling.\n", + "\n", + " We provided two options call from prior:\"normal_Prior\" and \"flat_prior\".\n", + " \n", + "Then the Parameters prior should all set.\n", + "\n", + "We note that since we are doing Equation of state Inference from mass-radius data of neutron star measurement. The center density of the star should be also sampled. Otherwise will be a partially-defined prior, did not span all parameters space, and proved to be different with full-scope inference.\n", + "\n", + "This request as randomly generate a density from a EoS range, however, this process is not that trivial, since we need to determine the upper limit of the central density of compact star --- different equation of state will predict different upper bound, so here we need to use the prior-setting EoS parameters computing the EOS by\n", + "\n", + "strangeon.compute_EOS\n", + "Compute out EOS, put into\n", + "\n", + "main.OutputMR\n", + "\n", + "find out Mass Radius of this equation of state, then find out the last stable point of this equation of state.(first mass points that give the direvative to be negative)\n", + "\n", + "and find out that index by len() function, then reset this max_d to be upper limit of this density range.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "id": "2b87dd3b", + "metadata": {}, + "outputs": [], + "source": [ + "parameters = [ 'epsilon', 'ns', 'd1']\n", + "# for two or more MR measurements, define \n", + "# parameters = ['epsilon', 'ns', 'd1', 'd2'] \n", + "\n", + "def prior_transform(cube):\n", + " params = cube.copy()\n", + " params[0] = prior.flat_prior(10, 170,cube[0]) #epsilon=10-170MeV\n", + " params[1] = prior.flat_prior(0.17,0.36,cube[1]) #ns=0.17-0.36fm^-3 \n", + " \n", + " epsilon = params[0]\n", + " ns = params[1]\n", + "\n", + " theta1 = np.array([Nq, epsilon, ns])\n", + " n_min = 3 * theta1[2] / theta1[0] \n", + " n_max = 0.16 * 8 * 3 / theta1[0] \n", + " n_values = np.linspace(n_min, n_max, 2000) \n", + " energy_density, pressure = Strangeon.compute_EOS(n_values, theta1)\n", + " \n", + " \n", + "\n", + " eps_total=energy_density\n", + " \n", + " pres_total=pressure\n", + " \n", + " RFSU2R = [] \n", + " MFSU2R = []\n", + " density = np.logspace(14.3, 15.6, 50) \n", + " if all(x 20 and MR[0][i] - MR[0][i-1]< 0: \n", + " break\n", + " if len(MFSU2R)==False:\n", + " params[2] = 0\n", + " #params[3] = 0\n", + " #this line for showing how to add one more observation\n", + " else:\n", + " max_index = len(MFSU2R)\n", + " max_d = np.log10(density[max_index-1])\n", + " params[2] = 14.3 + (max_d - 14.3) * cube[2]\n", + " #params[3] = 14.3 + (max_d - 14.3) * cube[3]\n", + " #this line for showing how to add one more observation\n", + " return params" + ] + }, + { + "cell_type": "markdown", + "id": "6f8e4822", + "metadata": {}, + "source": [ + "In the upper part, we define a flat (uniform) prior for the parameters in the strangeon matter equation of state, due to the lack of constraints from terrestrial experiments.\n", + "\n", + "Note that the above code is an example of Bayesian analysis for a given mass and radius observation measurement.\n", + "For example, if you use the NICER data for the measurements of J0030, then you should define another parameter, except the strangeon EOS parameters, e.g. \"d1\" for the centre density of this measurement, in the meantime add \"params[2]\" to this code.\n", + "\n", + "If you further consider the adjoint analysis with J0030+J0740, then you should define the other two parameters, e.g. \"d1\" and \"d2\" for the centre density of these two measurements, in the meantime add \"params[3]\" to the above code." + ] + }, + { + "cell_type": "markdown", + "id": "53ab6d43", + "metadata": {}, + "source": [ + "### Set up likehood" + ] + }, + { + "cell_type": "markdown", + "id": "3bfd12ff", + "metadata": {}, + "source": [ + "We need to set up a likelihood, Using standard definition way of UltraNest, that is below.\n", + "\n", + "Here the likelihood is generated from a simulated mass radius measurement, which is 𝑀=1.4𝑀⊙\n", + " and 𝑅=13\n", + " km, With a 5% Mass radius measurement uncertainty, \n", + " \n", + " so here\n", + " \n", + " likelihood.MRlikihood_Gaussian\n", + " \n", + "function will be use for our likelihood, please check [likelihood.MRlikihood_Gaussian](https://github.com/ChunHuangPhy/CompactOject/blob/main/InferenceWorkflow/Likelihood.py) to see the original code, and more choice of likelihood. eg:\n", + "\n", + "1.If we have some real mass-radius measurements, say PSR J0030 or PSR J0740, come from NICER, a KDE kernel could be trained to feed into\n", + "\n", + "likelihood.MRlikihood_kernel(eps_total,pres_total,x,d1)\n", + "\n", + "set the KDE kernel as a input for this function\n", + "\n", + "2.If we gain measurement from radio-timing, say only measure the neutron star mass, then\n", + "\n", + "likelihood.Masslikihood_Gaussian(eps_total,pres_total,x,d1)\n", + "\n", + "Which will give the likelihood from single mass measurement, x is the parameters of that measurement, you should specify where this measurement mass is located and what is the sigma width of this mass measurement.\n", + "\n", + "3.If we have nuclear measurements, and want to constrain this RMF model by nuclear properties like K(The Incompressibility of nuclear matter),J ( the symmetry energy at saturation density) and L( the slope of symmetry energy at saturation density). You can choose:\n", + "\n", + "likelihood.Kliklihood(theta,K_low,K_up)\n", + "likelihood.Jliklihood(theta,K_low,K_up)\n", + "likelihood.Lliklihood(theta,K_low,K_up)\n", + "\n", + "We are defaulting a hard-cut flat constrain, so if you don't like this default hard cut, also could define the likelihood by youself with similiar style.\n", + "\n", + "4.If we have a Tidal measurements from Gravitational wave detector, we can use it to do constraint:\n", + "\n", + "likelihood.TidalLikihood_kernel(eps_total,pres_total,x,d1)\n", + "\n", + "Where x is sampled distribution from real measurements, the standard is\n", + "\n", + "kernel, chrip = x,\n", + "\n", + "where the kernel is a whole set sampling from GW event, that is [chrip mass, M2/M1, tidal of M1, tidal of M2] four quantities. Chrip is the single smapling that comes only the chrip mass sampling." + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "id": "0d3a8359", + "metadata": {}, + "outputs": [], + "source": [ + "import scipy.stats as stats\n", + "\n", + "\n", + "def likelihood_transform(theta):\n", + " # This is a demonstration code for only introduce one constraint from one mass-radius observation.\n", + " # Could be very easy to implement more constraint from nuclear quantity, since that do not need to\n", + " # sample more central density of real neutron star. If user want to expand to two mass radius measurement \n", + " # the code could be:\n", + " \n", + " epsilon, ns, d1 = theta \n", + " # comment this line if you need two measuremnts.\n", + " #epsilon, ns, d1, d2 = theta\n", + " \n", + " ####################################################################################################################\n", + " ############ This is the block to compute out all the EoS you need based on your parameters#########################\n", + "\n", + "\n", + " theta1 = np.array([Nq, epsilon, ns])\n", + " n_min = 3 * theta1[2] / theta1[0] \n", + " n_max = 0.16 * 8 * 3 / theta1[0] \n", + " n_values = np.linspace(n_min, n_max, 2000) \n", + " energy_density, pressure = Strangeon.compute_EOS(n_values, theta1)\n", + "\n", + " ####################################################################################################################\n", + " \n", + " probMRgaussian = likelihood.MRlikihood_Gaussian(energy_density,pressure,(1.4,13,0.07,0.65),d1)\n", + " \n", + " prob = probMRgaussian\n", + " \n", + " return prob" + ] + }, + { + "cell_type": "markdown", + "id": "96d26ce7", + "metadata": {}, + "source": [ + "In the following, we will show how to modify the likehood_transform function when considering more observations.\n", + "\n", + "def likelihood_transform(theta):\n", + "\n", + " Nq, epsilon, ns, d1 = theta \n", + " theta = np.array([epsilon, ns]) \n", + " n_min = 3 * theta[1] / Nq #n_min=3*ns/Nq\n", + " n_max = 0.16 * 8 * 3 / Nq #n_max=0.16*8*3/Nq\n", + " n_values = np.linspace(n_min, n_max, 100) # 100 points between n_min and n_max\n", + " energy_density_total, pressure_total = Strangeon_compute_EOS(n_values, theta)\n", + " \n", + " #1. This line is to compute MR likelihood from a Simulated MR measurement:\n", + " \n", + " probMRgaussian = MRlikihood_Gaussian(energy_density_total,pressure_total,(1.4,13,0.07,0.65),d1)\n", + " \n", + " #probMRgaussian = likelihood.MRlikihood_Gaussian(energy_density_total,pressure_total,(2.08,13,0.08,0.65),d2)\n", + " \n", + " #2. This is a block that constrain from given real MR measurement, say J0030:\n", + " \n", + " #J0030 = numpy.loadtxt('data/PST_equal_sampled_MR.txt', delimiter=' ')\n", + " #J30R_list, J30M_list = zip(*J0030)\n", + " #J30R_list = numpy.array(J30R_list).T \n", + " #J30M_list = numpy.array(J30M_list).T\n", + " #Rmin = J30R_list.min()\n", + " #Rmax = J30R_list.max()\n", + " #Mmin = J30M_list.min()\n", + " #Mmax = J30M_list.max()\n", + " #X3, Y3 = numpy.mgrid[Rmin:Rmax:500j, Mmin:Mmax:100j]\n", + " #positions = numpy.vstack([X3.ravel(), Y3.ravel()])\n", + " #values = numpy.vstack([J30R_list, J30M_list])\n", + " #kernel3 = stats.gaussian_kde(values)\n", + " #probMRJ0030 = likelihood.MRlikelihhood_kernel(eps_total,pres_total,kernel3,d1)\n", + " \n", + " #3. This is to compute the constraint from experiment of nuclearmatter\n", + " # 250 + + + + + + Equation of State Generators illustration notebook — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

Equation of State Generators illustration notebook

+
+

RMF EOS

+

First import all of the package that will be used here.

+
+
[1]:
+
+
+
import EOSgenerators.crust_EOS as crust
+import EOSgenerators.RMF_EOS as RMF
+import EOSgenerators.Polytrope_EOS as Polytrope
+import EOSgenerators.Strangeon_EOS as Strangeon
+import TOVsolver.main as main
+import matplotlib.pyplot as plt
+import numpy as np
+import math
+from TOVsolver.unit import g_cm_3, dyn_cm_2, km, Msun
+from TOVsolver.maxium_central_density import maxium_central_density
+
+
+
+
+

(a) Load crust EOS and prepare interface EOS

+

Define constants, and load the crust EOS into this notebook, since when we solve the equation of state to TOV equation, we need full scope of the equation of state. Here, crust eos file is ‘Tolos_crust_out.txt’, while we need to times g_cm_3 for energy density and dyn_cm_2 for pressure, that will be easier for treatment, no need worry about G and c.

+

Then just connect the crust part with the interface part(the part between core equation of state and crust) by a PolyInterpolate function

+
+
[2]:
+
+
+
Tolos_crust_out = np.loadtxt("Test_Case/Tolos_crust_out.txt")
+eps_crust_T_out = Tolos_crust_out[:, 3] * g_cm_3
+pres_crust_T_out = Tolos_crust_out[:, 4] * dyn_cm_2
+eps_com, pres_com = crust.PolyInterpolate(eps_crust_T_out, pres_crust_T_out)
+
+
+
+
+
+
+

Example of RMF

+
+

(b) Defining the paramters

+

Defining the free prameters that we need to compute the equation of state, you could check our intro part of documentation or just check the original paper of us about details. Huang et al,2023

+

After defined the equation of state parameters, we could call the ‘compute_EOS’ function from RMF, to compute full core equation of state.

+
+
[3]:
+
+
+
m_sig = 495.0 / 197.33
+m_w = 3.96544
+m_rho = 3.86662
+
+g_sigma = math.sqrt(107.5751)
+g_omega = math.sqrt(182.3949)
+g_rho = math.sqrt(206.4260)
+
+kappa = 3.09114168 / 197.33
+lambda_0 = -0.00168015405
+zeta = 0.024
+Lambda_w = 0.045
+theta = np.array(
+    [m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa, lambda_0, zeta, Lambda_w]
+)
+eps, pres = RMF.compute_EOS(eps_com, pres_com, theta)
+
+
+
+
+
+

(c) Connecting Core and crust EOS

+

These two line can easily connect the Equation of state we computed for core part by setting the parameters and the crust equation of state, to a full equation of state that prepared for next step output

+
+
[4]:
+
+
+
eps_total = np.array([*eps_com, *eps])
+pres_total = np.array([*pres_com, *pres])
+
+
+
+

Here below is one of the possiblity, use our defined function, ‘OutputMR’ to compute out what the mass radius curve corresponding to this equation of state.

+
+
[5]:
+
+
+
MR = main.OutputMR("", eps_total, pres_total).T
+
+
+
+
+
[6]:
+
+
+
fig, ax = plt.subplots(1, 1, figsize=(9, 6))
+ax.plot(MR[1] / km, MR[0] / Msun, lw=2)
+ax.set_ylabel(r"M [$M_{\odot}$]", fontsize=16)
+ax.set_xlabel("R [km]", fontsize=16)
+ax.set_xlim(8.0, 20.0)
+ax.set_ylim(0, 3)
+ax.tick_params(top=1, right=1, which="both", direction="in", labelsize=14)
+ax.tick_params(top=1, right=1, which="both", direction="in", labelsize=14)
+fig.tight_layout()
+plt.show()
+
+
+
+
+
+
+
+_images/test_EOSgenerators_11_0.png +
+
+
+
+
+

Illustrating the power of Numba accelerated EoS Generation

+

We shall now run the same code but with the Numba accelerated version, comparing the times for EoS Generation.

+

Keep in mind all previous definitions are still valid, all we need to change is a single line of code.

+
+
[ ]:
+
+
+
import EOSgenerators.fastRMF_EoS as FastRMF
+import time
+
+Tolos_crust_out = np.loadtxt("Tolos_crust_out.txt")
+eps_crust_T_out = Tolos_crust_out[:, 3] * g_cm_3
+pres_crust_T_out = Tolos_crust_out[:, 4] * dyn_cm_2
+eps_com, pres_com = crust.PolyInterpolate(eps_crust_T_out, pres_crust_T_out)
+
+m_sig = 495.0 / 197.33
+m_w = 3.96544
+m_rho = 3.86662
+
+g_sigma = math.sqrt(107.5751)
+g_omega = math.sqrt(182.3949)
+g_rho = math.sqrt(206.4260)
+
+kappa = 3.09114168 / 197.33
+lambda_0 = -0.00168015405
+zeta = 0.024
+Lambda_w = 0.045
+theta = np.array(
+    [m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa, lambda_0, zeta, Lambda_w]
+)
+
+
+
+
+

(a) Comparing the time it takes to generate the EoS

+

The reason why we test the time it takes to generate the EoS here is due to the fact that Numba is compiling the code, and as such the first run will take considerably longer to complete, but all other runs will be greatly faster.

+

Warning: Do not rerun this cell, as the compilation time will be gone.

+
+
[ ]:
+
+
+
### Normal RMF ####
+
+first_run_time_normal = time.time()
+eps_fast, pres_fast = RMF.compute_EOS(eps_com, pres_com, theta)
+first_run_time_normal = time.time() - first_run_time_normal
+
+time_for_20_runs_normal = time.time()
+for _ in range(20):
+    eps, pres = RMF.compute_EOS(eps_com, pres_com, theta)
+time_for_20_runs_normal = time.time() - time_for_20_runs_normal
+
+
+##### Fast RMF #####
+
+first_run_time = time.time()
+eps_fast, pres_fast = FastRMF.compute_EOS(eps_com, pres_com, theta)
+first_run_time = time.time() - first_run_time
+
+time_for_20_runs = time.time()
+for _ in range(20):
+    eps_fast, pres_fast = FastRMF.compute_EOS(eps_com, pres_com, theta)
+time_for_20_runs = time.time() - time_for_20_runs
+
+
+print(f"--------------------------------------------------------------------------------------")
+print(f"|" + " "*84 + "|")
+print(f"|" + " "*32 + "Time Comparion Table" + " "*32 + "|")
+print(f"|" + " "*84 + "|")
+print(f"|" + " "*17 + f"Time for first run  with RMF-Normal  = {first_run_time_normal*1000:6.0f} ms" + " "*19 + "|")
+print(f"|" + " "*17 + f"Time for first run  with RMF-Fast    = {first_run_time*1000       :6.0f} ms" + " "*19 + "|")
+print(f"|" + " "*84 + "|")
+print(f"|" + " "*17 + f"Time for   20  runs with RMF-Normal  = {time_for_20_runs_normal*1000:6.0f} ms" + " "*19 + "|")
+print(f"|" + " "*17 + f"Time for   20  runs with RMF-Fast    = {time_for_20_runs*1000       :6.0f} ms" + " "*19 + "|")
+print(f"|" + " "*84 + "|")
+print(f"|" + " "*17 + f"Time for  all  runs with RMF-Normal  = {(first_run_time_normal + time_for_20_runs_normal)*1000:6.0f} ms" + " "*19 + "|")
+print(f"|" + " "*17 + f"Time for  all  runs with RMF-Fast    = {(first_run_time        + time_for_20_runs       )*1000:6.0f} ms (Has Compilation) " + "|")
+print(f"|" + " "*84 + "|")
+print(f"|" + " "*17 + f"Time for   1   run  with RMF-Normal  = {time_for_20_runs_normal*1000/20:6.0f} ms  " + " "*17 + "|")
+print(f"|" + " "*17 + f"Time for   1   run  with RMF-Fast    = {time_for_20_runs       *1000/20:6.0f} ms" + " "*19 + "|")
+print(f"|" + " "*84 + "|")
+print(f"|" + " "*84 + "|")
+print(f"|" + " "*30 + f"Total Speed Up = {time_for_20_runs_normal/time_for_20_runs:.2f} x" + " "*30 + "|" )
+print(f"--------------------------------------------------------------------------------------")
+
+
+
+
+
+
+
+
+--------------------------------------------------------------------------------------
+|                                                                                    |
+|                                Time Comparion Table                                |
+|                                                                                    |
+|                 Time for first run  with RMF-Normal  =    550 ms                   |
+|                 Time for first run  with RMF-Fast    =   1027 ms                   |
+|                                                                                    |
+|                 Time for   20  runs with RMF-Normal  =  10099 ms                   |
+|                 Time for   20  runs with RMF-Fast    =    287 ms                   |
+|                                                                                    |
+|                 Time for  all  runs with RMF-Normal  =  10649 ms                   |
+|                 Time for  all  runs with RMF-Fast    =   1315 ms (Has Compilation) |
+|                                                                                    |
+|                 Time for   1   run  with RMF-Normal  =    505 ms                   |
+|                 Time for   1   run  with RMF-Fast    =     14 ms                   |
+|                                                                                    |
+|                                                                                    |
+|                              Total Speed Up = 35.15 x                              |
+--------------------------------------------------------------------------------------
+
+
+
+
[ ]:
+
+
+
eps_total_fast = np.array([*eps_com, *eps_fast])
+pres_total_fast = np.array([*pres_com, *pres_fast])
+
+compare_fig1, ax = plt.subplots(1, 1, figsize=(9,6))
+
+ax.plot(eps_total_fast, pres_total_fast, lw=2, label="Fast Version")
+ax.plot(eps_total, pres_total, lw=6, label="Normal Version", alpha=0.3)
+ax.set_ylabel(r"P $[fm^{-4}]$", fontsize=16)
+ax.set_xlabel(r"$\epsilon$ $[fm^{-4}]$", fontsize=16)
+ax.set_xlim(0, 6)
+ax.set_ylim(0, 2)
+ax.tick_params(top=1, right=1, which="both", direction="in", labelsize=14)
+ax.tick_params(top=1, right=1, which="both", direction="in", labelsize=14)
+plt.legend()
+compare_fig1.tight_layout()
+plt.show()
+
+
+
+
+
+
+
+_images/test_EOSgenerators_16_0.png +
+
+
+
[ ]:
+
+
+
MR_fast = main.OutputMR("", eps_total_fast, pres_total_fast).T
+
+compare_fig2, ax = plt.subplots(1, 1, figsize=(9, 6))
+
+ax.plot(MR_fast[1] / km, MR_fast[0] / Msun, lw=2, label="Fast Version")
+ax.plot(MR[1] / km, MR[0] / Msun, lw=6, label="Normal Version", alpha=0.3)
+ax.set_ylabel(r"M [$M_{\odot}$]", fontsize=16)
+ax.set_xlabel("R [km]", fontsize=16)
+ax.set_xlim(8.0, 20.0)
+ax.set_ylim(0, 3)
+ax.tick_params(top=1, right=1, which="both", direction="in", labelsize=14)
+ax.tick_params(top=1, right=1, which="both", direction="in", labelsize=14)
+plt.legend()
+compare_fig2.tight_layout()
+plt.show()
+
+
+
+
+
+
+
+_images/test_EOSgenerators_17_0.png +
+
+
+
+
+

Polytrope EOS

+

First import all the package that will be used.

+
+
[8]:
+
+
+
import numpy as np
+import math
+import TOVsolver.main as main
+import matplotlib.pyplot as plt
+from scipy.integrate import ode
+import EOSgenerators.Polytrope_EOS as Polytrope
+import EOSgenerators.Strangeon_EOS as Strangeon
+import EOSgenerators.crust_EOS as crust
+from TOVsolver.unit import  km, Msun, MeV,fm,g_cm_3,dyn_cm_2, G,c
+
+
+
+

The polytropic equation of state (Polytrope) is the most commonly used EOS in astrophysics, its advantage is assumed to be capable to simulate all EOS shape with given parameters. Here, we provide one of the computation for polytrope.

+
+

(a) Connecting outer crust with polytropic part

+

For polytrope, we first connecting it with crust as we did in RMF

+
+
[10]:
+
+
+
Tolos_crust_out = np.loadtxt("Test_Case/Tolos_crust_out.txt")
+eps_crust_T_out = Tolos_crust_out[:, 3] * g_cm_3
+pres_crust_T_out = Tolos_crust_out[:, 4] * dyn_cm_2
+
+
+
+

We define a set of parameters, first three in theta are the parameters control the slope of each polytrope, and the last two are transition point from one segment to another. Details see the documentation about polytrope

+
+
[11]:
+
+
+
gammas = np.array([1.03, 2.62, 1.38])
+rho_ts = np.array([8.087e13, 1.8078e15]) * g_cm_3
+theta = np.append(gammas, rho_ts)
+
+eps_set = np.logspace(11.7, 15.6, 100, base=10) * g_cm_3
+pres_out = Polytrope.compute_EOS(eps_set, theta, eps_crust_T_out[-1], pres_crust_T_out[-1])
+
+eps_total = np.hstack((eps_crust_T_out, eps_set))
+pres_total = np.hstack((pres_crust_T_out, pres_out))
+
+
+
+
+
+

(b) Solve TOV with this EOS

+

Here below we use the strangeon matter EOS to compute the mass radius curve.

+

The following code calculates the mass and radius of the strange stars for the given EOS of the polytrope using our main.OutputMR

+
+
[12]:
+
+
+
MR = main.OutputMR('',eps_total, pres_total)
+
+
+
+
+
[13]:
+
+
+
fig, ax = plt.subplots(1, 1, figsize=(9, 6))
+ax.plot(MR[:,1]/km , MR[:,0]/Msun, lw=2)
+# ax.scatter(R /km, M / Msun, c='r')
+ax.set_ylabel(r"M [$M_{\odot}$]", fontsize=16)
+ax.set_xlabel("R [km]", fontsize=16)
+ax.set_xlim(8.0, 20.0)
+ax.set_ylim(0, 3)
+ax.tick_params(top=1, right=1, which="both", direction="in", labelsize=14)
+ax.tick_params(top=1, right=1, which="both", direction="in", labelsize=14)
+fig.tight_layout()
+plt.show()
+
+
+
+
+
+
+
+_images/test_EOSgenerators_28_0.png +
+
+
+
+
+

Strangeon matter EOS

+

First import all the package that will be used.

+
+
[14]:
+
+
+
import numpy as np
+import math
+import TOVsolver.main as main
+import matplotlib.pyplot as plt
+from scipy.integrate import ode
+from EOSgenerators import Strangeon_EOS as Strangeon
+
+from TOVsolver.unit import  km, Msun, MeV,fm
+
+
+
+

The strangeon matter EOS describes the strongly interacting matter in the solid state, and the compact star can be a self-bound quark star composed of strangeon matter. Therefore, in the following we present the bare quark star EOS without a crust.

+

Note that the strangeon matter parameters we input are in the natural unit system. The quentity returned by the Strangeon_compute_EOS function is in the Geometric Unit System. Thus, here, the parameter epsilon and ns are in the units of \(MeV/fm^{-3}\). So follow the unite conversion rule, if we are using this unit, we just time this unit to do compute

+
+

(a) Defining the EOS parameters

+

Define the strangeon matter EOS that we will use to calculate the energy densities and pressures of the system. The following is an example of how to define the theta and Nq. For example, theta=[50, 0.24] means the example values for epsilon and ns: epsilon in units of MeV, ns in units of \(fm^-3\). Nq is an integer, e.g. Nq=9, 12, 15, 18, 21, 24, 27

+

For the definition of parameter n, the minimum value is 3ns/Nq, the maximum value is about 0.168*3/Nq. Then we can generate,for example, 1000 points for the input of the srangeon matter EOS. Special note: If you are using this EOS, need a very fine grid for the EOS. From our test, 1000 points for this EOS is the minimum requirement

+

Once we define the EOS parameters already, we can use the Strangeon_compute_EOS function to calcute the energy_density and pressure.

+
+
[15]:
+
+
+
Nq=18
+epsilon=50
+ns=0.24
+theta = np.array([Nq, epsilon, ns])
+n_min = 3 * theta[2] / theta[0]
+n_max = 0.16 * 8 * 3 / theta[0]
+n_values = np.linspace(n_min, n_max, 2000)
+
+energy_densities, pressures = Strangeon.compute_EOS(n_values, theta)
+print("n values:", n_values)
+print("Energy densities:", energy_densities)
+print("Pressures:", pressures)
+
+
+
+
+
+
+
+
+n values: [0.04       0.04008671 0.04017342 ... 0.21315991 0.21324662 0.21333333]
+Energy densities: [  204.61935484   205.0631334    205.50734538 ... 46616.1606005
+ 46711.98281964 46807.96367981]
+Pressures: [0.00000000e+00 1.98864796e-01 4.00749542e-01 ... 1.88749504e+05
+ 1.89139331e+05 1.89529799e+05]
+
+
+
+
+

(b) Solve TOV with this EOS

+

Here below we use the strangeon matter EOS to compute the mass radius curve.

+

The following code calculates the mass and radius of the strange stars for the given EOS of the strange matter EOS. Since our energy_density and pressure are all in same unit \(MeV/fm^{-3}\) so all we need is to time this unit

+

Input a given central pressure and central energy density, you will obtain the radius where the pressure is zero and the mass at that radius.

+

Solve the TOV equations using each central pressure and energy density

+
+
[16]:
+
+
+

MR= main.OutputMR('',energy_densities* MeV/fm**3 , pressures* MeV/fm**3) +
+
+
+
+
[17]:
+
+
+
fig, ax = plt.subplots(1, 1, figsize=(9, 6))
+ax.plot(MR[:,1]/km , MR[:,0]/Msun, lw=2)
+
+ax.set_ylabel(r"M [$M_{\odot}$]", fontsize=16)
+ax.set_xlabel("R [km]", fontsize=16)
+# ax.set_xlim(8.0, 20.0)
+# ax.set_ylim(0, 3)
+ax.tick_params(top=1, right=1, which="both", direction="in", labelsize=14)
+ax.tick_params(top=1, right=1, which="both", direction="in", labelsize=14)
+fig.tight_layout()
+plt.show()
+
+
+
+
+
+
+
+_images/test_EOSgenerators_39_0.png +
+
+
+
+
+

Speed of sound EOS

+

First import all the package that will be used.

+
+
[18]:
+
+
+
import numpy as np
+import TOVsolver.main as main
+import matplotlib.pyplot as plt
+from EOSgenerators import SpeedofSound_EOS
+import EOSgenerators.crust_EOS as crust
+from TOVsolver.unit import g_cm_3, dyn_cm_2, km, Msun
+
+
+
+

The Speed of sound EOS describes the core EOS of a compact star, so it should be connected with the crust EOS to form a full EOS. See https://arxiv.org/abs/1812.08188 for details.

+
+
[19]:
+
+
+
Tolos_crust_out = np.loadtxt("Test_Case/Tolos_crust_out.txt")
+eps_crust_T_out = Tolos_crust_out[:, 3] * g_cm_3
+pres_crust_T_out = Tolos_crust_out[:, 4] * dyn_cm_2
+eps_com, pres_com = crust.PolyInterpolate(eps_crust_T_out, pres_crust_T_out)
+
+
+
+
+

(a) Defining the EOS parameters

+

To construct the Speed of sound EOS, we need to specify the outer crust EOS and the interface EOS, and then connect them with the core EOS.

+
+
[20]:
+
+
+
x_last = eps_com[-1]
+y_last = pres_com[-1]
+dydx_last = (pres_com[-1] - pres_com[-2]) / (eps_com[-1] - eps_com[-2])
+CS_EOS = SpeedofSound_EOS.compute_EOS(x_last, y_last, dydx_last)
+
+
+
+

In order to generate the parameters of the Speed of sound EOS, we need a list of 5 uniform random numbers between 0 and 1.

+

After generate the parameters, we use function check_a to check if the parameters are valid.

+
+
[21]:
+
+
+
cs_a = CS_EOS.gen_a((0.2, 0.2, 0.3, 0.4, 0.5))
+print(CS_EOS.check_a(cs_a))
+
+
+
+
+
+
+
+
+True
+
+
+
+
+

(b) Solve TOV with this EOS

+

Here below we use the speed of sound EOS to compute the mass radius curve.

+

First we calculate the core EOS.

+
+
[22]:
+
+
+
core_e_min = x_last
+core_e_max = 2e16 * g_cm_3
+n_core_e = 1000
+core_e = np.geomspace(core_e_min, core_e_max, n_core_e)
+core_p = CS_EOS.cal_core_p(core_e, cs_a)
+
+
+
+

Then we concat the core EOS with the crust EOS.

+
+
[23]:
+
+
+
full_e = np.concatenate((eps_com, core_e[1:]))
+full_p = np.concatenate((pres_com, core_p[1:]))
+plt.figure(dpi=200)
+plt.plot(full_e / g_cm_3, full_p / dyn_cm_2)
+plt.xscale("log")
+plt.yscale("log")
+plt.xlabel(r"$\epsilon\quad [g/cm^3]$")
+plt.ylabel(r"$P\quad [dyn/cm^2]$")
+plt.show()
+
+
+
+
+
+
+
+_images/test_EOSgenerators_53_0.png +
+
+

Finally we compute the mass radius curve.

+
+
[24]:
+
+
+
MR = main.OutputMR("", full_e, full_p)
+plt.figure(dpi=200)
+plt.plot(MR[:, 1] / km, MR[:, 0] / Msun)
+plt.xlim(6, 17)
+plt.ylim(0, 2)
+plt.xlabel("Radius [km]")
+plt.ylabel("Mass [Msun]")
+plt.show()
+
+
+
+
+
+
+
+_images/test_EOSgenerators_55_0.png +
+
+
+
+
+

MIT bag model EOS

+

The MIT bag model, which has commonly been applied to strange quark stars, relates pressure to energy density with the simple equation of state \(p=\frac{\epsilon}{3}-\frac{4B}{3}\). There is only one parameter, the “bag constant” \(B\). This represents the vacuum energy density, which creates a “bag” in which quarks are confined. See Chodos et al. (1974).

+
+
[5]:
+
+
+
import numpy as np
+from EOSgenerators import MITbag_EOS
+from TOVsolver.unit import MeV, fm, g_cm_3, dyn_cm_2, km, Msun
+
+
+
+
+

(a) Defining the parameter

+

A “typical” value of 57 \(MeVfm^{-3}\) for the bag constant is taken from Alcock (1986).

+
+
[6]:
+
+
+
B = 57
+
+epsilon,p = MITbag_EOS.MITbag_compute_EOS(B)
+
+print('energy density range:',epsilon[0],'to',epsilon[-1])
+print('pressure range:',p[0],'to',p[-1])
+
+
+
+
+
+
+
+
+energy density range: 1.1554421785237932 to 2.888605446309483
+pressure range: 0.0 to 0.5777210892618965
+
+
+
+
+

(b) Computing the mass-radius relation

+

We can compute a mass-radius relation for this EOS by solving the TOV equation.

+
+
[8]:
+
+
+
import matplotlib.pyplot as plt
+import TOVsolver.main as main
+import TOVsolver.EoS_import as EoS_import
+from itertools import repeat
+
+
+
+
+
[9]:
+
+
+
MR = main.OutputMR('',epsilon,p).T
+
+
+
+
+
[11]:
+
+
+
fig, ax = plt.subplots(1,1, figsize=(9,6))
+ax.plot(MR[1]/km, MR[0]/Msun,lw=2,label=f'B = {B:.2f} MeV $fm^{-3}$')
+ax.set_ylabel(r'M [$M_{\odot}$]', fontsize=16)
+ax.set_xlabel('R [km]', fontsize=16)
+ax.legend()
+ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)
+ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)
+fig.tight_layout()
+plt.show()
+
+
+
+
+
+
+
+_images/test_EOSgenerators_66_0.png +
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/test_EOSgenerators.ipynb b/test_EOSgenerators.ipynb new file mode 100644 index 0000000..5faa8b4 --- /dev/null +++ b/test_EOSgenerators.ipynb @@ -0,0 +1,996 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "# Equation of State Generators illustration notebook\n", + "\n", + "## RMF EOS \n", + "\n", + "First import all of the package that will be used here." + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [], + "source": [ + "import EOSgenerators.crust_EOS as crust\n", + "import EOSgenerators.RMF_EOS as RMF\n", + "import EOSgenerators.Polytrope_EOS as Polytrope\n", + "import EOSgenerators.Strangeon_EOS as Strangeon\n", + "import TOVsolver.main as main\n", + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "import math\n", + "from TOVsolver.unit import g_cm_3, dyn_cm_2, km, Msun\n", + "from TOVsolver.maxium_central_density import maxium_central_density" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Load crust EOS and prepare interface EOS\n", + "\n", + "Define constants, and load the crust EOS into this notebook, since when we solve the equation of state to TOV equation, we need full scope of the equation of state. Here, crust eos file is 'Tolos_crust_out.txt', while we need to times g_cm_3 for energy density and dyn_cm_2 for pressure, that will be easier for treatment, no need worry about G and c.\n", + "\n", + "Then just connect the crust part with the interface part(the part between core equation of state and crust) by a PolyInterpolate function" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [], + "source": [ + "Tolos_crust_out = np.loadtxt(\"Test_Case/Tolos_crust_out.txt\")\n", + "eps_crust_T_out = Tolos_crust_out[:, 3] * g_cm_3\n", + "pres_crust_T_out = Tolos_crust_out[:, 4] * dyn_cm_2\n", + "eps_com, pres_com = crust.PolyInterpolate(eps_crust_T_out, pres_crust_T_out)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Example of RMF" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Defining the paramters\n", + "\n", + "Defining the free prameters that we need to compute the equation of state, you could check our intro part of documentation or just check the original paper of us about details. [Huang et al,2023](https://arxiv.org/abs/2303.17518)\n", + "\n", + "After defined the equation of state parameters, we could call the 'compute_EOS' function from RMF, to compute full core equation of state." + ] + }, + { + "cell_type": "code", + "execution_count": 3, + "metadata": {}, + "outputs": [], + "source": [ + "m_sig = 495.0 / 197.33\n", + "m_w = 3.96544\n", + "m_rho = 3.86662\n", + "\n", + "g_sigma = math.sqrt(107.5751)\n", + "g_omega = math.sqrt(182.3949)\n", + "g_rho = math.sqrt(206.4260)\n", + "\n", + "kappa = 3.09114168 / 197.33\n", + "lambda_0 = -0.00168015405\n", + "zeta = 0.024\n", + "Lambda_w = 0.045\n", + "theta = np.array(\n", + " [m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa, lambda_0, zeta, Lambda_w]\n", + ")\n", + "eps, pres = RMF.compute_EOS(eps_com, pres_com, theta)" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (c) Connecting Core and crust EOS\n", + "\n", + "These two line can easily connect the Equation of state we computed for core part by setting the parameters and the crust equation of state, to a full equation of state that prepared for next step output\n" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [], + "source": [ + "eps_total = np.array([*eps_com, *eps])\n", + "pres_total = np.array([*pres_com, *pres])" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here below is one of the possiblity, use our defined function, 'OutputMR' to compute out what the mass radius curve corresponding to this equation of state." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "MR = main.OutputMR(\"\", eps_total, pres_total).T" + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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oUM1cOBALV26VBEREZKkZcuWadiwYRo4cCBLKAAAAAAISkHVkhcWFqZ58+bJ4/Fo4MCBmjRpkh555BH17NlTP/74o2bMmOENeJI0Z84cde7cWXPmzPG5zpAhQzRhwgStXr1avXv31tSpU/WrX/1KI0eOVHx8vF599dVK9zYMQx999JGGDBmiFi1aKDo6Wp06ddK9996rPXv2BPyzo/4tXLhQ9957ry6//HI5nU7ZbDYtWLCg2vNdLpceeughpaamyul0KjU1VQ899BCzZ1lEbZ+HkpISffjhhxo/frw6d+6smJgYxcXFqW/fvnrllVfkdrvrv3j4VV3/bqho7969io2Nlc1m03333RfYQlEvLuR52Lt3ryZOnOj9fdGsWTMNGTJEH3zwQf0UjYCp6/OQkZGhu+++Wx06dFBUVJRatWqlYcOG6R//+Ef9FY2AOHjwoF588UUNHz5cbdq0UUREhJo3b65bb71VGzZsqPI9fv0uaQShDRs2GD/72c+MhIQEIyoqyrj88suNhQsXVjpv+vTphiRj+vTplY653W7jpZdeMrp27Wo4nU6jcePGxm233Wbs2LGjyns+9NBDhiSjRYsWxn333WdMnTrVGDFihGGz2Yy4uDhjy5Yt/v6YMFlqaqohyWjSpIl3e/78+VWee/r0aaNXr16GJGPYsGHG73//e+NnP/uZIcno1auXcfr06fotHn5X2+dh27ZthiQjLi7OuPnmm42pU6ca9957r9GyZUtDknHjjTcaHo+n/j8A/KYufzdU5PF4jEGDBhkxMTGGJOPee+8NfLEIuLo+D19++aURHR1tREdHG6NHjzamTZtm3HfffUa/fv2MSZMm1V/hCIi6PA/r1683oqKijLCwMOOWW24xfv/73xt33323kZCQYEgyZsyYUb/Fw69+//vfG5KMdu3aGb/+9a+NRx991Lj11lsNh8Nh2O124/333/c539/fJYMy5NW3w4cPG3a73UhLSzNycnJ8jr3wwguGJOPuu+82qToEyldffWXs27fPMAzDmD17do1/UT/11FOGJGPq1KlV7n/qqacCXS4CrLbPw08//WS88sorRl5ens/+06dPG5dffrkhyVi8eHF9lIwAqcvfDRX99a9/NcLCwoznn3+ekGchdXkeDhw4YMTHxxsdOnQw9u/fX+l4SUlJIEtFPajL83D99dcbkoy///3vPvv3799vxMfHG1FRUUZhYWGgS0aAfPjhh8aqVasq7V+1apURHh5uJCUl+fzv6+/vkkHVXdMs+/btk8fjUf/+/b2LpZcbOXKkJOnYsWNmlIYAuu6665Samnre8wzD0Lx58xQbG6unnnrK59i0adOUmJioN9980++LXKJ+1fZ5aNWqlSZPnqzo6Gif/TExMXrooYckiTG/Qa62z0JFu3bt0rRp0zR16lT17t07QJXBDHV5Hv70pz/J5XLptddeU5s2bSodDwsLqknPUYW6PA979uyRzWbTz372M5/9bdq0Ubdu3VRQUKDc3NxAlIl6cMstt2jgwIGV9g8cOFBDhgzRyZMntWXLFkmB+S5JyKuFDh06KCIiQmvXrq30f7bPPvtMkjR06FAzSkMDkJGRoUOHDql///6KiYnxORYZGalrrrlGBw8e1K5du0yqEA1FeHi4JL7IhRqPx6O7775bqamplX55I3QYhqHFixercePGGjp0qL777js9//zz+u///m8tXbpUHo/H7BJRz7p27SrDMCrNGp+ZmakffvhB3bt395k4ENZx7veBQHyX5JtGLTRu3FhPP/20pkyZos6dO+umm25SXFyctmzZoqVLl2rSpEl64IEHzC4TJjnf2ooV13esaf1FWN9bb70lSRo+fLjJlaA+vfjii1q3bp3WrFkjp9Npdjkwyd69e3Xy5EldccUVmjx5sl577TWf471799Y//vEPtW7d2qQKUd/++Mc/as2aNbrlllt08803q3379jp+/Lg++ugjpaamavHixWaXiAA4cOCAli5dqubNm6t79+6SAvNdkpBXS4888ohatmype++912f2zX79+mns2LHeRI7Qk5OTI0lKSEio8nh5F9/y8xCa3njjDX3++ecaOnSobrjhBrPLQT3ZuXOnnnjiCT344IO6+uqrzS4HJiof1rFx40Zt27ZN8+fP180336ycnBz96U9/0ty5c3Xbbbdp/fr1JleK+tKlSxetX79et99+u/7v//7Puz8xMdE74yaspaSkROPGjVNRUZGeffZZORwOSYH5Lkl3zVqaNWuWxo8fr2nTpikzM1OnT5/WmjVrVFpaqiFDhuijjz4yu0QADdSnn36q+++/X6mpqVq4cKHZ5aCeeDwejR8/Xi1bttSsWbPMLgcmK++O6Xa79cc//lHjx49XYmKi0tLS9MYbb6hv377asGGD1qxZY3KlqC/ffvutBgwYoKSkJH333XfKy8vTnj17dM899+ihhx7S7bffbnaJ8COPx6Nf//rXWrVqlSZOnKhx48YF9H6EvFpYvny5nnzySd1///167LHH1Lp1a8XExKh///7617/+paioKP3ud78zu0yYpPxfXar715XytU2q+9cZWNuSJUt06623qlmzZlq+fLlatGhhdkmoJy+99JLWr1+vefPmVZqIB6Gn4u+Am266qdLxG2+8UVLZF39YX0lJiUaPHi2bzaZPPvlEffr0UXR0tC655BI999xzGj16tD7++GOtWLHC7FLhB4ZhaOLEiVq4cKHGjh1bqbt2IL5LEvJq4dNPP5VUtoj6uZKTk9W9e3cdOHBAWVlZ9V0aGoCK/aSrcr5+1rCuL774QqNGjVKTJk20YsUKtW3b1uySUI82bdokwzA0ZMgQ2Ww270/575LXX39dNptNo0aNMrdQ1Iv27dt7u2Y1atSo0vHyfQUFBfVYFcyyfft27dmzR3379q3yH4HKJ/T77rvv6rs0+JnH49E999yjt956S2PGjNGCBQtkt/tGsEB8l2RMXi0UFxdLko4fP17l8fL9DKgPTR06dFDLli21du1a5eXl+cyKVFhYqFWrVqlly5Zq3769iVWivpUHvKSkJK1YsYL//UPQoEGDqpxJ9fDhw/rss8906aWXqn///iypECKcTqf69eun1atXa+vWrRowYIDP8a1bt0qS0tLSTKgO9Y3vlqHB4/FowoQJmj9/vkaPHq13333X+489FQXiuyQtebXQv39/SdLzzz9fqRn17bff1q5du3TZZZcpLi7OjPJgMpvNpgkTJuj06dP6wx/+4HNs9uzZOnXqlCZMmCCbzWZShahv5QEvMTFRK1asoBU3RN19992aN29epZ8pU6ZIKguB8+bN029+8xuTK0V9mTx5siRpxowZKioq8u7fvn27FixYoLi4uEprpsGaunXrpoSEBK1du7bSEgqHDh3SK6+8IkkaPHiwCdXBH8pb8ObPn6/bb79dCxcurDLgSYH5LmkzWKH5vNxut6677jqlp6crOTlZN910kxITE7V582Z99dVXcjqdWrp0aaV/lUNwmzdvnncA/JYtW7Rx40b179/f+68oo0aN8nazysvL04ABA7Rp0yYNGzZMl112mTZv3qzPP/9cvXr10po1ayqte4LgUtvnYfv27erVq5eKior0y1/+Up06dap0rbS0NI0fP74+y4cf1eXvhqqkp6dryJAhuvfeeyuNy0DwqcvzYBiG7rjjDv3f//2fOnXqpBEjRignJ0cffvih8vPz9c477+iuu+4y66PAD+ryPLz55puaMGGC7Ha7Ro4cqc6dO+vo0aP6+OOP5XK59Jvf/EZz5swx66PgIs2YMUMzZ85UbGysHnzwwSp7dowaNUq9evWSFIDvkgZqpbCw0HjmmWeMPn36GNHR0UZYWJjRqlUr48477zS2bNlidnkIgF/96leGpGp/pk+f7nN+dna28bvf/c5ISUkxwsPDjZSUFON3v/udkZ2dbc4HgF/V9nlYsWJFjedJMgYNGmTqZ8HFqevfDecqf0buvffe+ikYAVXX56GkpMR4/vnnja5duxpOp9OIj483hg8fbqSnp5vzAeBXdX0eli5davz85z83kpOTDYfDYcTHxxsDBw403n77bXM+APzmfM+CJGP+/Pk+7/Hnd0la8gAAAADAQhiTBwAAAAAWQsgDAAAAAAsh5AEAAACAhRDyAAAAAMBCCHkAAAAAYCGEPAAAAACwEEIeAAAAAFgIIQ8AAAAALISQBwAAAAAWQsgDAKAWBg8eLJvN5v1JS0urdE75MbN98sknPrXabDalp6ebXRYAoJ4Q8gAAlpKWllYp4ERGRuqSSy7R2LFj9c0331zU9bt166b+/fvriiuu8FPF/te4cWP1799f/fv3V3x8vNnlAADqmc0wDMPsIgAA8Je0tDTt379fHTp0UNOmTSVJOTk52rVrlwoLC+VwODR//nyNGzeuTtcdPHiwVq5cqRUrVmjw4MFVnlPeiteQfrXWpm4AgLXQkgcAsKTHHntMa9as0Zo1a7RlyxYdOnRIt912m9xut37zm9/o1KlTZpcIAEBAEPIAACEhMTFRb775pmJiYpSbm6svv/zS7JIAAAgIQh4AIGTEx8erY8eOkqR9+/bV230Nw9Bvf/tb2Ww2tW/fXvv37/fWUHESl3nz5ql3796Kjo5Wq1at9Nvf/la5ubmSJLfbrb/85S/q2rWroqKi1Lp1az366KMqLi6ut88BAAgOhDwAQEjJz8+XJEVHR9fL/dxut37961/r5ZdfVrdu3bRmzRqlpqZWOu/hhx/WxIkTlZubq3bt2unYsWN6+eWXNWrUKHk8Ht1222165JFHZBiGUlNTdejQIT3zzDOaOHFivXwOAEDwIOQBAEJGRkaGdu/eLUnq1atXwO9XXFys0aNHa8GCBbryyiu1cuVKNW/evNJ5Bw8e1JtvvqmlS5dq165d2rJli77//ns1btxYy5cv16233qpvv/1W33//vbZu3art27dr+fLlioiI0DvvvKOtW7cG/LMAAIIHIQ8AYHkul0tLly7VqFGjVFpaqv79+2vgwIEBvWd+fr5uuukmffjhhxo8eLCWLl2qpKSkKs8tLS3VjBkzdO2113r3devWTZMmTZJUtu7dyy+/7BNMBw8erFtuuUWStGTJksB9EABA0CHkAQAs6e677/auk5eQkKBhw4Zp+/btGj16tP75z38G9N45OTkaMWKElixZopEjR+rzzz9XXFxcje/59a9/XWlfeahLSkrSqFGjKh3v3bu3JGnPnj0XXTMAwDrCzC4AAIBAKF8nzzAMHTlyRHv27FF4eLiuuOIKJSYmBvTeQ4cO1caNG/XLX/5S77zzjsLDw2s8Pzk5ucpFy5OTkyVJ7dq1q/Z9knT69OmLrBgAYCW05AEALKl8nby1a9dq9+7dWrNmjeLi4vTII49o4cKFAb33rl27JEndu3c/b8CTqp8Epnxx9fMdb0iLrwMAzEfIAwCEhP79+2vu3LmSpAcffFAulytg9/r8888VGxurxx9/XC+++GLA7gMAQFUIeQCAkDFq1ChdddVVOnnypJ5//vmA3adfv37617/+pejoaP3ud7/TK6+8ErB7AQBwLkIeACCkPProo5Kkl156KaBj2QYNGqS///3vioyM1P33368333wzYPcCAKAiQh4AIKTcdNNN6ty5s06dOqVXX301oPe67rrr9NFHHyk8PFyTJk0K+FhAAAAkQh4AIMTYbDY98sgjkqTnn39ehYWFAb3f9ddfr8WLF8vhcGj8+PFavHhxQO8HAAAhDwAQcsaOHauWLVvqyJEjeuuttwJ+v5tvvlmLFi2SJN1111365JNPAn5PAEDoYp08AICl7Nu377znRERE6ODBg36/d01LGdx2220qLS312ZeWllbjewYPHlzj8fHjx2v8+PF1rhMAYG2EPAAA6uCBBx5QQkKCWrRooQ8++MDscqq0evVqTZs2TZK0ZcsWk6sBANQ3Qh4AAHXwww8/SJJSU1NNrqR6J06c0Nq1a80uAwBgEptRUz8QAAAAAEBQYeIVAAAAALAQQh4AAAAAWAghDwAAAAAshJAHAAAAABZCyAMAAAAACyHkAQAAAICFEPIAAAAAwEIIeQAAAABgIYQ8AAAAALAQQh4AAAAAWAghDwAAAAAs5P8HyoALffSIIckAAAAASUVORK5CYII=", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, 1, figsize=(9, 6))\n", + "ax.plot(MR[1] / km, MR[0] / Msun, lw=2)\n", + "ax.set_ylabel(r\"M [$M_{\\odot}$]\", fontsize=16)\n", + "ax.set_xlabel(\"R [km]\", fontsize=16)\n", + "ax.set_xlim(8.0, 20.0)\n", + "ax.set_ylim(0, 3)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Illustrating the power of Numba accelerated EoS Generation\n", + "\n", + "We shall now run the same code but with the Numba accelerated version, comparing the times for EoS Generation.\n", + "\n", + "Keep in mind all previous definitions are still valid, all we need to change is a single line of code.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import EOSgenerators.fastRMF_EoS as FastRMF\n", + "import time\n", + "\n", + "Tolos_crust_out = np.loadtxt(\"Tolos_crust_out.txt\")\n", + "eps_crust_T_out = Tolos_crust_out[:, 3] * g_cm_3\n", + "pres_crust_T_out = Tolos_crust_out[:, 4] * dyn_cm_2\n", + "eps_com, pres_com = crust.PolyInterpolate(eps_crust_T_out, pres_crust_T_out)\n", + "\n", + "m_sig = 495.0 / 197.33\n", + "m_w = 3.96544\n", + "m_rho = 3.86662\n", + "\n", + "g_sigma = math.sqrt(107.5751)\n", + "g_omega = math.sqrt(182.3949)\n", + "g_rho = math.sqrt(206.4260)\n", + "\n", + "kappa = 3.09114168 / 197.33\n", + "lambda_0 = -0.00168015405\n", + "zeta = 0.024\n", + "Lambda_w = 0.045\n", + "theta = np.array(\n", + " [m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa, lambda_0, zeta, Lambda_w]\n", + ")\n" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Comparing the time it takes to generate the EoS\n", + "\n", + "The reason why we test the time it takes to generate the EoS here is due to the fact that Numba is compiling the code, and as such the first run will take considerably longer to complete, but all other runs will be greatly faster.\n", + "\n", + "Warning: Do not rerun this cell, as the compilation time will be gone.\n" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "--------------------------------------------------------------------------------------\n", + "| |\n", + "| Time Comparion Table |\n", + "| |\n", + "| Time for first run with RMF-Normal = 550 ms |\n", + "| Time for first run with RMF-Fast = 1027 ms |\n", + "| |\n", + "| Time for 20 runs with RMF-Normal = 10099 ms |\n", + "| Time for 20 runs with RMF-Fast = 287 ms |\n", + "| |\n", + "| Time for all runs with RMF-Normal = 10649 ms |\n", + "| Time for all runs with RMF-Fast = 1315 ms (Has Compilation) |\n", + "| |\n", + "| Time for 1 run with RMF-Normal = 505 ms |\n", + "| Time for 1 run with RMF-Fast = 14 ms |\n", + "| |\n", + "| |\n", + "| Total Speed Up = 35.15 x |\n", + "--------------------------------------------------------------------------------------\n" + ] + } + ], + "source": [ + "### Normal RMF ####\n", + "\n", + "first_run_time_normal = time.time()\n", + "eps_fast, pres_fast = RMF.compute_EOS(eps_com, pres_com, theta)\n", + "first_run_time_normal = time.time() - first_run_time_normal\n", + "\n", + "time_for_20_runs_normal = time.time()\n", + "for _ in range(20):\n", + " eps, pres = RMF.compute_EOS(eps_com, pres_com, theta)\n", + "time_for_20_runs_normal = time.time() - time_for_20_runs_normal\n", + "\n", + "\n", + "##### Fast RMF #####\n", + "\n", + "first_run_time = time.time()\n", + "eps_fast, pres_fast = FastRMF.compute_EOS(eps_com, pres_com, theta)\n", + "first_run_time = time.time() - first_run_time\n", + "\n", + "time_for_20_runs = time.time()\n", + "for _ in range(20):\n", + " eps_fast, pres_fast = FastRMF.compute_EOS(eps_com, pres_com, theta)\n", + "time_for_20_runs = time.time() - time_for_20_runs\n", + "\n", + "\n", + "print(f\"--------------------------------------------------------------------------------------\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*32 + \"Time Comparion Table\" + \" \"*32 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for first run with RMF-Normal = {first_run_time_normal*1000:6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for first run with RMF-Fast = {first_run_time*1000 :6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for 20 runs with RMF-Normal = {time_for_20_runs_normal*1000:6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for 20 runs with RMF-Fast = {time_for_20_runs*1000 :6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for all runs with RMF-Normal = {(first_run_time_normal + time_for_20_runs_normal)*1000:6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for all runs with RMF-Fast = {(first_run_time + time_for_20_runs )*1000:6.0f} ms (Has Compilation) \" + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for 1 run with RMF-Normal = {time_for_20_runs_normal*1000/20:6.0f} ms \" + \" \"*17 + \"|\")\n", + "print(f\"|\" + \" \"*17 + f\"Time for 1 run with RMF-Fast = {time_for_20_runs *1000/20:6.0f} ms\" + \" \"*19 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*84 + \"|\")\n", + "print(f\"|\" + \" \"*30 + f\"Total Speed Up = {time_for_20_runs_normal/time_for_20_runs:.2f} x\" + \" \"*30 + \"|\" )\n", + "print(f\"--------------------------------------------------------------------------------------\")" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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Ih3N5XKZAS8yMrK7hyN9mL+/PwDFxcXExMRc8AaS59IrN14REREREeloLc/gBQQEdPNIpD9o+TnrjGc/FfJERERERFrREk3pCp35c6aQJyIiIiIi0oco5ImIiIiISK80f/585syZ093D6HEU8kREREREern58+djsVhO+Tp8+HC7rpuRkYHFYjnrkRLvvPMONpuNo0ePnvb14cOH8/3vf79d4ziT//mf/2HlypWdcu3eTCFPRERERKQPuPbaaykoKGjzlZKS0un3/frXv05kZORpz7HeuHEjBw4cYMGCBRd83fPZkCQ0NJSwsLALvnZfp5AnIiIiItIHOBwOYmNj23zZbDZ+85vfMGbMGAIDA0lISOA73/kOJ0+eNPvl5uZy0003ER4eTmBgIKNGjeK9994jJyeHmTNnAhAeHo7FYmH+/Pmn3NfX15e77rqLlStX8tUjuF9//XUmTpzIuHHjqKys5IEHHiAmJoaQkBC+9rWvsXPnTrPtkiVLGD9+PK+//jqpqak4HA48Hg9vv/02Y8aMwd/fn8jISK666ipqamqAU5drNjQ08P3vf5+YmBj8/PyYNm0an332mfl6y8zkhx9+yKRJkwgICGDKlCkcOHCgI/4V9BgKeSIiIiIifZjVauX5559nz549rFq1io8++ogf//jH5uvf/e53aWhoYMOGDezevZtnnnmGoKAgEhISeOeddwA4cOAABQUF/M///M9p77FgwQKOHDnC+vXrzVpNTQ1r1qxhwYIFeDwebrjhBgoLC3nvvffYtm0bl1xyCbNmzaKsrMzsc/jwYdasWcM777zDjh07KCws5I477uDee+9l3759ZGRkcPPNN58SJlv8+Mc/5p133mHVqlVs376dwYMHM3v27Db3APjpT3/Kc889x+eff46Pjw/33nvvRf/59kQ6DF1ERERE5CxueiGTkuqGLr9vdLCD//vetPNu/+677xIUFGR+f9111/GXv/yFhx56yKylpKTw1FNPsWjRIn7/+98DcPToUW655RbGjBkDQGpqqtk+IiICgJiYmLMuixw5ciSXXXYZK1asYMaMGQCsWbMGl8vFHXfcwccff8zu3bspLi7G4XAA8F//9V/87W9/4+233+aBBx4AoLGxkTfeeIPo6GgAtm/fjtPp5OabbyYpKQnAHOdX1dTU8NJLL7Fy5Uquu+46AF599VU++OADXnvtNR555BGz7S9+8QvS09MB+M///E9uuOEG6uvr8fPzO8ufcO+hkCciIiIichYl1Q0UVtV39zDOaebMmbz00kvm94GBgQB8/PHH/PKXv2Tv3r1UVVXhdDqpr6+npqaGwMBAvv/977No0SLWrVvHVVddxS233MLYsWMv+P4LFizgoYce4sUXXyQ4OJjXX3+dm2++mbCwMLZt28bJkyeJjIxs06euro6srCzz+6SkJDPgAYwbN45Zs2YxZswYZs+ezTXXXMOtt95KeHj4KffPysqiqamJqVOnmjVfX18mT57Mvn372rRt/f7i4uIAKC4uJjEx8YLfd0+kkCciIiIichbRwY5ecd/AwEAGDx7cppabm8v111/PwoULeeqpp4iIiCAzM5MFCxaYG5vcd999zJ49m3/84x+sW7eOpUuX8txzz/G9733vgu4/d+5cHn74Yd566y1mzJhBZmYmP//5zwFwu93ExcWRkZFxSr/WM4QtwbSFzWbjgw8+YNOmTaxbt44XXniBn/70p2zduvWUTWValnB+9ZBxj8dzSs3X19f855bX3G73Bb3fnkwhT0RERETkLC5kyWRP8/nnn+N0OnnuueewWo3tONasWXNKu4SEBBYuXMjChQt59NFHefXVV/ne976H3W4HwOVynfNewcHBfOtb32LFihUcOXKE1NRUc+nmJZdcQmFhIT4+PiQnJ1/Qe7BYLEydOpWpU6fys5/9jKSkJP7617/ygx/8oE27wYMHY7fbyczM5M477wSMHTo///zzNktW+wOFPBERERGRPiotLQ2n08kLL7zATTfdxMaNG1m2bFmbNg899BDXXXcdQ4cOpby8nI8++ogRI0YAxvJJi8XCu+++y/XXX4+/v3+b5/6+asGCBUyfPp29e/fyox/9yJwlu+qqq7jiiiuYM2cOzzzzDMOGDSM/P5/33nuPOXPmMGnSpNNeb+vWrXz44Ydcc801xMTEsHXrVkpKSszxtRYYGMiiRYt45JFHiIiIIDExkWeffZba2tqLOsKhN9PumiIiIiIifdT48eP5zW9+wzPPPMPo0aP54x//yNKlS9u0cblcfPe732XEiBFce+21DBs2zNyUZeDAgTz55JP853/+JwMGDOD/+//+v7Peb9q0aQwbNoyqqiq+/e1vm3WLxcJ7773HlVdeyb333svQoUOZO3cuOTk5DBgw4IzXCwkJYcOGDVx//fUMHTqUxx9/nOeee87cWOWrfvWrX3HLLbdw1113cckll3D48GH+9a9/nfYZvr7M4jnT/qPS4aqqqggNDaWyspKQkJDuHo6IiIiItFJfX092djYpKSl9ZpdF6bnO9vPW3tygmTwREREREZE+RCFPRERERESkD1HIExERERER6UMU8kRERERERPoQhTwREREREZE+RCFPRERERESkD1HIExERERER6UMU8kRERERERPoQhTwREREREZE+RCFPRERERES6RUZGBhaLhYqKiu4eShs9dVznSyFPRERERKQ1jxsaqnvWl9t91iHPnz8fi8XCr371qzb1v/3tb1gsls780+o0jY2NREVF8fTTT5/29aVLlxIVFUVjY2OH33vKlCkUFBQQGhra4dfuCj7dPQARERERkR6lsRYKP+vuUbSVPA0cwWdt4ufnxzPPPMODDz5IeHh4h926sbERu93eYdc7X3a7nf/4j/9g5cqV/PSnPz0lrK5YsYK77rrrosbW1NSEr6/vWe8dGxt7wdftKTSTJyIiIiLSB1x11VXExsaydOnSs7Z75513GDVqFA6Hg+TkZJ577rk2rycnJ/P0008zf/58QkNDuf/++1m5ciVhYWG8++67DBs2jICAAG699VZqampYtWoVycnJhIeH873vfQ+Xy2Vea/Xq1UyaNIng4GBiY2O58847KS4uPu/3tGDBArKystiwYUOb+ieffMKhQ4dYsGABYAS+ESNG4Ofnx/Dhw/n9739vts3JycFisbBmzRpmzJiBn58fq1evJjc3l5tuuonw8HACAwMZNWoU7733HnD65Zrn8+f2y1/+knvvvZfg4GASExN55ZVXzvu9diSFPBERERGRPsBms/HLX/6SF154gby8vNO22bZtG7fddhtz585l9+7dLFmyhCeeeIKVK1e2affrX/+a0aNHs23bNp544gkAamtref755/nzn//M+++/T0ZGBjfffDPvvfce7733Hm+88QavvPIKb7/9tnmdxsZGnnrqKXbu3Mnf/vY3srOzmT9//nm/pzFjxnDppZeyYsWKNvXXX3+dyZMnM3r0aF599VV++tOf8otf/IJ9+/bxy1/+kieeeIJVq1a16fOTn/yE73//++zbt4/Zs2fz3e9+l4aGBjZs2MDu3bt55plnCAoKatef23PPPcekSZP44osv+M53vsOiRYvYv3//eb/fjqLlmiIiIiIifcQ3v/lNxo8fz+LFi3nttddOef03v/kNs2bNMoPb0KFD2bt3L7/+9a/bhK+vfe1r/OhHPzK/z8zMpKmpiZdeeom0tDQAbr31Vt544w2KiooICgpi5MiRzJw5k48//pjbb78dgHvvvde8RmpqKs8//zyTJ0/m5MmTZwxUX3Xvvffyox/9iBdffJGgoCBOnjzJX/7yF37zm98A8NRTT/Hcc89x8803A5CSksLevXt5+eWX+fa3v21e56GHHjLbABw9epRbbrmFMWPGmOM7k/P9c7v++uv5zne+Axih8r//+7/JyMhg+PDh5/VeO4pm8kRERERE+pBnnnmGVatWsXfv3lNe27dvH1OnTm1Tmzp1KocOHWqzzHLSpEmn9A0ICDADHsCAAQNITk5uE9YGDBjQZjnmF198wTe+8Q2SkpIIDg5mxowZgBGwztcdd9yB2+3mrbfeAuCtt97C4/Ewd+5cSkpKOHbsGAsWLCAoKMj8evrpp8nKympzna++p+9///s8/fTTTJ06lcWLF7Nr164zjuF8/9zGjh1r/rPFYiE2NvaClqd2FIU8EREREZE+5Morr2T27Nk89thjp7zm8XhO2cDE4/Gc0i4wMPCU2lc3KrFYLKetuZt3Aq2pqeGaa64hKCiI1atX89lnn/HXv/4V4IJ2xAwNDeXWW281l2yuWLGCW2+9lZCQEPNer776Kjt27DC/9uzZw5YtW876nu677z6OHDnCXXfdxe7du5k0aRIvvPDCacdwvn9uZ/vz6EparikiIiIi0sf86le/Yvz48QwdOrRNfeTIkWRmZrapbdq0iaFDh2Kz2Tp0DPv376e0tJRf/epXJCQkAPD5559f1LUWLFjAjBkzePfdd9m4cSO//OUvAWPmcODAgRw5coR58+Zd8HUTEhJYuHAhCxcu5NFHH+XVV1/le9/73intuvLPrSMo5ImIiIiI9DFjxoxh3rx5p8xM/fCHP+TSSy/lqaee4vbbb2fz5s28+OKLbXaj7CiJiYnY7XZeeOEFFi5cyJ49e3jqqacu6lrp6ekMHjyYu+++m8GDB3PllVeary1ZsoTvf//7hISEcN1119HQ0MDnn39OeXk5P/jBD854zYceeojrrruOoUOHUl5ezkcffcSIESNO27Yr/9w6gkKeiIiIiEhr9gDjXLqexPfU5ZPn8tRTT7FmzZo2tUsuuYQ1a9bws5/9jKeeeoq4uDh+/vOfX9COl+crOjqalStX8thjj/H8889zySWX8F//9V98/etfv6jr3XvvvTz22GM88sgjber33XcfAQEB/PrXv+bHP/4xgYGBjBkzhoceeuis13O5XHz3u98lLy+PkJAQrr32Wv77v//7tG278s+tI1g8p1tMKp2iqqqK0NBQKisrCQkJ6e7hiIiIiEgr9fX1ZGdnk5KSgp+fX3cPR/q4s/28tTc3aOMVERERERGRPkQhT0REREREpA9RyBMREREREelDFPJERERERET6EIU8ERERERGRPkQhT0RERESkFW0+L12hM3/OFPJERERERABfX18Aamtru3kk0h+0/Jy1/Nx1JB2GLiIiIiIC2Gw2wsLCKC4uBiAgIACLxdLNo5K+xuPxUFtbS3FxMWFhYdhstg6/h0KeiIiIiEiz2NhYADPoiXSWsLAw8+etoynkiYiIiIg0s1gsxMXFERMTQ1NTU3cPR/ooX1/fTpnBa6GQJyIiIiLyFTabrVM/hIt0pl678crq1at58MEHmTRpEg6HA4vFwsqVKy/oGjNmzMBisZz164033mjTJzk5+YxtFy5c2IHvUERERERE5ML12pm8xx9/nNzcXKKiooiLiyM3N/eCrzF//nxmzJhxSr2pqYmlS5ditVqZNWvWKa+Hhoby0EMPnVKfNGnSBY9BRERERESkI/XakLd8+XKGDBlCUlISv/rVr3j00Ucv+Brz588/bf2dd97B4/Fw/fXXEx8ff8rrYWFhLFmy5ILvJyIiIiIi0tl6bci76qqrOu3ay5cvB2DBggWddg8REREREZHO0GtDXmfJy8tj3bp1xMbGcsMNN5y2TUNDA6tWreL48eOEh4czZcoUxo0b18UjFREREREROZVC3lesWLECt9vN/Pnz8fE5/R9PYWHhKUs9r732Wt544w2ioqK6YJQiIiIiIiKn12t31+wMHo+HFStWAGdeqnnvvfeSkZFBSUkJVVVVbNmyheuuu47333+fr3/963g8nnPep6qqqs1XQ0NDh74PERERERHpPRoaGk7JCO2hkNfKRx99RHZ2Nunp6QwePPi0bX72s5+Rnp5OVFQUwcHBXHbZZbz77rtMmzaNzZs38957753zPgkJCYSGhppfS5cu7ei3IiIiIiIivcTSpUvb5IOEhIR2XU8hr5WWDVfuu+++C+pntVq55557ANi4ceM52x87dozKykrz62J2BhURERERkb7h0UcfbZMPjh071q7r6Zm8ZuXl5fz1r38lLCyMW2655YL7tzyLV1tbe862ISEhhISEXPA9RERERESk73E4HDgcjg67nmbymq1evZqGhgbmzZuHv7//BfffunUrAMnJyR08MhERERERkfPXL0JeaWkp+/fvp7S09IxtXnvtNeDsZ+Pt3buXioqKU+qZmZn85je/weFwcPPNN7d7vCIiIiIiIher1y7XXL58OZmZmQDs3r3brGVkZAAwZ84c5syZA8CLL77Ik08+yeLFi1myZMkp19q2bRs7d+7kkksuYcKECWe855o1a3j22WeZNWsWycnJOBwO9uzZw7p167BarSxbtozExMQOfZ8iIiIiIiIXoteGvMzMTFatWtWmtnHjRnPjk+TkZDPknUvLLN65NlyZOXMm+/btY/v27axfv576+noGDBjA7bffzsMPP8zkyZMv/I2IiIiIiIh0IIvnfA52kw5RVVVFaGgolZWV2nhFREREREROq725oV88kyciIiIiItJfKOSJiIiIiIj0IQp5IiIiIiLSfzkb4OhWqC7s7pF0mF678YqIiIiIiEi71JZBwQ4j6DVUgT0IHEHdPap200yeiIiIiIj0P2XZcOxTI+ABuJ2Q/wW4Xd07rg6gkCciIiIiIv2HywnHt0PJfsA4aKDR6TZeazwJhbu7b2wdRCFPRERERET6h4ZqOLoJThYB4HZ7+MeuAn7+7pfUNjqNNtUFUJ7bjYNsP4U8ERERERHp+6ryIXczNNYAUNPg5MWPD7P2izwKKutZsTEH8wjxkv1QV96Ng20fbbwiIiIiIiJ9l9tthLYK7+xc7okafp+RRelJ43k8iwUSIwLweIx/xuOG0kOQMLmbBt0+CnkiIiIiItI3NdVB/g6orzBLnxwqYfXWozhdxnN4QQ4f7p+eyuiBod5+QTEQO7Zrx9qBFPJERERERKTvqSk1jkdwNQHG5ip/3JpL5uFSs0lKVBCLZqQRGWhvrlggeihEpHb9eDuQQp6IiIiIiPQdHg+UHYHSg2appLqB3318mGPltWbta8NjuG1SAr625m1KbHaInwABEV094g6nkCciIiIiIn2DqwkKdkJNiVnacayC1zKPUNtonH9nt9n49pQkLk+N9Pbz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BATwy1/+kv/5n//xYlXiSc8++yx79uxh586draP5MjAtWrSImTNnkpKSgtVq5cCBAyxbtozNmzczb948tm3bhslk8naZ0oeKi4sBeP7557nyyivZtWsX48aNY/fu3Xz3u9/l+eefZ+TIkXz/+9/v0f20Jk9ExEucTieLFi3i448/5sEHH+Q73/mOt0sSD0pKSsLlcuFwOMjNzeWpp57iZz/7GXfccQcOh8Pb5Ukf27NnD8uXL+fHP/4xV155pbfLES9bsmQJM2fOJCYmhrCwMK655hr+/ve/M2PGDLZv3867777r7RKljzmdTgAsFgubNm3i6quvJjQ0lLS0NN58803MZjPPP/98j++nkNeHWkbwWkb0Oqqqqup2lE9EfJvL5eLBBx/ktdde45577uHFF1/0dkniJX5+fiQlJfHoo4+yfPly3nrrLV5++WVvlyV97N5772XkyJE8+eST3i5FLlNms5n77rsPgG3btnm5GulrLZlg6tSpJCYmup1LSUkhOTmZY8eOUVFR0aP7KeT1oZY1FV2tuysvL6e0tFTrLkQGIKfTyf3338/atWvJyMhg/fr1mM36dixtTblaGneJ79qzZw+HDh0iMDDQbePrV155BaB1S4VNmzZ5t1Dxqpa1eHV1dV6uRPramDFjAIiIiOjyfMvx+vr6Ht1Pa/L60MyZM1mxYgWZmZnMnz/f7VxmZmbrNSIycDidTh544AHWrVvHXXfdxauvvqp1eNLq5MmTgLqsDgT3339/l8c//vhjcnJymDdvHrGxsa37p8nAtHPnTgC9DwaA9PR0AA4ePNjpXFNTE0ePHiUkJITY2Nge3U9/i/ShWbNmkZyczOuvv87ixYtJTU0FjA1vn376afz9/bUZtsgA0jKCt379ev7jP/6D1157TQFvAPriiy8YMWJEp+n6ZWVlPP744wDccsst3ihNPGjNmjVdHl+4cCE5OTk89thj2gx9gDhw4ACJiYmdRnCys7P59a9/jdVq5fbbb/dOceIxI0eOZM6cOWRmZrJmzRoeeOCB1nO/+MUvqKio4J577unxDwEV8vqQv78/a9asYe7cuaSlpZGRkYHNZmPjxo3k5uayfPlyRo8e7e0yxQPWrFlDdnY2QOtm12vWrGmdknXbbbdx2223eak68ZSnnnqK9evXExoayujRo1m+fHmna2677bbWHwiJb1q/fj1r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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "eps_total_fast = np.array([*eps_com, *eps_fast])\n", + "pres_total_fast = np.array([*pres_com, *pres_fast])\n", + "\n", + "compare_fig1, ax = plt.subplots(1, 1, figsize=(9,6))\n", + "\n", + "ax.plot(eps_total_fast, pres_total_fast, lw=2, label=\"Fast Version\")\n", + "ax.plot(eps_total, pres_total, lw=6, label=\"Normal Version\", alpha=0.3)\n", + "ax.set_ylabel(r\"P $[fm^{-4}]$\", fontsize=16)\n", + "ax.set_xlabel(r\"$\\epsilon$ $[fm^{-4}]$\", fontsize=16)\n", + "ax.set_xlim(0, 6)\n", + "ax.set_ylim(0, 2)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "plt.legend()\n", + "compare_fig1.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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LQ29buvWrTr//POVk5Mjj8ejoUOH6q233tKWLVs0btw4SVJOTo4Mw9CUKVPq3dfpdGry5MmaP3++6i61/cILL+gHP/iBjjvuOBUVFen6669Xp06dlJmZqTPOOEMrV64MnTtr1iyNGDFCL7zwgvr27Su32y3TNPX3v/9dw4cPV2pqqjp06KCzzjpLZWVlkup31/R6vbr55pvVqVMnpaSk6LTTTtMXX3wROl7TMvnBBx9o5MiRSktL06mnnqp169ZF4z9Bm0fIAwAAAJKAzWbT448/rm+//VYvvviiPvzwQ82YMSN0/Gc/+5m8Xq+WLl2qVatW6aGHHlJ6erp69uyp1157TZK0bt067d69W3/+858bvMfUqVO1adMmffTRR6F9ZWVlWrhwoaZOnSrTNHXeeedpz549euutt/TVV1/phBNO0JlnnqmDBw+GXrNhwwYtXLhQr732mlasWKE9e/boyiuv1LXXXqs1a9ZoyZIluuiii+qFyRozZszQa6+9phdffFFff/21+vfvr4kTJ0bcQ5LuvvtuPfroo/ryyy/lcDh07bXXHvH3N5GwGDoAAAAg6fwnlml/ibdV75mX4db/3XRai17zz3/+U+np6aHn55xzjl599VX98pe/DO3r06eP7r33Xk2fPl1PPfWUJGnbtm26+OKLNXz4cElS3759Q+fn5uZKkjp16tRkt8ghQ4bo5JNP1rx58zR27FhJ0sKFCxUIBHTllVdq8eLFWrVqlfbt2ye32y1J+sMf/qA333xTf//733X99ddLkqqqqvTSSy8pLy9PkvT111/L7/froosuUu/evSUpVGddZWVlevrppzV//nydc845kqQ5c+bo/fff1/PPP6/bb789dO7999+vMWPGSJLuuOMOnXfeeaqsrFRKSkoT3+HER8gDAAAAJO0v8WpPcWW8yziscePG6emnnw4993g8kqTFixfrgQce0OrVq1VcXCy/36/KykqVlZXJ4/Ho5ptv1vTp0/Xee+/prLPO0sUXX6xjjz22xfefOnWqfvnLX+rJJ59URkaGXnjhBV100UXKzs7WV199pdLSUnXo0CHiNRUVFdq4cWPoee/evUMBT5KOO+44nXnmmRo+fLgmTpyoCRMm6JJLLlFOTk69+2/cuFE+n0+jRo0K7XM6nTrppJO0Zs2aiHPD31/Xrl0lSfv27VOvXr1a/L4TCSEPAAAAkNWqlgj39Hg86t+/f8S+rVu36txzz9WNN96oe++9V7m5uVq2bJmmTp0amthk2rRpmjhxov71r3/pvffe04MPPqhHH31UN910U4vuf8UVV+hXv/qVXnnlFY0dO1bLli3T7373O0lSMBhU165dtWTJknqvC28hrAmmNex2u95//3198skneu+99/TEE0/o7rvv1ueff15vUpmaLpx1Fxk3TbPePqfTGdquORYMBlv0fhMRIQ8AAACQWtxtsi358ssv5ff79eijj8pms6bdWLhwYb3zevbsqRtvvFE33nij7rzzTs2ZM0c33XSTXC6XJCkQCBz2XhkZGbr00ks1b948bdq0SX379g113TzhhBO0Z88eORwO5efnt+g9GIahUaNGadSoUfrtb3+r3r1764033tAtt9wScV7//v3lcrm0bNkyXXXVVZKsGTq//PLLiC6r7RkhDwAAAEhw/fr1k9/v1xNPPKHzzz9fy5cv1zPPPBNxzi9/+Uudc845GjhwoA4dOqQPP/xQgwcPlmR1nzQMQ//85z917rnnKjU1NWLcX11Tp07V6NGjtXr1at12222hVrKzzjpLp5xyiiZNmqSHHnpIgwYN0q5du/TWW29p0qRJGjlyZIPX+/zzz/XBBx9owoQJ6tSpkz7//HPt378/VF84j8ej6dOn6/bbb1dubq569eqlhx9+WOXl5Ue0hEMyYnZNAAAAIMGNGDFCjz32mB566CENGzZMf/3rX/Xggw9GnBMIBPSzn/1MgwcP1tlnn61BgwaFJmXp3r27Zs+erTvuuEOdO3fWz3/+8ybvd9ppp2nQoEEqLi7Wj3/849B+wzD01ltv6fTTT9e1116rgQMH6oorrtCWLVvUuXPnRq+XmZmppUuX6txzz9XAgQN1zz336NFHHw1NrFLX73//e1188cWaPHmyTjjhBG3YsEHvvvtug2P42iPDbGxeUjSquLhYWVlZKioqUmZmZrzLAQAAQAtUVlZq8+bN6tOnT9LPsoj4a+rzFqtcQUseAAAAACQRQh4AAAAAJBFCHgAAAAAkEUIeAAAAACQRQh4AAAAAJBFCHgAAAAAkEUIeAAAAACQRQh4AAAAAJBFCHgAAAAAkEUIeAAAAgJhasmSJDMNQYWFhvEuJ0FbrOlqEPAAAALRPZlDylrSdRzB42JKnTJkiwzD0+9//PmL/m2++KcMwYvWdiqmqqip17NhR9913X4PHH3zwQXXs2FFVVVVRv/epp56q3bt3KysrK+rXjidHvAsAAAAA4qKqXNrzRbyrqJV/muTOOOxpKSkpeuihh3TDDTcoJycnarevqqqSy+WK2vWay+Vy6ZprrtH8+fN199131wur8+bN0+TJk4+oNp/PJ6fT2eS9u3Tp0uLrtnW05AEAAAAJ5KyzzlKXLl304IMPNnnea6+9pqFDh8rtdis/P1+PPvpoxPH8/Hzdd999mjJlirKysnTddddp/vz5ys7O1j//+U8NGjRIaWlpuuSSS1RWVqYXX3xR+fn5ysnJ0U033aRAIBC61oIFCzRy5EhlZGSoS5cuuuqqq7Rv375mv6epU6dq48aNWrp0acT+jz/+WOvXr9fUqVMlWYFv8ODBSklJ0THHHKOnnnoqdO6WLVtkGIYWLlyosWPHKiUlRQsWLNDWrVt1/vnnKycnRx6PR0OHDtVbb70lqeHums35vj3wwAO69tprlZGRoV69eum5555r9nttDYQ8AAAAIIHY7XY98MADeuKJJ7Rjx44Gz/nqq6902WWX6YorrtCqVas0a9Ys/eY3v9H8+fMjznvkkUc0bNgwffXVV/rNb34jSSovL9fjjz+u//mf/9E777yjJUuW6KKLLtJbb72lt956Sy+99JKee+45/f3vfw9dp6qqSvfee69WrlypN998U5s3b9aUKVOa/Z6GDx+uE088UfPmzYvY/8ILL+ikk07SsGHDNGfOHN199926//77tWbNGj3wwAP6zW9+oxdffDHiNb/+9a918803a82aNZo4caJ+9rOfyev1aunSpVq1apUeeughpaenH9X37dFHH9XIkSP1n//8Rz/96U81ffp0rV27ttnvN9borgkAAAAkmB/96EcaMWKEZs6cqeeff77e8ccee0xnnnlmKLgNHDhQq1ev1iOPPBIRvs444wzddtttoefLli2Tz+fT008/rX79+kmSLrnkEr300kvau3ev0tPTNWTIEI0bN06LFy/W5ZdfLkm69tprQ9fo27evHn/8cZ100kkqLS1tNFDVde211+q2227Tk08+qfT0dJWWlurVV1/VY489Jkm699579eijj+qiiy6SJPXp00erV6/Ws88+qx//+Meh6/zyl78MnSNJ27Zt08UXX6zhw4eH6mtMc79v5557rn76059KskLlH//4Ry1ZskTHHHNMs95rrNGSBwAAACSghx56SC+++KJWr15d79iaNWs0atSoiH2jRo3S+vXrI7pZjhw5st5r09LSQgFPkjp37qz8/PyIsNa5c+eI7pj/+c9/dOGFF6p3797KyMjQ2LFjJVkBq7muvPJKBYNBvfLKK5KkV155RaZp6oorrtD+/fu1fft2TZ06Venp6aHHfffdp40bN0Zcp+57uvnmm3Xfffdp1KhRmjlzpr755ptGa2ju9+3YY48NbRuGoS5durSoe2qsEfIAAACABHT66adr4sSJuuuuu+odM02z3gQmpmnWO8/j8dTbV3eiEsMwGtwXrJ4NtKysTBMmTFB6eroWLFigL774Qm+88YYktWhGzKysLF1yySWhLpvz5s3TJZdcoszMzNC95syZoxUrVoQe3377rT777LMm39O0adO0adMmTZ48WatWrdLIkSP1xBNPNFhDc79vTX0/2gK6awIAAAAJ6ve//71GjBihgQMHRuwfMmSIli1bFrHvk08+0cCBA2W326Naw9q1a1VQUKDf//736tmzpyTpyy+/PKJrTZ06VWPHjtU///lPLV++XA888IAkq+Wwe/fu2rRpk66++uoWX7dnz5668cYbdeONN+rOO+/UnDlzdNNNN9U7rzW/b7FEyAMAAAAS1PDhw3X11VfXa5m69dZbdeKJJ+ree+/V5Zdfrk8//VRPPvlkxGyU0dKrVy+5XC498cQTuvHGG/Xtt9/q3nvvPaJrjRkzRv3799d///d/q3///jr99NNDx2bNmqWbb75ZmZmZOuecc+T1evXll1/q0KFDuuWWWxq95i9/+Uudc845GjhwoA4dOqQPP/xQgwcPbvDc1vy+xRIhDwAAAO2TK81am66tcNbvOtkc9957rxYuXBix74QTTtDChQv129/+Vvfee6+6du2q3/3udy2a8bK58vLyNH/+fN111116/PHHdcIJJ+gPf/iDLrjggiO63rXXXqu77rpLt99+e8T+adOmKS0tTY888ohmzJghj8ej4cOH65e//GWT1wsEAvrZz36mHTt2KDMzU2effbb++Mc/Nnhua37fYskwG+pkiiYVFxcrKytLRUVFyszMjHc5AAAAaIHKykpt3rxZffr0UUpKSrzLQZJr6vMWq1zBxCsAAAAAkEQIeQAAAACQRAh5AAAAAJBECHkAAAAAkEQIeQAAAACQ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S8OGDVNFRYVKSkpiUSZawUUXXaTRo0fX2z969GiNGzdOBw8e1KpVqyTF5ndJQl4zDBgwQC6XS8uXL6/3P9tbb70lSTrjjDPiURragPXr12vXrl0aNWqUPB5PxLGUlBSdfvrp2rlzpzZs2BCnCtFWOJ1OSfwi194Eg0H95Cc/Ue/evev94432wzRNLVy4UB06dNAZZ5yhr776So899pj+8Ic/aNGiRQoGg/EuEa1s6NChMk2z3qzx27dv17fffqvhw4dHTByI5FH394FY/C7JbxrN0KFDB91///26/fbbNXjwYF1wwQXKyMjQqlWrtGjRIl1//fW66aab4l0m4uRwayuGr+/Y1PqLSH4vvPCCJGnChAlxrgSt6U9/+pM++eQTLVu2TG63O97lIE42b96sgwcP6sQTT9T06dP1zDPPRBw//vjj9Y9//EM9evSIU4Vobffee6+WLVumiy66SBdeeKH69++v/fv36/XXX1fv3r21cOHCeJeIGNi2bZsWLVqkLl26aPjw4ZJi87skIa+ZbrvtNnXr1k033HBDxOybp556qq655ppQIkf7U1RUJEnKyspq8HhNF9+a89A+Pffcc3r77bd1xhln6Nxzz413OWgl33//ve655x794he/0CmnnBLvchBHNcM6vv76a61Zs0bz5s3ThRdeqKKiIj3wwAOaM2eOLrnkEn322WdxrhStZciQIfrss8906aWX6u9//3tof05OTmjGTSQXn8+nyZMny+v16uGHH5bdbpcUm98l6a7ZTPfdd5+mTJmiO++8U9u3b1dpaamWLVsmv9+vcePG6fXXX493iQDaqH/961/6+c9/rt69e2vBggXxLgetJBgMasqUKerWrZvuu+++eJeDOKvpjhkIBHTvvfdqypQpysnJUX5+vp577jmdfPLJ+vzzz7Vs2bI4V4rW8uWXX+q0005Tbm6uvvrqK5WVlWnTpk2aOnWqbrnlFl166aXxLhFRFAwGde2112rp0qW67rrrNHny5Jjej5DXDB9++KF+85vf6Oc//7nuuusu9ejRQx6PR6NGjdI///lPpaam6le/+lW8y0Sc1PzVpbG/rtSsbdLYX2eQ3N59911dfPHF6ty5sz788EN17do13iWhlTz++OP67LPPNHfu3HoT8aD9Cf834IILLqh3/Pzzz5dk/eKP5Ofz+XT55ZfLMAy9+eabOuGE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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "MR_fast = main.OutputMR(\"\", eps_total_fast, pres_total_fast).T\n", + "\n", + "compare_fig2, ax = plt.subplots(1, 1, figsize=(9, 6))\n", + "\n", + "ax.plot(MR_fast[1] / km, MR_fast[0] / Msun, lw=2, label=\"Fast Version\")\n", + "ax.plot(MR[1] / km, MR[0] / Msun, lw=6, label=\"Normal Version\", alpha=0.3)\n", + "ax.set_ylabel(r\"M [$M_{\\odot}$]\", fontsize=16)\n", + "ax.set_xlabel(\"R [km]\", fontsize=16)\n", + "ax.set_xlim(8.0, 20.0)\n", + "ax.set_ylim(0, 3)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "plt.legend()\n", + "compare_fig2.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Polytrope EOS \n", + "\n", + "First import all the package that will be used." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import math\n", + "import TOVsolver.main as main\n", + "import matplotlib.pyplot as plt\n", + "from scipy.integrate import ode\n", + "import EOSgenerators.Polytrope_EOS as Polytrope\n", + "import EOSgenerators.Strangeon_EOS as Strangeon\n", + "import EOSgenerators.crust_EOS as crust\n", + "from TOVsolver.unit import km, Msun, MeV,fm,g_cm_3,dyn_cm_2, G,c " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The polytropic equation of state (Polytrope) is the most commonly used EOS in astrophysics, its advantage is assumed to be capable to simulate all EOS shape with given parameters. Here, we provide one of the computation for polytrope." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Connecting outer crust with polytropic part" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "For polytrope, we first connecting it with crust as we did in RMF" + ] + }, + { + "cell_type": "code", + "execution_count": 10, + "metadata": {}, + "outputs": [], + "source": [ + "Tolos_crust_out = np.loadtxt(\"Test_Case/Tolos_crust_out.txt\")\n", + "eps_crust_T_out = Tolos_crust_out[:, 3] * g_cm_3\n", + "pres_crust_T_out = Tolos_crust_out[:, 4] * dyn_cm_2" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We define a set of parameters, first three in theta are the parameters control the slope of each polytrope, and the last two are transition point from one segment to another. Details see the documentation about polytrope" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [], + "source": [ + "gammas = np.array([1.03, 2.62, 1.38])\n", + "rho_ts = np.array([8.087e13, 1.8078e15]) * g_cm_3\n", + "theta = np.append(gammas, rho_ts)\n", + "\n", + "eps_set = np.logspace(11.7, 15.6, 100, base=10) * g_cm_3\n", + "pres_out = Polytrope.compute_EOS(eps_set, theta, eps_crust_T_out[-1], pres_crust_T_out[-1])\n", + "\n", + "eps_total = np.hstack((eps_crust_T_out, eps_set))\n", + "pres_total = np.hstack((pres_crust_T_out, pres_out))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Solve TOV with this EOS\n", + "\n", + "Here below we use the strangeon matter EOS to compute the mass radius curve.\n", + "\n", + "The following code calculates the mass and radius of the strange stars for the given EOS of the polytrope using our main.OutputMR" + ] + }, + { + "cell_type": "code", + "execution_count": 12, + "metadata": {}, + "outputs": [], + "source": [ + "MR = main.OutputMR('',eps_total, pres_total)" + ] + }, + { + "cell_type": "code", + "execution_count": 13, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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PNwoKCjwdcnwkffff99ITU2ttD81NdUICQkx4uLiKvz79fbvkn7VXdMs6enpcrvd6tevn2ex9DIjR46UJB05csSM0uBDV155pZKTk895nmEYmjdvnho0aKA//vGPFY5NnTpVsbGxev31172+yCXqVk2fhxYtWmjSpEmKiIiosD8yMlIPP/ywJDHm18/V9Fkob+fOnZo6daqmTJminj17+qgymKE2z8NTTz0lp9OpV155RUlJSZWOBwf71aTnqEJtnofdu3fLZrPpqquuqrA/KSlJXbp00cmTJ5WTk+OLMlEHRo8erQEDBlTaP2DAAA0ZMkRZWVnauHGjJN/8LknIq4F27dopNDRUq1evrvQf26effipJGjp0qBmloR5IS0vTgQMH1K9fP0VGRlY4FhYWpoEDB2r//v3auXOnSRWivggJCZHEL3KBxu12684771RycnKl/3kjcBiGocWLF6tRo0YaOnSofvzxRz333HP661//qqVLl8rtdptdIupY586dZRhGpVnjMzIytGnTJnXt2rXCxIGwjjN/H/DF75L8plEDjRo10pNPPqnJkyerY8eOuu666xQVFaWNGzdq6dKluueee/TAAw+YXSZMcq61Fcuv73i29RdhfW+88YYkafjw4SZXgrr0wgsv6JtvvtGqVavkcDjMLgcm2bNnj7KystSnTx9NmjRJr7zySoXjPXv21Mcff6yWLVuaVCHq2p///GetWrVKo0eP1vXXX6+2bdvq6NGj+uCDD5ScnKzFixebXSJ8YN++fVq6dKmaNm2qrl27SvLN75KEvBp69NFH1bx5c917770VZt/s27evxo4d60nkCDzZ2dmSpJiYmCqPl3XxLTsPgem1117TZ599pqFDh+qaa64xuxzUkR07duiJJ57Qgw8+qMsvv9zscmCismEd69at09atWzV//nxdf/31ys7O1lNPPaW5c+fqhhtu0Jo1a0yuFHWlU6dOWrNmjW688Ub961//8uyPjY31zLgJaykuLta4ceNUWFioZ555Rna7XZJvfpeku2YNzZw5U+PHj9fUqVOVkZGh3NxcrVq1Si6XS0OGDNEHH3xgdokA6qlPPvlE999/v5KTk7Vw4UKzy0EdcbvdGj9+vJo3b66ZM2eaXQ5MVtYds6SkRH/+8581fvx4xcbGKiUlRa+99pouvfRSrV27VqtWrTK5UtSVH374Qf3791dcXJx+/PFH5eXlaffu3br77rv18MMP68YbbzS7RHiR2+3WXXfdpdTUVE2cOFHjxo3z6f0IeTWwbNky/eEPf9D999+vxx57TC1btlRkZKT69eun//73vwoPD9dDDz1kdpkwSdlfXar760rZ2ibV/XUG1rZkyRKNGTNGTZo00bJly9SsWTOzS0IdmT17ttasWaN58+ZVmogHgaf8/wOuu+66SsevvfZaSaW/+MP6iouLdfPNN8tms+mjjz5Sr169FBERoVatWunZZ5/VzTffrA8//FDLly83u1R4gWEYmjhxohYuXKixY8dW6q7ti98lCXk18Mknn0gqXUT9TAkJCeratav27dunzMzMui4N9UD5ftJVOVc/a1jX559/rlGjRik+Pl7Lly9X69atzS4JdWj9+vUyDENDhgyRzWbzvMr+X/Lqq6/KZrNp1KhR5haKOtG2bVtP16yGDRtWOl627+TJk3VYFcyybds27d69W5deemmVfwQqm9Dvxx9/rOvS4GVut1t333233njjDd16661asGCBgoIqRjBf/C7JmLwaKCoqkiQdPXq0yuNl+xlQH5jatWun5s2ba/Xq1crLy6swK1JBQYFSU1PVvHlztW3b1sQqUdfKAl5cXJyWL1/Ov/8ANGjQoCpnUj148KA+/fRTXXTRRerXrx9LKgQIh8Ohvn37auXKldqyZYv69+9f4fiWLVskSSkpKSZUh7rG75aBwe12a8KECZo/f75uvvlmvf32254/9pTni98lacmrgX79+kmSnnvuuUrNqG+++aZ27typ3r17KyoqyozyYDKbzaYJEyYoNzdXf/rTnyocmzVrlo4fP64JEybIZrOZVCHqWlnAi42N1fLly2nFDVB33nmn5s2bV+k1efJkSaUhcN68efrNb35jcqWoK5MmTZIkTZ8+XYWFhZ7927Zt04IFCxQVFVVpzTRYU5cuXRQTE6PVq1dXWkLhwIEDeumllyRJgwcPNqE6eENZC978+fN14403auHChVUGPMk3v0vaDFZoPqeSkhJdeeWVWrFihRISEnTdddcpNjZWGzZs0JdffimHw6GlS5dW+qsc/Nu8efM8A+A3btyodevWqV+/fp6/oowaNcrTzSovL0/9+/fX+vXrNWzYMPXu3VsbNmzQZ599ph49emjVqlWV1j2Bf6np87Bt2zb16NFDhYWFuuWW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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, 1, figsize=(9, 6))\n", + "ax.plot(MR[:,1]/km , MR[:,0]/Msun, lw=2)\n", + "# ax.scatter(R /km, M / Msun, c='r')\n", + "ax.set_ylabel(r\"M [$M_{\\odot}$]\", fontsize=16)\n", + "ax.set_xlabel(\"R [km]\", fontsize=16)\n", + "ax.set_xlim(8.0, 20.0)\n", + "ax.set_ylim(0, 3)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Strangeon matter EOS \n", + "\n", + "First import all the package that will be used." + ] + }, + { + "cell_type": "code", + "execution_count": 14, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import math\n", + "import TOVsolver.main as main\n", + "import matplotlib.pyplot as plt\n", + "from scipy.integrate import ode\n", + "from EOSgenerators import Strangeon_EOS as Strangeon\n", + "\n", + "from TOVsolver.unit import km, Msun, MeV,fm" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The strangeon matter EOS describes the strongly interacting matter in the solid state, and the compact star can be a self-bound quark star composed of strangeon matter. Therefore, in the following we present the bare quark star EOS without a crust.\n", + "\n", + "Note that the strangeon matter parameters we input are in the natural unit system. The quentity returned by the Strangeon_compute_EOS function is in the Geometric Unit System. Thus, here, the parameter epsilon and ns are in the units of $MeV/fm^{-3}$. So follow the unite conversion rule, if we are using this unit, we just time this unit to do compute" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Defining the EOS parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Define the strangeon matter EOS that we will use to calculate the energy densities and pressures of the system.\n", + "The following is an example of how to define the theta and Nq.\n", + "For example, theta=[50, 0.24] means the example values for epsilon and ns:\n", + "epsilon in units of MeV, ns in units of $fm^-3$.\n", + "Nq is an integer, e.g. Nq=9, 12, 15, 18, 21, 24, 27\n", + "\n", + "For the definition of parameter n, the minimum value is 3*ns/Nq, the maximum value is about 0.16*8*3/Nq.\n", + "Then we can generate,for example, 1000 points for the input of the srangeon matter EOS. Special note: If you are using this EOS, need a very fine grid for the EOS. From our test, 1000 points for this EOS is the minimum requirement\n", + "\n", + "Once we define the EOS parameters already, we can use the Strangeon_compute_EOS function to calcute the energy_density and pressure." + ] + }, + { + "cell_type": "code", + "execution_count": 15, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "n values: [0.04 0.04008671 0.04017342 ... 0.21315991 0.21324662 0.21333333]\n", + "Energy densities: [ 204.61935484 205.0631334 205.50734538 ... 46616.1606005\n", + " 46711.98281964 46807.96367981]\n", + "Pressures: [0.00000000e+00 1.98864796e-01 4.00749542e-01 ... 1.88749504e+05\n", + " 1.89139331e+05 1.89529799e+05]\n" + ] + } + ], + "source": [ + "Nq=18\n", + "epsilon=50\n", + "ns=0.24\n", + "theta = np.array([Nq, epsilon, ns])\n", + "n_min = 3 * theta[2] / theta[0] \n", + "n_max = 0.16 * 8 * 3 / theta[0] \n", + "n_values = np.linspace(n_min, n_max, 2000) \n", + "\n", + "energy_densities, pressures = Strangeon.compute_EOS(n_values, theta)\n", + "print(\"n values:\", n_values)\n", + "print(\"Energy densities:\", energy_densities)\n", + "print(\"Pressures:\", pressures) " + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Solve TOV with this EOS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here below we use the strangeon matter EOS to compute the mass radius curve.\n", + "\n", + "The following code calculates the mass and radius of the strange stars for the given EOS of the strange matter EOS. Since our energy_density and pressure are all in same unit $MeV/fm^{-3}$ so all we need is to time this unit\n", + "\n", + "Input a given central pressure and central energy density, you will obtain the radius where the pressure is zero and the mass at that radius." + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Solve the TOV equations using each central pressure and energy density" + ] + }, + { + "cell_type": "code", + "execution_count": 16, + "metadata": {}, + "outputs": [], + "source": [ + "\n", + "MR= main.OutputMR('',energy_densities* MeV/fm**3 , pressures* MeV/fm**3)\n" + ] + }, + { + "cell_type": "code", + "execution_count": 17, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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X9WAAQPUoEEDBQQEKCoqSrfddps2btxYrnM5HA7NnDlT7dq1U1BQkCIjIzV06FAlJiZWeN0AAADwbs/+b4cz4MXUtempgS1NrgierEIWQx85cqR2796tl156SYZh6IknnlDLli314YcfVsTpnV577TU99thj2r9/v/r3768nnnhCN9xwg7766it169ZNCxcuLPO5HnroIY0bN052u13jxo3TzTffrK+//lqdO3fWjh07KrRuAAAAeK9F247rw02HJUlB/r6aMbyjrH4sOwbXuarhmqVJS0vTc889p9dee015eXkaOXKk3nvvvQo59+eff67IyEj16NGjWPuaNWvUr18/hYaG6tixY7JaL/3w6sqVK9W3b1/16NFDS5cudR6/fPly9e/fXz169NCqVasu+nqGawIAAKAsjqWe003/XaO0c4Wj3F64ra3u7NzA5KpQVbgqV1TIiotHjhzRjh07tH37du3YsUM7duyQr6+vDMNQcnJyRVxCknTrrbeW2t6jRw/16dNHS5Ys0datW9WpU6dLnqdo8pdp06YVC4T9+vVTXFycFi1apD179qhFixYVVjsAAAC8i91h6K8fb3EGvEFt62hop2iTq4I3KFfIO3z4cLEgt337du3cuVOZmZmSCtf9kCQfHx81a9ZMbdu21aBBgyq+6lL4+/tLkvz8Lv+W4uPjFRwcrO7du5fYVxTyVq1aRcgDAADAFXt95V5tOnBGklSvepCev7VtsbWkAVcpV8hr1KiR8w9mUaCrXbu2unTporZt26pt27Zq166d2rRpo8DAwIqv9iIOHz6sZcuWKSoqSm3btr3ksVlZWTp+/LhiY2Pl61tyLHTz5s0lqUwTsKSnpxfbtlqtlx0qCgAAAM/386GzenV54c+TPhbpv8M6KCzI3+SqYLbc3Fzl5uY6t3+fJyrKFQ3XbN26tUaNGqURI0aoQQNzxxTn5+dr9OjRys3N1YsvvlhqcLtQWlqaJF10mYeisbBFx11KdHTx7vbJkydrypQpZagaAAAAnio9J1+PfvSL7I7CTpFH+jVXp0bhJleFqmD69OmaOnWqy69T7pBnGIZ27typiRMn6h//+IdatGihdu3aqX379s6vunXruqLWEhwOh+69916tXr1aY8eO1ejRoyvlukWSkpKKPSBJLx4AAIB3MwxDE7/YpiNnz0mSOjWsob/0aWZyVagq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1axZU0FBQWrcuLGGDx+upKQks0vzWIZh6PPPP1efPn1Up04dVatWTS1bttSDDz6o/fv3m12e25s/f74efPBBderUSVarVRaLRfPmzbvo8enp6Xr88cfVsGFDWa1WNWzYUI8//jgzEZZTWe97fn6+PvvsM40ZM0atW7dWcHCwQkND1aVLF73++uuy2+2VX7wbK++f9wsdOHBAISEhslgseuihh1xbqIe5kvt+4MABjR071vlvTe3atdWnTx998skn5b4+Syi4qfj4eMXFxSkgIEDDhg1TWFiYPv/8c40cOVIHDx7U008/bXaJHue1117TCy+8oKZNm6p///6qVauWEhMT9eWXX+rLL7/Uhx9+qKFDh5pdpsfbuXOnnnnmGQUHBysrK8vscjyaYRh66KGH9Pbbb6tp06YaNmyYQkNDdezYMa1atUqHDh1ipmEXefLJJ/XKK6+oTp06GjJkiGw2mxISEjRr1ix9+OGH+uGHHxQbG2t2mW5r0qRJOnTokCIiIlSnTh0dOnToosdmZWWpV69e2rJli/r376/hw4crISFB//nPf7Ry5UqtXbtWwcHBlVi9+yrrfd+3b59uv/12hYaGqm/fvho8eLDS0tL0zTff6M9//rMWLVqkr776isnvyqg8f94vZBiG7rnnHhdX57nKe9+XLl2qIUOGSJJuueUWNWnSRGfPntWvv/6qZcuW6Y477ihfAQbcTn5+vtG0aVPDarUamzdvdranp6cbMTExhp+fn7Fnzx4TK/RMn332mbF69eoS7atXrzb8/f2N8PBwIycnx4TKvEdBQYHRuXNn47rrrjNGjRplSDLWr19vdlke67///a8hyfjzn/9sFBQUlNifn59vQlWe7/jx44aPj4/RqFEjIy0trdi+//znP4Yk45577jGpOs+wdOlS4+DBg4ZhGMb06dMNScbcuXNLPfaZZ54xJBlPPfVUqe3PPPOMq8v1GGW970eOHDFef/11Iysrq1h7Zmam0alTJ0OSsXDhwsoo2SOU58/7hf773/8afn5+xiuvvGJIMh588EEXV+pZynPfDx8+bNhsNqN58+bGoUOHSuy/ks9bhmu6oRUrVmjfvn0aMWKEOnbs6GwPDQ3VP/7xDxUUFGju3LkmVuiZbr31VvXo0aNEe48ePdSnTx+dOXNGW7duNaEy7/HCCy8oISFBc+bMka+vr9nleLRz585p6tSpatKkiV599dVS77efH4NBXOHgwYNyOBzq3r27bDZbsX2DBg2SJJ08edKM0jzGjTfeqIYNG172OMMwNHv2bIWEhOiZZ54ptm/ChAmqUaOG3nnnnQpfxNhTlfW+16tXTw8//LCqVatWrD04OFiPP/64JGnVqlUuqdETlfW+X2jv3r2aMGGCnnrqqWI/a6LsynPfn3/+eaWnp+vNN99UgwYNSuy/ks9bPqHdUHx8vCRpwIABJfYVtfGPX+Xy9/eXxA+9rrRt2zZNnTpVkyZNUkxMjNnleLylS5fqzJkzGjNmjOx2u77++mvt2bNH1atX14033qhmzZqZXaLHat68uQICArRu3TplZGQoNDTUue+7776TJPXt29es8rxKYmKijh07pri4uBJDMgMDA9WzZ0999dVX2rt3r5o3b25Sld6Fz1vXczgcuueee9SwYUM988wzWr9+vdkleTTDMLRw4ULVrFlTffv21c8//6xVq1bJ4XCoQ4cO6tu37xWtn8ffEDeUmJgoSaV+oNSoUUMRERHOY+B6hw8f1rJlyxQVFaW2bduaXY5HKigocD6A//e//93scrzCTz/9JKnwB6n27dtr9+7dzn0+Pj567LHH9O9//9us8jxazZo19dxzz2n8+PFq3bq1Bg8erNDQUG3dulXLli3TAw88oHHjxpldple41Ofthe2JiYmEvEoyZ84cSaX/ohsV49VXX9UPP/ygtWvXymq1ml2Oxztw4IDOnDmjzp076+GHH9abb75ZbH/Hjh319ddfq379+uU6L8M13VBaWpokKSwsrNT9NpvNeQxcKz8/X6NHj1Zubq5efPFFhhC6yPPPP+8cpln0W1y4VtFwwJdfflk2m02bNm1SRkaGVq9erRYtWujll1/WG2+8YXKVnuvJJ5/UBx98oLS0NL3xxht68cUX9f3336tz584aNWoUfw8qSVk+by88Dq719ttv6/vvv1ffvn118803m12OR9qzZ48mTZqkRx99VNdff73Z5XiFos/bzZs3a/78+Zo7d67OnDnjnGnzl19+0e23317u8xLygCvkcDh07733avXq1Ro7dqxGjx5tdkkeKSEhQdOmTdOTTz6pa665xuxyvIbD4ZAkBQQE6Msvv1Tnzp0VEhKiHj166NNPP5WPj49efvllk6v0XNOmTdOYMWM0YcIEJSUlKTMzU2vXrlVB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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1, 1, figsize=(9, 6))\n", + "ax.plot(MR[:,1]/km , MR[:,0]/Msun, lw=2)\n", + "\n", + "ax.set_ylabel(r\"M [$M_{\\odot}$]\", fontsize=16)\n", + "ax.set_xlabel(\"R [km]\", fontsize=16)\n", + "# ax.set_xlim(8.0, 20.0)\n", + "# ax.set_ylim(0, 3)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "ax.tick_params(top=1, right=1, which=\"both\", direction=\"in\", labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## Speed of sound EOS \n", + "\n", + "First import all the package that will be used." + ] + }, + { + "cell_type": "code", + "execution_count": 18, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "import TOVsolver.main as main\n", + "import matplotlib.pyplot as plt\n", + "from EOSgenerators import SpeedofSound_EOS\n", + "import EOSgenerators.crust_EOS as crust\n", + "from TOVsolver.unit import g_cm_3, dyn_cm_2, km, Msun" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The Speed of sound EOS describes the core EOS of a compact star, \n", + "so it should be connected with the crust EOS to form a full EOS.\n", + "See https://arxiv.org/abs/1812.08188 for details." + ] + }, + { + "cell_type": "code", + "execution_count": 19, + "metadata": {}, + "outputs": [], + "source": [ + "Tolos_crust_out = np.loadtxt(\"Test_Case/Tolos_crust_out.txt\")\n", + "eps_crust_T_out = Tolos_crust_out[:, 3] * g_cm_3\n", + "pres_crust_T_out = Tolos_crust_out[:, 4] * dyn_cm_2\n", + "eps_com, pres_com = crust.PolyInterpolate(eps_crust_T_out, pres_crust_T_out)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Defining the EOS parameters" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "To construct the Speed of sound EOS, we need to specify the outer crust EOS and \n", + "the interface EOS, and then connect them with the core EOS." + ] + }, + { + "cell_type": "code", + "execution_count": 20, + "metadata": {}, + "outputs": [], + "source": [ + "x_last = eps_com[-1]\n", + "y_last = pres_com[-1]\n", + "dydx_last = (pres_com[-1] - pres_com[-2]) / (eps_com[-1] - eps_com[-2])\n", + "CS_EOS = SpeedofSound_EOS.compute_EOS(x_last, y_last, dydx_last)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "In order to generate the parameters of the Speed of sound EOS, we need a list\n", + "of 5 uniform random numbers between 0 and 1.\n", + "\n", + "After generate the parameters, we use function `check_a` to check if the parameters\n", + "are valid." + ] + }, + { + "cell_type": "code", + "execution_count": 21, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "True\n" + ] + } + ], + "source": [ + "cs_a = CS_EOS.gen_a((0.2, 0.2, 0.3, 0.4, 0.5))\n", + "print(CS_EOS.check_a(cs_a))" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Solve TOV with this EOS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Here below we use the speed of sound EOS to compute the mass radius curve.\n", + "\n", + "First we calculate the core EOS." + ] + }, + { + "cell_type": "code", + "execution_count": 22, + "metadata": {}, + "outputs": [], + "source": [ + "core_e_min = x_last\n", + "core_e_max = 2e16 * g_cm_3\n", + "n_core_e = 1000\n", + "core_e = np.geomspace(core_e_min, core_e_max, n_core_e)\n", + "core_p = CS_EOS.cal_core_p(core_e, cs_a)" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Then we concat the core EOS with the crust EOS." + ] + }, + { + "cell_type": "code", + "execution_count": 23, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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xgMDA9W2bVutWrXKFa3bCA4OVlhYmFavXn1V18XExGj48OHKysqSv7+/Jk6cqJ49eyo7O1sLFizQJ598on379ql///6KioqSv7//Ze+Zn5+v++67T7m5uZo2bdplw565c+fKarXqgQceKPZgCACAssxqNTRn8x+a9sM+5RVY7erhwZX1aPdGujmsprw8TDsIFgAA4JqZdlqZ1WrVs88+qx9//FGNGzfW888/r1atWqlixYo6fvy4tm7dqmXLlmnbtm021508eVI//vijy/qcPHlyUbBVs2ZNHTp0SA0bNryqe4wdO1ZZWVny8PDQ6tWr1blz56Jar1691KRJE02YMEHx8fGaPn26Jk+efMn7Wa1WPfjgg9qwYYMefvhh3XfffZedP3fuXFksFj344INX1TsAAOXZkbPZev6bGP1y8JRdzcPNonG9Q/VYj8Zyd2OlEAAAKL1c8liZIzNnztS4ceMUERGh9evXX/SkraioKD399NPaunWr/P39dddddyk+Pl7r1693ccd/+ms4dCWPlUVFRSkiIkKS9Oijj+rjjz+2m2O1WtWyZUvt3btXVapU0YkTJ4r2ErqQYRh66KGHNGfOHN1777367LPP5OZ26Z9S/vDDD7r11lt18803a82aNVfwLq8ej5UBAMoSwzC0NPqIJn+3W+k5BXb1JjX89f6IcLWsW8mE7gAAQHnmjM/fpq19/vTTT2WxWDRx4sRLHsHesWNHbdq0SaNGjVJGRoYOHjxoWjB0LZYuXVr0+oEHHnA4x83NTaNGjZIknTlzRuvWrXM4z2q1asyYMZozZ47uuusuzZs377LBkMRG1AAAXI0zmXl68sudGrcwxmEwNKZrQy1/qivBEAAAKDNMC4cOHjwoSapXr95l57q7u2v27Nlq06aNfv75Z3311VfObq/YbNy4UZLk5+en9u3bX3Rejx49il5v2rTJrm61WvXQQw9p7ty5GjFihL744osr2jvo1KlT+u6771S1alXdcccd1/AOAAAoP9btS1HfGRsUGXfMrlanko++fOgGvTyguXw82b8PAACUHabtOeTv76+cnBwlJSWpbdu2l53v4eGhp556Sg899JC++uor3XXXXS7o8vrt3btXkhQSEnLJ4+abNWtmd81551cMzZs3T8OGDdP8+fOveFPpL774Qnl5ebr33nsvuULrcpKTky9ZP3bM/pto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8803ysnJUWBgoG666Saz47iFr6+vIiMj9b//+7968cUX9emnn+qdd94xOxYAAB6FcggAAFjO3r179cQTT6hLly6qUaOG/P39Va9ePbVr10733HOPZs2aZXbEcjEMQ++//75uueUW1atXTyEhIerYsaNmz56twsJC5eTkyMfHRzabTTNnziz1dYqvN9S7d28FBweXui41NVXTp09XXFycGjRooICAADVs2FDXX3+9pk2bpt27d7s8Z//+/Y4LXX/wwQeSpKVLl6pfv34KDw9XaGioOnfurAULFsgwDMfz8vLyNH/+fN1www2qW7eugoKCdO211+qzzz4r999T3759Jf1+ZzIAAPBfXHMIAABYyvTp0/WXv/xFRUVFTuNpaWlKS0vTrl27tGHDBj3++OMmJSyf1NRUDRw4UOvXr3ca3759uyZNmqSvvvpKL730kqNw6dixY4mvYxiGVq5cKenSp5S9+uqreu6555STk+M0fuLECZ04cULr16/XqlWr9PPPPzvNb9261fG4cePG6tevn9MFt4vXjBkzRseOHdPUqVO1d+9eDRs2zOm5kvTLL79o4MCBWrp0qYYMGVJq1osdP35ckkq81T0AAFbGT0YAAGAZc+fO1ZQpUyRJnTp10ujRo9WhQwdVr15dp06d0tGjR7VhwwbVqlXL5KRlk5mZqRtvvFG7d++WzWbTPffco+HDh6tRo0Y6ePCgXn75Zf3rX/9Sbm6u4zmdOnUq8bU2bdrkKE8GDBhQ4pqxY8cqISFBktSkSRONHTtW3bt3V61atfTbb79pzZo1SkxMVNeuXV2eu23bNsfjJ598Utu3b9fEiRN1++23Kzg42FFi5efn6+WXX9bgwYPVp08f5efn64UXXlDv3r1VVFSkDz/8UHPmzJEk/eUvf3Eph7Zu3armzZurRo0aTuNnzpxx/Nv379//Un+tAABYDuUQAACwjJdeekmSdPfdd2vp0qXy8XE9w/7BBx+s7FhXbPz48dq9e7f8/Pz0ySefOB3x06VLF/Xr109t27bV999/L0mqX7++IiIiSnyt4ruUderUSY0bN3aZf/nllx3F0MiRI/XOO+8oICDAaU2/fv307LPP6siRIy7Pv/Don/3792v9+vVORVW3bt2Ul5enl19+WXl5eerevbsiIiL0zTffqFGjRo51N9xwg06cOKFPP/1Ue/bsUVpamurWreuYT0xMVEJCguLi4tSsWTOFhITo8OHDWrlypTIzM3X33Xfr3nvvLe2vFAAAS+KaQwAAwBLOnTuno0ePSpJuueWWEoshb7J27Vq99957kqRp06aVeCpYSEiIHnvsMcfHpR01JP33ekMlvc6vv/6qqVOnSvq9AEpMTHQphooFBwerbdu2LuMXHjmUkJBQYpY+ffo4Hufm5mrp0qVOxVCxCy+WnZGR4TQ3ePBgDRkyRPv379fixYs1a9Ysff/99+rRo4fef/99ffTRR17/bw8AgLtx5BAAALCE0NBQ1alTR6dPn9YLL7yg2rVrq1evXqpTp45sNpvZ8crthRdekCQ1bdpUTz/9dKnr2rVr53hc2vWGUlJStHnzZkkll0OTJ09WUVGRQkNDtWjRonKXK2fOnHEq5u66664S1/n6+joe/+lPf1L79u1LXGe32x2PLz59rEePHurRo0e58gEAYHX8twkAALAEHx8fJSYmKjg4WMeOHdPgwYNVr149x128lixZYnbEMjtx4oS++eYbSdJDDz10yQssX1ielHbkUPFRQxEREYqOjnaaO3nypP71r39JkiZMmKD69euXO++FRw0NGzas1HX79u0r07r9+/dLksLCwpxOKQMAAFeGcggAAFhG37599fbbb5dYKHTo0MGERFemuKyRpFtvvfWSa8+cOeN4XNqRQ8XXG7rttttcjqJasWKF405n5bkz2IUuvN7QpfIWl0j16tVTTEzMZdd5078ZAACejNPKAACAJWzevFkjR47Url271KdPH91///1q3ry5atasKUmKiooyN2A5FJctAQEBpZ56VWznzp2SpMDAwBKvBZSTk6PvvvtOUsmnlO3YsUOS5O/v73JUUVkVlzkNGzZUeHh4qeu2bNki6dLXRrrw9S63DgAAlA3lEAAAqPIOHz6sPn36KD09XW+88YYefvhhsyP9ISdPnpT0+xE2l/P1119L+v3aQxde06fYN998o5ycHAUGBjpd6PnizxUeHn7F12YqLrM6d+5c6hrDMMpU+hw5ckRnz5697DoAAFB2nFYGAACqvOnTpys9PV3XXnut1xdDkpSXlyfp9zuwXUpycrLjNvalFSnFp5T17t1bISEhLvO5ubmSpPz8/CvKWlBQoN27d18yg/T7dYQyMzMlXbpEuvAUNcohAADcg3IIAABUeWvWrJEktWrVyuQk7lF8Uehz58457gJ2MbvdrkceecRxvaCSrjdkGIZWrlwpqeRTyqTfTwWTpNTUVB05cqTcWXft2uUoli5V+hSfUiZduvQpLof8/Px0zTXXlDsPAABwRTkEAACqvOzsbEnS999/r7S0tFLX5ebmOo7K8WTdunVzPJ4+fbrLfFFRkR555BHHHc2kkguXTZs26fjx45KkAQMGlPi54uLiHI///Oc/O8qmixUUFDjdbazYhXcqK8sRQUFBQWrTpk2p64pfr23btgoICCh1HQAAKDuuOQQAAKq866+/XocPH9bx48d17bXX6tFHH1V0dLRCQkL022+/6fjx4/rhhx+0fPlyHT161ONLhyFDhuipp57S2bNn9dZbb6mgoED33nuvQkNDtWvXLr355pvauHGjmjZt6jjap6Q7exXfwr5Tp05q3LhxiZ9r0KBBatu2rZKTk7VkyRIdO3ZMY8eO1VVXXSXDMHTo0CGtWbNGy5Yt0+TJkzVx4kSn5xeXPjVq1FDz5s1L/ZqKjxzq0KFDiddGuvj1OKUMAAD3oRwCAABV3vTp07V+/XodOnRIBw4ccCkwirVu3VrVq1ev3HBXICwsTAkJCRo2bJgKCwuVkJCghIQEx7yvr6+mTJmi7OxszZ49W1FRUapRo4bL6xRfb6i0U8qk30/f+uyzz9S/f38dOHBAq1ev1urVq0tcW1Jhc+FFpi91QeuylD7nzp3TwYMHL7sOAACUD+UQAACo8po1a6YdO3Zo3rx5WrFihX799VedPXtW1apVU3h4uFq0aKEePXqof//+Zkcts0GDBmnNmjV68cUX9dNPPyk3N1eNGjVSnz599NBDD6ljx47q2rWrJOmGG25weX5KSorjaJ1LlUOS1KZNG23dulXz5s3T8uXL9euvv+r8+fOqU6eOGjZsqG7duun2229Xjx49XJ5bljuQ/fbbb467ol1q3fbt2x2ntVEOAQDgPjajtBPHAQAAUOni4+O1aNEiNWvWTIcOHbri19m5c6fat28v6ffb1ffp08dpfu7cuRo/frwiIiJ0/PjxK75NfVVV/Pfx3HPPadq0aeaGAQCggnHkEAAAgAcqKCjQzp07HR9fddVV8vf3L9Nz7Xa7Jk2aJOn3o3569+7tsqb4ekO33XYbxZCkrKwsxylrAABYDeUQAACABzp+/LjjyB9JOnjwoCIjIyVJ//nPf9SyZcsSn5ebm6uHHnrIcaey1157rcTyp2fPnuratavuvPNO94f3QklJSU53ZgMAwEoohwAAALzMkCFDFBAQoOHDh6tTp06qUaOGzp49q59//lnvvPOO4wiYxx9/vNTrCU2ePLkyIwMAAA/GNYcAAAC8SGFhoUJDQ5WXl1fqGj8/P02bNk1TpkzhlDEAAHBZlEMAAABepLCwUMuWLdPnn3+uLVu26NSpU8rIyFBYWJhatWqlPn36aPz48WratKnZUQEAgJegHAIAAAAAALAwH7MDAAAAAAAAwDyUQwAAAAAAABZGOQQAAAAAAGBhlEMAAAAAAAAWRjkEAAAAAABgYZRDAAAAAAAAFkY5BAAAAAAAYGGUQwAAAAAAABZGOQQAAAAAAGBhlEMAAAAAAAAWRjkEAAAAAABgYZRDAAAAAAAAFkY5BAAAAAAAYGGUQwAAAAAAABZGOQQAAAAAAGBhlEMAAAAAAAAWRjkEAAAAAABgYZRDAAAAAAAAFkY5BAAAAAAAYGGUQwAAAAAAABZGOQQAAAAAAGBh/x95MQdU8vZ5DQAAAABJRU5ErkJggg==", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "full_e = np.concatenate((eps_com, core_e[1:]))\n", + "full_p = np.concatenate((pres_com, core_p[1:]))\n", + "plt.figure(dpi=200)\n", + "plt.plot(full_e / g_cm_3, full_p / dyn_cm_2)\n", + "plt.xscale(\"log\")\n", + "plt.yscale(\"log\")\n", + "plt.xlabel(r\"$\\epsilon\\quad [g/cm^3]$\")\n", + "plt.ylabel(r\"$P\\quad [dyn/cm^2]$\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Finally we compute the mass radius curve." + ] + }, + { + "cell_type": "code", + "execution_count": 24, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "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//33MpvNni4VKJDdbs8W/tx+++166aWX1LBhQyUkJGjjxo16//33lZSUpMmTJysiIkKvvPKKh6tGRRcZGalGjRpp1apVRb729ddfd4Y/d911l0aOHKn69evryJEjevfdd7Vjxw59+umnCgsL01tvvVXapQNuFeeZvnLlijP8ad26tbp06aJmzZqpWrVqOnfunBYsWKAZM2YoISFBffv2VaVKlfTwww+X1VsAnEryMzqnHTt2aMqUKfLz85PZbHYbeAJlqSTPs81mU48ePbRixQpJUtu2bfXkk0+qUaNGMplMOn78uHbt2qX58+eXdtkoKgfgxv79+x2+vr4OSY62bds6Ll26lGdbq9V6HSsDiufbb791SHJIcrRq1cpht9tztdm2bZvDbDY7JDmqVq3qSEtL80ClqOjGjBnj+P777x1//fWXw+FwOI4dO+Z8dvv371+oPg4fPuwwmUwOSY5mzZo5kpOTs51PSkpyNGvWzCHJYTKZHH/88Udpvw3AqaTP9C+//OLo3bu3Y9++fXm2WbRokcNgMDgkOerXr+/IyMgorfKBbErjZ3ROdrvd0bRpU4ckx5tvvumoXbu2Q5Kjdu3apVc44EZpPc9vvPGG87pJkybl29Zms5WkZJQQawDBreHDh8tqtSo0NFQLFixQ5cqV82xrsViuY2VA8fzyyy/O41dffVU+Pj652jRt2lRdunSRlDmt4ODBg9etPiDLuHHj1KVLlxINy548ebLsdrsk6cMPP5S/v3+28wEBAfrwww8lZY6OmzJlSrHvBRSkpM/03//+d3399de69dZb82zTvXt39ezZU5J05MgR7dy5s1j3AgpSGj+jc5o6daq2b9+uhg0batSoUaXWL1CQ0niejx49qgkTJkiSBgwYoJdffjnf9swe8SwCIORy8OBBrVmzRpL03HPPKTQ01MMVASVns9mcx/Xq1cuzXf369Z3HVqu1TGsCyoLD4dDixYslSbfccotatmzptl3Lli3VsGFDSdKiRYtyzdcHypv77rvPeXzkyBEPVgIU3vHjxzVmzBhJ0rRp0/jDKsqdTz/9VGlpaTIYDM5nGTcuAiDk4jo3s1evXs7jixcv6vDhw7kWhAbKg6ioKOfx0aNH82yX9aHBYDCoQYMGZV4XUNqOHTumkydPSpLat2+fb9us83Fxcfrzzz/LujSgTLmG9kYjv+KifBg2bJiSkpLUr1+/bCEmUF5kfXZs1qyZ6tatK0nKyMhQXFycjh07ppSUFE+Whxz4vyNyydoGu3LlymrUqJG+/PJL3XHHHQoJCVFUVJRCQ0NVr149jRs3TomJiR6uFiicPn36KDg4WJI0ceJEpaen52qzY8cOLVu2TJL02GOPOdsD5cmBAwecx7fccku+bV3Pu14HlEfr1q1zHhf07AM3gnnz5mn58uWqWrWqJk2a5OlygCI7d+6c8w+rrVq10pUrV/TCCy8oNDRUkZGRqlevnoKDg9W+fXvn79jwLAIg5LJ//35JUp06dTR8+HA98cQT2r17d7Y2x44dU3R0tFq1aqVTp055okygSMLCwjR79mz5+/vrl19+0T333KM5c+YoJiZGq1ev1rhx49S+fXvZbDbdeeed+uCDDzxdMlAssbGxzuNatWrl2zYyMtLtdUB5s2vXLueHi9tuuy3f9YKAG8HFixf1wgsvSJImTJig8PBwzxYEFEPW50ZJ8vf31913362pU6fq4sWLztftdrvWr1+vLl266KWXXvJEmXBBAIRcLly4IClzLaD//ve/qlKliqZPn66zZ88qNTVVW7dudW6vunfvXvXq1UsZGRmeLBkolB49emjbtm0aNGiQdu7cqf79+6tVq1bq0KGDoqOjFRAQoA8++EAbN25UjRo1PF0uUCyuWwcHBQXl2zYwMNB5zIhOlFdWq1WDBw92jux8++23PVwRULBXXnlFZ86cUatWrfT00097uhygWLI+N0rSlClTdOTIEf3973/XunXrlJycrAsXLujLL79URESEpMxNKqZPn+6pciECILiRlJQkKfMXKh8fH61YsUJDhgxRWFiYfH191axZMy1dutQZAm3atEkLFizwZMlAoaSlpemrr77S999/73bB2zNnzmju3Llau3bt9S8OKCWpqanO44IWE/X19XUeM0cf5dVzzz2nbdu2SZL69++vbt26ebgiIH/r16/X//73P5lMJk2fPl0Gg8HTJQHFkvW5Ucr87Ni0aVOtWbNG7dq1k7+/v6pWraq+fftq3bp1zj86jRkzht85PIgACLn4+fk5j3v16uV2Bxmj0aj33nvP+f3cuXOvS21AcSUlJemBBx7Q+PHjdf78eY0cOVIHDhyQ1WrV5cuXtWrVKrVp00Zbt25V165dNXXqVE+XDBSL689w193v3HFdNDfnVvFA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6tVLcXFxevXVV/XQQw8pICBAGzdu1NixY3XlyhUNGjRIzZo1U5cuXZSSkqLx48erffv2MpvNWrlypcaPHy+r1aqBAwfq8OHDslgs1/HdAgDgOQRAAADAK0yaNMl5/Oijj7ptM3jwYI0dOzbXzk533323unfvruHDh6tly5Y6efKk3n77bX3++ee5+nj22Wdlt9tlNpu1atUqtWvXznmuefPm6tmzp1q2bKldu3aV0jsrnm+//VYZGRkKDAzU5s2bVb169Wzn27Rpo4EDB+ry5csKCAjwSI3z5s3Tk08+qbS0NN1zzz1asWKFqlWrlu81O3fu1Lp169SiRQvna82aNVNUVJQ6d+6shIQEtWjRQg6HQ1u2bFH9+vWd7Zo3b67Q0FA9++yzOnHihJYtW5bvSC8AALwJawABAIBy6/z589q4caM6deqkuXPnSpJatWqlxx57zG37OnXq5Lutd61atfTKK69Iktu1cbZs2aLt27dLkoYMGZIt/Mly00036f333y/W+ylNf/31lyQpKioqV/jjqnLlyjIar/+vhNOmTdPjjz+utLQ03X///frpp58KDH8k6YUXXsgW/mTp1KmTateuLUk6d+6c3nrrrWzhT5aBAwfKz89PkrRhw4YSvgsAAMoPAiAAAFBujBs3zrkYsMFgUGhoqNq2basVK1bIZDLpiSee0MqVK/MNeVxduXJFx44d0759+7R3717t3bvXORom65yr1atXO48HDhyYZ789evRQlSpViv4GS1FERISkzKlxW7Zs8WgtOY0fP17Dhg1TRkaGHnnkES1fvrzQaxDlFe5J0u233y4pc4Ht3r17u23j7+/vXF/o6NGjRawcAIDyiwAIAAB4haioKI0cOVLBwcH5tjt+/LiGDx+uOnXqqHLlyqpXr54aN26sJk2aqEmTJnrmmWecbePj47Ndu2fPHkmZ285nhQ3umM1m3XXXXSV4NyXXp08fmc1mWa1WtW7dWl27dtX06dO1b98+j+769dJLL+n111+XJA0YMEDffvutfH19C319VFRUnueyQrfQ0FBVrVq1wHYJCQmFvi8AAOUdARAAACg3hg4dqj179mjPnj3asWOHli1bpiFDhshsNmv//v269957dejQoTyvX7FihW699VZ99NFHOn78eIH3S0lJyfb9xYsXJUkhISF57jSWJb9pV9fDLbfcorlz56pq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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "MR = main.OutputMR(\"\", full_e, full_p)\n", + "plt.figure(dpi=200)\n", + "plt.plot(MR[:, 1] / km, MR[:, 0] / Msun)\n", + "plt.xlim(6, 17)\n", + "plt.ylim(0, 2)\n", + "plt.xlabel(\"Radius [km]\")\n", + "plt.ylabel(\"Mass [Msun]\")\n", + "plt.show()" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## MIT bag model EOS" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "The MIT bag model, which has commonly been applied to strange quark stars, relates pressure to energy density with the simple equation of state $p=\\frac{\\epsilon}{3}-\\frac{4B}{3}$. There is only one parameter, the \"bag constant\" $B$. This represents the vacuum energy density, which creates a \"bag\" in which quarks are confined. See [Chodos et al. (1974)](https://doi.org/10.1103/PhysRevD.9.3471)." + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [], + "source": [ + "import numpy as np\n", + "from EOSgenerators import MITbag_EOS\n", + "from TOVsolver.unit import MeV, fm, g_cm_3, dyn_cm_2, km, Msun" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (a) Defining the parameter" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "A \"typical\" value of 57 $MeVfm^{-3}$ for the bag constant is taken from [Alcock (1986)](http://dx.doi.org/10.1086/164679)." + ] + }, + { + "cell_type": "code", + "execution_count": 6, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "energy density range: 1.1554421785237932 to 2.888605446309483\n", + "pressure range: 0.0 to 0.5777210892618965\n" + ] + } + ], + "source": [ + "B = 57\n", + "\n", + "epsilon,p = MITbag_EOS.MITbag_compute_EOS(B)\n", + "\n", + "print('energy density range:',epsilon[0],'to',epsilon[-1])\n", + "print('pressure range:',p[0],'to',p[-1])" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### (b) Computing the mass-radius relation" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can compute a mass-radius relation for this EOS by solving the TOV equation." + ] + }, + { + "cell_type": "code", + "execution_count": 8, + "metadata": {}, + "outputs": [], + "source": [ + "import matplotlib.pyplot as plt\n", + "import TOVsolver.main as main\n", + "import TOVsolver.EoS_import as EoS_import\n", + "from itertools import repeat" + ] + }, + { + "cell_type": "code", + "execution_count": 9, + "metadata": {}, + "outputs": [], + "source": [ + "MR = main.OutputMR('',epsilon,p).T" + ] + }, + { + "cell_type": "code", + "execution_count": 11, + "metadata": {}, + "outputs": [ + { + "data": { + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3kAAAJOCAYAAAAK+M50AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjguMCwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy81sbWrAAAACXBIWXMAAA9hAAAPYQGoP6dpAACBfklEQVR4nOzdd3hUVf7H8c+kTXpICJ1A6CX0ptIjAgqKWOmKIoq7uiu2XUQFVhTLVhc7CgiLgAr+XFYRAQMGAamhdxJCqKEkISGTZHJ/f2CGDAmQkHIzk/frefKYe277DkNwPjnnnmMxDMMQAAAAAMAteJhdAAAAAACg9BDyAAAAAMCNEPIAAAAAwI0Q8gAAAADAjRDyAAAAAMCNEPIAAAAAwI0Q8gAAAADAjRDyAAAAAMCNeJldQGWQm5urY8eOKSgoSBaLxexyAAAAALggwzCUlpam2rVry8Pj6v11hLxycOzYMUVERJhdBgAAAAA3kJiYqLp16151PyGvHAQFBUm69GYEBwebXI2UmpqqiIiIClMPyg/vfeXFe1958d5XXrz3lRfvvfvKe2/z8sXVEPLKQd4QzeDg4Ar1g1bR6kH54b2vvHjvKy/e+8qL977y4r13X9d7BIyJVwAAAADAjRDyAAAAAMCNEPIqIavVqkmTJslqtZpdCsoZ733lxXtfefHeV16895UX7z0shmEYZhfh7lJTUxUSEqKUlJRrjou22+3Kzs4ux8qAisnb21uenp5mlwEAAFChFDVXMPFKBWAYhk6cOKHz58+bXQpQYVSpUkU1a9ZkbUkAAIBiIuRVAHkBr3r16vL39+dDLSo1wzCUkZGhU6dOSZJq1aplckUAAACuhZBnMrvd7gh4VatWNbscoELw8/OTJJ06dUrVq1dn6CYAAEAxMPGKyfKewfP39ze5EqBiyfuZ4DlVAACA4iHkVRAM0QSc8TMBAABwY1wq5CUlJemf//yn+vXrp3r16snHx0c1a9bUfffdp/Xr1xfrWrm5uZo+fbratGkjPz8/VatWTQ8++KD2799/1XM2bNigAQMGKDQ0VAEBAerSpYvmzZtX0pcFAAAAAKXGpULev//9b40fP16HDh1S37599dxzz6l79+76v//7P3Xt2lULFy4s8rXGjRunp59+Wna7XU8//bQGDBigb7/9Vp07d9auXbsKHB8TE6Pu3bvr559/1v33368nn3xSycnJGjFihN54443SfJlAmXnvvfcUGRkpLy8vvfDCC2aXAwAAgLJguJCvv/7aWL16dYH21atXG97e3kZYWJiRmZl53eusXLnSkGT06NHD6fjly5cbFovF6Nmzp9Px2dnZRqNGjQyr1Wps3rzZ0Z6ammpERUUZXl5exr59+656v5SUFEOSkZKSUmDfxYsXjV27dhkXL168bt0VzcMPP2xIcnyFhYUZ/fv3N+Li4srsnpMmTXK6pySjRo0ajv3169cvsF+S8bvf/e66137vvfeMyMhIw2q1Gh06dCjwd+16+wuT92f0xBNPFNj35JNPGpKMhx9++Pov3DCMO++80+jTp0+h+3755RdDkrFp06arnr99+3bDy8vLWLJkiXHs2DEjPT29SPe9mg4dOhhRUVEFvpKSkgoc+/777xutW7c2goKCjKCgIOPmm282vvvuu2te35V/NgAAAMrCtXJFfi7Vk3fvvfeqR48eBdp79Oih6OhonT17Vtu3b7/udT755BNJ0tSpU2W1Wh3tffr0Uf/+/bV69Wrt27fP0b5y5UodPHhQw4cPV/v27R3tQUFBeuWVV5STk6OZM2eW5KW5rNtvv13Hjx/X8ePHtWLFCnl5eenOO+8s03tGRUU57nn8+HGn93zDhg1O+3788UdJ0gMPPHDNay5YsEDPPPOMJk6cqC1btqhHjx664447dOTIkSLtv5aIiAjNnz9fFy9edLRlZmbqiy++UL169Yr8useMGaOVK1cqISGhwL7PPvtM7dq1U4cOHa56/rfffquOHTtq4MCBqlWrVokn+9m0aZN27NhR4Kt27doFjq1bt67efPNNbdy4URs3btStt96qu+++Wzt37ixRDQAAACjIpULetXh7e0uSvLyuvypETEyMAgIC1K1btwL7+vfvL0latWqV0/GS1K9fvwLH57XlP74ysVqtqlmzpmrWrKl27drpT3/6kxITE3X69Okyu6eXl5fjnjVr1lS1atUc+6pVq+a0b8mSJWrUqJF69ep1zWv+/e9/15gxY/TYY4+pRYsW+uc//6mIiAh98MEHRdp/LR06dFC9evW0aNEiR9uiRYsUERHh9EsD6dIacW+//bYaNmwoPz8/tW3bVl999ZUk6c4771T16tU1a9Ysp3MyMjK0YMECjRkz5qo1NGrUSBMnTtT69etlsVg0atQoxcfHy2KxaNGiRerZs6f8/PzUsWNHxcfHKyYmRl26dJG/v7/jFyglcdddd2nAgAFq2rSpmjZtqtdff12BgYFat25dia4LAACAgtwi5B05ckTLly9XzZo11bp162sem56eruPHj6tBgwaFrr3VpEkTSXKagCXv+7x9+YWGhio8PPyaE7bkSU1Ndfqy2WzXPceVXLhwQf/5z3/UuHHjq67598YbbygwMPCaXz///PM177N//37Vrl1bDRo00NChQ3Xo0KFCj8vKytLcuXP16KOPXnOmxqysLG3atKlAiO/Xr59++eWX6+4vikceecSpt/ezzz7To48+WuC4l19+WTNnztQHH3ygnTt3avz48Ro5cqRWrVolLy8vPfTQQ5o1a5YMw3Cc8+WXXyorK0sjRoy46v3Xrl2rhg0b6p133tHx48f1/vvva+vWrZKk999/X2+88YbWrl2rM2fOaNSoUXrrrbf03nvvKSYmRtu3b9enn35apNdZFHa7XfPnz1d6erpuueWWUrsuAACAu7HZbAUyRFG4/GLo2dnZGjVqlGw2m95+++3rLpqckpIiSQoJCSl0f3BwsNNxRT3n6NGj1601IiLCaXvSpEn685//fN3zKrIlS5YoMDBQ0qUAXatWLS1ZskQeHoX//mDcuHF68MEHr3nNOnXqXHXfTTfdpM8//1xNmzbVyZMnNXXqVHXt2lU7d+4sECy/+eYbnT9/XqNHj77m/ZKTk2W321WjRg2n9ho1aujEiRPX3V8Uo0aN0oQJExy9Z2vWrNH8+fMdvcTSpT+/v//971q5cqUj/DRs2FCxsbH66KOP1KtXLz366KN65513FBMTo+joaEmXAuO9996r0NDQq94/MDBQ8fHx6t69u2rWrClJiouLU2hoqObPn6/w8HBJUnR0tFauXKldu3YpICBAktS5c+civ85r2b59u2655RZlZmYqMDBQixcvVsuWLUt8XQAAAHc1bdo0TZkypdjnuXTIy83N1aOPPqrVq1dr7NixGjVqlNklXVNiYqIjREqXhjrm75HJc9e/Y3U6rfx7+aoFWfXfp7sX65zo6GjHkMWzZ8/q/fff1x133KFff/1V9evXL3B8WFiYwsLCbrjGO+64w/F969atdcstt6hRo0aaPXu2nn32WadjP/30U91xxx2FPiNWmCt7+wzDcGq73v5rCQ8P18CBAzV79mwZhqGBAwc6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psC+H374ocB1Suu+AAAAAFDWXG4x9GbNmikpKUnr1q1Tu3btJDkvSr5z507H0gfJyclKTk5WeHi4wsPDHdfJvxj68uXL5ePjI+nai6EX575XcufF0AEAAACUj6LmCpfqyfPy8tKMGTOUm5urHj166PHHH9fzzz+vtm3baufOnZo8ebJT0Jo+fbpatGih6dOnO10nOjpajz32mH7++We1b99eL774oh5++GENHDhQwcHB+uCDD0p0XwAAAAAwi0uFPOlSQIuNjVX37t21cOFCvf/++6patarmzp2riRMnFvk6H330kd59911ZLBa9++67+t///qe77rpLv/76q1q2bFlm9wUAAACAsuRSwzVdFcM1AQAAAJSUWw7XBAAAAABcGyEPAAAAANwIIQ8AAAAA3AghDwAAAADcCCEPAAAAANwIIQ8AAAAA3AghDwAAAADcCCEPAAAAANwIIQ8AAAAA3AghDwAAAADcCCGvErLZbJo8ebJsNpvZpaCc8d5XXrz3lRfvfeXFe1958d7DYhiGYXYR7i41NVUhISFKSUlRcHCw2eVUuHpQfnjvKy/e+8qL977y4r2vvHjv3VdR31t68gAAAADAjRDyAAAAAMCNeJldQGWQNyI2NTXV5EouyaujotSD8sN7X3nx3ldevPeVF+995cV7777y3tPrPXHHM3nl4OjRo4qIiDC7DAAAAABuIDExUXXr1r3qfkJeOcjNzdWxY8cUFBQki8VidjkAAAAAXJBhGEpLS1Pt2rXl4XH1J+8IeQAAAADgRph4BQAAAADcCCEPAAAAANwIIa8S2bBhgwYMGKDQ0FAFBASoS5cumjdvntlloQwlJSXpn//8p/r166d69erJx8dHNWvW1H333af169ebXR7K2dtvvy2LxSKLxaJ169aZXQ7KweLFi9W3b19VrVpVfn5+atCggYYNG6bExESzS0MZMQxDixYtUnR0tGrVqiV/f381a9ZMTzzxhA4dOmR2eSgFc+fO1RNPPKFOnTrJarXKYrFo1qxZVz0+NTVVzz77rOrXry+r1ar69evr2WefZeZNN8czeZVETEyM+vfvLx8fHw0dOlQhISFatGiRDh8+rNdff10vvfSS2SWiDPz5z3/WW2+9pUaNGqlXr16qXr269u/fr2+++UaGYeiLL77Qgw8+aHaZKAe7d+9W+/bt5eXlpfT0dK1du1Y333yz2WWhjBiGoXHjxunjjz9Wo0aN1L9/fwUFBenYsWNatWqV/vOf/6h79+5ml4ky8Nxzz+nvf/+7atWqpbvvvlvBwcGKi4vTsmXLFBgYqF9++UWtWrUyu0yUQGRkpBISEhQeHq6AgAAlJCRo5syZGj16dIFj09PT1b17d23dulV9+/ZVhw4dFBcXp6VLl6pdu3aKjY1VQEBA+b8IlD0Dbi87O9to1KiRYbVajc2bNzvaU1NTjaioKMPLy8vYt2+fiRWirHz99dfG6tWrC7SvXr3a8Pb2NsLCwozMzEwTKkN5ysnJMTp37mx06dLFGDlypCHJWLt2rdlloQz961//MiQZv//9742cnJwC+7Ozs02oCmXt+PHjhoeHhxEZGWmkpKQ47fvHP/5hSDIeeeQRk6pDafnxxx+N+Ph4wzAMY9q0aYYkY+bMmYUe++qrrxqSjBdffLHQ9ldffbWsy4VJGK5ZCaxcuVIHDx7U8OHD1b59e0d7UFCQXnnlFeXk5GjmzJkmVoiycu+996pHjx4F2nv06KHo6GidPXtW27dvN6EylKe33npLcXFx+uyzz+Tp6Wl2OShjFy9e1JQpU9SwYUP985//LPQ99/LyMqEylLX4+Hjl5uaqW7duCg4Odto3cOBASdKpU6fMKA2l6LbbblP9+vWve5xhGJoxY4YCAwP16quvOu2bMGGCQkND9emnn153UW24JkJeJRATEyNJ6tevX4F9eW2rVq0qz5JQAXh7e0viw56727Fjh6ZMmaKXX35ZUVFRZpeDcvDjjz/q7NmzGjx4sOx2uxYtWqQ333xTH374oQ4cOGB2eShDTZo0kY+Pj9asWaO0tDSnfd99950k6dZbbzWjNJhg//79OnbsmLp161ZgSKavr6969uyppKQk/l1wU3y6qwT2798v6dI//lcKDQ1VeHi44xhUDkeOHNHy5ctVs2ZNtW7d2uxyUEZycnI0evRotWjRQn/+85/NLgflZOPGjZIu/QKnbdu22rt3r2Ofh4eHxo8fr7/+9a9mlYcyVLVqVb3++ut64YUX1KJFCw0aNEhBQUHavn27li9frscff1xPP/202WWinFzr81/+9v3791/1GLguQl4lkJKSIkkKCQkpdH9wcLCOHj1aniXBRNnZ2Ro1apRsNpvefvtthu+5sTfeeENxcXFav369o+cW7i9vON7f/vY3dejQQb/++qtatGihLVu26PHHH9ff/vY3NWrUSE8++aTJlaIsPP/886pdu7aeeOIJffDBB472rl27auTIkfxbUIkU5fNf/uPgXhiuCVQiubm5evTRR7V69WqNHTtWo0aNMrsklJG4uDhNnTpVzz//vDp06GB2OShHubm5kiQfHx9988036ty5swIDA9WjRw999dVX8vDw0N/+9jeTq0RZmTp1qkaPHq0JEyYoMTFRFy5cUGxsrHJychQdHa1FixaZXSKAckDIqwTyfoNztd/UpKamXvW3PHAfhmFo7Nixmjt3rkaOHKkPP/zQ7JJQhh5++GE1atRIkydPNrsUlLO8f887deqk2rVrO+2LiopSw4YNdfDgQZ0/f96E6lCWVq5cqVdeeUVPPfWUXnrpJdWtW1cBAQHq1q2blixZIj8/P40fP97sMlFOivL5L/9xcC+EvEog/5jrK507d07JycmMxXZzubm5GjNmjD777DMNGzZMs2bNkocHP/7uLC4uTnv27JGvr69jAXSLxaLZs2dLkm655RZZLBZ988035haKUtesWTNJUpUqVQrdn9d+8eLFcqoI5eV///ufJCk6OrrAvmrVqql169Y6cuSIkpOTy7s0mOBan//yt/MZ0D3xTF4l0KtXL02bNk3Lli3T0KFDnfYtW7bMcQzcU25urh577DHNnDlTQ4YM0Zw5c3gOrxIYM2ZMoe2rV6/W/v37NWjQIFWrVk2RkZHlWxjKXN4H/N27dxfYl52drQMHDiggIEDVqlUr79JQxrKysiRJp0+fLnR/XrvVai23mmCeJk2aqHbt2lqzZo3S09OdZtjMzMzU6tWrVbt2bTVu3NjEKlFmTF6nD+UgOzvbaNiwoWG1Wo0tW7Y42vMvhr53717zCkSZsdvtxujRow1JxgMPPMACyDAefvhhFkOvBPr162dIMj755BOn9r/85S+GJGPkyJEmVYay9MUXXxiSjKioKOP8+fNO+2bNmmVIMjp27GhSdSgLLIaOq7EYBisgVgY//fST+vfvL6vVqmHDhik4OFiLFi3S4cOHNXXqVE2cONHsElEGJk+erClTpigwMFB//OMfC10Tb/DgwWrXrl35FwdTjB49WrNnz9batWt18803m10OysjBgwfVtWtXnTp1SgMHDlTz5s21ZcsWrVy5UvXr19e6detUs2ZNs8tEKbPb7brtttsUExOjatWqadCgQQoNDVVcXJx+/PFHWa1WLV++XN27dze7VJTAjBkzFBsbK0navn27Nm/erG7dujl65AYPHqzBgwdLktLT09W9e3dt3bpVffv2VceOHRUXF6fvv/9e7dq1U2xsbIE19OAmzE6ZKD/r1683br/9diMkJMTw8/MzOnXqZMydO9fsslCG8nptrvV1td/+wT3Rk1d5HDlyxBg9erRRs2ZNw9vb24iIiDB+//vfGydPnjS7NJShzMxM46233jI6dOhg+Pv7G15eXkadOnWM4cOHG9u3bze7PJSC6/2/fdKkSU7Hnz9/3hg/frwRERHh+Ldg/PjxBXp74V7oyQMAAAAAN8L0egAAAADgRgh5AAAAAOBGCHkAAAAA4EYIeQAAAADgRgh5AAAAAOBGCHkAAAAA4EYIeQAAAADgRgh5AAAAAOBGCHkAAAAA4EYIeQAAlIHevXvLYrE4viIjIwsck7fPbN98841TrRaLRTExMWaXBQC4QYQ8AEClFhkZWSDg+Pr6qkGDBho5cqQ2bNhQouu3atVK3bp1U+fOnUup4tJXtWpVdevWTd26dVNwcLDZ5QAASshiGIZhdhEAAJglMjJSCQkJatKkiapXry5JSklJ0YEDB5SZmSlPT0/NnDlTo0aNKtZ1e/furVWrVumnn35S7969Cz0mrxevIv2vuCh1AwAqNnryAACQ9NJLLyk2NlaxsbHavn27jh07pvvvv192u12///3vde7cObNLBACgSAh5AAAUIjQ0VJ9++qkCAgKUlpamZcuWmV0SAABFQsgDAOAqgoOD1bRpU0lSfHx8ud3XMAz94Q9/kMViUePGjZWQkOCoIf8kLjNmzFD79u3l7++vOnXq6A9/+IPS0tIkSXa7XX/7298UFRUlPz8/1a1bV3/+85+VlZVVbq8DAGAOQh4AANeQkZEhSfL39y+X+9ntdj366KP697//rVatWik2Nlb169cvcNxzzz2nsWPHKi0tTY0aNdKpU6f073//W4MHD1Zubq7uv/9+Pf/88zIMQ/Xr19exY8f01ltvaezYseXyOgAA5iHkAQBwFfv379fBgwclSe3atSvz+2VlZWnIkCGaNWuWunTpolWrVqlmzZoFjktKStKnn36q5cuX68CBA9q+fbu2bNmiqlWrauXKlbrvvvu0ceNGbdmyRbt27dKePXu0cuVK+fj46PPPP9euXbvK/LUAAMxDyAMA4Aqpqalavny5Bg8erJycHHXr1k09evQo03tmZGRo0KBB+vrrr9W7d28tX75cYWFhhR6bk5OjyZMnq0+fPo62Vq1a6fHHH5d0ad27f//7307BtHfv3rr33nslST/88EPZvRAAgOkIeQAASHrkkUcc6+SFhISob9++2rNnj4YMGaL//ve/ZXrvlJQU9e/fXz/88IMGDhyo77////bu0KWuPg4D+CPbHSLKUDBoUTAZDAuDsYUNsVjUsCBouCwsKSIYJv4PIgsaRMMQg4IoCP4BzmrZosqKYHHCMCwIvmm8vEyvvOhBd/b5xHPOj+dbH+4957uTpqammmfevXv327Vfpa6lpSVDQ0O/3X/27FmS5Ojo6NYzA/BwPb7vAQDgIfi1J+/y8jInJyc5OjpKpVLJ8+fP09zcXGh2b29v9vf3Mzw8nE+fPqVSqdR8vrW19cql5a2trUmSrq6ua88lyfn5+S0nBuAh80seAOTfPXl7e3s5PDzM58+f09TUlKmpqaysrBSafXBwkCTp6em5seAl138E5tdy9ZvuP6Tl6wDcPSUPAK7w6tWrLC4uJkkmJiby48ePwrJ2dnbS2NiYmZmZzM3NFZYDwN9ByQOAawwNDeXFixf5/v17ZmdnC8t5+fJltre309DQkMnJyczPzxeWBUD5KXkAUMOHDx+SJB8/fiz0XbbXr19na2sr9fX1GRsby9LSUmFZAJSbkgcANQwMDKS7uztnZ2dZWFgoNKuvry8bGxupVCp5//594e8CAlBOSh4A1FBXV5epqakkyezsbH7+/FloXn9/f9bW1vLo0aNUq9Wsra0VmgdA+Sh5AHCD0dHRtLe35+TkJMvLy4XnDQ4OZnV1NUkyMjKSzc3NwjMBKA978gD4q3379u3GZ548eZLj4+M7z661yuDt27e5uLj4z7XOzs6aZ968eVPzfrVaTbVa/d9zAvBnUfIAoEDj4+N5+vRp2trasr6+ft/jXGl3dzfT09NJki9fvtzzNADclpIHAAX6+vVrkqSjo+OeJ7ne6elp9vb27nsMAO5I3WWt/3UAAADwR/HhFQAAgBJR8gAAAEpEyQMAACgRJQ8AAKBElDwAAIASUfIAAABKRMkDAAAoESUPAACgRJQ8AACAElHyAAAASkTJAwAAKJF/AIIvBgl4lNM1AAAAAElFTkSuQmCC", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + "ax.plot(MR[1]/km, MR[0]/Msun,lw=2,label=f'B = {B:.2f} MeV $fm^{-3}$')\n", + "ax.set_ylabel(r'M [$M_{\\odot}$]', fontsize=16)\n", + "ax.set_xlabel('R [km]', fontsize=16)\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/test_Inference.html b/test_Inference.html new file mode 100644 index 0000000..abd789d --- /dev/null +++ b/test_Inference.html @@ -0,0 +1,473 @@ + + + + + + + + + RMF EOS inference pipeline — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

RMF EOS inference pipeline

+

This is an example notebook about how to use our tools to analysis a observation/nuclear constraint on neutron star equation of stat.

+

Here in this notebook, we are using a RMF EoS model

+
+
[ ]:
+
+
+
#Package we need:
+import InferenceWorkflow.BayesianSampler as sampler
+import InferenceWorkflow.Likelihood as likelihood
+import InferenceWorkflow.prior as prior
+import math
+import numpy as np
+
+from TOVsolver.constant import oneoverfm_MeV, m_rho, m_w,G,c
+import TOVsolver.main as main
+import EOSgenerators.crust_EOS as crust
+import EOSgenerators.fastRMF_EoS as RMF
+
+
+
+

We need to define the crust, this crust and interface is unversial for all the equation of state here, we just change the core part of equation of state and that is come from the RMF computation. Crust as below, “Tolos_crust_out.txt” is BPS crust model. Then as in README, since that file energy_density and presurssure all in MeV/fm3, so we need some conversion. then just call

+
crust.PolyInterpolate
+
+
+

To finish the interface and make it ready to connect with core part

+
+
[ ]:
+
+
+
#Tolos_crust_out = np.loadtxt('Tolos_crust_out.txt', delimiter='  ')
+Tolos_crust_out = np.loadtxt('Tolos_crust_out.txt', delimiter=None, comments='#', usecols=(0, 1, 2, 3, 4))
+eps_crust_out = Tolos_crust_out[:,3] * G / c**2
+pres_crust_out = Tolos_crust_out[:,4] * G / c**4
+
+eps_crust, pres_crust = crust.PolyInterpolate(eps_crust_out, pres_crust_out)
+
+
+
+
+

Set up prior

+

Next step, we need to set up the prior, first use parameters array to specify the variable name, should consistent with what you need to call them.

+

Define a prior transform function to define prior. Cube are set of random number from 0 to 1. This prior setting is standard set-up of UltraNest package, since we are using UltraNest to do nest-sampling. We provided

+

“normal_Prior” and “flat_prior”

+

two options call from prior. Here then the Parameters prior should all set

+
+

However, since we are doing Equation of state Inference from mass radius of neutron star measurement. The center density of the star should be also sampled. Otherwise will be a partially-defined prior, did not span all parameters space, and proved to be different with full-scope inference.

+

This request as randomly generate a density from a EoS range, however, this process is not that trivial, since we need to determine the upper limit of the central density of neutron star — different equation of state will predict different upper bound, so here we need to use the prior-setting EoS parameters computing the EOS by

+
RMF.compute_EOS
+
+
+

Compute out EOS, put into

+
main.OutputMR
+
+
+

find out Mass Radius of this equation of state, find out the last stable point of this equation of state.(first mass points that give the direvative to be negative)

+

found out that index by len() function, then reset this max_d to be upper limit of this density range.

+
+
[ ]:
+
+
+
parameters = ['g_sigma', 'g_omega','g_rho', 'kappa', 'lambda_0', 'zeta', 'Lambda_w','d1']
+# for two or more MR measurements, define d2 or more depend on complexity.
+# parameters = ['g_sigma', 'g_omega','g_rho', 'kappa', 'lambda_0', 'zeta', 'Lambda_w','d1', 'd2']
+
+def prior_transform(cube):
+    params = cube.copy()
+    params[0] = math.sqrt(prior.normal_Prior(107.5, 7.5,cube[0]))
+    params[2] = math.sqrt(prior.flat_prior(75,210,cube[2]))
+    params[1] = math.sqrt(prior.flat_prior(150,210,cube[1]))
+    params[3] = prior.normal_Prior(2.525/oneoverfm_MeV, 1.525/oneoverfm_MeV,cube[3])
+    params[4] = prior.normal_Prior(0.0045, 0.0205,cube[4])
+    params[5] = prior.flat_prior(0,0.04,cube[5])
+    params[6] = prior.flat_prior(0,0.045,cube[6])
+
+    g_sigma = params[0]
+    g_omega = params[1]
+    g_rho = params[2]
+
+    kappa = params[3]
+    lambda_0 = params[4]
+    zeta = params[5]
+    Lambda_w = params[6]
+    m_sig = 495 / oneoverfm_MeV
+
+    theta = np.array([m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa,
+                         lambda_0, zeta, Lambda_w])
+
+    ep, pr = RMF.compute_EOS(eps_crust, pres_crust, theta)
+
+    eps_total = np.hstack((eps_crust,ep))
+
+    pres_total = np.hstack((pres_crust,pr))
+
+    RFSU2R = []
+    MFSU2R = []
+    density = np.logspace(14.3, 15.6, 50)
+    if all(x<y for x,y in zip(eps_total[:], eps_total[1:])) and all(x<y for x, y in zip(pres_total[:], pres_total[1:])):
+        MR = main.OutputMR('',eps_total,pres_total).T
+        if len(MR[1]) == False:
+            params[7] = 0
+            #params[8] = 0
+            # this line for showing how to add one more observation
+        else:
+
+            for i in range(len(MR[1])):
+                RFSU2R.append(MR[0][i])
+                MFSU2R.append(MR[1][i])
+                if i > 20 and MR[1][i] - MR[1][i-1]< 0:
+                    break
+    if len(MFSU2R)==False:
+        params[7] = 0
+        # params[8] = 0
+        # this line for showing how to add one more observation
+    else:
+        max_index = len(MFSU2R)
+        max_d = np.log10(density[max_index-1])
+        params[7] = 14.3 + (max_d - 14.3) * cube[7]
+        # params[8] = 14.3 + (max_d - 14.3) * cube[8]
+        # this line for showing how to add one more observation
+    return params
+
+
+
+
+
+

Set up likelihood

+

We need to set up a likelihood, Using standard definition way of UltraNest, that is below.

+

Here the likelihood is generated from a simulated mass radius measurement, which is \(M = 1.4 M_{\odot}\) and \(R = 13\) km, With a 5% Mass radius measurement uncertainty, so here

+
likelihood.MRlikihood_Gaussian
+
+
+

function will be use for our likelihood, please check likelihood.MRlikihood_Gaussian to see the original code, and more choice of likelihood. eg: 1. If we have some real mass-radius measurements, say PSR J0030 or PSR J0740, come from NICER, a KDE kernel could be trained to feed into

+
likelihood.MRlikihood_kernel(eps_total,pres_total,x,d1)
+
+
+

set the KDE kernel as a input for this function

+
    +
  1. If we gain measurement from radio-timing, say only measure the neutron star mass, then

    +
    likelihood.Masslikihood_Gaussian(eps_total,pres_total,x,d1)
    +
    +
    +

    Which will give the likelihood from single mass measurement, x is the parameters of that measurement, you should specify where this measurement mass is located and what is the sigma width of this mass measurement

    +
  2. +
  3. If we have nuclear measurements, and want to constrain this RMF model by nuclear properties like K(The Incompressibility of nuclear matter),J ( the symmetry energy at saturation density) and L( the slope of symmetry energy at saturation density). You can choose:

    +
    likelihood.Kliklihood(theta,K_low,K_up)
    +likelihood.Jliklihood(theta,K_low,K_up)
    +likelihood.Lliklihood(theta,K_low,K_up)
    +
    +
    +

    We are defaulting a hard-cut flat constrain, so if you don’t like this default hard cut, also could define the likelihood by youself with similiar style.

    +
  4. +
  5. If we have a Tidal measurements from Gravitational wave detector, we can use it to do constraint:

    +
    likelihood.TidalLikihood_kernel(eps_total,pres_total,x,d1)
    +
    +
    +

    Where x is sampled distribution from real measurements, the standard is

    +
  6. +
+

kernel, chrip = x,

+

where the kernel is a whole set sampling from GW event, that is [chrip mass, M2/M1, tidal of M1, tidal of M2] four quantities. Chrip is the single smapling that comes only the chrip mass sampling.

+
    +
  1. To calculate the log-likelihood for the pure neutron matter (PNM) equation of state (EoS) using chiral effective field theory (chiEFT) constraints, the function

    +

    likelihood.chiEFT_PNM(EoS_PNM, type="Gaussian", contraint_quantity="e", enlargement=0)

    +
  2. +
+

EoS_PNM is a 3D array of number density (rho), energy density (e) and pressure (p) with unit fm^-3, MeV.fm^-3 and MeV.fm^-3.

+

compares PNM EoS data with chiEFT-derived constraints for either energy per neutron ( E/N ) or pressure ( p ), depending on the specified contraint_quantity parameter (“e” for energy or “p” for pressure).

+

The likelihood model can be either “Gaussian” or “Super Gaussian” with an optional enlargement factor for the Super Gaussian to flatten its peak. e.g., 0.05 for 5% enlargement.

+

The function calculates the sum of log-likelihoods over densities of 0.08, 0.12, and 0.16 fm(^-3), utilizing energy constraints from Huth et al. (Nature, 2022) and pressure constraints from Hebeler et al. (ApJ, 2013). This enables a statistical comparison of the PNM EoS data against chiEFT-derived reference values.

+
+
[ ]:
+
+
+
import scipy.stats as stats
+def likelihood_transform(theta):
+    # This is a demonstration code for only introduce one constraint from one mass-radius observation.
+    # Could be very easy to implement more constraint from nuclear quantity, since that do not need to
+    # sample more central density of real neutron star. If user want to expand to two mass radius measurement
+    # the code could be:
+
+    # g_sigma, g_omega,g_rho, kappa, lambda_0, zeta, Lambda_w, d1, d2 = theta
+    g_sigma, g_omega,g_rho, kappa, lambda_0, zeta, Lambda_w, d1 = theta # comment this line if you need two measuremnts.
+
+    ####################################################################################################################
+    ############ This is the block to compute out all the EoS you need based on your parameters#########################
+    m_sig = 495 / oneoverfm_MeV
+    m_w = 3.96544
+    m_rho = 3.86662
+    theta1 = np.array([m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa, lambda_0, zeta, Lambda_w])
+    ep, pr = RMF.compute_EOS(eps_crust, pres_crust, theta1)
+
+    eps_total = np.hstack((eps_crust,ep))
+    pres_total = np.hstack((pres_crust,pr))
+    ####################################################################################################################
+
+    # probMRgaussian1 = likelihood.MRlikihood_Gaussian(eps_total,pres_total,(1.4,13,0.07,0.65),d1)
+    # probMRgaussian2 = likelihood.MRlikihood_Gaussian(eps_total,pres_total,(2.0,12,0.1,0.6),d2)
+    # probMR = probMRgaussian1 + probMRgaussian2
+
+    # Same could be extended to more distributions. Notice the prior definition should be change accordingly
+    # by define more density parameters like here d2.
+
+    #1. This line is to compute MR likelihood from a Simulated MR measurement:
+
+
+    probMRgaussian = likelihood.MRlikihood_Gaussian(eps_total,pres_total,(1.4,13,0.07,0.65),d1)
+
+    #2. This is  a block that constrain from given real MR measurement, say J0030:
+    #J0030 = numpy.loadtxt('data/PST_equal_sampled_MR.txt', delimiter=' ')
+    #J30R_list, J30M_list = zip(*J0030)
+    #J30R_list = numpy.array(J30R_list).T
+    #J30M_list = numpy.array(J30M_list).T
+    #Rmin = J30R_list.min()
+    #Rmax = J30R_list.max()
+    #Mmin = J30M_list.min()
+    #Mmax = J30M_list.max()
+    #X3, Y3 = numpy.mgrid[Rmin:Rmax:500j, Mmin:Mmax:100j]
+    #positions = numpy.vstack([X3.ravel(), Y3.ravel()])
+    #values = numpy.vstack([J30R_list, J30M_list])
+    #kernel3 = stats.gaussian_kde(values)
+    #probMRJ0030 = likelihood.MRlikelihhood_kernel(eps_total,pres_total,kernel3,d1)
+
+    #3. This is to compute the constraint from experiment of nuclearmatter
+    # 250<K<400, 25<J<38, 30<L<86:
+    # hint: since this K,J,L sampling don't need to sample central density so this
+    # theta should be redifined.
+    #probK = likelihood.Kliklihood(theta,250,400)
+    #probJ = likelihood.Jliklihood(theta,250,400)
+    #probL = likelihood.Lliklihood(theta,250,400)
+
+    #4. This is block to cosntrain from a GW event, say GW170817, here the file of this
+    # event is origanized by [chrip mass, M2/M1, tidal of M1, tidal of M2, sampling weight]:
+    #GW170817 = np.load('GW170817_McQL1L2weights.npy')
+    #chrip170817 = stats.gaussian_kde(GW170817[:,0],weights = GW170817[:,4])
+    #kernelGW = stats.gaussian_kde(GW170817.T[0:4],weights = GW170817[:,4])
+    #probGW = likelihood.TidalLikihood_kernel(eps_total,pres_total,(kernelGW,chrip170817),d1)
+
+
+    #5. This block constraints pure neutron matter EOS
+    ## For pure neutron matter alpha = 0
+    #theta1    = np.append(theta, 0)
+    #rho, e, p = RMF.get_eos_alpha(theta1)
+    #EoS_PNM   = np.array([rho, e*oneoverfm_MeV, p*oneoverfm_MeV]) # energy density and pressure are converted from fm^-4 to MeV fm^-3
+
+    #probPNM = likelihood.chiEFT_PNM(EoS_PNM, type="Super Gaussian", contraint_quantity="e", enlargement=0.1) # 10% enlargement
+
+    prob =  probMRgaussian #+ probMRJ0030 + probK + probJ + probL + probGW + probPNM
+    return prob
+
+
+
+
+
+

Set up sampler

+

Here next, we define sampler, there is two different sampler we provided for. Considering where you need resume file:

+
sampler.UltranestSampler   and  sampler.UltranestSamplerResume
+
+
+

Here since it is our first run, so we only use first one. some of the sampler parameters is requested, first is step number, our choice for UltraNest sampler is slicesampler, which could easily be sliced up your total computation load, and parallelize, speed up sampling. So step as suggested by documentation of UltraNest, we use 2*len(parameters).

+

live_point we set 2000, it will influence the sampling precision, We suggest for 7 dimension space, maybe 5000 is a better choice, however, since my computer only have limited resources, we set 2000.

+

max_calls set 10000, it is how many iteration after it will stop, we suggest to set this number significantly higher, otherwise maybe will broken before the inference converging to a definite value. That result will be un-phyiscal

+
+
[ ]:
+
+
+
step = 2 * len(parameters)
+live_point = 2000
+
+max_calls = 60000
+samples = sampler.UltranestSampler(parameters,likelihood_transform,prior_transform,step,live_point,max_calls)
+
+
+
+
+
+

Posterior plot

+

Since we only run our code at my labtob so here is the result corner plot(still have a lot flucatuation)

+
+
[ ]:
+
+
+
import corner
+
+figure = corner.corner(samples,labels=[ r"$g_{\sigma}$", r"$g_{\omega}$",r"$g_{\rho}$",r"$\kappa$", r"$\lambda_0$",r"$\zeta$",r"$\Lambda_w$","d1","d2"],
+                    smooth=0.9,
+                    label_kwargs=dict(fontsize=22),
+                    title_kwargs=dict(fontsize=22),
+                    quantiles=[0.16, 0.84],
+                    levels=(1 - np.exp(-0.5), 1 - np.exp(-2), 1 - np.exp(-9 / 2.)),
+                    plot_density=False,
+                    plot_datapoints=False,
+                    fill_contours=True,
+                    show_titles=True,
+                    max_n_ticks=3,
+                    title_fmt= '.2f')
+                       #,range=[(10,80),(0.56,0.64),(0.10, 0.2),(150,600),(40,80),(50,75)])
+
+
+
+
+
+
+
+_images/test_Inference_11_0.png +
+
+
+
[ ]:
+
+
+

+
+
+
+
+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/test_Inference.ipynb b/test_Inference.ipynb new file mode 100644 index 0000000..12b2412 --- /dev/null +++ b/test_Inference.ipynb @@ -0,0 +1,425 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## RMF EOS inference pipeline\n", + "\n", + "This is an example notebook about how to use our tools to analysis a observation/nuclear constraint on neutron star equation of stat. \n", + "\n", + "Here in this notebook, we are using a RMF EoS model" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#Package we need:\n", + "import InferenceWorkflow.BayesianSampler as sampler\n", + "import InferenceWorkflow.Likelihood as likelihood\n", + "import InferenceWorkflow.prior as prior\n", + "import math\n", + "import numpy as np\n", + "\n", + "from TOVsolver.constant import oneoverfm_MeV, m_rho, m_w,G,c\n", + "import TOVsolver.main as main\n", + "import EOSgenerators.crust_EOS as crust\n", + "import EOSgenerators.fastRMF_EoS as RMF" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We need to define the crust, this crust and interface is unversial for all the equation of state here, we just change the core part of equation of state and that is come from the RMF computation. Crust as below, \"Tolos_crust_out.txt\" is BPS crust model. Then as in README, since that file energy_density and presurssure all in MeV/fm3, so we need some conversion. then just call \n", + "\n", + " ```sh\n", + " crust.PolyInterpolate\n", + " ```\n", + "\n", + "To finish the interface and make it ready to connect with core part" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "#Tolos_crust_out = np.loadtxt('Tolos_crust_out.txt', delimiter=' ')\n", + "Tolos_crust_out = np.loadtxt('Tolos_crust_out.txt', delimiter=None, comments='#', usecols=(0, 1, 2, 3, 4))\n", + "eps_crust_out = Tolos_crust_out[:,3] * G / c**2\n", + "pres_crust_out = Tolos_crust_out[:,4] * G / c**4\n", + "\n", + "eps_crust, pres_crust = crust.PolyInterpolate(eps_crust_out, pres_crust_out)\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Set up prior\n", + "\n", + "Next step, we need to set up the prior, first use parameters array to specify the variable name, should consistent with what you need to call them.\n", + "\n", + "Define a prior transform function to define prior. Cube are set of random number from 0 to 1. This prior setting is standard set-up of UltraNest package, since we are using UltraNest to do nest-sampling. We provided \n", + "\n", + "\"normal_Prior\" and \"flat_prior\"\n", + "\n", + "two options call from prior. Here then the Parameters prior should all set\n", + "\n", + "------------------\n", + "\n", + "However, since we are doing Equation of state Inference from mass radius of neutron star measurement. The center density of the star should be also sampled. Otherwise will be a partially-defined prior, did not span all parameters space, and proved to be different with full-scope inference.\n", + "\n", + "This request as randomly generate a density from a EoS range, however, this process is not that trivial, since we need to determine the upper limit of the central density of neutron star --- different equation of state will predict different upper bound, so here we need to use the prior-setting EoS parameters computing the EOS by\n", + "\n", + "```sh\n", + "RMF.compute_EOS\n", + "```\n", + "\n", + "Compute out EOS, put into\n", + "\n", + "```sh\n", + "main.OutputMR\n", + "```\n", + "\n", + "find out Mass Radius of this equation of state, find out the last stable point of this equation of state.(first mass points that give the direvative to be negative)\n", + "\n", + "found out that index by len() function, then reset this max_d to be upper limit of this density range." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "parameters = ['g_sigma', 'g_omega','g_rho', 'kappa', 'lambda_0', 'zeta', 'Lambda_w','d1']\n", + "# for two or more MR measurements, define d2 or more depend on complexity.\n", + "# parameters = ['g_sigma', 'g_omega','g_rho', 'kappa', 'lambda_0', 'zeta', 'Lambda_w','d1', 'd2']\n", + "\n", + "def prior_transform(cube):\n", + " params = cube.copy()\n", + " params[0] = math.sqrt(prior.normal_Prior(107.5, 7.5,cube[0]))\n", + " params[2] = math.sqrt(prior.flat_prior(75,210,cube[2]))\n", + " params[1] = math.sqrt(prior.flat_prior(150,210,cube[1]))\n", + " params[3] = prior.normal_Prior(2.525/oneoverfm_MeV, 1.525/oneoverfm_MeV,cube[3])\n", + " params[4] = prior.normal_Prior(0.0045, 0.0205,cube[4])\n", + " params[5] = prior.flat_prior(0,0.04,cube[5])\n", + " params[6] = prior.flat_prior(0,0.045,cube[6])\n", + " \n", + " g_sigma = params[0]\n", + " g_omega = params[1]\n", + " g_rho = params[2]\n", + "\n", + " kappa = params[3]\n", + " lambda_0 = params[4]\n", + " zeta = params[5]\n", + " Lambda_w = params[6]\n", + " m_sig = 495 / oneoverfm_MeV\n", + "\n", + " theta = np.array([m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa,\n", + " lambda_0, zeta, Lambda_w])\n", + " \n", + " ep, pr = RMF.compute_EOS(eps_crust, pres_crust, theta)\n", + "\n", + " eps_total = np.hstack((eps_crust,ep))\n", + " \n", + " pres_total = np.hstack((pres_crust,pr))\n", + " \n", + " RFSU2R = []\n", + " MFSU2R = []\n", + " density = np.logspace(14.3, 15.6, 50)\n", + " if all(x 20 and MR[1][i] - MR[1][i-1]< 0:\n", + " break\n", + " if len(MFSU2R)==False:\n", + " params[7] = 0\n", + " # params[8] = 0\n", + " # this line for showing how to add one more observation\n", + " else:\n", + " max_index = len(MFSU2R)\n", + " max_d = np.log10(density[max_index-1])\n", + " params[7] = 14.3 + (max_d - 14.3) * cube[7]\n", + " # params[8] = 14.3 + (max_d - 14.3) * cube[8]\n", + " # this line for showing how to add one more observation\n", + " return params" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "### Set up likelihood\n", + "\n", + "We need to set up a likelihood, Using standard definition way of UltraNest, that is below.\n", + "\n", + "Here the likelihood is generated from a simulated mass radius measurement, which is $M = 1.4 M_{\\odot}$ and $R = 13$ km, With a 5% Mass radius measurement uncertainty, so here \n", + "\n", + " ```sh\n", + " likelihood.MRlikihood_Gaussian\n", + " ```\n", + "function will be use for our likelihood, please check [likelihood.MRlikihood_Gaussian](https://github.com/ChunHuangPhy/EoS_inference/blob/main/InferenceWorkflow/Likelihood.py) to see the original code, and more choice of likelihood.\n", + "eg:\n", + "1. If we have some real mass-radius measurements, say PSR J0030 or PSR J0740, come from NICER, a KDE kernel could be trained to feed into \n", + "\n", + " ```sh\n", + " likelihood.MRlikihood_kernel(eps_total,pres_total,x,d1)\n", + " ```\n", + "set the KDE kernel as a input for this function\n", + "\n", + "2. If we gain measurement from radio-timing, say only measure the neutron star mass, then\n", + "\n", + " ```sh\n", + " likelihood.Masslikihood_Gaussian(eps_total,pres_total,x,d1)\n", + " ```\n", + "Which will give the likelihood from single mass measurement, x is the parameters of that measurement, you should specify where this measurement mass is located and what is the sigma width of this mass measurement\n", + "\n", + "3. If we have nuclear measurements, and want to constrain this RMF model by nuclear properties like K(The Incompressibility of nuclear matter),J ( the symmetry energy at saturation density) and L( the slope of symmetry energy at saturation density). You can choose:\n", + "\n", + " ```sh\n", + " likelihood.Kliklihood(theta,K_low,K_up)\n", + " likelihood.Jliklihood(theta,K_low,K_up)\n", + " likelihood.Lliklihood(theta,K_low,K_up)\n", + " ```\n", + "We are defaulting a hard-cut flat constrain, so if you don't like this default hard cut, also could define the likelihood by youself with similiar style.\n", + "\n", + "4. If we have a Tidal measurements from Gravitational wave detector, we can use it to do constraint:\n", + "\n", + " ```sh\n", + " likelihood.TidalLikihood_kernel(eps_total,pres_total,x,d1)\n", + " ```\n", + "Where x is sampled distribution from real measurements, the standard is \n", + "\n", + "kernel, chrip = x, \n", + "\n", + "where the kernel is a whole set sampling from GW event, that is [chrip mass, M2/M1, tidal of M1, tidal of M2] four quantities. Chrip is the single smapling that comes only the chrip mass sampling.\n", + "\n", + "\n", + "\n", + "5. To calculate the log-likelihood for the pure neutron matter (PNM) equation of state (EoS) using chiral effective field theory (chiEFT) constraints, the function\n", + " \n", + " `likelihood.chiEFT_PNM(EoS_PNM, type=\"Gaussian\", contraint_quantity=\"e\", enlargement=0)`\n", + "\n", + "EoS_PNM is a 3D array of number density (rho), energy density (e) and pressure (p) with unit fm^-3, MeV.fm^-3 and MeV.fm^-3. \n", + "\n", + "compares PNM EoS data with chiEFT-derived constraints for either energy per neutron \\( E/N \\) or pressure \\( p \\),\n", + "depending on the specified `contraint_quantity` parameter (\"e\" for energy or \"p\" for pressure). \n", + "\n", + "The likelihood model can be either \"Gaussian\" or \"Super Gaussian\" with an optional `enlargement` factor for the Super Gaussian to flatten its peak. e.g., 0.05 for 5% enlargement. \n", + "\n", + "The function calculates the sum of log-likelihoods over densities of 0.08, 0.12, and 0.16 fm\\(^-3\\), utilizing energy constraints from Huth et al. (Nature, 2022) and pressure constraints from Hebeler et al. (ApJ, 2013). This enables a statistical comparison of the PNM EoS data against chiEFT-derived reference values." + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [ + "import scipy.stats as stats\n", + "def likelihood_transform(theta):\n", + " # This is a demonstration code for only introduce one constraint from one mass-radius observation.\n", + " # Could be very easy to implement more constraint from nuclear quantity, since that do not need to\n", + " # sample more central density of real neutron star. If user want to expand to two mass radius measurement \n", + " # the code could be:\n", + " \n", + " # g_sigma, g_omega,g_rho, kappa, lambda_0, zeta, Lambda_w, d1, d2 = theta\n", + " g_sigma, g_omega,g_rho, kappa, lambda_0, zeta, Lambda_w, d1 = theta # comment this line if you need two measuremnts.\n", + " \n", + " ####################################################################################################################\n", + " ############ This is the block to compute out all the EoS you need based on your parameters#########################\n", + " m_sig = 495 / oneoverfm_MeV\n", + " m_w = 3.96544\n", + " m_rho = 3.86662\n", + " theta1 = np.array([m_sig, m_w, m_rho, g_sigma, g_omega, g_rho, kappa, lambda_0, zeta, Lambda_w])\n", + " ep, pr = RMF.compute_EOS(eps_crust, pres_crust, theta1)\n", + "\n", + " eps_total = np.hstack((eps_crust,ep))\n", + " pres_total = np.hstack((pres_crust,pr))\n", + " ####################################################################################################################\n", + " \n", + " # probMRgaussian1 = likelihood.MRlikihood_Gaussian(eps_total,pres_total,(1.4,13,0.07,0.65),d1)\n", + " # probMRgaussian2 = likelihood.MRlikihood_Gaussian(eps_total,pres_total,(2.0,12,0.1,0.6),d2)\n", + " # probMR = probMRgaussian1 + probMRgaussian2\n", + " \n", + " # Same could be extended to more distributions. Notice the prior definition should be change accordingly\n", + " # by define more density parameters like here d2.\n", + " \n", + " #1. This line is to compute MR likelihood from a Simulated MR measurement:\n", + " \n", + " \n", + " probMRgaussian = likelihood.MRlikihood_Gaussian(eps_total,pres_total,(1.4,13,0.07,0.65),d1)\n", + " \n", + " #2. This is a block that constrain from given real MR measurement, say J0030:\n", + " #J0030 = numpy.loadtxt('data/PST_equal_sampled_MR.txt', delimiter=' ')\n", + " #J30R_list, J30M_list = zip(*J0030)\n", + " #J30R_list = numpy.array(J30R_list).T \n", + " #J30M_list = numpy.array(J30M_list).T\n", + " #Rmin = J30R_list.min()\n", + " #Rmax = J30R_list.max()\n", + " #Mmin = J30M_list.min()\n", + " #Mmax = J30M_list.max()\n", + " #X3, Y3 = numpy.mgrid[Rmin:Rmax:500j, Mmin:Mmax:100j]\n", + " #positions = numpy.vstack([X3.ravel(), Y3.ravel()])\n", + " #values = numpy.vstack([J30R_list, J30M_list])\n", + " #kernel3 = stats.gaussian_kde(values)\n", + " #probMRJ0030 = likelihood.MRlikelihhood_kernel(eps_total,pres_total,kernel3,d1)\n", + " \n", + " #3. This is to compute the constraint from experiment of nuclearmatter\n", + " # 250" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import corner\n", + "\n", + "figure = corner.corner(samples,labels=[ r\"$g_{\\sigma}$\", r\"$g_{\\omega}$\",r\"$g_{\\rho}$\",r\"$\\kappa$\", r\"$\\lambda_0$\",r\"$\\zeta$\",r\"$\\Lambda_w$\",\"d1\",\"d2\"],\n", + " smooth=0.9,\n", + " label_kwargs=dict(fontsize=22),\n", + " title_kwargs=dict(fontsize=22),\n", + " quantiles=[0.16, 0.84],\n", + " levels=(1 - np.exp(-0.5), 1 - np.exp(-2), 1 - np.exp(-9 / 2.)),\n", + " plot_density=False,\n", + " plot_datapoints=False,\n", + " fill_contours=True,\n", + " show_titles=True,\n", + " max_n_ticks=3,\n", + " title_fmt= '.2f')\n", + " #,range=[(10,80),(0.56,0.64),(0.10, 0.2),(150,600),(40,80),(50,75)])" + ] + }, + { + "cell_type": "code", + "execution_count": null, + "metadata": {}, + "outputs": [], + "source": [] + } + ], + "metadata": { + "kernelspec": { + "display_name": "Python 3 (ipykernel)", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.12.2" + }, + "vscode": { + "interpreter": { + "hash": "e4481115b400f107b26d360e6549f546bb0e8bc1af70e4e66085bfa77a017a39" + } + } + }, + "nbformat": 4, + "nbformat_minor": 4 +} diff --git a/test_TOVsolver.html b/test_TOVsolver.html new file mode 100644 index 0000000..8d648b7 --- /dev/null +++ b/test_TOVsolver.html @@ -0,0 +1,329 @@ + + + + + + + + + TOVsolver module guide — CompactObject 1.9.1 documentation + + + + + + + + + + + + + + + + + + + + + +
+ + +
+ +
+
+
+ +
+
+
+
+ +
+

TOVsolver module guide

+

TOV solver part we have multiple function, we can generate a Mass radius function from ‘Test_EOS.csv’ file here easily

+
+
[1]:
+
+
+
import TOVsolver.main as main
+import TOVsolver.EoS_import as EoS_import
+from matplotlib import pyplot
+import matplotlib.pyplot as plt
+import TOVsolver.constant
+from itertools import repeat
+import numpy
+# Main has two functions
+#   Output.MRT() returns the mass, radius, tidal
+#   OutputC_s() returns the speed of sound
+# Using the main functions with either arrays of density and pressure or a .csv with density and pressure columns
+#   Function argument is either (filename = ) OR (density = , pressure = )
+#   Example: main.OutputMR(filename = 'file.csv') OR main.OutputMR(density = array1, pressure = array2)
+MR = main.OutputMR("Test_EOS.csv").T
+# Plot the Mass-Radius curve
+fig, ax = plt.subplots(1,1, figsize=(9,6))
+ax.plot(MR[0], MR[1],lw=2)
+ax.set_ylabel(r'M [$M_{\odot}$]', fontsize=16)
+ax.set_xlabel('R [km]', fontsize=16)
+ax.set_xlim(8., 20.)
+ax.set_ylim(0,3)
+ax.legend()
+ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)
+ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)
+fig.tight_layout()
+plt.show()
+

+
+
+
+
+
+
+
+Mass Radius file will be generated and stored as  2-d array. The first column is Radius, second one is mass
+
+
+
+
+
+
+
+No artists with labels found to put in legend.  Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
+
+
+
+
+
+
+_images/test_TOVsolver_1_2.png +
+
+

We can generate the tidal property from it also,like tidal deformability

+
+
[4]:
+
+
+
# try solve tidal property
+MRT = main.OutputMRT("Test_EOS.csv").T
+# Plot the Radius and Tidal curve
+
+fig, ax = plt.subplots(1,1, figsize=(9,6))
+
+ax.plot(MRT[0], MRT[2],lw=2)
+ax.set_ylabel(r'$\Lambda$', fontsize=16)
+ax.set_xlabel('R [km]', fontsize=16)
+ax.set_xlim(8., 20.)
+ax.set_ylim(0,1000)
+ax.legend()
+ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)
+ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)
+fig.tight_layout()
+plt.show()
+
+
+
+
+
+
+
+
+No artists with labels found to put in legend.  Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
+
+
+
+
+
+
+
+Mass Radius and tidal will be generated as the 3-d array. The first column is Radius, second one is mass,last is tidal
+
+
+
+
+
+
+_images/test_TOVsolver_3_2.png +
+
+

Plot out Tidal with mass

+
+
[5]:
+
+
+
# Plot the Mass and Tidal curve
+fig, ax = plt.subplots(1,1, figsize=(9,6))
+ax.plot(MRT[1], MRT[2],lw=2)
+ax.set_ylabel(r'$\Lambda$', fontsize=16)
+ax.set_xlabel(r'M [$M_{\odot}$]', fontsize=16)
+ax.set_xlim(0., 3.)
+ax.set_ylim(0,1000)
+ax.legend()
+ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)
+ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)
+fig.tight_layout()
+plt.show()
+
+
+
+
+
+
+
+
+No artists with labels found to put in legend.  Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
+
+
+
+
+
+
+_images/test_TOVsolver_5_1.png +
+
+

Can generate the speed of sound from the given equation of state. This do not need to solve TOV equation, the speed of sound is defined by the derivative of P(rho) curve, this quantity is very of interest, since whether there is a upper limit of this speed of sound (except for the casaulity limit c_s < 1 ) is a very interesting and hot topic

+
+
[2]:
+
+
+

from TOVsolver.constant import c,G +# here we plotting out speed of sound with Test_EOS, the density is in g/cm3 +C_s,rho = main.OutputC_s("Test_EOS.csv") + +fig, ax = plt.subplots(1,1, figsize=(9,6)) +ax.plot(rho, C_s,lw=2) +ax.set_xlabel(r'$\epsilon$', fontsize=16) +ax.set_ylabel(r'C_s', fontsize=16) +plt.xscale("log") +ax.legend() +ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14) +ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14) +fig.tight_layout() +plt.show() +
+
+
+
+
+
+
+
+No artists with labels found to put in legend.  Note that artists whose label start with an underscore are ignored when legend() is called with no argument.
+
+
+
+
+
+
+_images/test_TOVsolver_7_1.png +
+
+

This package can easily integrated into a Baysian inference flow, to do bayesian inference, Here, we generated several (50) EoSs from RMF model, and try to use a loop to compute out all of their MRT property. That could be a in-between step of doing bayesian inference of neutron star EoS. Remember these EoS could also be polytrope, or anything that generate from your own EoS computation code. Next step for us will be integrate our EoS computation into this package and also the Bayesian analysis.

+
+ + +
+
+ +
+
+
+
+ + + + \ No newline at end of file diff --git a/test_TOVsolver.ipynb b/test_TOVsolver.ipynb new file mode 100644 index 0000000..6a479e3 --- /dev/null +++ b/test_TOVsolver.ipynb @@ -0,0 +1,260 @@ +{ + "cells": [ + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "## TOVsolver module guide\n", + "\n", + "TOV solver part we have multiple function, we can generate a Mass radius function from 'Test_EOS.csv' file here easily" + ] + }, + { + "cell_type": "code", + "execution_count": 1, + "metadata": {}, + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mass Radius file will be generated and stored as 2-d array. The first column is Radius, second one is mass\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "data": { + "image/png": "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R49KEwfCOk79fSAQv0vym0YNNG3aVE888YQeeughdenSRVdffbViYmK0ceNGLVq0SBMmTNB9991ndpkwydnWVqy4vuOZ1l+E9b322muSpOHDh5tcCerTs88+q6+++korV66U0+k0uxyYZPfu3crJyVHfvn01ceJEvfTSS5X29+nTRx999JHatGljUoWob3/+85+1cuVKXXfddbrmmmvUsWNHZWVl6b333lNKSooWLFhgdokIgH379mnRokVq0aKFevToISkwv0sS8mrowQcfVKtWrXT33XdXmn2zX79+GjNmjC+Ro/HJzc2VJMXFxVW7v7yLb/lxaJxeeeUVffbZZxoyZIiuvPJKs8tBPdm+fbsee+wx/e53v9Oll15qdjkwUfmwjnXr1mnLli2aM2eOrrnmGuXm5uovf/mLZs2apRtuuEGrV682uVLUl65du2r16tW68cYb9e9//9u3PT4+3jfjJqyltLRUY8eOlcvl0lNPPSW73S4pML9L0l2zhqZPn67bb79dkydPVmZmpgoKCrRy5Uq53W4NHjxY7733ntklAmigPvnkE917771KSUnRvHnzzC4H9cTr9er2229Xq1atNH36dLPLgcnKu2N6PB79+c9/1u233674+HilpqbqlVde0cUXX6w1a9Zo5cqVJleK+vLdd99pwIABSkhI0Nq1a1VYWKhdu3bprrvu0v33368bb7zR7BLhR16vV3feeaeWL1+u8ePHa+zYsQG9HiGvBr788kv98Y9/1L333qtHHnlEbdq0UVRUlPr376///Oc/ioiI0O9//3uzy4RJyv/qcrq/rpSvbXK6v87A2hYuXKjrr79ezZs315dffqmWLVuaXRLqyXPPPafVq1dr9uzZVSbiQeNT8Tvg6quvrrL/qquuklT2iz+sr7S0VKNHj5bNZtMHH3yg888/X5GRkWrXrp2efvppjR49Wu+//76WLFlidqnwA8MwNH78eM2bN09jxoyp0l07EL9LEvJq4JNPPpFUtoj6qZKSktSjRw/t27dP2dnZ9V0aGoCK/aSrc7Z+1rCuzz//XKNGjVJiYqKWLFmi9u3bm10S6tH69etlGIYGDx4sm83me5R/l7z88suy2WwaNWqUuYWiXnTs2NHXNatJkyZV9pdvO3HiRD1WBbNs3bpVu3bt0sUXX1ztH4HKJ/Rbu3ZtfZcGP/N6vbrrrrv0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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "import TOVsolver.main as main\n", + "import TOVsolver.EoS_import as EoS_import\n", + "from matplotlib import pyplot\n", + "import matplotlib.pyplot as plt\n", + "import TOVsolver.constant\n", + "from itertools import repeat\n", + "import numpy\n", + "# Main has two functions\n", + "# Output.MRT() returns the mass, radius, tidal\n", + "# OutputC_s() returns the speed of sound\n", + "# Using the main functions with either arrays of density and pressure or a .csv with density and pressure columns\n", + "# Function argument is either (filename = ) OR (density = , pressure = )\n", + "# Example: main.OutputMR(filename = 'file.csv') OR main.OutputMR(density = array1, pressure = array2)\n", + "MR = main.OutputMR(\"Test_EOS.csv\").T\n", + "# Plot the Mass-Radius curve\n", + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + "ax.plot(MR[0], MR[1],lw=2)\n", + "ax.set_ylabel(r'M [$M_{\\odot}$]', fontsize=16)\n", + "ax.set_xlabel('R [km]', fontsize=16)\n", + "ax.set_xlim(8., 20.)\n", + "ax.set_ylim(0,3)\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()\n", + "\n" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "We can generate the tidal property from it also,like tidal deformability" + ] + }, + { + "cell_type": "code", + "execution_count": 4, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Mass Radius and tidal will be generated as the 3-d array. The first column is Radius, second one is mass,last is tidal\n" + ] + }, + { + "data": { + "image/png": "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4/rrrzd+97vfGePHjzfi4+MNSca0adPat/NoE7/73e8MSUafPn2Mu+++23jkkUeMG264wQgPDzfCwsKMv//97x7t2/r3QkKen33zzTdGWFiYkZKSYpSUlHicmz9/viHJGD9+fIB6h7b2/vvvG7t27TIMwzBmz57d4j/qU6ZMMSQZOTk5TR6fMmWKv7sLP/D2Hti3b5/x1FNPGeXl5R7Hy8rKjIsvvtiQZLz66qvt0WW0MV/+HXD3pz/9ybBarca8efMIeUHOl3tgz549RlxcnJGammrs3r270fna2lp/dhV+4ss98POf/9yQZLz99tsex3fv3m3ExcUZUVFRRlVVlb+7jDb2+uuvG+vWrWt0fN26dYbNZjO6dOni8b9rW/9eyHBNP9u1a5ccDofS09MVFxfnce7qq6+WJB06dCgQXYMf/OxnP1NycnKr7QzD0OLFixUbG6spU6Z4nMvNzVVCQoKWLFnS5htjwv+8vQfOOOMM3XfffYqOjvY4HhMTo+zsbEnS2rVr/dJH+Je394C74uJi5ebmKicnRxdeeKGfeob24ss9MGvWLJWWlurpp59W7969G523WlkIPRj5cg/s3LlTFotFV155pcfx3r1769xzz1VlZaWOHTvmj27Cj66//noNHTq00fGhQ4dq+PDhOnz4sLZu3SrJP78XEvL8LDU1VRERESooKGj0f9B3331XkjRixIhAdA0BVFRUpAMHDig9PV0xMTEe5yIjI3X55Zdr//79Ki4uDlAPEUg2m00Sv9x1FA6HQ+PHj1dycnKjD3eENsMw9Oqrr6pr164aMWKEPv74Y82bN09//OMftWrVKjkcjkB3Ee1g4MCBMgyj0arte/fu1WeffabzzjtPp512WoB6B3/48ee8P34v5DcIP+vatatmzpyp3/72txowYICuueYaderUSVu3btWqVat077336sEHHwx0N9HOioqKJJ3Yc/HH3PdibK4NQtezzz4rSRo1alSAe4L2sGDBAv373//W+vXrZbfbA90dtKOvv/5ahw8f1iWXXKL77rtPTz/9tMf5Cy+8UO+884569uwZoB6iPfz3f/+31q9fr+uvv17XXnut+vbtq++++05vvPGGkpOT9eqrrwa6i2hDe/bs0apVq5SYmKjzzjtPkn9+LyTktYOHH35YSUlJmjhxohYuXOg6PmTIEN1xxx2uNI+Oo6Sk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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# try solve tidal property\n", + "MRT = main.OutputMRT(\"Test_EOS.csv\").T\n", + "# Plot the Radius and Tidal curve\n", + "\n", + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + " \n", + "ax.plot(MRT[0], MRT[2],lw=2)\n", + "ax.set_ylabel(r'$\\Lambda$', fontsize=16)\n", + "ax.set_xlabel('R [km]', fontsize=16)\n", + "ax.set_xlim(8., 20.)\n", + "ax.set_ylim(0,1000)\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Plot out Tidal with mass" + ] + }, + { + "cell_type": "code", + "execution_count": 5, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "# Plot the Mass and Tidal curve\n", + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + "ax.plot(MRT[1], MRT[2],lw=2)\n", + "ax.set_ylabel(r'$\\Lambda$', fontsize=16)\n", + "ax.set_xlabel(r'M [$M_{\\odot}$]', fontsize=16)\n", + "ax.set_xlim(0., 3.)\n", + "ax.set_ylim(0,1000)\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "Can generate the speed of sound from the given equation of state. This do not need to solve TOV equation, the speed of sound is defined by the derivative of P(rho) curve, this quantity is very of interest, since whether there is a upper limit of this speed of sound (except for the casaulity limit c_s < 1 ) is a very interesting and hot topic" + ] + }, + { + "cell_type": "code", + "execution_count": 2, + "metadata": {}, + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n" + ] + }, + { + "data": { + "image/png": "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", + "text/plain": [ + "
" + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], + "source": [ + "\n", + "from TOVsolver.constant import c,G \n", + "# here we plotting out speed of sound with Test_EOS, the density is in g/cm3\n", + "C_s,rho = main.OutputC_s(\"Test_EOS.csv\")\n", + "\n", + "fig, ax = plt.subplots(1,1, figsize=(9,6))\n", + "ax.plot(rho, C_s,lw=2)\n", + "ax.set_xlabel(r'$\\epsilon$', fontsize=16)\n", + "ax.set_ylabel(r'C_s', fontsize=16)\n", + "plt.xscale(\"log\")\n", + "ax.legend()\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "ax.tick_params(top=1,right=1, which='both', direction='in', labelsize=14)\n", + "fig.tight_layout()\n", + "plt.show()" + ] + }, + { + "attachments": {}, + "cell_type": "markdown", + "metadata": {}, + "source": [ + "This package can easily integrated into a Baysian inference flow, to do bayesian inference, Here, we generated several (50) EoSs from RMF model, and try to use a loop to compute out all of their MRT property. That could be a in-between step of doing bayesian inference of neutron star EoS. Remember these EoS could also be polytrope, or anything that generate from your own EoS computation code. Next step for us will be integrate our EoS computation into this package and also the Bayesian analysis." + ] + } + ], + "metadata": { + "kernelspec": { + "display_name": "base", + "language": "python", + "name": "python3" + }, + "language_info": { + "codemirror_mode": { + "name": "ipython", + "version": 3 + }, + "file_extension": ".py", + "mimetype": "text/x-python", + "name": "python", + "nbconvert_exporter": "python", + "pygments_lexer": "ipython3", + "version": "3.9.13" + }, + "vscode": { + "interpreter": { + "hash": "e4481115b400f107b26d360e6549f546bb0e8bc1af70e4e66085bfa77a017a39" + } + } + }, + "nbformat": 4, + "nbformat_minor": 2 +}