diff --git a/Dockerfile b/Dockerfile index de690f14..8801eed6 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,21 @@ -# -*- mode: Dockerfile -*- +FROM ubuntu:jammy -FROM ghcr.io/feelpp/feelpp:jammy +RUN apt-get update && apt-get install -y \ + python3 \ + python3-pip \ + wget -USER root -COPY . /home/feelpp/ -RUN ls -lrtR /home/feelpp - -RUN dpkg -i /home/feelpp/*.deb - -USER feelpp +RUN wget -qO - http://apt.feelpp.org/apt.gpg | apt-key add +RUN echo "deb http://apt.feelpp.org/ubuntu/jammy jammy latest" | tee -a /etc/apt/sources.list.d/feelpp.list +RUN apt update +RUN apt-get update && apt-get install -y \ + libfeelpp1 \ + feelpp-tools \ + feelpp-quickstart \ + python3-feelpp \ + feelpp-data \ + libfeelpp-toolboxes1 \ + libfeelpp-toolboxes1-all-dev \ + feelpp-toolboxes \ + feelpp-toolboxes-data \ No newline at end of file diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc index ffb9732d..4f32e54a 100644 --- a/docs/modules/ROOT/pages/index.adoc +++ b/docs/modules/ROOT/pages/index.adoc @@ -11,8 +11,6 @@ ifeval::["{project_name}" != "Benchmarking"] {project_name} is a {feelpp} project. It was created using the repository template https://github.com/feelpp/benchmarking[`feelpp/benchmarking`]. endif::[] -NOTE: this documentation serves as a template for your project. You can edit it to fit your needs. You can also remove it if you don't need it. - .Coding with {feelpp} in {cpp} or {python} [.examp] **** diff --git a/docs/modules/gaya/nav.adoc b/docs/modules/gaya/nav.adoc new file mode 100644 index 00000000..d0d5d436 --- /dev/null +++ b/docs/modules/gaya/nav.adoc @@ -0,0 +1 @@ +* xref:index.adoc[Gaya Reports] \ No newline at end of file diff --git a/docs/modules/gaya/reportSingleNode.json b/docs/modules/gaya/pages/reports/gaya-20240530-0.json similarity index 72% rename from docs/modules/gaya/reportSingleNode.json rename to docs/modules/gaya/pages/reports/gaya-20240530-0.json index ed2a1574..626764ea 100644 --- a/docs/modules/gaya/reportSingleNode.json +++ b/docs/modules/gaya/pages/reports/gaya-20240530-0.json @@ -1,23 +1,23 @@ { "session_info": { - "cmdline": "/home/u4/csmi/2023/pierre/gayaReframe/.venv/bin/reframe -c ./heatTest.py -r --report-file=./../run-reports/reportSingleNode.json --system=gaya --exec-policy=serial", + "cmdline": "/home/u4/csmi/2023/pierre/gayaReframe/.venv/bin/reframe -c ./regression-tests/heatTest.py -r --system=gaya --exec-policy=serial", "config_files": [ "", - "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/../cluster-config/gaya.py" + "/home/u4/csmi/2023/pierre/gayaReframe/cluster-config/gaya.py" ], "data_version": "3.1", "hostname": "gaya", "log_files": [ - "/tmp/rfm-a_ixho0c.log" + "/tmp/rfm-owm5cssj.log" ], - "prefix_output": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/output", - "prefix_stage": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/stage", + "prefix_output": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/output", + "prefix_stage": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/stage", "user": "pierre", "version": "4.6.0", - "workdir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests", - "time_start": "2024-05-27T03:33:03+0200", - "time_end": "2024-05-27T03:43:30+0200", - "time_elapsed": 626.996856212616, + "workdir": "/home/u4/csmi/2023/pierre/gayaReframe", + "time_start": "2024-05-30T07:30:42+0200", + "time_end": "2024-05-30T09:06:50+0200", + "time_elapsed": 5768.079957008362, "num_cases": 8, "num_failures": 0 }, @@ -35,22 +35,22 @@ "dependencies_actual": [], "dependencies_conceptual": [], "description": "Launch testcases from the Heat Toolbox", - "display_name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=128", + "display_name": "HeatToolboxTest %nbTask=128 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "environment": "env_gaya", "fail_phase": null, "fail_reason": null, "filename": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/heatTest.py", "fixture": false, - "hash": "049d662f", - "jobid": "37318", + "hash": "0271aae1", + "jobid": "37469", "job_stderr": "rfm_job.err", "job_stdout": "rfm_job.out", "maintainers": [], - "name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=128", + "name": "HeatToolboxTest %nbTask=128 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "nodelist": [ "None" ], - "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/output/gaya/public/env_gaya/HeatToolboxTest_049d662f", + "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/output/gaya/public/env_gaya/HeatToolboxTest_0271aae1", "perfvars": [ { "name": "initMaterialProperties", @@ -58,7 +58,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.000639343 + "value": 0.000481175 }, { "name": "initMesh", @@ -66,7 +66,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 44.5562079 + "value": 380.271677 }, { "name": "initFunctionSpaces", @@ -74,7 +74,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.122910726 + "value": 1.3681538 }, { "name": "initPostProcess", @@ -82,7 +82,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.023961742 + "value": 0.099100291 }, { "name": "graph", @@ -90,7 +90,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.158336637 + "value": 1.73089917 }, { "name": "matrixVector", @@ -98,7 +98,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.069989499 + "value": 0.307634928 }, { "name": "algebraicOthers", @@ -106,7 +106,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 4.8381e-05 + "value": 0.00012749 }, { "name": "init", @@ -114,7 +114,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 51.742776 + "value": 390.410584 }, { "name": "ksp-niter", @@ -122,7 +122,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 26 + "value": 25 }, { "name": "algebraic-assembly", @@ -130,7 +130,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.491574617 + "value": 1.45158708 }, { "name": "algebraic-solve", @@ -138,7 +138,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 1.15952063 + "value": 9.75897287 }, { "name": "solve", @@ -146,7 +146,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 1.65414961 + "value": 11.2284876 }, { "name": "exportResults", @@ -154,21 +154,21 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 2.43962841 + "value": 4.87701856 } ], "prefix": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests", "result": "success", - "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/stage/gaya/public/env_gaya/HeatToolboxTest_049d662f", + "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/stage/gaya/public/env_gaya/HeatToolboxTest_0271aae1", "scheduler": "squeue", "system": "gaya:public", "tags": [], - "time_compile": 0.006186723709106445, - "time_performance": 0.01816248893737793, - "time_run": 61.866957664489746, - "time_sanity": 0.011742353439331055, - "time_setup": 0.012632369995117188, - "time_total": 61.88821983337402, + "time_compile": 0.006445169448852539, + "time_performance": 0.018275976181030273, + "time_run": 419.1007561683655, + "time_sanity": 0.010920286178588867, + "time_setup": 0.011492490768432617, + "time_total": 419.1211953163147, "unique_name": "HeatToolboxTest_7", "check_vars": { "valid_prog_environs": [ @@ -184,11 +184,13 @@ "postbuild_cmds": [], "executable": "feelpp_toolbox_heat", "executable_opts": [ - "--config-file /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.cfg", - "--case.discretization P2", - "--heat.scalability-save 1" + "--config-file=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", + "--heat.filename=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench/case3_p128.json", + "--heat.scalability-save=1" + ], + "prerun_cmds": [ + "feelpp_mesh_partitioner --part 128 --ifile /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.geo --odir /home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench --dim 3" ], - "prerun_cmds": [], "postrun_cmds": [], "keep_files": [], "readonly_files": [], @@ -214,8 +216,8 @@ "build_locally": true }, "check_params": { - "case": "Building/ThermalBridgesENISO10211/case3.cfg", - "nbTaskPerNode": 128 + "nbTask": 128, + "case": "/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg" } }, { @@ -224,22 +226,22 @@ "dependencies_actual": [], "dependencies_conceptual": [], "description": "Launch testcases from the Heat Toolbox", - "display_name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=64", + "display_name": "HeatToolboxTest %nbTask=64 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "environment": "env_gaya", "fail_phase": null, "fail_reason": null, "filename": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/heatTest.py", "fixture": false, - "hash": "92ecb7c4", - "jobid": "37319", + "hash": "139df0c9", + "jobid": "37470", "job_stderr": "rfm_job.err", "job_stdout": "rfm_job.out", "maintainers": [], - "name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=64", + "name": "HeatToolboxTest %nbTask=64 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "nodelist": [ "None" ], - "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/output/gaya/public/env_gaya/HeatToolboxTest_92ecb7c4", + "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/output/gaya/public/env_gaya/HeatToolboxTest_139df0c9", "perfvars": [ { "name": "initMaterialProperties", @@ -247,7 +249,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.000390845 + "value": 0.000237798 }, { "name": "initMesh", @@ -255,7 +257,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 39.2938822 + "value": 344.43665 }, { "name": "initFunctionSpaces", @@ -263,7 +265,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.238941028 + "value": 2.65288067 }, { "name": "initPostProcess", @@ -271,7 +273,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.023047291 + "value": 0.192163549 }, { "name": "graph", @@ -279,7 +281,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.271893055 + "value": 2.57265986 }, { "name": "matrixVector", @@ -287,7 +289,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.067330397 + "value": 0.641435533 }, { "name": "algebraicOthers", @@ -295,7 +297,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 6.9721e-05 + "value": 2.5608e-05 }, { "name": "init", @@ -303,7 +305,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 40.0285182 + "value": 352.381588 }, { "name": "ksp-niter", @@ -311,7 +313,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 26 + "value": 25 }, { "name": "algebraic-assembly", @@ -319,7 +321,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.505277037 + "value": 2.18142728 }, { "name": "algebraic-solve", @@ -327,7 +329,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 1.62172489 + "value": 12.643042 }, { "name": "solve", @@ -335,7 +337,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 2.13109813 + "value": 14.8489188 }, { "name": "exportResults", @@ -343,21 +345,21 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 1.49051798 + "value": 5.23878325 } ], "prefix": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests", "result": "success", - "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/stage/gaya/public/env_gaya/HeatToolboxTest_92ecb7c4", + "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/stage/gaya/public/env_gaya/HeatToolboxTest_139df0c9", "scheduler": "squeue", "system": "gaya:public", "tags": [], - "time_compile": 0.006096601486206055, - "time_performance": 0.016399145126342773, - "time_run": 51.377662658691406, - "time_sanity": 0.012913942337036133, - "time_setup": 0.009189367294311523, - "time_total": 51.39537501335144, + "time_compile": 0.006263256072998047, + "time_performance": 0.017380714416503906, + "time_run": 389.00750732421875, + "time_sanity": 0.012209415435791016, + "time_setup": 0.009223222732543945, + "time_total": 389.02552938461304, "unique_name": "HeatToolboxTest_6", "check_vars": { "valid_prog_environs": [ @@ -373,11 +375,13 @@ "postbuild_cmds": [], "executable": "feelpp_toolbox_heat", "executable_opts": [ - "--config-file /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.cfg", - "--case.discretization P2", - "--heat.scalability-save 1" + "--config-file=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", + "--heat.filename=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench/case3_p64.json", + "--heat.scalability-save=1" + ], + "prerun_cmds": [ + "feelpp_mesh_partitioner --part 64 --ifile /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.geo --odir /home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench --dim 3" ], - "prerun_cmds": [], "postrun_cmds": [], "keep_files": [], "readonly_files": [], @@ -403,8 +407,8 @@ "build_locally": true }, "check_params": { - "case": "Building/ThermalBridgesENISO10211/case3.cfg", - "nbTaskPerNode": 64 + "nbTask": 64, + "case": "/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg" } }, { @@ -413,22 +417,22 @@ "dependencies_actual": [], "dependencies_conceptual": [], "description": "Launch testcases from the Heat Toolbox", - "display_name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=32", + "display_name": "HeatToolboxTest %nbTask=32 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "environment": "env_gaya", "fail_phase": null, "fail_reason": null, "filename": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/heatTest.py", "fixture": false, - "hash": "f0a3d49c", - "jobid": "37320", + "hash": "17d07fb5", + "jobid": "37471", "job_stderr": "rfm_job.err", "job_stdout": "rfm_job.out", "maintainers": [], - "name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=32", + "name": "HeatToolboxTest %nbTask=32 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "nodelist": [ "None" ], - "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/output/gaya/public/env_gaya/HeatToolboxTest_f0a3d49c", + "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/output/gaya/public/env_gaya/HeatToolboxTest_17d07fb5", "perfvars": [ { "name": "initMaterialProperties", @@ -436,7 +440,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.000400994 + "value": 0.000231075 }, { "name": "initMesh", @@ -444,7 +448,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 39.1032395 + "value": 342.877956 }, { "name": "initFunctionSpaces", @@ -452,7 +456,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.513968009 + "value": 5.66215424 }, { "name": "initPostProcess", @@ -460,7 +464,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.037273547 + "value": 0.46430216 }, { "name": "graph", @@ -468,7 +472,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.530404002 + "value": 5.11497521 }, { "name": "matrixVector", @@ -476,7 +480,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.100427406 + "value": 0.647787177 }, { "name": "algebraicOthers", @@ -484,7 +488,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 5.3401e-05 + "value": 1.7844e-05 }, { "name": "init", @@ -492,7 +496,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 40.5962945 + "value": 358.703748 }, { "name": "ksp-niter", @@ -500,7 +504,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 26 + "value": 25 }, { "name": "algebraic-assembly", @@ -508,7 +512,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.713726048 + "value": 4.19046125 }, { "name": "algebraic-solve", @@ -516,7 +520,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 2.86408008 + "value": 23.0613511 }, { "name": "solve", @@ -524,7 +528,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 3.58438317 + "value": 27.2962758 }, { "name": "exportResults", @@ -532,21 +536,21 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 1.43289984 + "value": 8.05069908 } ], "prefix": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests", "result": "success", - "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/stage/gaya/public/env_gaya/HeatToolboxTest_f0a3d49c", + "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/stage/gaya/public/env_gaya/HeatToolboxTest_17d07fb5", "scheduler": "squeue", "system": "gaya:public", "tags": [], - "time_compile": 0.006186246871948242, - "time_performance": 0.01609039306640625, - "time_run": 51.384968519210815, - "time_sanity": 0.010365009307861328, - "time_setup": 0.00937509536743164, - "time_total": 51.40300273895264, + "time_compile": 0.006216764450073242, + "time_performance": 0.015909910202026367, + "time_run": 409.0422742366791, + "time_sanity": 0.010172367095947266, + "time_setup": 0.00923609733581543, + "time_total": 409.0602331161499, "unique_name": "HeatToolboxTest_5", "check_vars": { "valid_prog_environs": [ @@ -562,11 +566,13 @@ "postbuild_cmds": [], "executable": "feelpp_toolbox_heat", "executable_opts": [ - "--config-file /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.cfg", - "--case.discretization P2", - "--heat.scalability-save 1" + "--config-file=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", + "--heat.filename=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench/case3_p32.json", + "--heat.scalability-save=1" + ], + "prerun_cmds": [ + "feelpp_mesh_partitioner --part 32 --ifile /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.geo --odir /home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench --dim 3" ], - "prerun_cmds": [], "postrun_cmds": [], "keep_files": [], "readonly_files": [], @@ -592,8 +598,8 @@ "build_locally": true }, "check_params": { - "case": "Building/ThermalBridgesENISO10211/case3.cfg", - "nbTaskPerNode": 32 + "nbTask": 32, + "case": "/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg" } }, { @@ -602,22 +608,22 @@ "dependencies_actual": [], "dependencies_conceptual": [], "description": "Launch testcases from the Heat Toolbox", - "display_name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=16", + "display_name": "HeatToolboxTest %nbTask=16 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "environment": "env_gaya", "fail_phase": null, "fail_reason": null, "filename": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/heatTest.py", "fixture": false, - "hash": "d7e0d036", - "jobid": "37321", + "hash": "e0015a73", + "jobid": "37472", "job_stderr": "rfm_job.err", "job_stdout": "rfm_job.out", "maintainers": [], - "name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=16", + "name": "HeatToolboxTest %nbTask=16 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "nodelist": [ "None" ], - "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/output/gaya/public/env_gaya/HeatToolboxTest_d7e0d036", + "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/output/gaya/public/env_gaya/HeatToolboxTest_e0015a73", "perfvars": [ { "name": "initMaterialProperties", @@ -625,7 +631,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.000400323 + "value": 0.000299684 }, { "name": "initMesh", @@ -633,7 +639,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 35.7749471 + "value": 318.152458 }, { "name": "initFunctionSpaces", @@ -641,7 +647,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 1.05285027 + "value": 10.7290651 }, { "name": "initPostProcess", @@ -649,7 +655,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.07695269 + "value": 1.03412633 }, { "name": "graph", @@ -657,7 +663,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.997012549 + "value": 8.91846595 }, { "name": "matrixVector", @@ -665,7 +671,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.163173317 + "value": 1.06035321 }, { "name": "algebraicOthers", @@ -673,7 +679,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 4.773e-05 + "value": 1.4558e-05 }, { "name": "init", @@ -681,7 +687,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 38.7791844 + "value": 347.563516 }, { "name": "ksp-niter", @@ -689,7 +695,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 26 + "value": 24 }, { "name": "algebraic-assembly", @@ -697,7 +703,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 1.10969768 + "value": 7.12755562 }, { "name": "algebraic-solve", @@ -705,7 +711,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 5.04149143 + "value": 41.8528624 }, { "name": "solve", @@ -713,7 +719,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 6.16233402 + "value": 49.0570081 }, { "name": "exportResults", @@ -721,21 +727,21 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 1.8377492 + "value": 13.5311364 } ], "prefix": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests", "result": "success", - "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/stage/gaya/public/env_gaya/HeatToolboxTest_d7e0d036", + "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/stage/gaya/public/env_gaya/HeatToolboxTest_e0015a73", "scheduler": "squeue", "system": "gaya:public", "tags": [], - "time_compile": 0.0061664581298828125, - "time_performance": 0.018194913864135742, - "time_run": 51.38415718078613, - "time_sanity": 0.01078653335571289, - "time_setup": 0.009118795394897461, - "time_total": 51.401896715164185, + "time_compile": 0.0061511993408203125, + "time_performance": 0.017358779907226562, + "time_run": 429.1478636264801, + "time_sanity": 0.010262727737426758, + "time_setup": 0.009612798690795898, + "time_total": 429.1660692691803, "unique_name": "HeatToolboxTest_4", "check_vars": { "valid_prog_environs": [ @@ -751,11 +757,13 @@ "postbuild_cmds": [], "executable": "feelpp_toolbox_heat", "executable_opts": [ - "--config-file /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.cfg", - "--case.discretization P2", - "--heat.scalability-save 1" + "--config-file=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", + "--heat.filename=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench/case3_p16.json", + "--heat.scalability-save=1" + ], + "prerun_cmds": [ + "feelpp_mesh_partitioner --part 16 --ifile /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.geo --odir /home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench --dim 3" ], - "prerun_cmds": [], "postrun_cmds": [], "keep_files": [], "readonly_files": [], @@ -781,8 +789,8 @@ "build_locally": true }, "check_params": { - "case": "Building/ThermalBridgesENISO10211/case3.cfg", - "nbTaskPerNode": 16 + "nbTask": 16, + "case": "/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg" } }, { @@ -791,22 +799,22 @@ "dependencies_actual": [], "dependencies_conceptual": [], "description": "Launch testcases from the Heat Toolbox", - "display_name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=8", + "display_name": "HeatToolboxTest %nbTask=8 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "environment": "env_gaya", "fail_phase": null, "fail_reason": null, "filename": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/heatTest.py", "fixture": false, - "hash": "02473ab9", - "jobid": "37322", + "hash": "01d1153d", + "jobid": "37473", "job_stderr": "rfm_job.err", "job_stdout": "rfm_job.out", "maintainers": [], - "name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=8", + "name": "HeatToolboxTest %nbTask=8 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "nodelist": [ "None" ], - "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/output/gaya/public/env_gaya/HeatToolboxTest_02473ab9", + "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/output/gaya/public/env_gaya/HeatToolboxTest_01d1153d", "perfvars": [ { "name": "initMaterialProperties", @@ -814,7 +822,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.000329329 + "value": 0.000285116 }, { "name": "initMesh", @@ -822,7 +830,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 36.6460809 + "value": 327.002032 }, { "name": "initFunctionSpaces", @@ -830,7 +838,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 1.92753398 + "value": 22.3963686 }, { "name": "initPostProcess", @@ -838,7 +846,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.153738417 + "value": 1.89837087 }, { "name": "graph", @@ -846,7 +854,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 1.9684129 + "value": 17.0373514 }, { "name": "matrixVector", @@ -854,7 +862,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.257800821 + "value": 2.35076967 }, { "name": "algebraicOthers", @@ -862,7 +870,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 3.2792e-05 + "value": 1.3585e-05 }, { "name": "init", @@ -870,7 +878,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 42.2852631 + "value": 385.064237 }, { "name": "ksp-niter", @@ -878,7 +886,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 26 + "value": 23 }, { "name": "algebraic-assembly", @@ -886,7 +894,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 1.88298627 + "value": 13.7799312 }, { "name": "algebraic-solve", @@ -894,7 +902,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 7.83067762 + "value": 63.4048966 }, { "name": "solve", @@ -902,7 +910,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 9.73404331 + "value": 77.3261215 }, { "name": "exportResults", @@ -910,21 +918,21 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 2.57848803 + "value": 23.2197647 } ], "prefix": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests", "result": "success", - "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/stage/gaya/public/env_gaya/HeatToolboxTest_02473ab9", + "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/stage/gaya/public/env_gaya/HeatToolboxTest_01d1153d", "scheduler": "squeue", "system": "gaya:public", "tags": [], - "time_compile": 0.0061757564544677734, - "time_performance": 0.01851940155029297, - "time_run": 61.854410886764526, - "time_sanity": 0.01097249984741211, - "time_setup": 0.009242773056030273, - "time_total": 61.87229681015015, + "time_compile": 0.0064890384674072266, + "time_performance": 0.015207290649414062, + "time_run": 509.3390038013458, + "time_sanity": 0.010343790054321289, + "time_setup": 0.009434938430786133, + "time_total": 509.3575451374054, "unique_name": "HeatToolboxTest_3", "check_vars": { "valid_prog_environs": [ @@ -940,11 +948,13 @@ "postbuild_cmds": [], "executable": "feelpp_toolbox_heat", "executable_opts": [ - "--config-file /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.cfg", - "--case.discretization P2", - "--heat.scalability-save 1" + "--config-file=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", + "--heat.filename=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench/case3_p8.json", + "--heat.scalability-save=1" + ], + "prerun_cmds": [ + "feelpp_mesh_partitioner --part 8 --ifile /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.geo --odir /home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench --dim 3" ], - "prerun_cmds": [], "postrun_cmds": [], "keep_files": [], "readonly_files": [], @@ -970,8 +980,8 @@ "build_locally": true }, "check_params": { - "case": "Building/ThermalBridgesENISO10211/case3.cfg", - "nbTaskPerNode": 8 + "nbTask": 8, + "case": "/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg" } }, { @@ -980,22 +990,22 @@ "dependencies_actual": [], "dependencies_conceptual": [], "description": "Launch testcases from the Heat Toolbox", - "display_name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=4", + "display_name": "HeatToolboxTest %nbTask=4 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "environment": "env_gaya", "fail_phase": null, "fail_reason": null, "filename": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/heatTest.py", "fixture": false, - "hash": "378370f5", - "jobid": "37323", + "hash": "f2da7d66", + "jobid": "37474", "job_stderr": "rfm_job.err", "job_stdout": "rfm_job.out", "maintainers": [], - "name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=4", + "name": "HeatToolboxTest %nbTask=4 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "nodelist": [ "None" ], - "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/output/gaya/public/env_gaya/HeatToolboxTest_378370f5", + "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/output/gaya/public/env_gaya/HeatToolboxTest_f2da7d66", "perfvars": [ { "name": "initMaterialProperties", @@ -1003,7 +1013,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.000355368 + "value": 0.000263115 }, { "name": "initMesh", @@ -1011,7 +1021,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 37.6067235 + "value": 335.858595 }, { "name": "initFunctionSpaces", @@ -1019,7 +1029,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 3.94051617 + "value": 43.0444166 }, { "name": "initPostProcess", @@ -1027,7 +1037,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.310564221 + "value": 3.93755767 }, { "name": "graph", @@ -1035,7 +1045,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 3.78704239 + "value": 35.0846669 }, { "name": "matrixVector", @@ -1043,7 +1053,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.502188769 + "value": 3.67038201 }, { "name": "algebraicOthers", @@ -1051,7 +1061,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 4.8361e-05 + "value": 5.3461e-05 }, { "name": "init", @@ -1059,7 +1069,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 48.5955795 + "value": 449.285846 }, { "name": "ksp-niter", @@ -1067,7 +1077,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 26 + "value": 24 }, { "name": "algebraic-assembly", @@ -1075,7 +1085,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 3.32160617 + "value": 26.5246769 }, { "name": "algebraic-solve", @@ -1083,7 +1093,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 13.9819078 + "value": 113.461795 }, { "name": "solve", @@ -1091,7 +1101,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 17.3418531 + "value": 140.239008 }, { "name": "exportResults", @@ -1099,21 +1109,21 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 4.0407129 + "value": 42.1898755 } ], "prefix": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests", "result": "success", - "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/stage/gaya/public/env_gaya/HeatToolboxTest_378370f5", + "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/stage/gaya/public/env_gaya/HeatToolboxTest_f2da7d66", "scheduler": "squeue", "system": "gaya:public", "tags": [], - "time_compile": 0.006114006042480469, - "time_performance": 0.016025781631469727, - "time_run": 81.8621723651886, - "time_sanity": 0.01107478141784668, - "time_setup": 0.009381294250488281, - "time_total": 81.88013935089111, + "time_compile": 0.006413698196411133, + "time_performance": 0.017175912857055664, + "time_run": 669.61292552948, + "time_sanity": 0.010552167892456055, + "time_setup": 0.009475231170654297, + "time_total": 669.6313323974609, "unique_name": "HeatToolboxTest_2", "check_vars": { "valid_prog_environs": [ @@ -1129,11 +1139,13 @@ "postbuild_cmds": [], "executable": "feelpp_toolbox_heat", "executable_opts": [ - "--config-file /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.cfg", - "--case.discretization P2", - "--heat.scalability-save 1" + "--config-file=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", + "--heat.filename=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench/case3_p4.json", + "--heat.scalability-save=1" + ], + "prerun_cmds": [ + "feelpp_mesh_partitioner --part 4 --ifile /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.geo --odir /home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench --dim 3" ], - "prerun_cmds": [], "postrun_cmds": [], "keep_files": [], "readonly_files": [], @@ -1159,8 +1171,8 @@ "build_locally": true }, "check_params": { - "case": "Building/ThermalBridgesENISO10211/case3.cfg", - "nbTaskPerNode": 4 + "nbTask": 4, + "case": "/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg" } }, { @@ -1169,22 +1181,22 @@ "dependencies_actual": [], "dependencies_conceptual": [], "description": "Launch testcases from the Heat Toolbox", - "display_name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=2", + "display_name": "HeatToolboxTest %nbTask=2 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "environment": "env_gaya", "fail_phase": null, "fail_reason": null, "filename": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/heatTest.py", "fixture": false, - "hash": "5c43dead", - "jobid": "37324", + "hash": "5b078cd3", + "jobid": "37475", "job_stderr": "rfm_job.err", "job_stdout": "rfm_job.out", "maintainers": [], - "name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=2", + "name": "HeatToolboxTest %nbTask=2 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "nodelist": [ "None" ], - "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/output/gaya/public/env_gaya/HeatToolboxTest_5c43dead", + "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/output/gaya/public/env_gaya/HeatToolboxTest_5b078cd3", "perfvars": [ { "name": "initMaterialProperties", @@ -1192,7 +1204,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.000365117 + "value": 0.000234181 }, { "name": "initMesh", @@ -1200,7 +1212,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 40.1906885 + "value": 362.100823 }, { "name": "initFunctionSpaces", @@ -1208,7 +1220,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 8.74929885 + "value": 97.6676462 }, { "name": "initPostProcess", @@ -1216,7 +1228,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.684277124 + "value": 9.52960907 }, { "name": "graph", @@ -1224,7 +1236,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 7.66828277 + "value": 71.9149224 }, { "name": "matrixVector", @@ -1232,7 +1244,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.958098929 + "value": 7.12197694 }, { "name": "algebraicOthers", @@ -1240,7 +1252,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 4.9092e-05 + "value": 2.5067e-05 }, { "name": "init", @@ -1248,7 +1260,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 62.7350452 + "value": 606.16145 }, { "name": "ksp-niter", @@ -1256,7 +1268,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 26 + "value": 24 }, { "name": "algebraic-assembly", @@ -1264,7 +1276,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 6.6259047 + "value": 53.8905838 }, { "name": "algebraic-solve", @@ -1272,7 +1284,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 27.2648251 + "value": 250.084254 }, { "name": "solve", @@ -1280,7 +1292,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 33.9668649 + "value": 304.409325 }, { "name": "exportResults", @@ -1288,21 +1300,21 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 7.53551497 + "value": 89.225019 } ], "prefix": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests", "result": "success", - "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/stage/gaya/public/env_gaya/HeatToolboxTest_5c43dead", + "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/stage/gaya/public/env_gaya/HeatToolboxTest_5b078cd3", "scheduler": "squeue", "system": "gaya:public", "tags": [], - "time_compile": 0.006268739700317383, - "time_performance": 0.01656961441040039, - "time_run": 118.48374462127686, - "time_sanity": 0.011309623718261719, - "time_setup": 0.009392499923706055, - "time_total": 118.50185346603394, + "time_compile": 0.006547689437866211, + "time_performance": 0.01865363121032715, + "time_run": 1060.4228949546814, + "time_sanity": 0.01213836669921875, + "time_setup": 0.009438514709472656, + "time_total": 1060.441332578659, "unique_name": "HeatToolboxTest_1", "check_vars": { "valid_prog_environs": [ @@ -1318,11 +1330,13 @@ "postbuild_cmds": [], "executable": "feelpp_toolbox_heat", "executable_opts": [ - "--config-file /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.cfg", - "--case.discretization P2", - "--heat.scalability-save 1" + "--config-file=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", + "--heat.filename=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench/case3_p2.json", + "--heat.scalability-save=1" + ], + "prerun_cmds": [ + "feelpp_mesh_partitioner --part 2 --ifile /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.geo --odir /home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench --dim 3" ], - "prerun_cmds": [], "postrun_cmds": [], "keep_files": [], "readonly_files": [], @@ -1348,8 +1362,8 @@ "build_locally": true }, "check_params": { - "case": "Building/ThermalBridgesENISO10211/case3.cfg", - "nbTaskPerNode": 2 + "nbTask": 2, + "case": "/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg" } }, { @@ -1358,22 +1372,22 @@ "dependencies_actual": [], "dependencies_conceptual": [], "description": "Launch testcases from the Heat Toolbox", - "display_name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=1", + "display_name": "HeatToolboxTest %nbTask=1 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "environment": "env_gaya", "fail_phase": null, "fail_reason": null, "filename": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/heatTest.py", "fixture": false, - "hash": "80277d5b", - "jobid": "37325", + "hash": "640c52a4", + "jobid": "37476", "job_stderr": "rfm_job.err", "job_stdout": "rfm_job.out", "maintainers": [], - "name": "HeatToolboxTest %case=Building/ThermalBridgesENISO10211/case3.cfg %nbTaskPerNode=1", + "name": "HeatToolboxTest %nbTask=1 %case=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", "nodelist": [ "None" ], - "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/output/gaya/public/env_gaya/HeatToolboxTest_80277d5b", + "outputdir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/output/gaya/public/env_gaya/HeatToolboxTest_640c52a4", "perfvars": [ { "name": "initMaterialProperties", @@ -1381,7 +1395,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 0.000422716 + "value": 0.000238338 }, { "name": "initMesh", @@ -1389,7 +1403,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 37.2860538 + "value": 339.721142 }, { "name": "initFunctionSpaces", @@ -1397,7 +1411,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 15.3900032 + "value": 165.941936 }, { "name": "initPostProcess", @@ -1405,7 +1419,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 1.3519806 + "value": 18.8252238 }, { "name": "graph", @@ -1413,7 +1427,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 15.3189176 + "value": 138.035097 }, { "name": "matrixVector", @@ -1421,7 +1435,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 1.53643403 + "value": 11.2963522 }, { "name": "algebraicOthers", @@ -1429,7 +1443,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 5.1948e-05 + "value": 2.4837e-05 }, { "name": "init", @@ -1437,7 +1451,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 71.2603801 + "value": 678.330515 }, { "name": "ksp-niter", @@ -1445,7 +1459,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 26 + "value": 57 }, { "name": "algebraic-assembly", @@ -1453,7 +1467,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 11.651844 + "value": 97.5699175 }, { "name": "algebraic-solve", @@ -1461,7 +1475,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 40.6241328 + "value": 892.07182 }, { "name": "solve", @@ -1469,7 +1483,7 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 52.3634829 + "value": 990.167928 }, { "name": "exportResults", @@ -1477,21 +1491,21 @@ "thres_lower": null, "thres_upper": null, "unit": "s", - "value": 10.7304718 + "value": 106.792079 } ], "prefix": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests", "result": "success", - "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/regression-tests/stage/gaya/public/env_gaya/HeatToolboxTest_80277d5b", + "stagedir": "/home/u4/csmi/2023/pierre/gayaReframe/build/reframe/stage/gaya/public/env_gaya/HeatToolboxTest_640c52a4", "scheduler": "squeue", "system": "gaya:public", "tags": [], - "time_compile": 0.0060863494873046875, - "time_performance": 0.016550302505493164, - "time_run": 148.5736768245697, - "time_sanity": 0.010498285293579102, - "time_setup": 0.009175300598144531, - "time_total": 148.59136533737183, + "time_compile": 0.006184577941894531, + "time_performance": 0.017139196395874023, + "time_run": 1882.1964151859283, + "time_sanity": 0.011636018753051758, + "time_setup": 0.009370565414428711, + "time_total": 1882.2144775390625, "unique_name": "HeatToolboxTest_0", "check_vars": { "valid_prog_environs": [ @@ -1507,11 +1521,13 @@ "postbuild_cmds": [], "executable": "feelpp_toolbox_heat", "executable_opts": [ - "--config-file /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.cfg", - "--case.discretization P2", - "--heat.scalability-save 1" + "--config-file=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg", + "--heat.filename=/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench/case3_p1.json", + "--heat.scalability-save=1" + ], + "prerun_cmds": [ + "feelpp_mesh_partitioner --part 1 --ifile /usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.geo --odir /home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench --dim 3" ], - "prerun_cmds": [], "postrun_cmds": [], "keep_files": [], "readonly_files": [], @@ -1537,8 +1553,8 @@ "build_locally": true }, "check_params": { - "case": "Building/ThermalBridgesENISO10211/case3.cfg", - "nbTaskPerNode": 1 + "nbTask": 1, + "case": "/home/u4/csmi/2023/pierre/gayaReframe/cases/case3-bench.cfg" } } ] diff --git a/launchProcess.sh b/launchProcess.sh new file mode 100644 index 00000000..73940783 --- /dev/null +++ b/launchProcess.sh @@ -0,0 +1,24 @@ +# Cleaning for avoiding interactions +rm -rf ~/feelppdb +rm -rf ./build/reframe/output/ ./build/reframe/stage/ ./build/reframe/perflogs + + +# Variable TO BE SET to the actual HPC +hostname=local + +current_date=$(date +%Y%m%d) +mkdir -p $(pwd)/docs/modules/${hostname}/pages/reports + +export BENCH_CASES_CFG=$(pwd)/src/benchmarking/cases/ + + +# Reframe environment variables +export RFM_CONFIG_FILES=$(pwd)/build/local.py +export RFM_REPORT_FILE=$(pwd)/build/${hostname}-${current_date}-{sessionid}.json +#export RFM_CONFIG_FILES=$(pwd)/src/benchmarking/reframe/cluster-config/${hostname}.py +#export RFM_REPORT_FILE=$(pwd)/docs/modules/${hostname}/pages/reports/${hostname}-${current_date}-{sessionid}.json +export RFM_PREFIX=$(pwd)/build/reframe/ + + + +reframe -c ./src/feelpp/benchmarking/reframe/regression-tests/heatTest.py -r --system=${hostname} --exec-policy=serial \ No newline at end of file diff --git a/src/.tests.laplacian b/src/.tests.laplacian deleted file mode 100644 index 8db35e60..00000000 --- a/src/.tests.laplacian +++ /dev/null @@ -1 +0,0 @@ -laplacian-1 --config-file ${CMAKE_CURRENT_SOURCE_DIR}/cases/laplacian/fin/fin1/fin2d.cfg \ No newline at end of file diff --git a/src/.tests.toolbox b/src/.tests.toolbox deleted file mode 100644 index 0f090ecf..00000000 --- a/src/.tests.toolbox +++ /dev/null @@ -1 +0,0 @@ -toolbox-1 --config-file ${CMAKE_CURRENT_SOURCE_DIR}/cases/electric/2d.cfg diff --git a/src/_laplacian.cpp b/src/_laplacian.cpp deleted file mode 100644 index d9fdc091..00000000 --- a/src/_laplacian.cpp +++ /dev/null @@ -1,97 +0,0 @@ -//! -*- mode: c++; coding: utf-8; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; show-trailing-whitespace: t -*- vim:fenc=utf-8:ft=cpp:et:sw=4:ts=4:sts=4 -//! -//! This file is part of the Feel++ library -//! -//! This library is free software; you can redistribute it and/or -//! modify it under the terms of the GNU Lesser General Public -//! License as published by the Free Software Foundation; either -//! version 2.1 of the License, or (at your option) any later version. -//! -//! This library is distributed in the hope that it will be useful, -//! but WITHOUT ANY WARRANTY; without even the implied warranty of -//! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -//! Lesser General Public License for more details. -//! -//! You should have received a copy of the GNU Lesser General Public -//! License along with this library; if not, write to the Free Software -//! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -//! -//! @file -//! @brief Python bindings using pybind11 for the Laplacian example -//! @author Christophe Prud'homme -//! @date 2023-10-31 -//! @copyright 2023-2024 Feel++ Consortium -//! @copyright 2023 Université de Strasbourg -//! - -//! -*- mode: c++; coding: utf-8; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; show-trailing-whitespace: t -*- vim:fenc=utf-8:ft=cpp:et:sw=4:ts=4:sts=4 -//! -//! This file is part of the Feel++ library -//! -//! This library is free software; you can redistribute it and/or -//! modify it under the terms of the GNU Lesser General Public -//! License as published by the Free Software Foundation; either -//! version 2.1 of the License, or (at your option) any later version. -//! -//! This library is distributed in the hope that it will be useful, -//! but WITHOUT ANY WARRANTY; without even the implied warranty of -//! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -//! Lesser General Public License for more details. -//! -//! You should have received a copy of the GNU Lesser General Public -//! License along with this library; if not, write to the Free Software -//! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -//! -//! @file -//! @author Christophe Prud'homme -//! @date 15 Jun 2017 -//! @copyright 2017 Feel++ Consortium -//! -#include -#include -#include -#include -#include -#include -#include -#include "laplacian.hpp" - -namespace py = pybind11; - -template -void -laplacian_inst( py::module &m ) -{ - using namespace Feel; - - py::class_>(m, fmt::format("Laplacian{}DP{}",Dim,Order).c_str() ) - .def(py::init<>()) - .def(py::init()) - .def("initialize", &Laplacian::initialize, "Initialize the Laplacian instance") - .def("processMaterials", &Laplacian::processMaterials, "Process materials from the json data") - .def("processBoundaryConditions", &Laplacian::processBoundaryConditions, "Process boundary conditions from the json data") - .def("run", &Laplacian::run, "Run the Laplacian instance") - .def("timeLoop", &Laplacian::timeLoop, "Execute the time loop") - .def("exportResults", &Laplacian::exportResults, "Postprocess and export the results") - .def("summary", &Laplacian::summary) - .def("specs", &Laplacian::specs, "Return the json specification of the Laplacian instance") - .def("setSpecs", &Laplacian::setSpecs, "Set the json specification of the Laplacian instance") - .def("mesh", &Laplacian::mesh, "Return the mesh") - .def("setMesh", &Laplacian::setMesh, "Set the mesh") - .def("Xh", &Laplacian::Xh, "Return the function space") - .def("u", &Laplacian::u, "Return the element u") - .def("setU", &Laplacian::setU, "Set the element u") - .def("measures", &Laplacian::measures, "Return the measures") - .def("writeResultsToFile", &Laplacian::writeResultsToFile, "Write the results to file") - ; -} -PYBIND11_MODULE(_laplacian, m ) -{ - if (import_mpi4py()<0) return ; - m.doc() = fmt::format("Python bindings for Laplacian class" ); // Optional module docstring - laplacian_inst<2,1>(m); - laplacian_inst<2,2>(m); -// laplacian_inst<2,3>(m); -// laplacian_inst<3,1>(m); -// laplacian_inst<3,2>(m); -} diff --git a/src/benchmarking/cases/case2-bench.cfg b/src/benchmarking/cases/case2-bench.cfg new file mode 100644 index 00000000..ef31f876 --- /dev/null +++ b/src/benchmarking/cases/case2-bench.cfg @@ -0,0 +1,23 @@ + +directory=toolboxes/heat/ThermalBridgesENISO10211/Case2 + +# Test default configuration: +# - discretization = P1 +# - filename = $cfgdir/case2.geo +# - hsize = 0.001 + +case.dimension=2 +case.discretization=P2 + +[heat] +json.filename=/usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case2.json + +json.merge_patch={"Meshes":{"heat":{"Import":{"filename": "/usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case2.geo"}}}} +json.merge_patch={"Meshes":{"heat":{"Import":{"hsize": 0.0005}}}} + + +#verbose=1 +#verbose_solvertimer=1 +#reuse-prec=1 +pc-type=lu #gamg +ksp-monitor=1 \ No newline at end of file diff --git a/src/benchmarking/cases/case3-bench.cfg b/src/benchmarking/cases/case3-bench.cfg new file mode 100644 index 00000000..c691ff32 --- /dev/null +++ b/src/benchmarking/cases/case3-bench.cfg @@ -0,0 +1,23 @@ + +directory=toolboxes/heat/ThermalBridgesENISO10211/Case3 + +# Test default configuration: +# - discretization = P1 +# - filename = $cfgdir/case2.geo +# - hsize = 0.02 + +case.dimension=3 +case.discretization=P2 + +[heat] +json.filename=/usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.json + +json.merge_patch={"Meshes":{"heat":{"Import":{"filename": "/usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case3.geo"}}}} +json.merge_patch={"Meshes":{"heat":{"Import":{"hsize": 0.01}}}} + + +#verbose=1 +#verbose_solvertimer=1 +#reuse-prec=1 +pc-type=gamg +ksp-monitor=1 diff --git a/src/benchmarking/cases/case4-bench.cfg b/src/benchmarking/cases/case4-bench.cfg new file mode 100644 index 00000000..a3255a19 --- /dev/null +++ b/src/benchmarking/cases/case4-bench.cfg @@ -0,0 +1,23 @@ + +directory=toolboxes/heat/ThermalBridgesENISO10211/Case4 + +# Test default configuration: +# - discretization = P1 +# - filename = $cfgdir/case4.geo +# - hsize = 0.02 + +case.dimension=3 +case.discretization=P2 + +[heat] +json.filename=/usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/Case4.json + +json.merge_patch={"Meshes":{"heat":{"Import":{"filename": "/usr/share/feelpp/data/testcases/toolboxes/heat/cases/Building/ThermalBridgesENISO10211/case4.geo"}}}} +json.merge_patch={"Meshes":{"heat":{"Import":{"hsize": 0.01}}}} + + +#verbose=1 +#verbose_solvertimer=1 +#reuse-prec=1 +pc-type=gamg +ksp-monitor=1 diff --git a/src/feelpp/benchmarking/reframe/cluster-config/gaya.py b/src/benchmarking/reframe/cluster-config/gaya.py similarity index 66% rename from src/feelpp/benchmarking/reframe/cluster-config/gaya.py rename to src/benchmarking/reframe/cluster-config/gaya.py index 1cdf8811..df27858e 100644 --- a/src/feelpp/benchmarking/reframe/cluster-config/gaya.py +++ b/src/benchmarking/reframe/cluster-config/gaya.py @@ -13,8 +13,18 @@ 'max_jobs': 8, 'access': ['--partition=public'], 'environs': ['env_gaya'], + 'processor': { + 'num_cpus_per_socket': 64, + 'num_sockets': 2 + }, + 'devices': [ + { + 'name': 'cpu_node', + 'num_devices': 6 + } + ] }, - ], + ] } ], 'environments': [ diff --git a/src/feelpp/benchmarking/reframe/regression-tests/heatTest.py b/src/benchmarking/reframe/regression-tests/heatTest.py similarity index 63% rename from src/feelpp/benchmarking/reframe/regression-tests/heatTest.py rename to src/benchmarking/reframe/regression-tests/heatTest.py index 1257fd90..31e7be3a 100644 --- a/src/feelpp/benchmarking/reframe/regression-tests/heatTest.py +++ b/src/benchmarking/reframe/regression-tests/heatTest.py @@ -1,98 +1,83 @@ -import reframe as rfm -import reframe.utility.sanity as sn -import os - -singleNode = False - +from setup import * @rfm.simple_test -class HeatToolboxTest (rfm.RunOnlyRegressionTest): +class HeatToolboxTest (Setup): - def __init__(self): - super().__init__() - self.feelLogPath = self.build_feel_path() - - # Initialisation descr = 'Launch testcases from the Heat Toolbox' - valid_systems = ['gaya'] - valid_prog_environs = ['env_gaya'] - - heatCasesPath = '/usr/share/feelpp/data/testcases/toolboxes/heat/cases/' + executable = 'feelpp_toolbox_heat' - # 3d, temperature distribution and heat flows through the wall-balcony junction - case3 = 'Building/ThermalBridgesENISO10211/case3.cfg' + cfgPath = os.environ.get('BENCH_CASES_CFG') + case2 = os.path.join(cfgPath, 'case2-bench.cfg') # 2D + case3 = os.path.join(cfgPath, 'case3-bench.cfg') # 3D + case4 = os.path.join(cfgPath, 'case4-bench.cfg') # 3D - # Parametrization - case = parameter ([case3]) # more cases to be added... + case = parameter([case3])#, case2, case4]) - if singleNode: - nbNodes = 1 - nbTaskPerNode = parameter([1,2,4,8,16,32,64,128]) - else: - nbNodes = parameter([1,2,3,4,5,6]) # doesn't work: MPI_ERR_TRUNC - nbTaskPerNode = 128 - homeDir = os.environ['HOME'] + @run_after('init') + def extendPaths(self): + with open(self.case, 'r') as file: + for line in file: + if line.startswith('directory='): + outputDir = line.split('=')[1].strip() + if line.startswith('json.filename='): + geoPath = line.split('=')[1].strip() + geoPath = geoPath.replace('.json', '.geo') - def build_feel_path(self): - caseModif = self.case.replace('case3.cfg', 'Case3') - caseModif = caseModif.replace('Building/', '') - feelLogPath = os.path.join(self.homeDir, 'feelppdb/toolboxes/heat', caseModif) - return feelLogPath + self.feelLogPath = os.path.join(self.feelLogPath, outputDir) + self.geoPath = geoPath - # Launcher options - @run_before('run') - def set_launcher_options(self): - self.job.launcher.options = ['-bind-to core'] @run_before('run') - def set_task_number(self): - self.num_tasks_per_node = self.nbTaskPerNode - self.num_cpus_per_task = 1 - self.num_tasks = self.num_tasks_per_node * self.nbNodes - + def partitionMesh(self): + dim = 2 if self.case == self.case2 else 3 + output = self.case[:-4] + output = output.replace('-bench.cfg', f'_{self.num_tasks}') + meshCmd = self.meshPartionerCmd(self.num_tasks, self.geoPath, output, dim) + self.prerun_cmds = [f'{meshCmd}'] - # Executable options - executable = 'feelpp_toolbox_heat' @run_before('run') def set_executable_opts(self): - fullPath = os.path.join(self.heatCasesPath, self.case3) - self.executable_opts = [f'--config-file {fullPath}', - '--case.discretization P2', - '--heat.scalability-save 1'] + dir = self.case[:-4] + filename = os.path.basename(self.case).replace('-bench.cfg', f'_p{self.num_tasks}.json') + filePath = os.path.join(dir, filename) + self.executable_opts = [f'--config-file={self.case}', + f'--heat.filename={filePath}', + '--heat.scalability-save=1'] - # Performance variables extraction using regex patterns namePatt = '([a-zA-z\-]+)' valPatt = '([0-9e\-\+\.]+)' - @sn.deferrable + def get_constructor_name(self, index=1): scalePath = os.path.join(self.feelLogPath, 'heat.scalibility.HeatConstructor.data') return sn.extractsingle(rf'nProc[\s]+{self.namePatt}[\s]+{self.namePatt}[\s]+{self.namePatt}[\s]+{self.namePatt}[\s]+{self.namePatt}[\s]+{self.namePatt}[\s]+{self.namePatt}[\s]+{self.namePatt}[\s]+', scalePath, index, str) - @sn.deferrable + def get_solve_name(self, index=1): scalePath = os.path.join(self.feelLogPath, 'heat.scalibility.HeatSolve.data') return sn.extractsingle(rf'nProc[\s]+{self.namePatt}[\s]+{self.namePatt}[\s]+{self.namePatt}[\s]+{self.namePatt}', scalePath, index, str) - @sn.deferrable + def get_postprocessing_name(self, index=1): scalePath = os.path.join(self.feelLogPath, 'heat.scalibility.HeatPostProcessing.data') return sn.extractsingle(rf'nProc[\s]+{self.namePatt}[\s]+', scalePath, index, str) + @performance_function('s') def extract_constructor_scale(self, index=1): scalePath = os.path.join(self.feelLogPath, 'heat.scalibility.HeatConstructor.data') return sn.extractsingle(rf'^{self.num_tasks}[\s]+{self.valPatt}[\s]+{self.valPatt}[\s]+{self.valPatt}[\s]+{self.valPatt}[\s]+{self.valPatt}[\s]+{self.valPatt}[\s]+{self.valPatt}[\s]+{self.valPatt}[\s]+', scalePath, index, float) + @performance_function('s') def extract_solve_scale(self, index=1): scalePath = os.path.join(self.feelLogPath, 'heat.scalibility.HeatSolve.data') @@ -101,6 +86,7 @@ def extract_solve_scale(self, index=1): return sn.extractsingle(rf'^{self.num_tasks}[\s]+{self.valPatt}[\s]+{self.valPatt}[\s]+{self.valPatt}[\s]+{self.valPatt}', scalePath, index, valType) + @performance_function('s') def extract_postprocessing_scale(self, index=1): scalePath = os.path.join(self.feelLogPath, 'heat.scalibility.HeatPostProcessing.data') diff --git a/src/benchmarking/reframe/regression-tests/setup.py b/src/benchmarking/reframe/regression-tests/setup.py new file mode 100644 index 00000000..821e3aaa --- /dev/null +++ b/src/benchmarking/reframe/regression-tests/setup.py @@ -0,0 +1,51 @@ +import reframe as rfm +import reframe.utility.sanity as sn +import reframe.core.runtime as rt + +import os + + +def parametrizeTaskNumber(): + for part in rt.runtime().system.partitions: + nbTask = 1 + nbPhysicalCpus = part.processor.num_cpus_per_socket * part.processor.num_sockets + while nbTask < nbPhysicalCpus: + yield nbTask + nbTask <<= 1 + + nbNodes = part.devices[0].num_devices + for i in range(1, nbNodes+1): + nbTask = i*nbPhysicalCpus + yield nbTask + + + +@rfm.simple_test +class Setup(rfm.RunOnlyRegressionTest): + + valid_systems = ['local'] + valid_prog_environs = ['env_local'] + homeDir = os.environ['HOME'] + feelLogPath = os.path.join(homeDir, 'feelppdb/') + + + # Parametrization + nbTask = parameter(parametrizeTaskNumber()) + + + @run_before('run') + def setTaskNumber(self): + nbPhysicalCpus = self.current_partition.processor.num_cpus_per_socket * self.current_partition.processor.num_sockets + self.num_tasks_per_node = min(self.nbTask, nbPhysicalCpus) + self.num_cpus_per_task = 1 + self.num_tasks = self.nbTask + + + # Launcher options + @run_before('run') + def set_launcher_options(self): + self.job.launcher.options = ['-bind-to core'] + + + def meshPartionerCmd(self, nparts, ifile, odir, dim=3): + return f'feelpp_mesh_partitioner --part {nparts} --ifile {ifile} --odir {odir} --dim {dim}' \ No newline at end of file diff --git a/src/benchmarking/reframe/report.py b/src/benchmarking/reframe/report.py new file mode 100644 index 00000000..3c5ac860 --- /dev/null +++ b/src/benchmarking/reframe/report.py @@ -0,0 +1,259 @@ + +import os +import json +import pandas as pd +import plotly.graph_objects as go +import plotly.express as px + +print(pd.__version__) + +# Replace 'your_file.json' with the path to your JSON file +# file_path = 'docs/modules/meluxina/pages/20231209/kub_scenario0.json' + + +# Tests with only main references +notPartial = [ '20231201-1430.json', + '20231207-1600.json', + '20231209-0040.json', + '20231211-0600.json', + '20231211-1248.json', + 'kub_scenario0.json' ] + + +# Names in Feel++ output document +partialPerfNames = {'init': ['initMaterialProperties', 'initMesh', 'initFunctionSpaces', 'initPostProcess', 'graph', 'matrixVector', 'algebraicOthers'], + 'solve': ['ksp-niter', 'algebraic-assembly', 'algebraic-solve'] } + +def isPartialPerf(name): + return any(name in names for names in partialPerfNames.values()) + + + +class Report: + """ + Class to load the reframe report file, a json file, and extract the data + + :param file_path: path to the json file + :type file_path: str + + """ + + def __init__(self, file_path): + + self.file_path = file_path + + self.partial = False + if os.path.basename(self.file_path) not in notPartial: + self.partial = True + + # Following attributes will be set using methods + self.data = None + self.ref_speedup = -1 + self.df_perf = pd.DataFrame() + self.df_speedup = pd.DataFrame() + self.df_partialPerf = pd.DataFrame() if self.partial else None + self.df_partialSpeedup = pd.DataFrame() if self.partial else None + + self.load() + self.processData() + + + + def load(self): + with open(self.file_path, 'r') as file: + self.data = json.load(file) + + + def processData(self): + # Needed dataframe for building df_perf and df_speedup + df = pd.DataFrame(self.data['runs'][0]['testcases'][0:]) + df['num_tasks'] = df['check_vars'].apply(lambda x: x['num_tasks']) + df['num_tasks'] = df['num_tasks'].astype(int) + df = df[['num_tasks', 'perfvars']] + + self.buildPerf(df) + self.buildSpeedup(df) + + + + def buildPerf(self, df): + for k, t in enumerate(df['num_tasks'].unique()): + for perf in df['perfvars'][k]: + if isPartialPerf(perf['name']): + self.df_partialPerf = pd.concat([self.df_partialPerf, pd.DataFrame( + [{'num_tasks': t, 'name': perf['name'], 'value': perf['value']}])], ignore_index=True) + else: + self.df_perf = pd.concat([self.df_perf, pd.DataFrame( + [{'num_tasks': t, 'name': perf['name'], 'value': perf['value']}])], ignore_index=True) + + self.df_perf['name'] = self.df_perf['name'].astype(str) + self.df_perf['value'] = self.df_perf['value'].astype(float) + self.df_perf['num_tasks'] = self.df_perf['num_tasks'].astype(int) + + if self.partial: + self.df_partialPerf['name'] = self.df_partialPerf['name'].astype(str) + self.df_partialPerf['value'] = self.df_partialPerf['value'].astype(float) + self.df_partialPerf['num_tasks'] = self.df_partialPerf['num_tasks'].astype(int) + + + def buildSpeedup(self, df): + self.ref_speedup = df['num_tasks'].min() + mainRefs = self.df_perf[self.df_perf['num_tasks'] == self.ref_speedup] + print("Main performance variables:\n", mainRefs.to_markdown()) + + if self.partial: + partRefs = self.df_partialPerf[self.df_partialPerf['num_tasks'] == self.ref_speedup] + print("Partial performances variables\n", partRefs.to_markdown()) + + for k, t in enumerate(df['num_tasks'].unique()): + mainIndex = 0 + partIndex = 0 + for perf in df['perfvars'][k]: + + if isPartialPerf(perf['name']): + self.df_partialSpeedup = pd.concat([self.df_partialSpeedup, pd.DataFrame( + [{'num_tasks': t, 'name': perf['name'], 'value': partRefs['value'].values[partIndex]/perf['value']}] )], ignore_index=True) + partIndex += 1 + else: + self.df_speedup = pd.concat([self.df_speedup, pd.DataFrame( + [{'num_tasks': t, 'name': perf['name'], 'value': mainRefs['value'].values[mainIndex]/perf['value']}] )], ignore_index=True) + mainIndex += 1 + + # The optimal speedup is ref_speedup + lambda1 = lambda x: x/self.ref_speedup + lambda2 = lambda x: x/(2*self.ref_speedup) + self.df_speedup['optimal'] = self.df_speedup['num_tasks'].apply(lambda1) + self.df_speedup['half optimal'] = self.df_speedup['num_tasks'].apply(lambda2) + + if self.partial: + self.df_partialSpeedup = self.df_partialSpeedup[self.df_partialSpeedup['name'] !='ksp-niter'] + self.df_partialSpeedup['optimal'] = self.df_partialSpeedup['num_tasks'].apply(lambda1) + self.df_partialSpeedup['half optimal'] = self.df_partialSpeedup['num_tasks'].apply(lambda2) + + + def extractSessionInfo(self): + """ + Extracts and returns session information from the JSON data. + """ + if 'session_info' in self.data: + session = self.data['session_info'] + return { + 'cmdline': session.get('cmdline', 'N/A'), + 'config_files': session.get('config_files', []), + 'data_version': session.get('data_version', 'N/A'), + 'hostname': session.get('hostname', 'N/A'), + 'log_files': session.get('log_files', []), + 'prefix_output': session.get('prefix_output', 'N/A'), + 'prefix_stage': session.get('prefix_stage', 'N/A'), + 'user': session.get('user', 'N/A'), + 'version': session.get('version', 'N/A'), + 'workdir': session.get('workdir', 'N/A'), + 'time_start': session.get('time_start', 'N/A'), + 'time_end': session.get('time_end', 'N/A'), + 'time_elapsed': session.get('time_elapsed', 0), + 'num_cases': session.get('num_cases', 0), + 'num_failures': session.get('num_failures', 0) + } + else: + return {} + + + def printSessionInfo(self): + for key, value in self.extractSessionInfo().items(): + print(f"{key}: {value}") + + def data(self): + return self.data + + def testcases(self): + return self.data['runs'][0]['testcases'] + + def perfvars(self): + return self.data['runs'][0]['testcases'][0]['perfvars'] + + def check_vars(self): + return self.data['runs'][0]['testcases'][0]['check_vars'] + + def perf(self): + return self.df_perf + + def speedup(self): + return self.df_speedup + + def ref_speedup(self): + return self.ref_speedup + + def partialPerfs(self): + return self.df_partialPerf + + def partialSpeedUp(self): + return self.df_partialSpeedup + + + def plotSteps(self): + fig = go.Figure() + for i in self.df_perf['name'].unique(): + fig.add_trace(go.Scatter(x=self.df_perf[self.df_perf['name'] == i]['num_tasks'], + y=self.df_perf[self.df_perf['name'] == i]['value'], name=i, mode='lines+markers')) + fig.update_layout(title='Steps', yaxis_type="log") + return fig + + + def plotPerformanceByStep(self): + fig = go.Figure() + for t in sorted(self.df_perf['num_tasks'].unique(), reverse=False): + df_task = self.df_perf[self.df_perf['num_tasks'] == t] + fig.add_trace( + go.Bar(x=df_task['name'], y=df_task['value'], name=str(t))) + + fig.update_layout(barmode='group', xaxis_tickangle=-45, + title='Performance by step', yaxis_type='log') + return fig + + + def plotPerformanceByTask(self): + fig = px.bar(self.df_perf, x="num_tasks", y="value", title='Performance by task', + color="name", barmode="group", log_y=True, log_x=True) + return fig + + + def plotSpeedup(self): + fig = go.Figure() + for t in self.df_speedup['name'].unique(): + df_task = self.df_speedup[self.df_speedup['name'] == t] + fig.add_trace(go.Scatter(x=df_task['num_tasks'], y=df_task['value'], + mode='lines+markers', name=f'{df_task["name"].values[0]}')) + + fig.add_trace(go.Scatter( + x=self.df_speedup['num_tasks'], y=self.df_speedup['optimal'], mode='lines', name='optimal')) + fig.add_trace(go.Scatter( + x=self.df_speedup['num_tasks'], y=self.df_speedup['half optimal'], mode='lines', name='half optimal')) + fig.add_trace(go.Scatter( + x=self.df_speedup['num_tasks'], y=self.df_speedup['optimal'], fill='tonexty', mode='none', name='optimal')) + + fig.layout.update(title='Speedup for main stages') + return fig + + + def plotPartialSpeedup(self, key): + + fig = go.Figure() + partialNames = partialPerfNames[key] + if key=='solve': + partialNames.remove('ksp-niter') + + for t in partialNames: + df_task = self.df_partialSpeedup[self.df_partialSpeedup['name'] == t] + fig.add_trace(go.Scatter(x=df_task['num_tasks'], y=df_task['value'], + mode='lines+markers', name=f'{df_task["name"].values[0]}')) + + fig.add_trace(go.Scatter( + x=self.df_partialSpeedup['num_tasks'], y=self.df_partialSpeedup['optimal'], mode='lines', name='optimal')) + fig.add_trace(go.Scatter( + x=self.df_partialSpeedup['num_tasks'], y=self.df_partialSpeedup['half optimal'], mode='lines', name='half optimal')) + fig.add_trace(go.Scatter( + x=self.df_partialSpeedup['num_tasks'], y=self.df_partialSpeedup['optimal'], fill='tonexty', mode='none', name='optimal')) + + fig.layout.update(title=f'Speed up for {key} phase') + return fig + \ No newline at end of file diff --git a/src/feelpp/benchmarking/__init__.py b/src/feelpp/benchmarking/__init__.py deleted file mode 100644 index 3f2ff2d6..00000000 --- a/src/feelpp/benchmarking/__init__.py +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/src/feelpp/benchmarking/laplacian.py b/src/feelpp/benchmarking/laplacian.py deleted file mode 100644 index d360442f..00000000 --- a/src/feelpp/benchmarking/laplacian.py +++ /dev/null @@ -1,27 +0,0 @@ -import feelpp -from ._laplacian import * -import json - -_laps = { - 'laplacian(2,1)': Laplacian2DP1, - 'laplacian(2,2)': Laplacian2DP2, -} - - -def get(dim=2, order=1, worldComm=None): - """create a Laplacian operator - - """ - if worldComm is None: - worldComm = feelpp.Environment.worldCommPtr() - key = 'laplacian('+str(dim)+','+str(order)+')' - if key not in _laps: - raise RuntimeError('Laplacian'+key+' is not available') - return _laps[key]() - -def loadSpecs(jsonfile): - # Reading the JSON file - with open(jsonfile, 'r') as file: - data = json.load(file) - return data - diff --git a/src/feelpp/benchmarking/reframe/__init__.py b/src/feelpp/benchmarking/reframe/__init__.py deleted file mode 100644 index e69de29b..00000000 diff --git a/src/feelpp/benchmarking/reframe/report.py b/src/feelpp/benchmarking/reframe/report.py deleted file mode 100644 index ac671007..00000000 --- a/src/feelpp/benchmarking/reframe/report.py +++ /dev/null @@ -1,148 +0,0 @@ - -import json -import pandas as pd -import plotly.graph_objects as go -import plotly.express as px - -print(pd.__version__) - -# Replace 'your_file.json' with the path to your JSON file -# file_path = 'docs/modules/meluxina/pages/20231209/kub_scenario0.json' - -# Set refIndex according to the position of the reference you want for the speedup -refIndex = 2 - - -class Report: - """ - Class to load the reframe report file, a json file, and extract the data - - :param file_path: path to the json file - :type file_path: str - - """ - - def __init__(self, file_path, ref_speedup=128): - self.file_path = file_path - self.data = None - self.load() - - df = pd.DataFrame(self.data['runs'][0]['testcases'][0:]) - df['num_tasks'] = df['check_vars'].apply(lambda x: x['num_tasks']) - df['num_tasks'] = df['num_tasks'].astype(int) - self.df_perf = pd.DataFrame() - for k, t in enumerate(df['num_tasks'].unique()): - for i in df['perfvars'][k]: - self.df_perf = pd.concat([self.df_perf, pd.DataFrame( - [{'num_tasks': t, 'name': i['name'], 'value': i['value']}])], ignore_index=True) - - self.df_perf['name'] = self.df_perf['name'].astype(str) - self.df_perf['value'] = self.df_perf['value'].astype(float) - self.df_perf['num_tasks'] = self.df_perf['num_tasks'].astype(int) - - # build a dataframe for the speedup with respect to 'ref_speedup' tasks - self.df_speedup = pd.DataFrame() - ref = self.df_perf[self.df_perf['num_tasks'] == ref_speedup] - print(ref.to_markdown()) - - for k, t in enumerate(df['num_tasks'].unique()): - for i in df['perfvars'][k]: - self.df_speedup = pd.concat([self.df_speedup, pd.DataFrame( - [{'num_tasks': t, 'name': i['name'], 'value': ref['value'].values[refIndex]/i['value']}])], ignore_index=True) - # the optimal speedup is ref_speedup - self.df_speedup['optimal'] = self.df_speedup['num_tasks'].apply( - lambda x: x/ref_speedup) - self.df_speedup['half optimal'] = self.df_speedup['num_tasks'].apply( - lambda x: x/(2*ref_speedup)) - - def load(self): - with open(self.file_path, 'r') as file: - self.data = json.load(file) - - def extractSessionInfo(self): - """ - Extracts and returns session information from the JSON data. - """ - if 'session_info' in self.data: - session = self.data['session_info'] - return { - 'cmdline': session.get('cmdline', 'N/A'), - 'config_files': session.get('config_files', []), - 'data_version': session.get('data_version', 'N/A'), - 'hostname': session.get('hostname', 'N/A'), - 'log_files': session.get('log_files', []), - 'prefix_output': session.get('prefix_output', 'N/A'), - 'prefix_stage': session.get('prefix_stage', 'N/A'), - 'user': session.get('user', 'N/A'), - 'version': session.get('version', 'N/A'), - 'workdir': session.get('workdir', 'N/A'), - 'time_start': session.get('time_start', 'N/A'), - 'time_end': session.get('time_end', 'N/A'), - 'time_elapsed': session.get('time_elapsed', 0), - 'num_cases': session.get('num_cases', 0), - 'num_failures': session.get('num_failures', 0) - } - else: - return {} - - def printSessionInfo(self): - for key, value in self.extractSessionInfo().items(): - print(f"{key}: {value}") - - def data(self): - return self.data - - def testcases(self): - return self.data['runs'][0]['testcases'] - - def perfvars(self): - return self.data['runs'][0]['testcases'][0]['perfvars'] - - def check_vars(self): - return self.data['runs'][0]['testcases'][0]['check_vars'] - - def perf(self): - return self.df_perf - - def speedup(self): - return self.df_speedup - - def plotSteps(self): - fig = go.Figure() - for i in self.df_perf['name'].unique(): - fig.add_trace(go.Scatter(x=self.df_perf[self.df_perf['name'] == i]['num_tasks'], - y=self.df_perf[self.df_perf['name'] == i]['value'], name=i, mode='lines+markers')) - fig.update_layout(yaxis_type="log") - return fig - - def plotPerformanceByStep(self): - fig = go.Figure() - for t in sorted(self.df_perf['num_tasks'].unique(), reverse=False): - df_task = self.df_perf[self.df_perf['num_tasks'] == t] - fig.add_trace( - go.Bar(x=df_task['name'], y=df_task['value'], name=str(t))) - - fig.update_layout(barmode='group', xaxis_tickangle=-45, - title='Performance of tasks', yaxis_type='log') - return fig - - def plotPerformanceByTask(self): - fig = px.bar(self.df_perf, x="num_tasks", y="value", - color="name", barmode="group", log_y=True, log_x=True) - return fig - - def plotSpeedup(self): - fig = go.Figure() - for t in self.df_speedup['name'].unique(): - df_task = self.df_speedup[self.df_speedup['name'] == t] - fig.add_trace(go.Scatter(x=df_task['num_tasks'], y=df_task['value'], - mode='lines+markers', name=f'{df_task["name"].values[0]}')) - - fig.add_trace(go.Scatter( - x=self.df_speedup['num_tasks'], y=self.df_speedup['optimal'], mode='lines', name='optimal')) - fig.add_trace(go.Scatter( - x=self.df_speedup['num_tasks'], y=self.df_speedup['half optimal'], mode='lines', name='half optimal')) - fig.add_trace(go.Scatter( - x=self.df_speedup['num_tasks'], y=self.df_speedup['optimal'], fill='tonexty', mode='none', name='optimal')) - fig.layout.update(title='Speedup') - return fig diff --git a/src/feelpp/laplacian-case/fin/fin.geo b/src/feelpp/laplacian-case/fin/fin.geo deleted file mode 100644 index e11c1885..00000000 --- a/src/feelpp/laplacian-case/fin/fin.geo +++ /dev/null @@ -1,105 +0,0 @@ -SetFactory("OpenCASCADE"); -//+ -h = 0.05; - -Nfins=4; -Lfins=2.5; -dim=2; - -N = DefineNumber[ Nfins, Name "Parameters/N" ]; -L = DefineNumber[ Lfins, Name "Parameters/L" ]; -t = DefineNumber[ 0.25, Name "Parameters/t" ]; -d = DefineNumber[ 0.75, Name "Parameters/d" ]; -hmax=0.5; -Mesh.CharacteristicLengthMax = hmax; - -If ( dim == 2 ) - -//+ -Rectangle(1) = {0, 0, 0, 1, N*(d+t)+t, 0}; -For r In {1:N} - Printf("fin = %g",r); - Rectangle(r+1) = {-L, r*(d+t), 0, 2*L+1, t, 0}; -EndFor - -S[]=BooleanFragments{ Surface{1}; Delete; }{ Surface{2:N+1}; Delete;}; -Characteristic Length{ PointsOf{ Surface{ : }; } } = h; - -If ( Nfins==1 ) - -EndIf -//+ -// Physical Surface (Sprintf("fin-%g",r)) = r+1; - -Physical Surface("Post") = {1:2*N}; -finid = 1; -For r In {2*N+1:#S[]:2 } - Printf("Fin number %g %g ", r, finid); - Physical Surface(Sprintf("Fin_%g",finid)) = {r,r+1}; - finid += 1; -EndFor - -bdy[] = CombinedBoundary { Surface{:}; }; - -Physical Curve("Gamma_ext") = bdy[0]; - -For ii In { 1 : (#bdy[]-1) } - If (bdy[ii] != 4) - Printf("boundary number %g = %g", ii, Abs(bdy[ii])); - Physical Curve("Gamma_ext") += Abs(bdy[ii]); - Else - Physical Curve("Gamma_root") = bdy[ii]; - EndIf -EndFor - -// Nfins = 1 2 cavities -// If ( Nfins == 1 ) -// Physical Curve("Cavity_1_1") = {1}; -// Physical Curve("Cavity_1_2") = {10}; -// -// Physical Curve("Cavity_2_1") = {3}; -// Physical Curve("Cavity_2_2") = {13}; -// EndIf -ElseIf ( dim == 3 ) - -//+ -Box(1) = {0, 0, 0, 1, 1, N*(d+t)+t}; -For r In {1:N} - Printf("fin = %g",r); - Box(r+1) = {-L, -L, r*(d+t), 2*L+1, 2*L+1, t}; -EndFor - -S[]=BooleanFragments{ Volume{1}; Delete; }{ Volume{2:N+1}; Delete;}; -Characteristic Length{ PointsOf{ Surface{ : }; } } = h; - -//+ -// Physical Volume (Sprintf("fin-%g",r)) = r+1; - -Physical Volume("Post") = {1:2*N}; -finid = 1; -For r In {2*N+1:#S[]:1 } - Printf("Fin number %g %g ", r, finid); - Physical Volume(Sprintf("Fin_%g",finid)) = { r }; - finid += 1; -EndFor - -bdy[] = CombinedBoundary { Volume{:}; }; - -Physical Surface("Gamma_ext") = bdy[0]; - -For ii In { 1 : (#bdy[]-1) } - If (bdy[ii] != 5) - Printf("boundary number %g = %g", ii, Abs(bdy[ii])); - Physical Surface("Gamma_ext") += Abs(bdy[ii]); - Else - Physical Surface("Gamma_root") = bdy[ii]; - EndIf -EndFor - -// Mesh 2; -// Show "*"; - - -EndIf -// Mesh 2; -// Show "*"; diff --git a/src/feelpp/laplacian-case/fin/fin1/fin2d.cfg b/src/feelpp/laplacian-case/fin/fin1/fin2d.cfg deleted file mode 100644 index 781299d8..00000000 --- a/src/feelpp/laplacian-case/fin/fin1/fin2d.cfg +++ /dev/null @@ -1,10 +0,0 @@ -specs=$cfgdir/../fin2d.json - -[gmsh] -geo-variables-list=Nfins=1:dim=2 - -[bdf] -order=2 -time-step=0.5 -time-final=10 -steady=1 \ No newline at end of file diff --git a/src/feelpp/laplacian-case/fin/fin2d.json b/src/feelpp/laplacian-case/fin/fin2d.json deleted file mode 100644 index 8ac7d11b..00000000 --- a/src/feelpp/laplacian-case/fin/fin2d.json +++ /dev/null @@ -1,103 +0,0 @@ -{ - "Name": "Thermalfin 2D", - "ShortName": "thermalfin2d", - "Models": { - "laplacian": { - "name": "omega", - "Materials": [ - "Post", - "Fin_1", - "Fin_2", - "Fin_3", - "Fin_4" - ] - } - }, - "Meshes": { - "laplacian": { - "Import": { - "filename": "$cfgdir/../fin.geo", - "partition": 0 - } - } - }, - "Spaces": { - "laplacian": { - "Domain": { - - - } - } - }, - "TimeStepping": - { - "laplacian" :{ - "steady": false, - "order" : 1, - "start": 0.0, - "end": 10, - "step": 0.1 - } - }, - "Materials": { - "Post": { - "k": "1", - "Cp": "1", - "rho": "1" - }, - "Fin_1": { - "k": "1", - "Cp": "1", - "rho": "1" - }, - "Fin_2": { - "k": "1", - "Cp": "1", - "rho": "1" - }, - "Fin_3": { - "k": "1", - "Cp": "1", - "rho": "1" - }, - "Fin_4": { - "k": "1", - "Cp": "1", - "rho": "1" - } - }, - "InitialConditions": { - "laplacian": { - "temperature": { - "Expression": { - "Tini": { - "markers": [ - "Fin_1", - "Fin_2", - "Fin_3", - "Fin_4", - "Post" - ], - "expr": "0" - } - } - } - } - }, - "BoundaryConditions": { - "laplacian": { - "flux": { - "Gamma_root": { - "expr": "1" - } - }, - "convective_laplacian_flux": { - "Gamma_ext": { - "h": "0.3", - "Text": "0" - } - } - } - } - -} diff --git a/src/feelpp/laplacian-case/fin/fin4/fin2d.cfg b/src/feelpp/laplacian-case/fin/fin4/fin2d.cfg deleted file mode 100644 index e5a4f347..00000000 --- a/src/feelpp/laplacian-case/fin/fin4/fin2d.cfg +++ /dev/null @@ -1,14 +0,0 @@ -specs=$cfgdir/../fin2d.json - -[gmsh] -geo-variables-list=Nfins=4:dim=2 - -[bdf] -order=2 -time-step=0.5 -time-final=10 -steady=1 - -[exporter] -static=true -geometry=static \ No newline at end of file diff --git a/src/feelpp/laplacian-case/laplacian.ipynb b/src/feelpp/laplacian-case/laplacian.ipynb deleted file mode 100644 index f24a5b9b..00000000 --- a/src/feelpp/laplacian-case/laplacian.ipynb +++ /dev/null @@ -1,3429 +0,0 @@ -{ - "cells": [ - { - "cell_type": "code", - "execution_count": 1, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Welcome in feelpp_project!\n", - "directory=/nvme0/prudhomm/Devel/feelpp-project/src/cases/laplacian\n", - "[ Starting Feel++ ] application fin version 0.1 date 2023-Nov-02\n", - "[feelpp] create Feel++ root repository: /nvme0/prudhomm/Devel/feelpp-project/src/cases/laplacian/feelppdb\n", - "\n", - "[feelpp] create Feel++ geo repository: /nvme0/prudhomm/Devel/feelpp-project/src/cases/laplacian/feelppdb/geo\n", - "\n", - "[feelpp] create Feel++ results directory: /nvme0/prudhomm/Devel/feelpp-project/src/cases/laplacian/feelppdb/./np_1\n", - "\n", - "[feelpp] create Feel++ expressions directory: /nvme0/prudhomm/Devel/feelpp-project/src/cases/laplacian/feelppdb/./exprs\n", - "\n", - "[feelpp] create Feel++ logs directory: /nvme0/prudhomm/Devel/feelpp-project/src/cases/laplacian/feelppdb/./np_1/logs\n", - "\n", - " . fin files are stored in /nvme0/prudhomm/Devel/feelpp-project/src/cases/laplacian/feelppdb/./np_1\n", - " .. logfiles :/nvme0/prudhomm/Devel/feelpp-project/src/cases/laplacian/feelppdb/./np_1/logs\n" - ] - } - ], - "source": [ - "import feelpp\n", - "from feelpp_project import laplacian\n", - "import json\n", - "import os\n", - "\n", - "d = os.getcwd()\n", - "print(f\"directory={d}\")\n", - "e = feelpp.Environment(['fin'], config=feelpp.localRepository(\".\"))" - ] - }, - { - "cell_type": "code", - "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Reading /nvme0/prudhomm/Devel/feelpp-project/src/cases/laplacian/fin/fin4/fin2d.cfg...\n", - "{'Name': 'Thermalfin 2D', 'ShortName': 'thermalfin2d', 'Models': {'laplacian': {'name': 'omega', 'Materials': ['Post', 'Fin_1', 'Fin_2', 'Fin_3', 'Fin_4']}}, 'Meshes': {'laplacian': {'Import': {'filename': '$cfgdir/../fin.geo', 'partition': 0}}}, 'Spaces': {'laplacian': {'Domain': {}}}, 'TimeStepping': {'laplacian': {'steady': False, 'order': 1, 'start': 0.0, 'end': 10, 'step': 0.1}}, 'Materials': {'Post': {'k': '1', 'Cp': '1', 'rho': '1'}, 'Fin_1': {'k': '1', 'Cp': '1', 'rho': '1'}, 'Fin_2': {'k': '1', 'Cp': '1', 'rho': '1'}, 'Fin_3': {'k': '1', 'Cp': '1', 'rho': '1'}, 'Fin_4': {'k': '1', 'Cp': '1', 'rho': '1'}}, 'InitialConditions': {'laplacian': {'temperature': {'Expression': {'Tini': {'markers': ['Fin_1', 'Fin_2', 'Fin_3', 'Fin_4', 'Post'], 'expr': '0'}}}}}, 'BoundaryConditions': {'laplacian': {'flux': {'Gamma_root': {'expr': '1'}}, 'convective_laplacian_flux': {'Gamma_ext': {'h': '0.3', 'Text': '0'}}}}}\n" - ] - } - ], - "source": [ - "feelpp.Environment.setConfigFile(f\"{d}/fin/fin4/fin2d.cfg\")\n", - "# Reading the JSON file\n", - "data = laplacian.loadSpecs(f\"{d}/fin/fin2d.json\")\n", - "print(data)" - ] - }, - { - "cell_type": "code", - "execution_count": 3, - "metadata": {}, - "outputs": [], - "source": [ - "lap = laplacian.get(dim=2, order=1)\n", - "lap.setSpecs(data)\n" - ] - }, - { - "cell_type": "code", - "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[loadMesh] Loading mesh in format geo+msh: \"/nvme0/prudhomm/Devel/feelpp-project/src/cases/laplacian/fin/fin4/../fin.geo\"\n", - "[loadMesh] Use default geo desc: /nvme0/prudhomm/Devel/feelpp-project/src/cases/laplacian/fin/fin4/../fin.geo 0.1 \n", - "Info : Reading 'fin.geo'...\n", - "fin = 1\n", - "fin = 2\n", - "fin = 3\n", - "fin = 4\n", - "Fin number 9 1 \n", - "Fin number 11 2 \n", - "Fin number 13 3 \n", - "Fin number 15 4 \n", - "boundary number 1 = 3\n", - "boundary number 3 = 8\n", - "boundary number 4 = 10\n", - "boundary number 5 = 14\n", - "boundary number 6 = 16\n", - "boundary number 7 = 20\n", - "boundary number 8 = 22\n", - "boundary number 9 = 24\n", - "boundary number 10 = 26\n", - "boundary number 11 = 27\n", - "boundary number 12 = 28\n", - "boundary number 13 = 29\n", - "boundary number 14 = 30\n", - "boundary number 15 = 31\n", - "boundary number 16 = 32\n", - "boundary number 17 = 33\n", - "boundary number 18 = 34\n", - "boundary number 19 = 35\n", - "boundary number 20 = 36\n", - "boundary number 21 = 37\n", - "boundary number 22 = 38\n", - "boundary number 23 = 39\n", - "boundary number 24 = 40\n", - "boundary number 25 = 41\n", - "boundary number 26 = 42\n", - "boundary number 27 = 43\n", - "boundary number 28 = 44\n", - "boundary number 29 = 45\n", - "boundary number 30 = 46\n", - "boundary number 31 = 47\n", - "boundary number 32 = 48\n", - "boundary number 33 = 49\n", - "Info : Done reading 'fin.geo'\n", - "Info : Meshing 1D...\n", - "Info : [ 0%] Meshing curve 1 (Line)\n", - "Info : [ 10%] Meshing curve 2 (Line)\n", - "Info : [ 10%] Meshing curve 3 (Line)\n", - "Info : [ 10%] Meshing curve 4 (Line)\n", - "Info : [ 10%] Meshing curve 5 (Line)\n", - "Info : [ 20%] Meshing curve 6 (Line)\n", - "Info : [ 20%] Meshing curve 7 (Line)\n", - "Info : [ 20%] Meshing curve 8 (Line)\n", - "Info : [ 20%] Meshing curve 9 (Line)\n", - "Info : [ 20%] Meshing curve 10 (Line)\n", - "Info : [ 30%] Meshing curve 11 (Line)\n", - "Info : [ 30%] Meshing curve 12 (Line)\n", - "Info : [ 30%] Meshing curve 13 (Line)\n", - "Info : [ 30%] Meshing curve 14 (Line)\n", - "Info : [ 30%] Meshing curve 15 (Line)\n", - "Info : [ 40%] Meshing curve 16 (Line)\n", - "Info : [ 40%] Meshing curve 17 (Line)\n", - "Info : [ 40%] Meshing curve 18 (Line)\n", - "Info : [ 40%] Meshing curve 19 (Line)\n", - "Info : [ 40%] Meshing curve 20 (Line)\n", - "Info : [ 50%] Meshing curve 21 (Line)\n", - "Info : [ 50%] Meshing curve 22 (Line)\n", - "Info : [ 50%] Meshing curve 23 (Line)\n", - "Info : [ 50%] Meshing curve 24 (Line)\n", - "Info : [ 50%] Meshing curve 25 (Line)\n", - "Info : [ 60%] Meshing curve 26 (Line)\n", - "Info : [ 60%] Meshing curve 27 (Line)\n", - "Info : [ 60%] Meshing curve 28 (Line)\n", - "Info : [ 60%] Meshing curve 29 (Line)\n", - "Info : [ 60%] Meshing curve 30 (Line)\n", - "Info : [ 70%] Meshing curve 31 (Line)\n", - "Info : [ 70%] Meshing curve 32 (Line)\n", - "Info : [ 70%] Meshing curve 33 (Line)\n", - "Info : [ 70%] Meshing curve 34 (Line)\n", - "Info : [ 70%] Meshing curve 35 (Line)\n", - "Info : [ 80%] Meshing curve 36 (Line)\n", - "Info : [ 80%] Meshing curve 37 (Line)\n", - "Info : [ 80%] Meshing curve 38 (Line)\n", - "Info : [ 80%] Meshing curve 39 (Line)\n", - "Info : [ 80%] Meshing curve 40 (Line)\n", - "Info : [ 90%] Meshing curve 41 (Line)\n", - "Info : [ 90%] Meshing curve 42 (Line)\n", - "Info : [ 90%] Meshing curve 43 (Line)\n", - "Info : [ 90%] Meshing curve 44 (Line)\n", - "Info : [ 90%] Meshing curve 45 (Line)\n", - "Info : [100%] Meshing curve 46 (Line)\n", - "Info : [100%] Meshing curve 47 (Line)\n", - "Info : [100%] Meshing curve 48 (Line)\n", - "Info : [100%] Meshing curve 49 (Line)\n", - "Info : Done meshing 1D (Wall 0.0047316s, CPU 0.004264s)\n", - "Info : Meshing 2D...\n", - "Info : [ 0%] Meshing surface 1 (Plane, Frontal-Delaunay)\n", - "Info : [ 10%] Meshing surface 2 (Plane, Frontal-Delaunay)\n", - "Info : [ 20%] Meshing surface 3 (Plane, Frontal-Delaunay)\n", - "Info : [ 20%] Meshing surface 4 (Plane, Frontal-Delaunay)\n", - "Info : [ 30%] Meshing surface 5 (Plane, Frontal-Delaunay)\n", - "Info : [ 40%] Meshing surface 6 (Plane, Frontal-Delaunay)\n", - "Info : [ 40%] Meshing surface 7 (Plane, Frontal-Delaunay)\n", - "Info : [ 50%] Meshing surface 8 (Plane, Frontal-Delaunay)\n", - "Info : [ 50%] Meshing surface 9 (Plane, Frontal-Delaunay)\n", - "Info : [ 60%] Meshing surface 10 (Plane, Frontal-Delaunay)\n", - "Info : [ 70%] Meshing surface 11 (Plane, Frontal-Delaunay)\n", - "Info : [ 70%] Meshing surface 12 (Plane, Frontal-Delaunay)\n", - "Info : [ 80%] Meshing surface 13 (Plane, Frontal-Delaunay)\n", - "Info : [ 90%] Meshing surface 14 (Plane, Frontal-Delaunay)\n", - "Info : [ 90%] Meshing surface 15 (Plane, Frontal-Delaunay)\n", - "Info : [100%] Meshing surface 16 (Plane, Frontal-Delaunay)\n", - "Info : Done meshing 2D (Wall 0.0413242s, CPU 0.0405s)\n", - "Info : 1447 nodes 3020 elements\n", - "Info : Writing 'fin.msh'...\n", - "Info : Done writing 'fin.msh'\n", - "\n", - "***** Compute Transient state *****\n", - "The step is 0.1\n", - "The initial time is 0\n", - "The final time is 10\n", - "BDF order : 1\n", - "\n", - "BDF coeff : 10\n", - "\n" - ] - } - ], - "source": [ - "lap.run()\n", - "meas = lap.measures()" - ] - }, - { - "cell_type": "code", - "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "| | flux_Gamma_ext | flux_Gamma_root | max | mean | mean_Fin_1 | mean_Fin_2 | mean_Fin_3 | mean_Fin_4 | mean_Gamma_ext | mean_Gamma_root | mean_Post | min | quantity_Fin_1 | quantity_Fin_2 | quantity_Fin_3 | quantity_Fin_4 | quantity_Gamma_ext | quantity_Gamma_root | quantity_Post | time | totalFlux | totalQuantity |\n", - "|----:|-----------------:|------------------:|---------:|----------:|-------------:|-------------:|-------------:|-------------:|-----------------:|------------------:|------------:|------------:|-----------------:|-----------------:|-----------------:|-----------------:|---------------------:|----------------------:|----------------:|-------:|------------:|----------------:|\n", - "| 0 | -0.0214717 | 0.87762 | 0.310461 | 0.0102188 | 0.000620187 | 2.05955e-05 | 6.87226e-07 | 2.87922e-08 | 0.00368776 | 0.306402 | 0.0220522 | 6.65888e-11 | 0.000775233 | 2.57444e-05 | 8.59032e-07 | 3.59903e-08 | 0.182544 | 0.306402 | 0.0937218 | 0.1 | 0.856148 | 0.0945237 |\n", - "| 1 | -0.0673897 | 0.929308 | 0.45904 | 0.0198714 | 0.00225185 | 0.000106291 | 4.59627e-06 | 2.38319e-07 | 0.00721416 | 0.45189 | 0.0425546 | 7.62404e-10 | 0.00281481 | 0.000132864 | 5.74534e-06 | 2.97899e-07 | 0.357101 | 0.45189 | 0.180857 | 0.2 | 0.861919 | 0.183811 |\n", - "| 2 | -0.112457 | 0.94313 | 0.564002 | 0.0289734 | 0.00489506 | 0.000308219 | 1.67425e-05 | 1.05412e-06 | 0.0106443 | 0.554414 | 0.0615241 | 4.55646e-09 | 0.00611883 | 0.000385273 | 2.09282e-05 | 1.31765e-06 | 0.526892 | 0.554414 | 0.261478 | 0.3 | 0.830673 | 0.268004 |\n", - "| 3 | -0.15591 | 0.949636 | 0.646098 | 0.0375379 | 0.00834477 | 0.00066584 | 4.41862e-05 | 3.31826e-06 | 0.0139921 | 0.634556 | 0.079036 | 1.89496e-08 | 0.010431 | 0.0008323 | 5.52327e-05 | 4.14783e-06 | 0.69261 | 0.634556 | 0.335903 | 0.4 | 0.793726 | 0.347226 |\n", - "| 4 | -0.197621 | 0.953464 | 0.713309 | 0.0455792 | 0.0123478 | 0.00119841 | 9.48009e-05 | 8.35197e-06 | 0.017251 | 0.700157 | 0.0951873 | 6.16811e-08 | 0.0154347 | 0.00149802 | 0.000118501 | 1.044e-05 | 0.853926 | 0.700157 | 0.404546 | 0.5 | 0.755843 | 0.421608 |\n", - "| 5 | -0.23752 | 0.955991 | 0.769772 | 0.0531138 | 0.0166753 | 0.00190547 | 0.000175872 | 1.79021e-05 | 0.0204075 | 0.755263 | 0.110079 | 1.67564e-07 | 0.0208441 | 0.00238183 | 0.000219841 | 2.23776e-05 | 1.01017 | 0.755263 | 0.467835 | 0.6 | 0.718471 | 0.491303 |\n", - "| 6 | -0.275554 | 0.957779 | 0.817996 | 0.0601603 | 0.0211449 | 0.00277174 | 0.000293014 | 3.39846e-05 | 0.0234477 | 0.802328 | 0.123807 | 3.95597e-07 | 0.0264311 | 0.00346467 | 0.000366268 | 4.24808e-05 | 1.16066 | 0.802328 | 0.526178 | 0.7 | 0.682226 | 0.556483 |\n", - "| 7 | -0.311686 | 0.959103 | 0.859665 | 0.0667392 | 0.0256203 | 0.00377302 | 0.000449596 | 5.86717e-05 | 0.0263606 | 0.842993 | 0.136461 | 8.34479e-07 | 0.0320254 | 0.00471627 | 0.000561995 | 7.33396e-05 | 1.30485 | 0.842993 | 0.57996 | 0.8 | 0.647417 | 0.617337 |\n", - "| 8 | -0.345904 | 0.960114 | 0.895981 | 0.0728721 | 0.0300046 | 0.00488108 | 0.000646646 | 9.38738e-05 | 0.0291384 | 0.878435 | 0.148126 | 1.60477e-06 | 0.0375057 | 0.00610134 | 0.000808308 | 0.000117342 | 1.44235 | 0.878435 | 0.629534 | 0.9 | 0.61421 | 0.674067 |\n", - "| 9 | -0.378216 | 0.960906 | 0.927846 | 0.0785815 | 0.0342316 | 0.00606721 | 0.000883089 | 0.000141159 | 0.0317765 | 0.909532 | 0.158876 | 2.85662e-06 | 0.0427895 | 0.00758401 | 0.00110386 | 0.000176449 | 1.57293 | 0.909532 | 0.675225 | 1 | 0.582689 | 0.726879 |\n", - "| 10 | -0.40865 | 0.961536 | 0.955954 | 0.0838901 | 0.0382587 | 0.00730443 | 0.00115616 | 0.000201633 | 0.0342728 | 0.936963 | 0.168784 | 4.76302e-06 | 0.0478234 | 0.00913054 | 0.0014452 | 0.000252041 | 1.6965 | 0.936963 | 0.717333 | 1.1 | 0.552886 | 0.775984 |\n", - "| 11 | -0.437247 | 0.962046 | 0.980856 | 0.0888207 | 0.0420608 | 0.00856872 | 0.00146188 | 0.000275878 | 0.0366277 | 0.961266 | 0.177914 | 7.50942e-06 | 0.052576 | 0.0107109 | 0.00182735 | 0.000344848 | 1.81307 | 0.961266 | 0.756133 | 1.2 | 0.524799 | 0.821592 |\n", - "| 12 | -0.464064 | 0.962465 | 1.003 | 0.0933956 | 0.0456251 | 0.00983954 | 0.0017955 | 0.000363958 | 0.0388431 | 0.982875 | 0.186325 | 1.12812e-05 | 0.0570314 | 0.0122994 | 0.00224438 | 0.000454947 | 1.92273 | 0.982875 | 0.79188 | 1.3 | 0.498401 | 0.86391 |\n", - "| 13 | -0.489163 | 0.962811 | 1.02275 | 0.0976367 | 0.0489483 | 0.0110999 | 0.0021519 | 0.000465453 | 0.0409224 | 1.00215 | 0.194072 | 1.62507e-05 | 0.0611853 | 0.0138748 | 0.00268988 | 0.000581816 | 2.02566 | 1.00215 | 0.824808 | 1.4 | 0.473648 | 0.90314 |\n", - "| 14 | -0.512616 | 0.9631 | 1.04041 | 0.101565 | 0.052033 | 0.012336 | 0.0025259 | 0.000579538 | 0.0428699 | 1.01938 | 0.201208 | 2.25655e-05 | 0.0650413 | 0.0154201 | 0.00315737 | 0.000724423 | 2.12206 | 1.01938 | 0.855135 | 1.5 | 0.450484 | 0.939478 |\n", - "| 15 | -0.534498 | 0.963344 | 1.05623 | 0.105201 | 0.0548865 | 0.0135375 | 0.00291246 | 0.000705064 | 0.0446906 | 1.03482 | 0.207779 | 3.03391e-05 | 0.0686082 | 0.0169219 | 0.00364057 | 0.000881329 | 2.21219 | 1.03482 | 0.88306 | 1.6 | 0.428846 | 0.973112 |\n", - "| 16 | -0.554886 | 0.963551 | 1.07044 | 0.108565 | 0.0575188 | 0.0146962 | 0.00330688 | 0.000840644 | 0.04639 | 1.04869 | 0.213828 | 3.96446e-05 | 0.0718985 | 0.0183703 | 0.0041336 | 0.00105081 | 2.29631 | 1.04869 | 0.90877 | 1.7 | 0.408666 | 1.00422 |\n", - "| 17 | -0.573858 | 0.963728 | 1.08322 | 0.111674 | 0.0599416 | 0.0158066 | 0.00370487 | 0.000984746 | 0.0479739 | 1.06116 | 0.219396 | 5.05116e-05 | 0.074927 | 0.0197582 | 0.00463109 | 0.00123093 | 2.37471 | 1.06116 | 0.932435 | 1.8 | 0.38987 | 1.03298 |\n", - "| 18 | -0.591494 | 0.96388 | 1.09473 | 0.114546 | 0.0621674 | 0.0168647 | 0.00410263 | 0.00113576 | 0.0494482 | 1.0724 | 0.224521 | 6.29264e-05 | 0.0777093 | 0.0210809 | 0.00512829 | 0.0014197 | 2.44769 | 1.0724 | 0.954213 | 1.9 | 0.372386 | 1.05955 |\n", - "| 19 | -0.607871 | 0.964011 | 1.10511 | 0.117198 | 0.0642095 | 0.0178684 | 0.00449685 | 0.00129207 | 0.0508189 | 1.08253 | 0.229236 | 7.68345e-05 | 0.0802618 | 0.0223355 | 0.00562106 | 0.00161508 | 2.51553 | 1.08253 | 0.974252 | 2 | 0.35614 | 1.08409 |\n", - "| 20 | -0.623065 | 0.964125 | 1.11449 | 0.119646 | 0.0660806 | 0.0188166 | 0.0048847 | 0.00145209 | 0.0520919 | 1.09167 | 0.233573 | 9.21454e-05 | 0.0826008 | 0.0235207 | 0.00610588 | 0.00181512 | 2.57855 | 1.09167 | 0.992687 | 2.1 | 0.34106 | 1.10673 |\n", - "| 21 | -0.637149 | 0.964224 | 1.12296 | 0.121905 | 0.0677936 | 0.0197092 | 0.00526385 | 0.00161434 | 0.053273 | 1.09994 | 0.237563 | 0.000108739 | 0.084742 | 0.0246365 | 0.00657981 | 0.00201792 | 2.63701 | 1.09994 | 1.00964 | 2.2 | 0.327074 | 1.12762 |\n", - "| 22 | -0.650195 | 0.96431 | 1.13062 | 0.123987 | 0.0693607 | 0.0205471 | 0.00563239 | 0.00177742 | 0.054368 | 1.10742 | 0.241232 | 0.00012647 | 0.0867008 | 0.0256839 | 0.00704048 | 0.00222177 | 2.69122 | 1.10742 | 1.02524 | 2.3 | 0.314115 | 1.14688 |\n", - "| 23 | -0.66227 | 0.964386 | 1.13756 | 0.125907 | 0.0707933 | 0.0213315 | 0.0059888 | 0.00194007 | 0.0553824 | 1.11419 | 0.244605 | 0.00014518 | 0.0884917 | 0.0266644 | 0.007486 | 0.00242509 | 2.74143 | 1.11419 | 1.03957 | 2.4 | 0.302116 | 1.16464 |\n", - "| 24 | -0.673439 | 0.964452 | 1.14385 | 0.127676 | 0.0721026 | 0.0220642 | 0.00633195 | 0.00210118 | 0.0563213 | 1.12033 | 0.247706 | 0.000164696 | 0.0901282 | 0.0275802 | 0.00791494 | 0.00262648 | 2.7879 | 1.12033 | 1.05275 | 2.5 | 0.291013 | 1.181 |\n", - "| 25 | -0.683765 | 0.964511 | 1.14955 | 0.129305 | 0.0732986 | 0.0227472 | 0.006661 | 0.00225978 | 0.0571898 | 1.1259 | 0.250557 | 0.000184845 | 0.0916233 | 0.028434 | 0.00832625 | 0.00282472 | 2.8309 | 1.1259 | 1.06487 | 2.6 | 0.280746 | 1.19608 |\n", - "| 26 | -0.693305 | 0.964562 | 1.15473 | 0.130806 | 0.0743909 | 0.0233828 | 0.00697539 | 0.00241501 | 0.0579928 | 1.13095 | 0.253177 | 0.000205453 | 0.0929886 | 0.0292285 | 0.00871923 | 0.00301876 | 2.87064 | 1.13095 | 1.076 | 2.7 | 0.271257 | 1.20996 |\n", - "| 27 | -0.702115 | 0.964608 | 1.15943 | 0.132188 | 0.0753883 | 0.0239734 | 0.00727479 | 0.00256619 | 0.0587347 | 1.13553 | 0.255584 | 0.000226351 | 0.0942354 | 0.0299667 | 0.00909349 | 0.00320774 | 2.90737 | 1.13553 | 1.08623 | 2.8 | 0.262493 | 1.22273 |\n", - "| 28 | -0.710247 | 0.964648 | 1.16369 | 0.133459 | 0.0762989 | 0.0245214 | 0.0075591 | 0.00271274 | 0.0594198 | 1.13969 | 0.257796 | 0.000247381 | 0.0953737 | 0.0306517 | 0.00944887 | 0.00339093 | 2.94128 | 1.13969 | 1.09563 | 2.9 | 0.254401 | 1.2345 |\n", - "| 29 | -0.71775 | 0.964684 | 1.16757 | 0.134629 | 0.0771303 | 0.0250293 | 0.00782834 | 0.00285421 | 0.0600522 | 1.14348 | 0.259827 | 0.000268394 | 0.0964128 | 0.0312866 | 0.00978543 | 0.00356777 | 2.97258 | 1.14348 | 1.10427 | 3 | 0.246934 | 1.24532 |\n", - "| 30 | -0.724669 | 0.964716 | 1.1711 | 0.135705 | 0.0778892 | 0.0254996 | 0.00808271 | 0.00299026 | 0.0606357 | 1.14692 | 0.261694 | 0.000289255 | 0.0973615 | 0.0318744 | 0.0101034 | 0.00373783 | 3.00147 | 1.14692 | 1.1122 | 3.1 | 0.240047 | 1.25527 |\n", - "| 31 | -0.731048 | 0.964745 | 1.1743 | 0.136695 | 0.078582 | 0.0259345 | 0.0083225 | 0.00312064 | 0.0611738 | 1.15005 | 0.263408 | 0.000309845 | 0.0982275 | 0.0324182 | 0.0104031 | 0.0039008 | 3.0281 | 1.15005 | 1.11948 | 3.2 | 0.233697 | 1.26443 |\n", - "| 32 | -0.736927 | 0.96477 | 1.17722 | 0.137606 | 0.0792145 | 0.0263365 | 0.00854809 | 0.00324519 | 0.0616699 | 1.1529 | 0.264982 | 0.000330057 | 0.0990181 | 0.0329207 | 0.0106851 | 0.00405649 | 3.05266 | 1.1529 | 1.12617 | 3.3 | 0.227844 | 1.27285 |\n", - "| 33 | -0.742343 | 0.964793 | 1.17988 | 0.138443 | 0.0797919 | 0.0267078 | 0.00875993 | 0.00336382 | 0.0621271 | 1.15549 | 0.266427 | 0.0003498 | 0.0997399 | 0.0333847 | 0.0109499 | 0.00420478 | 3.07529 | 1.15549 | 1.13231 | 3.4 | 0.22245 | 1.28059 |\n", - "| 34 | -0.74733 | 0.964813 | 1.1823 | 0.139212 | 0.0803191 | 0.0270504 | 0.00895853 | 0.00347652 | 0.0625483 | 1.15785 | 0.267754 | 0.000369 | 0.100399 | 0.033813 | 0.0111982 | 0.00434565 | 3.09614 | 1.15785 | 1.13795 | 3.5 | 0.217483 | 1.28771 |\n", - "| 35 | -0.751923 | 0.964832 | 1.1845 | 0.139919 | 0.0808005 | 0.0273665 | 0.00914443 | 0.00358332 | 0.0629362 | 1.16 | 0.268972 | 0.000387592 | 0.101001 | 0.0342081 | 0.0114305 | 0.00447914 | 3.11534 | 1.16 | 1.14313 | 3.6 | 0.212909 | 1.29425 |\n", - "| 36 | -0.75615 | 0.964848 | 1.18651 | 0.140568 | 0.0812401 | 0.0276578 | 0.00931819 | 0.00368429 | 0.0632934 | 1.16196 | 0.27009 | 0.000405528 | 0.10155 | 0.0345722 | 0.0116477 | 0.00460536 | 3.13302 | 1.16196 | 1.14788 | 3.7 | 0.208698 | 1.30026 |\n", - "| 37 | -0.76004 | 0.964863 | 1.18834 | 0.141165 | 0.0816415 | 0.0279263 | 0.00948039 | 0.00377956 | 0.0636221 | 1.16375 | 0.271116 | 0.00042277 | 0.102052 | 0.0349078 | 0.0118505 | 0.00472445 | 3.14929 | 1.16375 | 1.15224 | 3.8 | 0.204823 | 1.30578 |\n", - "| 38 | -0.763619 | 0.964876 | 1.19001 | 0.141714 | 0.0820082 | 0.0281735 | 0.00963163 | 0.00386927 | 0.0639247 | 1.16537 | 0.272058 | 0.000439291 | 0.10251 | 0.0352169 | 0.0120395 | 0.00483659 | 3.16427 | 1.16537 | 1.15625 | 3.9 | 0.201257 | 1.31085 |\n", - "| 39 | -0.766911 | 0.964888 | 1.19153 | 0.142217 | 0.0823431 | 0.0284011 | 0.00977248 | 0.00395361 | 0.064203 | 1.16686 | 0.272923 | 0.000455073 | 0.102929 | 0.0355014 | 0.0122156 | 0.00494201 | 3.17805 | 1.16686 | 1.15992 | 4 | 0.197977 | 1.31551 |\n", - "| 40 | -0.769938 | 0.964898 | 1.19292 | 0.14268 | 0.0826491 | 0.0286107 | 0.00990353 | 0.00403276 | 0.064459 | 1.16821 | 0.273716 | 0.000470108 | 0.103311 | 0.0357633 | 0.0123794 | 0.00504095 | 3.19072 | 1.16821 | 1.16329 | 4.1 | 0.19496 | 1.31979 |\n", - "| 41 | -0.772721 | 0.964908 | 1.19419 | 0.143105 | 0.0829286 | 0.0288034 | 0.0100253 | 0.00410692 | 0.0646944 | 1.16945 | 0.274444 | 0.000484395 | 0.103661 | 0.0360043 | 0.0125317 | 0.00513366 | 3.20238 | 1.16945 | 1.16639 | 4.2 | 0.192187 | 1.32372 |\n", - "| 42 | -0.77528 | 0.964916 | 1.19534 | 0.143495 | 0.083184 | 0.0289807 | 0.0101385 | 0.00417633 | 0.0649109 | 1.17058 | 0.275112 | 0.000497939 | 0.10398 | 0.0362259 | 0.0126731 | 0.00522041 | 3.21309 | 1.17058 | 1.16922 | 4.3 | 0.189636 | 1.32732 |\n", - "| 43 | -0.777632 | 0.964924 | 1.1964 | 0.143853 | 0.0834175 | 0.0291438 | 0.0102434 | 0.00424118 | 0.0651099 | 1.17161 | 0.275724 | 0.000510749 | 0.104272 | 0.0364297 | 0.0128043 | 0.00530148 | 3.22294 | 1.17161 | 1.17183 | 4.4 | 0.187293 | 1.33064 |\n", - "| 44 | -0.779793 | 0.964931 | 1.19736 | 0.144181 | 0.0836308 | 0.0292936 | 0.0103407 | 0.00430172 | 0.0652928 | 1.17255 | 0.276286 | 0.000522842 | 0.104539 | 0.036617 | 0.0129259 | 0.00537714 | 3.23199 | 1.17255 | 1.17422 | 4.5 | 0.185138 | 1.33368 |\n", - "| 45 | -0.781779 | 0.964938 | 1.19824 | 0.144483 | 0.0838258 | 0.0294314 | 0.0104309 | 0.00435815 | 0.0654609 | 1.17341 | 0.276802 | 0.000534236 | 0.104782 | 0.0367892 | 0.0130386 | 0.00544769 | 3.24031 | 1.17341 | 1.17641 | 4.6 | 0.183159 | 1.33647 |\n", - "| 46 | -0.783603 | 0.964943 | 1.19904 | 0.14476 | 0.0840041 | 0.029558 | 0.0105144 | 0.00441072 | 0.0656153 | 1.17419 | 0.277275 | 0.000544952 | 0.105005 | 0.0369475 | 0.013143 | 0.00551339 | 3.24796 | 1.17419 | 1.17842 | 4.7 | 0.181341 | 1.33903 |\n", - "| 47 | -0.785278 | 0.964949 | 1.19978 | 0.145014 | 0.0841671 | 0.0296743 | 0.0105917 | 0.00445962 | 0.0657572 | 1.17491 | 0.277709 | 0.000555015 | 0.105209 | 0.0370929 | 0.0132396 | 0.00557453 | 3.25498 | 1.17491 | 1.18026 | 4.8 | 0.17967 | 1.34138 |\n", - "| 48 | -0.786817 | 0.964953 | 1.20045 | 0.145247 | 0.0843161 | 0.0297811 | 0.0106631 | 0.00450508 | 0.0658875 | 1.17556 | 0.278107 | 0.000564449 | 0.105395 | 0.0372264 | 0.0133289 | 0.00563135 | 3.26143 | 1.17556 | 1.18195 | 4.9 | 0.178136 | 1.34354 |\n", - "| 49 | -0.788231 | 0.964958 | 1.20106 | 0.145461 | 0.0844523 | 0.0298793 | 0.0107292 | 0.0045473 | 0.0660072 | 1.17616 | 0.278472 | 0.000573282 | 0.105565 | 0.0373491 | 0.0134114 | 0.00568413 | 3.26736 | 1.17616 | 1.1835 | 5 | 0.176727 | 1.34551 |\n", - "| 50 | -0.789528 | 0.964961 | 1.20162 | 0.145657 | 0.0845769 | 0.0299694 | 0.0107902 | 0.00458649 | 0.0661171 | 1.1767 | 0.278806 | 0.00058154 | 0.105721 | 0.0374617 | 0.0134877 | 0.00573311 | 3.2728 | 1.1767 | 1.18493 | 5.1 | 0.175433 | 1.34733 |\n", - "| 51 | -0.79072 | 0.964965 | 1.20213 | 0.145838 | 0.0846909 | 0.0300521 | 0.0108465 | 0.00462283 | 0.0662181 | 1.1772 | 0.279113 | 0.000589253 | 0.105864 | 0.0375652 | 0.0135581 | 0.00577853 | 3.27779 | 1.1772 | 1.18623 | 5.2 | 0.174245 | 1.349 |\n", - "| 52 | -0.791814 | 0.964968 | 1.2026 | 0.146003 | 0.0847952 | 0.0301281 | 0.0108985 | 0.0046565 | 0.0663107 | 1.17766 | 0.279395 | 0.000596447 | 0.105994 | 0.0376601 | 0.0136231 | 0.00582062 | 3.28238 | 1.17766 | 1.18743 | 5.3 | 0.173154 | 1.35053 |\n", - "| 53 | -0.792818 | 0.964971 | 1.20303 | 0.146154 | 0.0848905 | 0.0301978 | 0.0109465 | 0.00468768 | 0.0663958 | 1.17808 | 0.279653 | 0.000603151 | 0.106113 | 0.0377473 | 0.0136831 | 0.0058596 | 3.28659 | 1.17808 | 1.18852 | 5.4 | 0.172153 | 1.35193 |\n", - "| 54 | -0.793739 | 0.964973 | 1.20342 | 0.146293 | 0.0849777 | 0.0302618 | 0.0109908 | 0.00471655 | 0.0664739 | 1.17846 | 0.27989 | 0.000609391 | 0.106222 | 0.0378273 | 0.0137384 | 0.00589568 | 3.29046 | 1.17846 | 1.18953 | 5.5 | 0.171234 | 1.35321 |\n", - "| 55 | -0.794585 | 0.964976 | 1.20377 | 0.146421 | 0.0850576 | 0.0303206 | 0.0110316 | 0.00474324 | 0.0665456 | 1.17881 | 0.280107 | 0.000615195 | 0.106322 | 0.0379007 | 0.0137894 | 0.00592905 | 3.29401 | 1.17881 | 1.19045 | 5.6 | 0.170391 | 1.35439 |\n", - "| 56 | -0.795361 | 0.964978 | 1.2041 | 0.146538 | 0.0851306 | 0.0303745 | 0.0110692 | 0.00476792 | 0.0666114 | 1.17913 | 0.280305 | 0.000620587 | 0.106413 | 0.0379681 | 0.0138364 | 0.00595991 | 3.29726 | 1.17913 | 1.1913 | 5.7 | 0.169617 | 1.35548 |\n", - "| 57 | -0.796074 | 0.96498 | 1.2044 | 0.146645 | 0.0851974 | 0.030424 | 0.0111038 | 0.00479073 | 0.0666717 | 1.17942 | 0.280488 | 0.000625594 | 0.106497 | 0.03803 | 0.0138797 | 0.00598841 | 3.30025 | 1.17942 | 1.19207 | 5.8 | 0.168906 | 1.35647 |\n", - "| 58 | -0.796727 | 0.964982 | 1.20467 | 0.146744 | 0.0852585 | 0.0304694 | 0.0111357 | 0.0048118 | 0.0667271 | 1.17968 | 0.280655 | 0.000630239 | 0.106573 | 0.0380867 | 0.0139196 | 0.00601474 | 3.30299 | 1.17968 | 1.19278 | 5.9 | 0.168255 | 1.35738 |\n", - "| 59 | -0.797327 | 0.964983 | 1.20492 | 0.146834 | 0.0853145 | 0.030511 | 0.0111651 | 0.00483124 | 0.0667779 | 1.17993 | 0.280809 | 0.000634545 | 0.106643 | 0.0381388 | 0.0139564 | 0.00603905 | 3.30551 | 1.17993 | 1.19344 | 6 | 0.167656 | 1.35821 |\n", - "| 60 | -0.797877 | 0.964985 | 1.20515 | 0.146917 | 0.0853657 | 0.0305492 | 0.0111921 | 0.00484919 | 0.0668246 | 1.18015 | 0.280949 | 0.000638534 | 0.106707 | 0.0381865 | 0.0139902 | 0.00606148 | 3.30782 | 1.18015 | 1.19403 | 6.1 | 0.167108 | 1.35898 |\n", - "| 61 | -0.798382 | 0.964986 | 1.20536 | 0.146993 | 0.0854126 | 0.0305843 | 0.011217 | 0.00486574 | 0.0668674 | 1.18036 | 0.281078 | 0.000642227 | 0.106766 | 0.0382303 | 0.0140213 | 0.00608217 | 3.30993 | 1.18036 | 1.19458 | 6.2 | 0.166605 | 1.35968 |\n", - "| 62 | -0.798845 | 0.964987 | 1.20555 | 0.147062 | 0.0854555 | 0.0306164 | 0.0112399 | 0.004881 | 0.0669066 | 1.18054 | 0.281196 | 0.000645645 | 0.106819 | 0.0382705 | 0.0140499 | 0.00610125 | 3.31188 | 1.18054 | 1.19508 | 6.3 | 0.166143 | 1.36032 |\n", - "| 63 | -0.799269 | 0.964988 | 1.20573 | 0.147126 | 0.0854947 | 0.0306459 | 0.011261 | 0.00489507 | 0.0669426 | 1.18071 | 0.281304 | 0.000648805 | 0.106868 | 0.0383074 | 0.0140762 | 0.00611884 | 3.31366 | 1.18071 | 1.19554 | 6.4 | 0.165719 | 1.36091 |\n", - "| 64 | -0.799659 | 0.964989 | 1.20589 | 0.147184 | 0.0855307 | 0.030673 | 0.0112804 | 0.00490804 | 0.0669756 | 1.18087 | 0.281404 | 0.000651727 | 0.106913 | 0.0383412 | 0.0141005 | 0.00613505 | 3.31529 | 1.18087 | 1.19597 | 6.5 | 0.165331 | 1.36146 |\n", - "| 65 | -0.800016 | 0.96499 | 1.20604 | 0.147238 | 0.0855636 | 0.0306978 | 0.0112982 | 0.00491998 | 0.0670059 | 1.18101 | 0.281495 | 0.000654426 | 0.106955 | 0.0383722 | 0.0141227 | 0.00614998 | 3.31679 | 1.18101 | 1.19635 | 6.6 | 0.164974 | 1.36195 |\n", - "| 66 | -0.800344 | 0.964991 | 1.20617 | 0.147287 | 0.0855937 | 0.0307205 | 0.0113146 | 0.00493098 | 0.0670337 | 1.18115 | 0.281578 | 0.000656918 | 0.106992 | 0.0384007 | 0.0141432 | 0.00616372 | 3.31817 | 1.18115 | 1.19671 | 6.7 | 0.164648 | 1.36241 |\n", - "| 67 | -0.800644 | 0.964992 | 1.20629 | 0.147332 | 0.0856213 | 0.0307414 | 0.0113296 | 0.00494111 | 0.0670592 | 1.18127 | 0.281655 | 0.000659219 | 0.107027 | 0.0384267 | 0.014162 | 0.00617638 | 3.31943 | 1.18127 | 1.19703 | 6.8 | 0.164348 | 1.36282 |\n", - "| 68 | -0.80092 | 0.964993 | 1.20641 | 0.147374 | 0.0856466 | 0.0307605 | 0.0113435 | 0.00495043 | 0.0670826 | 1.18138 | 0.281725 | 0.000661342 | 0.107058 | 0.0384507 | 0.0141793 | 0.00618803 | 3.32059 | 1.18138 | 1.19733 | 6.9 | 0.164073 | 1.36321 |\n", - "| 69 | -0.801172 | 0.964993 | 1.20651 | 0.147412 | 0.0856697 | 0.0307781 | 0.0113562 | 0.004959 | 0.067104 | 1.18148 | 0.281789 | 0.000663299 | 0.107087 | 0.0384726 | 0.0141952 | 0.00619876 | 3.32165 | 1.18148 | 1.1976 | 7 | 0.163821 | 1.36356 |\n", - "| 70 | -0.801404 | 0.964994 | 1.2066 | 0.147446 | 0.0856909 | 0.0307942 | 0.0113679 | 0.0049669 | 0.0671237 | 1.18157 | 0.281848 | 0.000665104 | 0.107114 | 0.0384927 | 0.0142098 | 0.00620862 | 3.32262 | 1.18157 | 1.19785 | 7.1 | 0.16359 | 1.36388 |\n", - "| 71 | -0.801617 | 0.964994 | 1.20669 | 0.147478 | 0.0857103 | 0.0308089 | 0.0113786 | 0.00497415 | 0.0671417 | 1.18165 | 0.281902 | 0.000666768 | 0.107138 | 0.0385112 | 0.0142232 | 0.00621769 | 3.32351 | 1.18165 | 1.19808 | 7.2 | 0.163378 | 1.36417 |\n", - "| 72 | -0.801811 | 0.964995 | 1.20677 | 0.147507 | 0.085728 | 0.0308224 | 0.0113884 | 0.00498083 | 0.0671582 | 1.18173 | 0.281951 | 0.000668301 | 0.10716 | 0.0385281 | 0.0142356 | 0.00622604 | 3.32433 | 1.18173 | 1.19829 | 7.3 | 0.163184 | 1.36444 |\n", - "| 73 | -0.80199 | 0.964995 | 1.20684 | 0.147534 | 0.0857443 | 0.0308349 | 0.0113975 | 0.00498697 | 0.0671733 | 1.1818 | 0.281997 | 0.000669713 | 0.10718 | 0.0385436 | 0.0142469 | 0.00623371 | 3.32508 | 1.1818 | 1.19849 | 7.4 | 0.163005 | 1.36469 |\n", - "| 74 | -0.802154 | 0.964996 | 1.20691 | 0.147559 | 0.0857592 | 0.0308462 | 0.0114058 | 0.00499261 | 0.0671872 | 1.18186 | 0.282038 | 0.000671013 | 0.107199 | 0.0385578 | 0.0142573 | 0.00624076 | 3.32577 | 1.18186 | 1.19866 | 7.5 | 0.162842 | 1.36492 |\n", - "| 75 | -0.802304 | 0.964996 | 1.20697 | 0.147581 | 0.0857728 | 0.0308566 | 0.0114134 | 0.00499779 | 0.0672 | 1.18192 | 0.282076 | 0.00067221 | 0.107216 | 0.0385708 | 0.0142668 | 0.00624724 | 3.3264 | 1.18192 | 1.19883 | 7.6 | 0.162692 | 1.36513 |\n", - "| 76 | -0.802442 | 0.964996 | 1.20702 | 0.147602 | 0.0857853 | 0.0308662 | 0.0114204 | 0.00500256 | 0.0672117 | 1.18198 | 0.282111 | 0.000673312 | 0.107232 | 0.0385828 | 0.0142756 | 0.0062532 | 3.32698 | 1.18198 | 1.19897 | 7.7 | 0.162555 | 1.36532 |\n", - "| 77 | -0.802568 | 0.964997 | 1.20707 | 0.147621 | 0.0857967 | 0.030875 | 0.0114269 | 0.00500694 | 0.0672224 | 1.18203 | 0.282143 | 0.000674326 | 0.107246 | 0.0385937 | 0.0142836 | 0.00625867 | 3.32751 | 1.18203 | 1.19911 | 7.8 | 0.162429 | 1.36549 |\n", - "| 78 | -0.802683 | 0.964997 | 1.20712 | 0.147638 | 0.0858072 | 0.030883 | 0.0114328 | 0.00501096 | 0.0672322 | 1.18207 | 0.282173 | 0.000675258 | 0.107259 | 0.0386037 | 0.014291 | 0.0062637 | 3.32799 | 1.18207 | 1.19923 | 7.9 | 0.162314 | 1.36565 |\n", - "| 79 | -0.80279 | 0.964997 | 1.20716 | 0.147654 | 0.0858168 | 0.0308904 | 0.0114382 | 0.00501466 | 0.0672412 | 1.18211 | 0.2822 | 0.000676116 | 0.107271 | 0.038613 | 0.0142978 | 0.00626832 | 3.32844 | 1.18211 | 1.19935 | 8 | 0.162208 | 1.3658 |\n", - "| 80 | -0.802887 | 0.964998 | 1.2072 | 0.147668 | 0.0858256 | 0.0308971 | 0.0114432 | 0.00501805 | 0.0672494 | 1.18215 | 0.282224 | 0.000676905 | 0.107282 | 0.0386214 | 0.014304 | 0.00627256 | 3.32885 | 1.18215 | 1.19945 | 8.1 | 0.162111 | 1.36593 |\n", - "| 81 | -0.802976 | 0.964998 | 1.20724 | 0.147682 | 0.0858336 | 0.0309033 | 0.0114477 | 0.00502117 | 0.067257 | 1.18219 | 0.282247 | 0.00067763 | 0.107292 | 0.0386291 | 0.0143097 | 0.00627646 | 3.32922 | 1.18219 | 1.19955 | 8.2 | 0.162022 | 1.36606 |\n", - "| 82 | -0.803058 | 0.964998 | 1.20727 | 0.147694 | 0.085841 | 0.030909 | 0.0114519 | 0.00502403 | 0.0672639 | 1.18222 | 0.282268 | 0.000678296 | 0.107301 | 0.0386362 | 0.0143149 | 0.00628004 | 3.32956 | 1.18222 | 1.19964 | 8.3 | 0.16194 | 1.36617 |\n", - "| 83 | -0.803132 | 0.964998 | 1.2073 | 0.147705 | 0.0858477 | 0.0309142 | 0.0114558 | 0.00502666 | 0.0672703 | 1.18225 | 0.282287 | 0.000678909 | 0.10731 | 0.0386427 | 0.0143197 | 0.00628332 | 3.32988 | 1.18225 | 1.19972 | 8.4 | 0.161866 | 1.36627 |\n", - "| 84 | -0.803201 | 0.964998 | 1.20733 | 0.147715 | 0.0858539 | 0.0309189 | 0.0114593 | 0.00502907 | 0.0672761 | 1.18228 | 0.282304 | 0.000679472 | 0.107317 | 0.0386487 | 0.0143241 | 0.00628634 | 3.33017 | 1.18228 | 1.19979 | 8.5 | 0.161797 | 1.36637 |\n", - "| 85 | -0.803264 | 0.964998 | 1.20735 | 0.147725 | 0.0858596 | 0.0309233 | 0.0114625 | 0.00503128 | 0.0672814 | 1.1823 | 0.28232 | 0.000679989 | 0.107325 | 0.0386541 | 0.0143282 | 0.0062891 | 3.33043 | 1.1823 | 1.19986 | 8.6 | 0.161734 | 1.36646 |\n", - "| 86 | -0.803322 | 0.964999 | 1.20738 | 0.147734 | 0.0858648 | 0.0309273 | 0.0114655 | 0.00503332 | 0.0672863 | 1.18232 | 0.282334 | 0.000680465 | 0.107331 | 0.0386591 | 0.0143319 | 0.00629164 | 3.33067 | 1.18232 | 1.19992 | 8.7 | 0.161677 | 1.36653 |\n", - "| 87 | -0.803375 | 0.964999 | 1.2074 | 0.147741 | 0.0858695 | 0.030931 | 0.0114682 | 0.00503518 | 0.0672908 | 1.18234 | 0.282348 | 0.000680901 | 0.107337 | 0.0386637 | 0.0143353 | 0.00629398 | 3.3309 | 1.18234 | 1.19998 | 8.8 | 0.161624 | 1.36661 |\n", - "| 88 | -0.803423 | 0.964999 | 1.20742 | 0.147749 | 0.0858739 | 0.0309343 | 0.0114707 | 0.00503689 | 0.0672949 | 1.18236 | 0.28236 | 0.000681302 | 0.107342 | 0.0386679 | 0.0143384 | 0.00629612 | 3.3311 | 1.18236 | 1.20003 | 8.9 | 0.161576 | 1.36668 |\n", - "| 89 | -0.803468 | 0.964999 | 1.20744 | 0.147755 | 0.0858779 | 0.0309374 | 0.011473 | 0.00503846 | 0.0672987 | 1.18238 | 0.282371 | 0.00068167 | 0.107347 | 0.0386718 | 0.0143413 | 0.00629808 | 3.33129 | 1.18238 | 1.20008 | 9 | 0.161531 | 1.36674 |\n", - "| 90 | -0.803508 | 0.964999 | 1.20745 | 0.147761 | 0.0858815 | 0.0309403 | 0.0114751 | 0.00503991 | 0.0673022 | 1.1824 | 0.282382 | 0.000682008 | 0.107352 | 0.0386753 | 0.0143439 | 0.00629988 | 3.33146 | 1.1824 | 1.20012 | 9.1 | 0.161491 | 1.36679 |\n", - "| 91 | -0.803546 | 0.964999 | 1.20747 | 0.147767 | 0.0858849 | 0.0309428 | 0.011477 | 0.00504123 | 0.0673053 | 1.18241 | 0.282391 | 0.000682319 | 0.107356 | 0.0386786 | 0.0143463 | 0.00630154 | 3.33161 | 1.18241 | 1.20016 | 9.2 | 0.161453 | 1.36684 |\n", - "| 92 | -0.80358 | 0.964999 | 1.20748 | 0.147772 | 0.085888 | 0.0309452 | 0.0114788 | 0.00504244 | 0.0673082 | 1.18242 | 0.2824 | 0.000682603 | 0.10736 | 0.0386815 | 0.0143485 | 0.00630305 | 3.33176 | 1.18242 | 1.2002 | 9.3 | 0.161419 | 1.36689 |\n", - "| 93 | -0.803611 | 0.964999 | 1.20749 | 0.147777 | 0.0858908 | 0.0309474 | 0.0114804 | 0.00504356 | 0.0673109 | 1.18244 | 0.282408 | 0.000682865 | 0.107363 | 0.0386842 | 0.0143505 | 0.00630444 | 3.33189 | 1.18244 | 1.20023 | 9.4 | 0.161388 | 1.36694 |\n", - "| 94 | -0.80364 | 0.964999 | 1.2075 | 0.147781 | 0.0858933 | 0.0309494 | 0.0114819 | 0.00504458 | 0.0673133 | 1.18245 | 0.282415 | 0.000683105 | 0.107367 | 0.0386867 | 0.0143524 | 0.00630572 | 3.33201 | 1.18245 | 1.20026 | 9.5 | 0.161359 | 1.36697 |\n", - "| 95 | -0.803666 | 0.964999 | 1.20751 | 0.147785 | 0.0858957 | 0.0309512 | 0.0114833 | 0.00504551 | 0.0673156 | 1.18246 | 0.282422 | 0.000683325 | 0.10737 | 0.038689 | 0.0143541 | 0.00630689 | 3.33212 | 1.18246 | 1.20029 | 9.6 | 0.161333 | 1.36701 |\n", - "| 96 | -0.80369 | 0.964999 | 1.20752 | 0.147789 | 0.0858979 | 0.0309529 | 0.0114845 | 0.00504637 | 0.0673176 | 1.18247 | 0.282428 | 0.000683528 | 0.107372 | 0.0386911 | 0.0143556 | 0.00630797 | 3.33222 | 1.18247 | 1.20032 | 9.7 | 0.161309 | 1.36704 |\n", - "| 97 | -0.803712 | 0.964999 | 1.20753 | 0.147792 | 0.0858998 | 0.0309544 | 0.0114857 | 0.00504716 | 0.0673195 | 1.18247 | 0.282433 | 0.000683713 | 0.107375 | 0.038693 | 0.0143571 | 0.00630895 | 3.33231 | 1.18247 | 1.20034 | 9.8 | 0.161287 | 1.36708 |\n", - "| 98 | -0.803733 | 0.964999 | 1.20754 | 0.147795 | 0.0859017 | 0.0309558 | 0.0114867 | 0.00504788 | 0.0673212 | 1.18248 | 0.282438 | 0.000683883 | 0.107377 | 0.0386948 | 0.0143584 | 0.00630985 | 3.3324 | 1.18248 | 1.20036 | 9.9 | 0.161267 | 1.3671 |\n", - "| 99 | -0.803751 | 0.965 | 1.20755 | 0.147798 | 0.0859033 | 0.0309571 | 0.0114877 | 0.00504855 | 0.0673228 | 1.18249 | 0.282443 | 0.000684039 | 0.107379 | 0.0386964 | 0.0143596 | 0.00631068 | 3.33248 | 1.18249 | 1.20038 | 10 | 0.161248 | 1.36713 |\n", - "| 100 | -0.803751 | 0.965 | 1.20755 | 0.147798 | 0.0859033 | 0.0309571 | 0.0114877 | 0.00504855 | 0.0673228 | 1.18249 | 0.282443 | 0.000684039 | 0.107379 | 0.0386964 | 0.0143596 | 0.00631068 | 3.33248 | 1.18249 | 1.20038 | 10.1 | 0.161248 | 1.36713 |\n" - ] - } - ], - "source": [ - "import pandas as pd\n", - "df = pd.DataFrame(meas)\n", - "print(df.to_markdown())" - ] - }, - { - "cell_type": "code", - "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/html": [ - " \n", - " " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "mode": "lines", - "name": "T_{Gamma Root}", - "type": "scatter", - "x": [ - 0.1, - 0.2, - 0.30000000000000004, - 0.4, - 0.5, - 0.6, - 0.7, - 0.7999999999999999, - 0.8999999999999999, - 0.9999999999999999, - 1.0999999999999999, - 1.2, - 1.3, - 1.4000000000000001, - 1.5000000000000002, - 1.6000000000000003, - 1.7000000000000004, - 1.8000000000000005, - 1.9000000000000006, - 2.0000000000000004, - 2.1000000000000005, - 2.2000000000000006, - 2.3000000000000007, - 2.400000000000001, - 2.500000000000001, - 2.600000000000001, - 2.700000000000001, - 2.800000000000001, - 2.9000000000000012, - 3.0000000000000013, - 3.1000000000000014, - 3.2000000000000015, - 3.3000000000000016, - 3.4000000000000017, - 3.5000000000000018, - 3.600000000000002, - 3.700000000000002, - 3.800000000000002, - 3.900000000000002, - 4.000000000000002, - 4.100000000000001, - 4.200000000000001, - 4.300000000000001, - 4.4, - 4.5, - 4.6, - 4.699999999999999, - 4.799999999999999, - 4.899999999999999, - 4.999999999999998, - 5.099999999999998, - 5.1999999999999975, - 5.299999999999997, - 5.399999999999997, - 5.4999999999999964, - 5.599999999999996, - 5.699999999999996, - 5.799999999999995, - 5.899999999999995, - 5.999999999999995, - 6.099999999999994, - 6.199999999999994, - 6.299999999999994, - 6.399999999999993, - 6.499999999999993, - 6.5999999999999925, - 6.699999999999992, - 6.799999999999992, - 6.8999999999999915, - 6.999999999999991, - 7.099999999999991, - 7.19999999999999, - 7.29999999999999, - 7.39999999999999, - 7.499999999999989, - 7.599999999999989, - 7.699999999999989, - 7.799999999999988, - 7.899999999999988, - 7.999999999999988, - 8.099999999999987, - 8.199999999999987, - 8.299999999999986, - 8.399999999999986, - 8.499999999999986, - 8.599999999999985, - 8.699999999999985, - 8.799999999999985, - 8.899999999999984, - 8.999999999999984, - 9.099999999999984, - 9.199999999999983, - 9.299999999999983, - 9.399999999999983, - 9.499999999999982, - 9.599999999999982, - 9.699999999999982, - 9.799999999999981, - 9.89999999999998, - 9.99999999999998, - 10.09999999999998 - ], - "y": [ - 0.3064024663435392, - 0.4518898394616568, - 0.5544143322820901, - 0.6345563501063773, - 0.7001574650283566, - 0.7552633625426808, - 0.8023275460447542, - 0.8429932744803453, - 0.8784353018601053, - 0.9095322038787077, - 0.9369629541517719, - 0.9612655260105636, - 0.9828746568406685, - 1.0021473311828104, - 1.0193806073295808, - 1.0348244551110617, - 1.0486912267246211, - 1.0611627891542235, - 1.07239599309144, - 1.082526933802818, - 1.091674318606104, - 1.0999421628045474, - 1.1074219733110071, - 1.1141945360994485, - 1.1203313934394554, - 1.1258960753957672, - 1.1309451345765251, - 1.1355290217793466, - 1.1396928317921913, - 1.1434769423205913, - 1.1469175642536946, - 1.1500472178412997, - 1.1528951465421655, - 1.1554876781119658, - 1.1578485407755115, - 1.1599991409608956, - 1.1619588079806835, - 1.1637450101651885, - 1.1653735462390913, - 1.1668587151494878, - 1.1682134670739681, - 1.1694495379407135, - 1.1705775694623792, - 1.171607216409249, - 1.1725472426146448, - 1.1734056070089425, - 1.174189540811536, - 1.174905616867548, - 1.175559811993872, - 1.176157563094144, - 1.1767038177114142, - 1.1772030796088064, - 1.1776594499000554, - 1.1780766641923601, - 1.178458126151936, - 1.1788069378571018, - 1.1791259272637038, - 1.1794176730724493, - 1.1796845272566863, - 1.1799286354817011, - 1.1801519556223319, - 1.180356274564152, - 1.1805432234543556, - 1.1807142915514899, - 1.1808708388080333, - 1.1810141073062952, - 1.1811452316561273, - 1.181265248452107, - 1.1813751048782442, - 1.1814756665396764, - 1.181567724593005, - 1.181652002240072, - 1.1817291606436904, - 1.1817998043182765, - 1.181864486043271, - 1.1819237113427354, - 1.1819779425703805, - 1.1820276026356495, - 1.182073078403144, - 1.182114723794656, - 1.1821528626203937, - 1.1821877911635505, - 1.1822197805401042, - 1.1822490788537816, - 1.1822759131643013, - 1.1823004912853379, - 1.182323003427195, - 1.1823436236978226, - 1.182362511474558, - 1.182379812657915, - 1.1823956608176873, - 1.1824101782407432, - 1.1824234768890534, - 1.1824356592757415, - 1.182446819266244, - 1.1824570428110521, - 1.1824664086159584, - 1.1824749887551687, - 1.1824828492322135, - 1.1824900504931428, - 1.1824900504931428 - ] - }, - { - "mode": "markers", - "name": "T_{Gamma Ext}", - "type": "scatter", - "x": [ - 0.1, - 0.2, - 0.30000000000000004, - 0.4, - 0.5, - 0.6, - 0.7, - 0.7999999999999999, - 0.8999999999999999, - 0.9999999999999999, - 1.0999999999999999, - 1.2, - 1.3, - 1.4000000000000001, - 1.5000000000000002, - 1.6000000000000003, - 1.7000000000000004, - 1.8000000000000005, - 1.9000000000000006, - 2.0000000000000004, - 2.1000000000000005, - 2.2000000000000006, - 2.3000000000000007, - 2.400000000000001, - 2.500000000000001, - 2.600000000000001, - 2.700000000000001, - 2.800000000000001, - 2.9000000000000012, - 3.0000000000000013, - 3.1000000000000014, - 3.2000000000000015, - 3.3000000000000016, - 3.4000000000000017, - 3.5000000000000018, - 3.600000000000002, - 3.700000000000002, - 3.800000000000002, - 3.900000000000002, - 4.000000000000002, - 4.100000000000001, - 4.200000000000001, - 4.300000000000001, - 4.4, - 4.5, - 4.6, - 4.699999999999999, - 4.799999999999999, - 4.899999999999999, - 4.999999999999998, - 5.099999999999998, - 5.1999999999999975, - 5.299999999999997, - 5.399999999999997, - 5.4999999999999964, - 5.599999999999996, - 5.699999999999996, - 5.799999999999995, - 5.899999999999995, - 5.999999999999995, - 6.099999999999994, - 6.199999999999994, - 6.299999999999994, - 6.399999999999993, - 6.499999999999993, - 6.5999999999999925, - 6.699999999999992, - 6.799999999999992, - 6.8999999999999915, - 6.999999999999991, - 7.099999999999991, - 7.19999999999999, - 7.29999999999999, - 7.39999999999999, - 7.499999999999989, - 7.599999999999989, - 7.699999999999989, - 7.799999999999988, - 7.899999999999988, - 7.999999999999988, - 8.099999999999987, - 8.199999999999987, - 8.299999999999986, - 8.399999999999986, - 8.499999999999986, - 8.599999999999985, - 8.699999999999985, - 8.799999999999985, - 8.899999999999984, - 8.999999999999984, - 9.099999999999984, - 9.199999999999983, - 9.299999999999983, - 9.399999999999983, - 9.499999999999982, - 9.599999999999982, - 9.699999999999982, - 9.799999999999981, - 9.89999999999998, - 9.99999999999998, - 10.09999999999998 - ], - "y": [ - 0.00368775524991849, - 0.007214155844576512, - 0.010644277874551984, - 0.013992115434532527, - 0.01725103996558396, - 0.020407468705280814, - 0.0234476968291454, - 0.02636061627705335, - 0.029138419287642738, - 0.03177645314871078, - 0.034272776965226015, - 0.03662765716515536, - 0.03884309480629885, - 0.04092241550817001, - 0.042869926989743526, - 0.04469063919148414, - 0.04639003874385813, - 0.047973909156950774, - 0.04944818881640675, - 0.050818859927255336, - 0.052091862631034956, - 0.05327302950868927, - 0.05436803653371286, - 0.0553823672556481, - 0.056321287586356114, - 0.057189829047941045, - 0.05799277873911689, - 0.058734674601728175, - 0.059419804834321674, - 0.06005221051617077, - 0.06063569068199967, - 0.06117380923223064, - 0.06166990318183218, - 0.06212709184764299, - 0.06254828665329441, - 0.0629362012957409, - 0.06329336207052928, - 0.06362211819638955, - 0.06392465201525036, - 0.06420298897276484, - 0.06445900730803474, - 0.06469444740040269, - 0.06491092073669773, - 0.06510991847484071, - 0.06529281958974055, - 0.0654608985954103, - 0.0656153328435382, - 0.0657572094036728, - 0.06588753153397911, - 0.0660072247543854, - 0.06611714253604507, - 0.06621807162252964, - 0.06631073699915682, - 0.0663958065274471, - 0.06647389526196036, - 0.06654556946678324, - 0.0666113503487322, - 0.06667171752400129, - 0.0667271122345083, - 0.06677794032964468, - 0.06682457502851176, - 0.06686735947707353, - 0.06690660911396434, - 0.06694261385799584, - 0.06697564012970722, - 0.06700593271860682, - 0.0670337165070776, - 0.06705919806125041, - 0.06708256709851305, - 0.06710399784070409, - 0.06712365026144808, - 0.06714167123553252, - 0.0671581955976829, - 0.06717334711759382, - 0.06718723939758971, - 0.067199976698842, - 0.0672116547016404, - 0.0672223612048243, - 0.06723217676910208, - 0.06724117530863973, - 0.06724942463497526, - 0.06725698695700885, - 0.06726391934053959, - 0.06727027413055271, - 0.06727609933921708, - 0.06728143900232958, - 0.06728633350672321, - 0.06729081989097108, - 0.06729493212152673, - 0.06729870134628117, - 0.06730215612735774, - 0.06730532265482109, - 0.0673082249428512, - 0.06731088500979805, - 0.06731332304343367, - 0.06731555755260107, - 0.06731760550637259, - 0.06731948246173544, - 0.06732120268074164, - 0.06732277923798742, - 0.06732277923798742 - ] - }, - { - "mode": "markers", - "name": "min T", - "type": "scatter", - "x": [ - 0.1, - 0.2, - 0.30000000000000004, - 0.4, - 0.5, - 0.6, - 0.7, - 0.7999999999999999, - 0.8999999999999999, - 0.9999999999999999, - 1.0999999999999999, - 1.2, - 1.3, - 1.4000000000000001, - 1.5000000000000002, - 1.6000000000000003, - 1.7000000000000004, - 1.8000000000000005, - 1.9000000000000006, - 2.0000000000000004, - 2.1000000000000005, - 2.2000000000000006, - 2.3000000000000007, - 2.400000000000001, - 2.500000000000001, - 2.600000000000001, - 2.700000000000001, - 2.800000000000001, - 2.9000000000000012, - 3.0000000000000013, - 3.1000000000000014, - 3.2000000000000015, - 3.3000000000000016, - 3.4000000000000017, - 3.5000000000000018, - 3.600000000000002, - 3.700000000000002, - 3.800000000000002, - 3.900000000000002, - 4.000000000000002, - 4.100000000000001, - 4.200000000000001, - 4.300000000000001, - 4.4, - 4.5, - 4.6, - 4.699999999999999, - 4.799999999999999, - 4.899999999999999, - 4.999999999999998, - 5.099999999999998, - 5.1999999999999975, - 5.299999999999997, - 5.399999999999997, - 5.4999999999999964, - 5.599999999999996, - 5.699999999999996, - 5.799999999999995, - 5.899999999999995, - 5.999999999999995, - 6.099999999999994, - 6.199999999999994, - 6.299999999999994, - 6.399999999999993, - 6.499999999999993, - 6.5999999999999925, - 6.699999999999992, - 6.799999999999992, - 6.8999999999999915, - 6.999999999999991, - 7.099999999999991, - 7.19999999999999, - 7.29999999999999, - 7.39999999999999, - 7.499999999999989, - 7.599999999999989, - 7.699999999999989, - 7.799999999999988, - 7.899999999999988, - 7.999999999999988, - 8.099999999999987, - 8.199999999999987, - 8.299999999999986, - 8.399999999999986, - 8.499999999999986, - 8.599999999999985, - 8.699999999999985, - 8.799999999999985, - 8.899999999999984, - 8.999999999999984, - 9.099999999999984, - 9.199999999999983, - 9.299999999999983, - 9.399999999999983, - 9.499999999999982, - 9.599999999999982, - 9.699999999999982, - 9.799999999999981, - 9.89999999999998, - 9.99999999999998, - 10.09999999999998 - ], - "y": [ - 6.658881818027e-11, - 7.624040871261319e-10, - 4.5564599815395164e-9, - 1.8949573556844168e-8, - 6.168107040253525e-8, - 1.6756400361702792e-7, - 3.955969672887046e-7, - 8.344788956998203e-7, - 0.0000016047675307889875, - 0.0000028566172157111737, - 0.000004763020739104775, - 0.000007509419051819481, - 0.000011281177477916614, - 0.000016250656096005838, - 0.00002256546179667531, - 0.00003033907872896988, - 0.00003964457303672509, - 0.00005051157673820568, - 0.0000629263532162515, - 0.0000768344693550444, - 0.00009214544943673312, - 0.00010873874476544477, - 0.00012647039212380606, - 0.00014517982382882395, - 0.00016469640642669472, - 0.00018484540416759837, - 0.00020545317401355798, - 0.00022635149341477552, - 0.0002473809972132595, - 0.00026839375564589624, - 0.0002892550632772002, - 0.00030984453153782746, - 0.0003300565884556972, - 0.0003498004911311046, - 0.0003689999521850107, - 0.0003875924730206694, - 0.0004055284660400624, - 0.00042277023627147964, - 0.000439290881138736, - 0.0004550731559705253, - 0.00047010834270027127, - 0.00048439515024808035, - 0.0004979386673794173, - 0.0005107493823811881, - 0.0005228422786074926, - 0.0005342360107129503, - 0.0005449521630835511, - 0.0005550145894619398, - 0.0005644488309188591, - 0.0005732816080276092, - 0.0005815403822483196, - 0.0005892529810315107, - 0.0005964472809268728, - 0.0006031509429672735, - 0.0006093911947348692, - 0.0006151946537614625, - 0.0006205871872332383, - 0.0006255938033327728, - 0.0006302385699371269, - 0.0006345445567835273, - 0.0006385337976015403, - 0.0006422272690841859, - 0.0006456448839241983, - 0.000648805495471967, - 0.0006517269118764405, - 0.0006544259178486511, - 0.0006569183024396486, - 0.0006592188914511681, - 0.0006613415832995939, - 0.0006632993873331879, - 0.0006651044637607365, - 0.0006667681644885855, - 0.0006683010742841334, - 0.000669713051789036, - 0.0006710132699962149, - 0.0006722102558829129, - 0.0006733119289588043, - 0.0006743256385450497, - 0.0006752581996482389, - 0.0006761159273335956, - 0.000676904669535579, - 0.00067762983827201, - 0.0006782964392508133, - 0.0006789090998771895, - 0.0006794720956840466, - 0.0006799893752204075, - 0.0006804645834417398, - 0.0006809010836531468, - 0.0006813019780614272, - 0.0006816701269955633, - 0.0006820081668573694, - 0.0006823185268651935, - 0.0006826034446537845, - 0.0006828649807930084, - 0.0006831050322870378, - 0.0006833253451141791, - 0.0006835275258656981, - 0.0006837130525399022, - 0.000683883284545509, - 0.0006840394719659429, - 0.0006840394719659429 - ] - }, - { - "mode": "markers", - "name": "max T", - "type": "scatter", - "x": [ - 0.1, - 0.2, - 0.30000000000000004, - 0.4, - 0.5, - 0.6, - 0.7, - 0.7999999999999999, - 0.8999999999999999, - 0.9999999999999999, - 1.0999999999999999, - 1.2, - 1.3, - 1.4000000000000001, - 1.5000000000000002, - 1.6000000000000003, - 1.7000000000000004, - 1.8000000000000005, - 1.9000000000000006, - 2.0000000000000004, - 2.1000000000000005, - 2.2000000000000006, - 2.3000000000000007, - 2.400000000000001, - 2.500000000000001, - 2.600000000000001, - 2.700000000000001, - 2.800000000000001, - 2.9000000000000012, - 3.0000000000000013, - 3.1000000000000014, - 3.2000000000000015, - 3.3000000000000016, - 3.4000000000000017, - 3.5000000000000018, - 3.600000000000002, - 3.700000000000002, - 3.800000000000002, - 3.900000000000002, - 4.000000000000002, - 4.100000000000001, - 4.200000000000001, - 4.300000000000001, - 4.4, - 4.5, - 4.6, - 4.699999999999999, - 4.799999999999999, - 4.899999999999999, - 4.999999999999998, - 5.099999999999998, - 5.1999999999999975, - 5.299999999999997, - 5.399999999999997, - 5.4999999999999964, - 5.599999999999996, - 5.699999999999996, - 5.799999999999995, - 5.899999999999995, - 5.999999999999995, - 6.099999999999994, - 6.199999999999994, - 6.299999999999994, - 6.399999999999993, - 6.499999999999993, - 6.5999999999999925, - 6.699999999999992, - 6.799999999999992, - 6.8999999999999915, - 6.999999999999991, - 7.099999999999991, - 7.19999999999999, - 7.29999999999999, - 7.39999999999999, - 7.499999999999989, - 7.599999999999989, - 7.699999999999989, - 7.799999999999988, - 7.899999999999988, - 7.999999999999988, - 8.099999999999987, - 8.199999999999987, - 8.299999999999986, - 8.399999999999986, - 8.499999999999986, - 8.599999999999985, - 8.699999999999985, - 8.799999999999985, - 8.899999999999984, - 8.999999999999984, - 9.099999999999984, - 9.199999999999983, - 9.299999999999983, - 9.399999999999983, - 9.499999999999982, - 9.599999999999982, - 9.699999999999982, - 9.799999999999981, - 9.89999999999998, - 9.99999999999998, - 10.09999999999998 - ], - "y": [ - 0.3104613919842794, - 0.4590400906577549, - 0.5640017293769165, - 0.6460975694124057, - 0.7133093385692241, - 0.7697717274402345, - 0.8179958847183041, - 0.8596646019599298, - 0.8959811849089077, - 0.9278456753558628, - 0.9559536871606638, - 0.9808564037539856, - 1.0029992513893904, - 1.022747999724429, - 1.0404070223214366, - 1.0562324478700402, - 1.0704418627473307, - 1.0832216182232575, - 1.0947324335578834, - 1.1051137614999431, - 1.1144872385149638, - 1.1229594470079436, - 1.1306241526655134, - 1.137564135898147, - 1.1438527054442043, - 1.1495549601990138, - 1.1547288494546086, - 1.1594260701235442, - 1.1636928309223595, - 1.1675705070507079, - 1.1710962040262887, - 1.174303245606061, - 1.1772215978432947, - 1.1798782390842275, - 1.1822974839420215, - 1.1845012678851201, - 1.1865093979577204, - 1.1883397742483532, - 1.1900085859912164, - 1.191530485587389, - 1.1929187433417618, - 1.1941853853051618, - 1.1953413162727728, - 1.1963964297068856, - 1.1973597061137804, - 1.1982393012030597, - 1.1990426249866357, - 1.1997764128285064, - 1.2004467893312523, - 1.201059325837576, - 1.201619092232179, - 1.2021307036488151, - 1.2025983626173067, - 1.2030258971243684, - 1.2034167950087569, - 1.2037742350645928, - 1.2041011151856695, - 1.204400077847479, - 1.2046735331918763, - 1.2049236799511565, - 1.2051525244234498, - 1.2053618976892786, - 1.2055534712394855, - 1.205728771167394, - 1.205889191062483, - 1.206036003729044, - 1.206170371840992, - 1.2062933576328876, - 1.2064059317174218, - 1.206508981110769, - 1.206603316539248, - 1.206689679093681, - 1.2067687462914218, - 1.2068411376002952, - 1.2069074194735325, - 1.20696810994015, - 1.2070236827910068, - 1.207074571397045, - 1.2071211721927846, - 1.2071638478550824, - 1.2072029302043774, - 1.2072387228531907, - 1.207271503624286, - 1.2073015267589389, - 1.2073290249338584, - 1.207354211103629, - 1.207377280184009, - 1.2073984105900801, - 1.207417765641915, - 1.2074354948493846, - 1.2074517350866056, - 1.207466611665658, - 1.207480239318309, - 1.2074927230937347, - 1.207504159179496, - 1.207514635652409, - 1.2075242331653697, - 1.2075330255756322, - 1.2075410805195979, - 1.2075484599387025, - 1.2075484599387025 - ] - } - ], - "layout": { - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Temperature" - }, - "xaxis": { - "title": { - "text": "time" - } - }, - "yaxis": { - "title": { - "text": "T" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "import plotly.graph_objects as go\n", - "import numpy as np\n", - "\n", - "fig = go.Figure()\n", - "fig.add_trace(go.Scatter(x=df[\"time\"], y=df[\"mean_Gamma_root\"], mode='lines', name='T_{Gamma Root}'))\n", - "fig.add_trace(go.Scatter(x=df[\"time\"], y=df[\"mean_Gamma_ext\"], mode='markers', name='T_{Gamma Ext}'))\n", - "fig.add_trace(go.Scatter(x=df[\"time\"], y=df[\"min\"], mode='markers', name='min T'))\n", - "fig.add_trace(go.Scatter(x=df[\"time\"], y=df[\"max\"], mode='markers', name='max T'))\n", - "fig.update_layout(title='Temperature', xaxis_title='time', yaxis_title='T')\n", - "fig.show()\n" - ] - }, - { - "cell_type": "code", - "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "data": { - "application/vnd.plotly.v1+json": { - "config": { - "plotlyServerURL": "https://plot.ly" - }, - "data": [ - { - "mode": "lines", - "name": "Flux_{Gamma Root}", - "type": "scatter", - "x": [ - 0.1, - 0.2, - 0.30000000000000004, - 0.4, - 0.5, - 0.6, - 0.7, - 0.7999999999999999, - 0.8999999999999999, - 0.9999999999999999, - 1.0999999999999999, - 1.2, - 1.3, - 1.4000000000000001, - 1.5000000000000002, - 1.6000000000000003, - 1.7000000000000004, - 1.8000000000000005, - 1.9000000000000006, - 2.0000000000000004, - 2.1000000000000005, - 2.2000000000000006, - 2.3000000000000007, - 2.400000000000001, - 2.500000000000001, - 2.600000000000001, - 2.700000000000001, - 2.800000000000001, - 2.9000000000000012, - 3.0000000000000013, - 3.1000000000000014, - 3.2000000000000015, - 3.3000000000000016, - 3.4000000000000017, - 3.5000000000000018, - 3.600000000000002, - 3.700000000000002, - 3.800000000000002, - 3.900000000000002, - 4.000000000000002, - 4.100000000000001, - 4.200000000000001, - 4.300000000000001, - 4.4, - 4.5, - 4.6, - 4.699999999999999, - 4.799999999999999, - 4.899999999999999, - 4.999999999999998, - 5.099999999999998, - 5.1999999999999975, - 5.299999999999997, - 5.399999999999997, - 5.4999999999999964, - 5.599999999999996, - 5.699999999999996, - 5.799999999999995, - 5.899999999999995, - 5.999999999999995, - 6.099999999999994, - 6.199999999999994, - 6.299999999999994, - 6.399999999999993, - 6.499999999999993, - 6.5999999999999925, - 6.699999999999992, - 6.799999999999992, - 6.8999999999999915, - 6.999999999999991, - 7.099999999999991, - 7.19999999999999, - 7.29999999999999, - 7.39999999999999, - 7.499999999999989, - 7.599999999999989, - 7.699999999999989, - 7.799999999999988, - 7.899999999999988, - 7.999999999999988, - 8.099999999999987, - 8.199999999999987, - 8.299999999999986, - 8.399999999999986, - 8.499999999999986, - 8.599999999999985, - 8.699999999999985, - 8.799999999999985, - 8.899999999999984, - 8.999999999999984, - 9.099999999999984, - 9.199999999999983, - 9.299999999999983, - 9.399999999999983, - 9.499999999999982, - 9.599999999999982, - 9.699999999999982, - 9.799999999999981, - 9.89999999999998, - 9.99999999999998, - 10.09999999999998 - ], - "y": [ - 0.8776195181632195, - 0.92930832921028, - 0.9431296894808505, - 0.9496360242903366, - 0.9534635525289752, - 0.955990995487321, - 0.9577792731296583, - 0.9591029744863921, - 0.9601143467633049, - 0.9609055858090617, - 0.9615361982216276, - 0.9620464405612974, - 0.9624645344962489, - 0.9628108253883219, - 0.9631003174516197, - 0.9633442889649707, - 0.9635513579844753, - 0.9637282056101677, - 0.9638800784188346, - 0.9640111444583491, - 0.9641247498556251, - 0.9642236066258787, - 0.9643099320305264, - 0.9643855532879936, - 0.9644519871649098, - 0.9645105011243179, - 0.9645621607748283, - 0.9646078670340635, - 0.9646483854910636, - 0.9646843697960543, - 0.9647163804365624, - 0.9647448999197499, - 0.9647703451330116, - 0.9647930774723208, - 0.964813411192015, - 0.9648316203277816, - 0.964847944467678, - 0.9648625935871575, - 0.964875752119296, - 0.9648875823964217, - 0.9648982275723871, - 0.9649078141135915, - 0.9649164539300871, - 0.9649242462050391, - 0.9649312789701935, - 0.964937630466617, - 0.9649433703232682, - 0.9649485605803895, - 0.9649532565802458, - 0.9649575077442186, - 0.9649613582520812, - 0.9649648476370191, - 0.9649680113077389, - 0.9649708810073999, - 0.9649734852176821, - 0.9649758495150829, - 0.9649779968855203, - 0.9649799480025546, - 0.9649817214736786, - 0.9649833340586859, - 0.9649848008634396, - 0.9649861355120729, - 0.9649873503001226, - 0.9649884563308965, - 0.9649894636370028, - 0.9649903812887703, - 0.9649912174910608, - 0.9649919796697968, - 0.9649926745493366, - 0.9649933082218012, - 0.964993886209119, - 0.9649944135187045, - 0.9649948946934195, - 0.9649953338564213, - 0.9649957347514817, - 0.9649961007792427, - 0.9649964350298423, - 0.9649967403123003, - 0.9649970191809818, - 0.9649972739594934, - 0.9649975067621871, - 0.9649977195136374, - 0.964997913966188, - 0.9649980917158232, - 0.9649982542165281, - 0.9649984027932738, - 0.9649985386537648, - 0.9649986628991014, - 0.9649987765334064, - 0.9649988804725836, - 0.9649989755522449, - 0.9649990625349021, - 0.964999142116499, - 0.9649992149323471, - 0.9649992815625055, - 0.964999342536676, - 0.9649993983386684, - 0.9649994494104198, - 0.9649994961557036, - 0.9649995389434675, - 0.9649995389434675 - ] - }, - { - "mode": "markers", - "name": "Flux_{Gamma Ext}", - "type": "scatter", - "x": [ - 0.1, - 0.2, - 0.30000000000000004, - 0.4, - 0.5, - 0.6, - 0.7, - 0.7999999999999999, - 0.8999999999999999, - 0.9999999999999999, - 1.0999999999999999, - 1.2, - 1.3, - 1.4000000000000001, - 1.5000000000000002, - 1.6000000000000003, - 1.7000000000000004, - 1.8000000000000005, - 1.9000000000000006, - 2.0000000000000004, - 2.1000000000000005, - 2.2000000000000006, - 2.3000000000000007, - 2.400000000000001, - 2.500000000000001, - 2.600000000000001, - 2.700000000000001, - 2.800000000000001, - 2.9000000000000012, - 3.0000000000000013, - 3.1000000000000014, - 3.2000000000000015, - 3.3000000000000016, - 3.4000000000000017, - 3.5000000000000018, - 3.600000000000002, - 3.700000000000002, - 3.800000000000002, - 3.900000000000002, - 4.000000000000002, - 4.100000000000001, - 4.200000000000001, - 4.300000000000001, - 4.4, - 4.5, - 4.6, - 4.699999999999999, - 4.799999999999999, - 4.899999999999999, - 4.999999999999998, - 5.099999999999998, - 5.1999999999999975, - 5.299999999999997, - 5.399999999999997, - 5.4999999999999964, - 5.599999999999996, - 5.699999999999996, - 5.799999999999995, - 5.899999999999995, - 5.999999999999995, - 6.099999999999994, - 6.199999999999994, - 6.299999999999994, - 6.399999999999993, - 6.499999999999993, - 6.5999999999999925, - 6.699999999999992, - 6.799999999999992, - 6.8999999999999915, - 6.999999999999991, - 7.099999999999991, - 7.19999999999999, - 7.29999999999999, - 7.39999999999999, - 7.499999999999989, - 7.599999999999989, - 7.699999999999989, - 7.799999999999988, - 7.899999999999988, - 7.999999999999988, - 8.099999999999987, - 8.199999999999987, - 8.299999999999986, - 8.399999999999986, - 8.499999999999986, - 8.599999999999985, - 8.699999999999985, - 8.799999999999985, - 8.899999999999984, - 8.999999999999984, - 9.099999999999984, - 9.199999999999983, - 9.299999999999983, - 9.399999999999983, - 9.499999999999982, - 9.599999999999982, - 9.699999999999982, - 9.799999999999981, - 9.89999999999998, - 9.99999999999998, - 10.09999999999998 - ], - "y": [ - -0.021471700688767206, - -0.06738967325327692, - -0.1124568400264187, - -0.15590978530387642, - -0.1976208449475917, - -0.237520251555901, - -0.2755536849127453, - -0.3116859627361249, - -0.3459040156538542, - -0.37821622247235354, - -0.4086497717055162, - -0.4372473500926308, - -0.4640638337381731, - -0.48916327788880953, - -0.5126163080995239, - -0.5344979245058159, - -0.554885691110221, - -0.5738582669302539, - -0.5914942324642183, - -0.6078711668504913, - -0.6230649352364606, - -0.6371491507349337, - -0.6501947802079, - -0.6622698676481721, - -0.6734393529938298, - -0.6837649677732575, - -0.6933051920556514, - -0.702115259811463, - -0.7102472020177647, - -0.7177499187248293, - -0.7246692728798576, - -0.7310482000256135, - -0.7369268290943427, - -0.7423426104348254, - -0.7473304479719363, - -0.7519228330287481, - -0.7561499778622773, - -0.7600399473932229, - -0.7636187879631717, - -0.7669106522417128, - -0.7699379196420844, - -0.7727213117959445, - -0.7752800027931005, - -0.7776317240169682, - -0.7797928635062938, - -0.7817785598524561, - -0.7836027907035149, - -0.7852784559936296, - -0.7868174560524364, - -0.7882307647753697, - -0.7895284980546426, - -0.7907199776828318, - -0.791813790948379, - -0.7928178461455037, - -0.7937394242209217, - -0.7945852267772172, - -0.7953614206481939, - -0.7960736792553695, - -0.7967272209476622, - -0.7973268445183839, - -0.7978769620850649, - -0.7983816295088701, - -0.7988445745213543, - -0.7992692227172932, - -0.7996587215634187, - -0.8000159625640915, - -0.8003436017164811, - -0.8006440783795385, - -0.800919632673063, - -0.80117232151575, - -0.8014040334036105, - -0.8016165020235175, - -0.8018113187899516, - -0.801989944386963, - -0.8021537193914884, - -0.8023038740488073, - -0.802441537265677, - -0.8025677448820198, - -0.8026834472774685, - -0.8027895163649129, - -0.8028867520193083, - -0.8029758879862872, - -0.8030575973118955, - -0.8031324973313795, - -0.8032011542522939, - -0.8032640873642747, - -0.8033217729054285, - -0.8033746476129434, - -0.8034231119832297, - -0.8034675332652074, - -0.803508248208147, - -0.8035455655840228, - -0.803579768502647, - -0.8036111165364656, - -0.8036398476704304, - -0.8036661800912884, - -0.8036903138293294, - -0.8037124322647146, - -0.8037327035094046, - -0.8037512816749347, - -0.8037512816749347 - ] - } - ], - "layout": { - "template": { - "data": { - "bar": [ - { - "error_x": { - "color": "#2a3f5f" - }, - "error_y": { - "color": "#2a3f5f" - }, - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "bar" - } - ], - "barpolar": [ - { - "marker": { - "line": { - "color": "#E5ECF6", - "width": 0.5 - }, - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "barpolar" - } - ], - "carpet": [ - { - "aaxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "baxis": { - "endlinecolor": "#2a3f5f", - "gridcolor": "white", - "linecolor": "white", - "minorgridcolor": "white", - "startlinecolor": "#2a3f5f" - }, - "type": "carpet" - } - ], - "choropleth": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "choropleth" - } - ], - "contour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "contour" - } - ], - "contourcarpet": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "contourcarpet" - } - ], - "heatmap": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmap" - } - ], - "heatmapgl": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "heatmapgl" - } - ], - "histogram": [ - { - "marker": { - "pattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - } - }, - "type": "histogram" - } - ], - "histogram2d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2d" - } - ], - "histogram2dcontour": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "histogram2dcontour" - } - ], - "mesh3d": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "type": "mesh3d" - } - ], - "parcoords": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "parcoords" - } - ], - "pie": [ - { - "automargin": true, - "type": "pie" - } - ], - "scatter": [ - { - "fillpattern": { - "fillmode": "overlay", - "size": 10, - "solidity": 0.2 - }, - "type": "scatter" - } - ], - "scatter3d": [ - { - "line": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatter3d" - } - ], - "scattercarpet": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattercarpet" - } - ], - "scattergeo": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergeo" - } - ], - "scattergl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattergl" - } - ], - "scattermapbox": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scattermapbox" - } - ], - "scatterpolar": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolar" - } - ], - "scatterpolargl": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterpolargl" - } - ], - "scatterternary": [ - { - "marker": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "type": "scatterternary" - } - ], - "surface": [ - { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - }, - "colorscale": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "type": "surface" - } - ], - "table": [ - { - "cells": { - "fill": { - "color": "#EBF0F8" - }, - "line": { - "color": "white" - } - }, - "header": { - "fill": { - "color": "#C8D4E3" - }, - "line": { - "color": "white" - } - }, - "type": "table" - } - ] - }, - "layout": { - "annotationdefaults": { - "arrowcolor": "#2a3f5f", - "arrowhead": 0, - "arrowwidth": 1 - }, - "autotypenumbers": "strict", - "coloraxis": { - "colorbar": { - "outlinewidth": 0, - "ticks": "" - } - }, - "colorscale": { - "diverging": [ - [ - 0, - "#8e0152" - ], - [ - 0.1, - "#c51b7d" - ], - [ - 0.2, - "#de77ae" - ], - [ - 0.3, - "#f1b6da" - ], - [ - 0.4, - "#fde0ef" - ], - [ - 0.5, - "#f7f7f7" - ], - [ - 0.6, - "#e6f5d0" - ], - [ - 0.7, - "#b8e186" - ], - [ - 0.8, - "#7fbc41" - ], - [ - 0.9, - "#4d9221" - ], - [ - 1, - "#276419" - ] - ], - "sequential": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ], - "sequentialminus": [ - [ - 0, - "#0d0887" - ], - [ - 0.1111111111111111, - "#46039f" - ], - [ - 0.2222222222222222, - "#7201a8" - ], - [ - 0.3333333333333333, - "#9c179e" - ], - [ - 0.4444444444444444, - "#bd3786" - ], - [ - 0.5555555555555556, - "#d8576b" - ], - [ - 0.6666666666666666, - "#ed7953" - ], - [ - 0.7777777777777778, - "#fb9f3a" - ], - [ - 0.8888888888888888, - "#fdca26" - ], - [ - 1, - "#f0f921" - ] - ] - }, - "colorway": [ - "#636efa", - "#EF553B", - "#00cc96", - "#ab63fa", - "#FFA15A", - "#19d3f3", - "#FF6692", - "#B6E880", - "#FF97FF", - "#FECB52" - ], - "font": { - "color": "#2a3f5f" - }, - "geo": { - "bgcolor": "white", - "lakecolor": "white", - "landcolor": "#E5ECF6", - "showlakes": true, - "showland": true, - "subunitcolor": "white" - }, - "hoverlabel": { - "align": "left" - }, - "hovermode": "closest", - "mapbox": { - "style": "light" - }, - "paper_bgcolor": "white", - "plot_bgcolor": "#E5ECF6", - "polar": { - "angularaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "radialaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "scene": { - "xaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "yaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - }, - "zaxis": { - "backgroundcolor": "#E5ECF6", - "gridcolor": "white", - "gridwidth": 2, - "linecolor": "white", - "showbackground": true, - "ticks": "", - "zerolinecolor": "white" - } - }, - "shapedefaults": { - "line": { - "color": "#2a3f5f" - } - }, - "ternary": { - "aaxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "baxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - }, - "bgcolor": "#E5ECF6", - "caxis": { - "gridcolor": "white", - "linecolor": "white", - "ticks": "" - } - }, - "title": { - "x": 0.05 - }, - "xaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - }, - "yaxis": { - "automargin": true, - "gridcolor": "white", - "linecolor": "white", - "ticks": "", - "title": { - "standoff": 15 - }, - "zerolinecolor": "white", - "zerolinewidth": 2 - } - } - }, - "title": { - "text": "Heat Flux" - }, - "xaxis": { - "title": { - "text": "time" - } - }, - "yaxis": { - "title": { - "text": "Flux" - } - } - } - }, - "text/html": [ - "
" - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], - "source": [ - "fig = go.Figure()\n", - "fig.add_trace(go.Scatter(\n", - " x=df[\"time\"], y=df[\"flux_Gamma_root\"], mode='lines', name='Flux_{Gamma Root}'))\n", - "fig.add_trace(go.Scatter(\n", - " x=df[\"time\"], y=df[\"flux_Gamma_ext\"], mode='markers', name='Flux_{Gamma Ext}'))\n", - "fig.update_layout(title='Heat Flux', xaxis_title='time', yaxis_title='Flux')\n", - "fig.show()\n" - ] - } - ], - "metadata": { - "kernelspec": { - "display_name": ".venv", - "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.12" - } - }, - "nbformat": 4, - "nbformat_minor": 2 -} diff --git a/src/laplacian.cpp b/src/laplacian.cpp deleted file mode 100644 index 40a441be..00000000 --- a/src/laplacian.cpp +++ /dev/null @@ -1,53 +0,0 @@ -//! -*- mode: c++; coding: utf-8; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; show-trailing-whitespace: t -*- vim:fenc=utf-8:ft=cpp:et:sw=4:ts=4:sts=4 -//! -//! This file is part of the Feel++ library -//! -//! This library is free software; you can redistribute it and/or -//! modify it under the terms of the GNU Lesser General Public -//! License as published by the Free Software Foundation; either -//! version 2.1 of the License, or (at your option) any later version. -//! -//! This library is distributed in the hope that it will be useful, -//! but WITHOUT ANY WARRANTY; without even the implied warranty of -//! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -//! Lesser General Public License for more details. -//! -//! You should have received a copy of the GNU Lesser General Public -//! License along with this library; if not, write to the Free Software -//! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -//! -//! @file -//! @author Christophe Prud'homme -//! @date 2023-10-31 -//! @copyright 2023 Feel++ Consortium -//! @copyright 2023 Université de Strasbourg -//! -#include "laplacian.hpp" - -int main(int argc, char** argv) -{ - using namespace Feel; - int status; - try - { - Environment env(_argc = argc, _argv = argv, - _desc = makeOptions(), - _about = about(_name = fmt::format("laplacian-{}dp{}", FEELPP_DIM, FEELPP_ORDER), - _author = "Feel++ Consortium", - _email = "feelpp@cemosis.fr")); - auto jsonfile = removeComments(readFromFile(Environment::expand(soption("specs")))); - std::istringstream istr(jsonfile); - json specs = json::parse(istr); - - // Create an instance of the Laplacian class - Laplacian laplacian(specs); - - // Call the run method on the Laplacian instance - laplacian.run(); - } - catch (...) - { - handleExceptions(); - } - return 0; -} diff --git a/src/laplacian.hpp b/src/laplacian.hpp deleted file mode 100644 index 27baa894..00000000 --- a/src/laplacian.hpp +++ /dev/null @@ -1,374 +0,0 @@ -//! -*- mode: c++; coding: utf-8; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; show-trailing-whitespace: t -*- vim:fenc=utf-8:ft=cpp:et:sw=4:ts=4:sts=4 -//! -//! This file is part of the Feel++ library -//! -//! This library is free software; you can redistribute it and/or -//! modify it under the terms of the GNU Lesser General Public -//! License as published by the Free Software Foundation; either -//! version 2.1 of the License, or (at your option) any later version. -//! -//! This library is distributed in the hope that it will be useful, -//! but WITHOUT ANY WARRANTY; without even the implied warranty of -//! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -//! Lesser General Public License for more details. -//! -//! You should have received a copy of the GNU Lesser General Public -//! License along with this library; if not, write to the Free Software -//! Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -//! -//! @file -//! @author Christophe Prud'homme -//! @date 2023-10-31 -//! @copyright 2023 Feel++ Consortium -//! @copyright 2023 Université de Strasbourg -//! -#pragma once -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -namespace Feel -{ -inline const int FEELPP_DIM=2; -inline const int FEELPP_ORDER=1; - -static inline const bool do_print = true; -static inline const bool dont_print = false; - -/** - * @brief compute the summary of a container - * - * @tparam Container type of the container - * @param c container - * @param print boolean, true print the summary, false otherwise - * @return nl::json json object containing the summary - */ -template -nl::json summary( Container const& c, bool print = do_print ) -{ - using namespace Feel; - using namespace Feel::vf; - nl::json j; - j["size"] = c.size(); - auto r = minmaxelt(_range = elements(support(c.functionSpace())), _element = c); - j["min"] = r[0]; - j["max"] = r[1]; - j["mean"] = mean( _range = elements( c.mesh() ), _expr = idv( c ) ); - - if (print) - { - if (Environment::isMasterRank()) - std::cout << j.dump(2) << std::endl; - } - return j; -} -inline Feel::po::options_description -makeOptions() -{ - Feel::po::options_description options( "laplacian options" ); - options.add_options() - - // mesh parameters - ( "specs", Feel::po::value(), - "json spec file for rht" ) - - ( "steady", Feel::po::value()->default_value( 1 ), - "if 1: steady else unsteady" ); - - return options.add( Feel::feel_options() ); -} - -template -T get_value(const nl::json& specs, const std::string& path, const T& default_value) -{ - auto json_pointer = nl::json::json_pointer(path); - return specs.contains(json_pointer) ? specs[json_pointer].get() : default_value; -} - -template -class Laplacian -{ -public: - using mesh_t = Mesh>; - using space_t = Pch_type; - using space_ptr_t = Pch_ptrtype; // Define the type for Pch_ptrtype - using element_ = typename space_t::element_type; - using form2_type = form2_t; // Define the type for form2 - using form1_type = form1_t; // Define the type for form1 - using bdf_ptrtype = std::shared_ptr>; - using exporter_ptrtype = std::shared_ptr>; // Define the type for exporter_ptrtype - - Laplacian() = default; - Laplacian(nl::json const& specs); - - // Accessors - nl::json const& specs() const { return specs_; } - std::shared_ptr const& mesh() const { return mesh_; } - space_ptr_t const& Xh() const { return Xh_; } - element_ const& u() const { return u_; } - element_ const& v() const { return v_; } - form2_type const& a() const { return a_; } - form2_type const& at() const { return at_; } - form1_type const& l() const { return l_; } - form1_type const& lt() const { return lt_; } - bdf_ptrtype const& bdf() const { return bdf_; } - exporter_ptrtype const& exporter() const { return e_; } - nl::json measures() const { return meas_; } - - // Mutators - void setSpecs(nl::json const& specs) { specs_ = specs; } - void setMesh(std::shared_ptr const& mesh) { mesh_ = mesh; } - void setU(element_ const& u) { u_ = u; } - - void initialize(); - void processMaterials(); - void processBoundaryConditions(); - void run(); - void timeLoop(); - void exportResults(); - void summary(/*arguments*/); - void writeResultsToFile(const std::string& filename) const; - - // Accessors and mutators for members - /* ... */ - -private: - nl::json specs_; - std::shared_ptr mesh_; - space_ptr_t Xh_; - element_ u_, v_; - form2_type a_, at_; - form1_type l_, lt_; - bdf_ptrtype bdf_; - exporter_ptrtype e_; - nl::json meas_; -}; - -// Constructor -template -Laplacian::Laplacian(nl::json const& specs) : specs_(specs) -{ - initialize(); -} - -// Initialization -template -void Laplacian::initialize() -{ - // Load mesh and initialize Xh, a, l, etc. - mesh_ = loadMesh( _mesh = new mesh_t, _filename = specs_["/Meshes/laplacian/Import/filename"_json_pointer].get() ); - // define Xh on a marked region - if ( specs_["/Spaces/laplacian/Domain"_json_pointer].contains("marker") ) - Xh_ = Pch(mesh_, markedelements(mesh_, specs_["/Spaces/laplacian/Domain/marker"_json_pointer].get>())); - // define Xh via a levelset phi where phi < 0 defines the Domain and phi = 0 the boundary - else if (specs_["/Spaces/laplacian/Domain"_json_pointer].contains("levelset")) - Xh_ = Pch(mesh_, elements(mesh_, expr(specs_["/Spaces/laplacian/Domain/levelset"_json_pointer].get()))); - // define Xh on the whole mesh - else - Xh_ = Pch(mesh_); - - u_ = Xh_->element(); - v_ = Xh_->element(); - - a_ = form2( _test = Xh_, _trial = Xh_ ); - at_ = form2( _test = Xh_, _trial = Xh_ ); - l_ = form1( _test = Xh_ ); - lt_ = form1( _test = Xh_ ); - - bool steady = get_value(specs_, "/TimeStepping/laplacian/steady", true); - int time_order = get_value(specs_, "/TimeStepping/laplacian/order", 2); - double initial_time = get_value(specs_, "/TimeStepping/laplacian/start", 0.0); - double final_time = get_value(specs_, "/TimeStepping/laplacian/end", 1.0); - double time_step = get_value(specs_, "/TimeStepping/laplacian/step", 0.1); - bdf_ = Feel::bdf( _space = Xh_, _steady=steady, _initial_time=initial_time, _final_time=final_time, _time_step=time_step, _order=time_order ); - - bdf_->start(); - if ( steady ) - bdf_->setSteady(); - - bdf_->initialize( u_ ); - - if ( steady ) - std::cout << "\n***** Compute Steady state *****" << std::endl; - else - { - std::cout << "\n***** Compute Transient state *****" << std::endl; - std::cout << "The step is " << bdf_->timeStep() << "\n" - << "The initial time is " << bdf_->timeInitial() << "\n" - << "The final time is " << bdf_->timeFinal() << "\n" - << "BDF order : " << bdf_->timeOrder() << "\n" << std::endl - << "BDF coeff : " << bdf_->polyDerivCoefficient( 0 ) << "\n" << std::endl; - } - - a_.zero(); - at_.zero(); - l_.zero(); - lt_.zero(); - - e_ = Feel::exporter(_mesh = mesh_); -} - -// Process materials -template -void Laplacian::processMaterials() -{ - for ( auto [key, material] : specs_["/Models/laplacian/Materials"_json_pointer].items() ) - { - LOG( INFO ) << fmt::format( "Material {} found", material ); - std::string mat = fmt::format( "/Materials/{}/k", material.get() ); - auto k = specs_[nl::json::json_pointer( mat )].get(); - std::string matRho = fmt::format( "/Materials/{}/rho", material.get() ); - auto Rho = specs_[nl::json::json_pointer( matRho )].get(); - std::string matCp = fmt::format( "/Materials/{}/Cp", material.get() ); - auto Cp = specs_[nl::json::json_pointer( matCp )].get(); - - a_ += integrate( _range = markedelements( support( Xh_ ), material.get() ), - _expr = bdf_->polyDerivCoefficient( 0 ) * expr( Rho ) * expr( Cp ) * idt( u_ ) * id( v_ ) + expr( k ) * gradt( u_ ) * trans( grad( v_ ) ) ); - } -} - -// Process boundary conditions -template -void Laplacian::processBoundaryConditions() -{ - // BC Neumann - if ( specs_["/BoundaryConditions/laplacian"_json_pointer].contains( "flux" ) ) - { - for ( auto& [bc, value] : specs_["/BoundaryConditions/laplacian/flux"_json_pointer].items() ) - { - LOG( INFO ) << fmt::format( "flux {}: {}", bc, value.dump() ); - auto flux = value["expr"].get(); - - l_ += integrate( _range = markedfaces( support( Xh_ ), bc ), - _expr = expr( flux ) * id( v_ ) ); - } - } - - // BC Robin - if ( specs_["/BoundaryConditions/laplacian"_json_pointer].contains( "convective_laplacian_flux" ) ) - { - for ( auto& [bc, value] : specs_["/BoundaryConditions/laplacian/convective_laplacian_flux"_json_pointer].items() ) - { - LOG( INFO ) << fmt::format( "convective_laplacian_flux {}: {}", bc, value.dump() ); - auto h = value["h"].get(); - auto Text = value["Text"].get(); - - a_ += integrate( _range = markedfaces( support( Xh_ ), bc ), - _expr = expr( h ) * id( v_ ) * idt( u_ ) ); - l_ += integrate( _range = markedfaces( support( Xh_ ), bc ), - _expr = expr( h ) * expr( Text ) * id( v_ ) ); - } - } -} - -// Run method (main method to run Laplacian process) -template -void Laplacian::run() -{ - initialize(); - processMaterials(); - processBoundaryConditions(); - timeLoop(); - exportResults(); -} - -// Time loop -template -void Laplacian::timeLoop() -{ - // time loop - for ( bdf_->start(); bdf_->isFinished()==false; bdf_->next(u_) ) - { - at_ = a_; - lt_ = l_; - - for ( auto [key, material] : specs_["/Models/laplacian/Materials"_json_pointer].items() ) - { - std::string matRho = fmt::format( "/Materials/{}/rho", material.get() ); - std::string matCp = fmt::format( "/Materials/{}/Cp", material.get() ); - auto Rho = specs_[nl::json::json_pointer( matRho )].get(); - auto Cp = specs_[nl::json::json_pointer( matCp )].get(); - - lt_ += integrate( _range = markedelements( support( Xh_ ), material.get() ), - _expr = expr( Rho ) * expr( Cp ) * idv( bdf_->polyDeriv() ) * id( v_ ) ); - } - - at_.solve( _rhs = lt_, _solution = u_ ); - - this->exportResults(); - } -} - -// Export results -template -void Laplacian::exportResults() -{ - e_->step(bdf_->time())->addRegions(); - e_->step(bdf_->time())->add("u", u_); - e_->save(); - - - auto totalQuantity = integrate(_range=elements(mesh_), _expr=idv(u_)).evaluate()(0,0); - auto totalFlux = integrate(_range=boundaryfaces(mesh_), _expr=gradv(u_)*N()).evaluate()(0,0); - double meas=measure(_range=elements(mesh_), _expr=cst(1.0)); - meas_["time"].push_back(bdf_->time()); - meas_["totalQuantity"].push_back(totalQuantity); - meas_["totalFlux"].push_back(totalFlux); - meas_["mean"].push_back(totalQuantity/meas); - meas_["min"].push_back(u_.min()); - meas_["max"].push_back(u_.max()); - for( auto [key,values] : mesh_->markerNames()) - { - if ( values[1] == Dim ) - { - double meas=measure(_range=markedelements(mesh_,key), _expr=cst(1.0)); - auto quantity = integrate(_range=markedelements(mesh_,key), _expr=idv(u_)).evaluate()(0,0); - meas_[fmt::format("quantity_{}",key)].push_back(quantity); - meas_[fmt::format("mean_{}",key)].push_back(quantity/meas); - } - else if ( values[1] == Dim-1 ) - { - double meas=measure(_range=markedfaces(mesh_,key), _expr=cst(1.0)); - auto quantity = integrate(_range=markedfaces(mesh_,key), _expr=idv(u_)).evaluate()(0,0); - meas_[fmt::format("quantity_{}",key)].push_back(quantity); - meas_[fmt::format("mean_{}",key)].push_back(quantity/meas); - auto flux = integrate(_range=markedfaces(mesh_,key), _expr=gradv(u_)*N()).evaluate()(0,0); - meas_[fmt::format("flux_{}",key)].push_back(flux); - } - - } - -} -template -void Laplacian::writeResultsToFile(const std::string& filename) const -{ - std::ofstream file(filename); - if (file.is_open()) { - file << meas_.dump(4); // Indent of 4 spaces for readability - file.close(); - } else { - std::cerr << "Unable to open file: " << filename << std::endl; - } -} - -// Summary method -template -void Laplacian::summary(/*arguments*/) { - /* ... summary code ... */ -} - -// Accessors and Mutators -/* ... */ - -} // namespace Feel diff --git a/src/laplacian.py b/src/laplacian.py deleted file mode 100644 index 9da84afd..00000000 --- a/src/laplacian.py +++ /dev/null @@ -1,287 +0,0 @@ -import numpy as np -import os -import pyvista as pv -from xvfbwrapper import Xvfb -import sys -import feelpp -import feelpp.toolboxes.core as tb -from feelpp.toolboxes.cfpdes import * -import pandas as pd -from xvfbwrapper import Xvfb -import pyvista as pv -import numpy as np -import plotly.express as px -from plotly.subplots import make_subplots -import itertools - -def generateGeometry(filename, dim=2, hsize=0.1): - """create gmsh mesh - - Args: - filename (str): name of the file - dim (int): dimension of the mesh - hsize (float): mesh size - """ - geo = """SetFactory("OpenCASCADE"); - h={}; - dim={}; - """.format(hsize, dim) - if dim == 2: - geo += """ - Rectangle(1) = {0, 0, 0, 1, 1, 0}; - Characteristic Length{ PointsOf{ Surface{1}; } } = h; - Physical Curve("Gamma_D") = {1,2,3,4}; - Physical Surface("Omega") = {1}; - """ - elif dim == 3: - geo += """ - Box(1) = {0, 0, 0, 1, 1, 1}; - Characteristic Length{ PointsOf{ Volume{1}; } } = h; - Physical Surface("Gamma_D") = {1,2,3,4,5,6}; - Physical Volume("Omega") = {1}; - """ - with open(filename, 'w') as f: - # Write the string to the file - f.write(geo) - - -def getMesh(filename, hsize=0.05, dim=2, verbose=False): - """create mesh - - Args: - filename (str): name of the file - hsize (float): mesh size - dim (int): dimension of the mesh - verbose (bool): verbose mode - """ - import os - for ext in [".msh", ".geo"]: - f = os.path.splitext(filename)[0]+ext - # print(f) - if os.path.exists(f): - os.remove(f) - if verbose: - print( - f"generate mesh {filename} with hsize={hsize} and dimension={dim}") - generateGeometry(filename=filename, dim=dim, hsize=hsize) - mesh = feelpp.load(feelpp.mesh(dim=dim, realdim=dim), filename, hsize) - return mesh - - -def laplacian(hsize, json, dim=2, verbose=False): - """solve the laplacian problem - - Args: - hsize (_type_): mesh size - json (_type_): json data - dim (int, optional): dimension. Defaults to 2. - verbose (bool, optional): verbosity level. Defaults to False. - - Returns: - dict: measures - """ - if verbose: - print(f"Solving the laplacian problem for hsize = {hsize}...") - laplacian = cfpdes(dim=dim, keyword=f"cfpdes-{dim}d") - laplacian.setMesh( - getMesh(f"omega-{dim}.geo", hsize=hsize, dim=dim, verbose=verbose)) - laplacian.setModelProperties(json) - laplacian.init(buildModelAlgebraicFactory=True) - laplacian.printAndSaveInfo() - laplacian.solve() - laplacian.exportResults() - measures = laplacian.postProcessMeasures().values() - - return measures - - -def pv_get_mesh(mesh_path): - reader = pv.get_reader(mesh_path) - mesh = reader.read() - return mesh - - -def pv_plot(mesh, field, clim=None, cmap='viridis', cpos='xy', show_scalar_bar=True, show_edges=True): - mesh.plot(scalars=field, clim=clim, cmap=cmap, cpos=cpos, - show_scalar_bar=show_scalar_bar, show_edges=show_edges) - - -def myplots(dim=2, field="cfpdes.laplace.u", factor=1, cmap='viridis'): - mesh = pv_get_mesh(f"cfpdes-{dim}d.exports/Export.case") # <4> - pv_plot(mesh, field) # <5> - pl = pv.Plotter() - contours = mesh[0].contour() - pl.add_mesh(mesh[0], opacity=0.85) - pl.add_mesh(contours, color="white", line_width=5, - render_lines_as_tubes=True) - pl.show() - if dim == 2: - warped = mesh[0].warp_by_scalar(field, factor=factor) - warped.plot(cmap=cmap, show_scalar_bar=False, show_edges=True) - else: - slices = mesh.slice_orthogonal(x=0.2, y=0.4,z=.6) - slices.plot() - - -def runLaplacianPk(df, model, verbose=False): - """generate the Pk case - - Args: - order (int, optional): order of the basis. Defaults to 1. - """ - meas = dict() - dim, order, json = model - for h in df['h']: - m = laplacian(hsize=h, json=json, dim=dim, verbose=verbose) - for norm in ['L2', 'H1']: - meas.setdefault(f'P{order}-Norm_laplace_{norm}-error', []) - meas[f'P{order}-Norm_laplace_{norm}-error'].append( - m.pop(f'Norm_laplace_{norm}-error')) - df = df.assign(**meas) - for norm in ['L2', 'H1']: - df[f'P{order}-laplace_{norm}-convergence-rate'] = np.log2(df[f'P{order}-Norm_laplace_{norm}-error'].shift( - ) / df[f'P{order}-Norm_laplace_{norm}-error']) / np.log2(df['h'].shift() / df['h']) - return df - - -def runConvergenceAnalysis(json, dim=2, hs=[0.1, 0.05, 0.025, 0.0125], orders=[1, 2], verbose=False): - df = pd.DataFrame({'h': hs}) - for order in orders: - df = runLaplacianPk(df=df, model=[dim, order, json( - dim=dim, order=order)], verbose=verbose) - print(df.to_markdown()) # <1> - return df - - -df = runConvergenceAnalysis(json=laplacian_json, dim=2, verbose=True) -df3d = runConvergenceAnalysis(json=laplacian_json, dim=3, hs=[ - 0.1, 0.05, 0.03], orders=[1], verbose=True) - - -def plot_convergence(df, dim, orders=[1, 2]): - fig = px.line(df, x="h", y=[f'P{order}-Norm_laplace_{norm}-error' for order, - norm in list(itertools.product(orders, ['L2', 'H1']))]) - fig.update_xaxes(title_text="h", type="log") - fig.update_yaxes(title_text="Error", type="log") - for order, norm in list(itertools.product(orders, ['L2', 'H1'])): - fig.update_traces(name=f'P{order} - {norm} error - {df[f"P{order}-laplace_{norm}-convergence-rate"].iloc[-1]:.2f}', selector=dict( - name=f'P{order}-Norm_laplace_{norm}-error')) - fig.update_layout( - title=f"Convergence rate for the {dim}D Laplacian problem", - autosize=False, - width=900, - height=900, - ) - fig.show() - -sys.argv = ["feelpp_cfpdes_poisson"] -e = feelpp.Environment(sys.argv, - opts=tb.toolboxes_options( - "coefficient-form-pdes", "cfpdes"), - config=feelpp.globalRepository("cfpdes-poisson-homogeneous-dirichlet")) - -# generate 2D abd 3D meshes -for dim in [2, 3]: - mesh = getMesh(f"omega-{dim}d.geo", hsize=0.1, dim=dim, verbose=True) - - -laplacian_json = lambda order, dim=2, name="u": { - "Name": "Laplacian", - "ShortName": "Laplacian", - "Models": - { - f"cfpdes-{dim}d": - { - "equations": "laplace" - }, - "laplace": { - "setup": { - "unknown": { - "basis": f"Pch{order}", - "name": f"{name}", - "symbol": "u" - }, - "coefficients": { - "c": "1", - - "f": "8*pi*pi*sin(2*pi*x)*sin(2*pi*y):x:y" if dim == 2 else "12*pi*pi*sin(2*pi*x)*sin(2*pi*y)*sin(2*pi*z):x:y:z" - } - } - } - }, - "Materials": - { - "Omega": - { - "markers": ["Omega"] - } - }, - "BoundaryConditions": - { - "laplace": - { - "Dirichlet": - { - "g": - { - "markers": ["Gamma_D"], - "expr": "0" - } - } - } - }, - "PostProcess": - { - f"cfpdes-{dim}d": - { - "Exports": - { - "fields": ["all"], - "expr": { - "u_exact": "sin(2*pi*x)*sin(2*pi*y):x:y" if dim == 2 else "sin(2*pi*x)*sin(2*pi*y)*sin(2*pi*z):x:y:z", - "grad_u_exact": "{2*pi*cos(2*pi*x)*sin(2*pi*y),2*pi*sin(2*pi*x)*cos(2*pi*y)}:x:y" if dim == 2 else "{2*pi*cos(2*pi*x)*sin(2*pi*y)*sin(2*pi*z),2*pi*sin(2*pi*x)*cos(2*pi*y)*sin(2*pi*z),2*pi*sin(2*pi*x)*sin(2*pi*y)*cos(2*pi*z)}:x:y:z" - } - }, - "Measures": - { - "Norm": - { - "laplace": - { - "type": ["L2-error", "H1-error"], - "field": f"laplace.{name}", - "solution": "sin(2*pi*x)*sin(2*pi*y):x:y" if dim == 2 else "sin(2*pi*x)*sin(2*pi*y)*sin(2*pi*z):x:y:z", - "grad_solution": "{2*pi*cos(2*pi*x)*sin(2*pi*y),2*pi*sin(2*pi*x)*cos(2*pi*y)}:x:y" if dim == 2 else "{2*pi*cos(2*pi*x)*sin(2*pi*y)*sin(2*pi*z),2*pi*sin(2*pi*x)*cos(2*pi*y)*sin(2*pi*z),2*pi*sin(2*pi*x)*sin(2*pi*y)*cos(2*pi*z)}:x:y:z", - "markers": "Omega", - "quad": 6 - } - } - } - } - } -} -# simulate the laplacian problem for 2D and 3D -for dim in [2, 3]: - with open(f'laplacian-{dim}d.json', 'w') as f: - # Write the string to the file - import json - f.write(json.dumps(laplacian_json(dim=dim, order=1), indent=1)) - # execute the laplacian problem using P1 basis on a mesh of the unit square of size 0.1 - laplacian(hsize=0.1, json=laplacian_json( - order=1, dim=dim), dim=dim, verbose=True) -# execute the laplacian problem using P2 basis on a mesh of the unit square of size 0.1 -# laplacian(hsize=0.025,json=laplacian_json(dim=2,order=2),dim=2,verbose=True) - -vdisplay = Xvfb() -vdisplay.start() - -pv.set_jupyter_backend('panel') - -myplots(dim=2,factor=0.5) - -myplots(dim=3,factor=0.5) - - -plot_convergence(df,dim=2) - -plot_convergence(df3d,dim=3,orders=[1]) \ No newline at end of file diff --git a/src/toolbox.cpp b/src/toolbox.cpp deleted file mode 100644 index 763fba4a..00000000 --- a/src/toolbox.cpp +++ /dev/null @@ -1,53 +0,0 @@ -#include -#include - -int main(int argc, char** argv) -{ - using namespace Feel; - po::options_description myoptions("my options"); - myoptions.add( toolboxes_options("electric") ); - myoptions.add_options() - ( "myexpr", po::value()->default_value("3*x*y:x:y"), "my expression") - ; - - Environment env( _argc=argc, _argv=argv, - _desc=myoptions, - _about=about(_name="update_toolbox", - _author="Feel++ Consortium", - _email="feelpp-devel@feelpp.org")); - - typedef FeelModels::Electric< Simplex<2,1>, - Lagrange<1, Scalar,Continuous,PointSetFekete> > model_type; - std::shared_ptr electric( new model_type("electric") ); - // init the toolbox - electric->init(); - electric->printAndSaveInfo(); - - // create a lambda function - auto lambda = [&electric](FeelModels::ModelAlgebraic::DataUpdateLinear & data) { - // build each time, not just for the constant part - bool buildCstPart = data.buildCstPart(); - if( buildCstPart ) - return; - // retrieve matrix and vector already assemble - sparse_matrix_ptrtype& A = data.matrix(); - vector_ptrtype& F = data.rhs(); - // retrieve space and create a test function - auto Xh = electric->spaceElectricPotential(); - auto v = Xh->element(); - - // create a linear form from the vector on the function space - auto f = form1( _test=Xh, _vector=F); - // get an expression from the options (or from another equation) - auto e = expr(soption("myexpr")); - // add the term to the linear form - f += integrate( _range=elements(support(Xh)), _expr=inner(e, id(v)) ); - }; - // add the lambda function to the algebraic factory - electric->algebraicFactory()->addFunctionLinearAssembly(lambda); - // solve the problem - electric->solve(); - electric->exportResults(); - - return 0; -}