pycfast 0.2.0__tar.gz → 0.2.2__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- pycfast-0.2.2/.dockerignore +18 -0
- pycfast-0.2.2/.github/ISSUE_TEMPLATE/bug_report.md +51 -0
- pycfast-0.2.2/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- pycfast-0.2.2/.github/copilot-commit-message-instructions.md +44 -0
- pycfast-0.2.2/.github/copilot-instructions.md +29 -0
- pycfast-0.2.2/.github/dependabot.yml +27 -0
- pycfast-0.2.2/.github/workflows/docker-image.yml +110 -0
- pycfast-0.2.2/.github/workflows/docs.yml +115 -0
- pycfast-0.2.2/.github/workflows/joss.yml +38 -0
- pycfast-0.2.2/.github/workflows/python-publish.yml +67 -0
- pycfast-0.2.2/.github/workflows/sync-cfast-inputs.yml +100 -0
- pycfast-0.2.2/.github/workflows/sync-cfast-ref-doc.yml +109 -0
- pycfast-0.2.2/.github/workflows/test.yml +278 -0
- pycfast-0.2.2/.github/workflows/typing.yml +27 -0
- pycfast-0.2.2/.github/workflows/validation.yml +81 -0
- pycfast-0.2.2/.gitignore +216 -0
- pycfast-0.2.2/.pre-commit-config.yaml +8 -0
- pycfast-0.2.2/CHANGELOG.md +91 -0
- pycfast-0.2.2/CITATION.cff +40 -0
- pycfast-0.2.2/CLAUDE.md +103 -0
- pycfast-0.2.2/CODE_OF_CONDUCT.md +128 -0
- pycfast-0.2.2/CONTRIBUTING.md +195 -0
- pycfast-0.2.2/Dockerfile +75 -0
- pycfast-0.2.2/Makefile +95 -0
- {pycfast-0.2.0/src/pycfast.egg-info → pycfast-0.2.2}/PKG-INFO +118 -51
- {pycfast-0.2.0 → pycfast-0.2.2}/README.md +35 -3
- pycfast-0.2.2/conftest.py +122 -0
- pycfast-0.2.2/docs/Makefile +20 -0
- pycfast-0.2.2/docs/cfast-reference/.cfast_version +1 -0
- pycfast-0.2.2/docs/cfast-reference/Appendix_CFAST_Keywords.tex +1051 -0
- pycfast-0.2.2/docs/cfast-reference/CFAST_Users_Guide.tex +154 -0
- pycfast-0.2.2/docs/cfast-reference/Getting_Started_Chapter.tex +59 -0
- pycfast-0.2.2/docs/cfast-reference/Input_File_Chapter.tex +765 -0
- pycfast-0.2.2/docs/cfast-reference/Limits_Chapter.tex +28 -0
- pycfast-0.2.2/docs/cfast-reference/Output_Chapter.tex +599 -0
- pycfast-0.2.2/docs/cfast-reference/make_guide.bat +20 -0
- pycfast-0.2.2/docs/cfast-reference/make_guide.sh +50 -0
- pycfast-0.2.2/docs/make.bat +35 -0
- pycfast-0.2.2/docs/source/_static/custom.css +7 -0
- pycfast-0.2.2/docs/source/_static/images/cedit-ceiling-floor-vents-tab.png +0 -0
- pycfast-0.2.2/docs/source/_static/images/cedit-compartments-tab.png +0 -0
- pycfast-0.2.2/docs/source/_static/images/cedit-fires-tab.png +0 -0
- pycfast-0.2.2/docs/source/_static/images/cedit-material-properties-tab.png +0 -0
- pycfast-0.2.2/docs/source/_static/images/cedit-mechanical-ventilation-tab.png +0 -0
- pycfast-0.2.2/docs/source/_static/images/cedit-simulation-tab.png +0 -0
- pycfast-0.2.2/docs/source/_static/images/cedit-surface-connections-tab.png +0 -0
- pycfast-0.2.2/docs/source/_static/images/cedit-targets-tab.png +0 -0
- pycfast-0.2.2/docs/source/_static/images/cedit-wall-vents-tab.png +0 -0
- pycfast-0.2.2/docs/source/_static/images/cfast-cmd-win.png +0 -0
- pycfast-0.2.2/docs/source/_static/images/pycfast-workflow.svg +67 -0
- pycfast-0.2.2/docs/source/_static/orano-logo-dark.svg +167 -0
- pycfast-0.2.2/docs/source/_static/orano-logo.svg +167 -0
- pycfast-0.2.2/docs/source/_templates/autosummary/class.rst +7 -0
- pycfast-0.2.2/docs/source/_templates/pycfast_footer.html +3 -0
- pycfast-0.2.2/docs/source/acknowledgments.rst +30 -0
- pycfast-0.2.2/docs/source/api/cfastmodel.rst +13 -0
- pycfast-0.2.2/docs/source/api/components.rst +24 -0
- pycfast-0.2.2/docs/source/api/datasets.rst +14 -0
- pycfast-0.2.2/docs/source/api/index.rst +13 -0
- pycfast-0.2.2/docs/source/api/parser.rst +15 -0
- pycfast-0.2.2/docs/source/changelog.rst +2 -0
- pycfast-0.2.2/docs/source/citation.rst +15 -0
- pycfast-0.2.2/docs/source/conf.py +153 -0
- pycfast-0.2.2/docs/source/contributing.rst +2 -0
- pycfast-0.2.2/docs/source/examples.rst +5 -0
- pycfast-0.2.2/docs/source/getting_started.rst +244 -0
- pycfast-0.2.2/docs/source/index.rst +113 -0
- pycfast-0.2.2/docs/source/installation.rst +195 -0
- pycfast-0.2.2/docs/source/license.rst +5 -0
- pycfast-0.2.2/docs/update_cfast_ref.sh +56 -0
- pycfast-0.2.2/examples/GALLERY_HEADER.rst +6 -0
- pycfast-0.2.2/examples/data/PRS_D1.in +190 -0
- pycfast-0.2.2/examples/data/SP_AST_Diesel_1p1.in +51 -0
- pycfast-0.2.2/examples/data/USN_Hawaii_Test_03.in +32 -0
- pycfast-0.2.2/examples/plot_01_basic_usage.py +462 -0
- pycfast-0.2.2/examples/plot_02_parsing_cfast_input_files.py +109 -0
- pycfast-0.2.2/examples/plot_03_generating_data.py +145 -0
- pycfast-0.2.2/examples/plot_04_sensitivity_analysis.py +285 -0
- pycfast-0.2.2/examples/plot_05_optimization.py +471 -0
- pycfast-0.2.2/examples/plot_06_surrogate_models.py +509 -0
- pycfast-0.2.2/examples/plot_07_parallel_computing.py +265 -0
- pycfast-0.2.2/paper/images/cedit-compartments-tab.png +0 -0
- pycfast-0.2.2/paper/literature_review.md +58 -0
- pycfast-0.2.2/paper/paper.bib +431 -0
- pycfast-0.2.2/paper/paper.md +272 -0
- {pycfast-0.2.0 → pycfast-0.2.2}/pyproject.toml +11 -10
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/__init__.py +6 -1
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/_base_component.py +6 -1
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/ceiling_floor_vent.py +16 -12
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/compartment.py +131 -38
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/datasets/_sp_ast_diesel.py +2 -4
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/device.py +70 -53
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/fire.py +637 -259
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/material.py +3 -1
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/mechanical_vent.py +31 -27
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/model.py +102 -20
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/parsers/cfast_parser.py +89 -38
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/surface_connection.py +10 -2
- pycfast-0.2.2/src/pycfast/visualization.py +329 -0
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/wall_vent.py +9 -6
- pycfast-0.2.2/tests/csv_comparison.py +118 -0
- pycfast-0.2.2/tests/generate_reference_data.py +98 -0
- pycfast-0.2.2/tests/sync_cfast_inputs.sh +63 -0
- pycfast-0.2.2/tests/units/test__sp_ast_diesel.py +62 -0
- pycfast-0.2.2/tests/units/test_ceiling_floor_vent.py +547 -0
- pycfast-0.2.2/tests/units/test_cfast_parser.py +1206 -0
- pycfast-0.2.2/tests/units/test_compartment.py +628 -0
- pycfast-0.2.2/tests/units/test_device.py +926 -0
- pycfast-0.2.2/tests/units/test_fire.py +986 -0
- pycfast-0.2.2/tests/units/test_material.py +249 -0
- pycfast-0.2.2/tests/units/test_mechanical_vent.py +576 -0
- pycfast-0.2.2/tests/units/test_model.py +2019 -0
- pycfast-0.2.2/tests/units/test_simulation_environment.py +368 -0
- pycfast-0.2.2/tests/units/test_surface_connection.py +248 -0
- pycfast-0.2.2/tests/units/test_visualization.py +208 -0
- pycfast-0.2.2/tests/units/test_wall_vent.py +517 -0
- pycfast-0.2.2/tests/validation_tests/Validation/1RFURN/1RFURN1.in +42 -0
- pycfast-0.2.2/tests/validation_tests/Validation/1RFURN/1RFURN6.in +41 -0
- pycfast-0.2.2/tests/validation_tests/Validation/1RWALL/1RWALL1.in +45 -0
- pycfast-0.2.2/tests/validation_tests/Validation/1RWALL/1RWALL2.in +42 -0
- pycfast-0.2.2/tests/validation_tests/Validation/ATF_Corridors/ATF_Corridors_050_kW.in +63 -0
- pycfast-0.2.2/tests/validation_tests/Validation/ATF_Corridors/ATF_Corridors_100_kW.in +63 -0
- pycfast-0.2.2/tests/validation_tests/Validation/ATF_Corridors/ATF_Corridors_240_kW.in +63 -0
- pycfast-0.2.2/tests/validation_tests/Validation/ATF_Corridors/ATF_Corridors_250_kW.in +63 -0
- pycfast-0.2.2/tests/validation_tests/Validation/ATF_Corridors/ATF_Corridors_500_kW.in +63 -0
- pycfast-0.2.2/tests/validation_tests/Validation/ATF_Corridors/ATF_Corridors_Mix_kW.in +74 -0
- pycfast-0.2.2/tests/validation_tests/Validation/DelCo_Trainers/Test_02.in +84 -0
- pycfast-0.2.2/tests/validation_tests/Validation/DelCo_Trainers/Test_03.in +84 -0
- pycfast-0.2.2/tests/validation_tests/Validation/DelCo_Trainers/Test_04.in +84 -0
- pycfast-0.2.2/tests/validation_tests/Validation/DelCo_Trainers/Test_05.in +110 -0
- pycfast-0.2.2/tests/validation_tests/Validation/DelCo_Trainers/Test_06.in +109 -0
- pycfast-0.2.2/tests/validation_tests/Validation/DelCo_Trainers/Test_22.in +130 -0
- pycfast-0.2.2/tests/validation_tests/Validation/DelCo_Trainers/Test_23.in +130 -0
- pycfast-0.2.2/tests/validation_tests/Validation/DelCo_Trainers/Test_24.in +130 -0
- pycfast-0.2.2/tests/validation_tests/Validation/DelCo_Trainers/Test_25.in +130 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_NBS/FM19.in +59 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_NBS/FM21.in +59 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_1.in +44 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_10.in +47 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_11.in +46 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_12.in +53 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_13.in +46 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_14.in +46 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_15.in +46 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_16.in +46 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_17.in +46 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_2.in +44 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_21.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_22.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_3.in +45 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_4.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_5.in +49 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_6.in +46 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_7.in +46 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_8.in +49 -0
- pycfast-0.2.2/tests/validation_tests/Validation/FM_SNL/FMSNL_9.in +49 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_1t1_100_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_1t1_150_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_1t1_200_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_1t1_250_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_1t1_300_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_2t1_100_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_2t1_150_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_2t1_200_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_2t1_250_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_2t1_300_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_3t1_100_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_3t1_150_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_3t1_200_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_3t1_250_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Fleury_Heat_Flux/Fleury_3t1_300_kW.in +533 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Hawaii_Test_01.in +32 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Hawaii_Test_02.in +32 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Hawaii_Test_03.in +32 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Hawaii_Test_04.in +32 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Hawaii_Test_05.in +32 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Hawaii_Test_06.in +32 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Hawaii_Test_07.in +32 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Hawaii_Test_11.in +32 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_01.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_02.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_03.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_04.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_05.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_06.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_07.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_09.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_10.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_11.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_12.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_13.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_14.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_15.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_17.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_18.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_19.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_20.in +82 -0
- pycfast-0.2.2/tests/validation_tests/Validation/High_Bay/USN_Iceland_Test_21.in +103 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_01.in +34 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_02.in +34 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_03.in +34 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_04.in +34 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_05.in +34 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_06.in +34 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_07.in +34 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_08.in +34 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_09.in +36 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_10.in +36 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_11.in +36 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_12.in +36 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_13.in +36 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_14.in +36 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_15.in +36 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_16.in +36 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_17.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_18.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_19.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_20.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_21.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_22.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_23.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_24.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_25.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_26.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_27.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_28.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_29.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_30.in +53 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_31.in +53 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_32.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_33.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_34.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_35.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_36.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_37.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_38.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_39.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_40.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_41.in +50 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_42.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_43.in +44 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_44.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_45.in +44 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_46.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_47.in +44 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_48.in +44 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_49.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_50.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_51.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_52.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_53.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_54.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_55.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_56.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_57.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_58.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_59.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_60.in +44 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_61.in +32 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_62.in +32 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_63.in +32 -0
- pycfast-0.2.2/tests/validation_tests/Validation/LLNL_Enclosure/LLNL_64.in +32 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Multi/Multi.in +85 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NBS/MV100A.in +62 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NBS/MV100O.in +62 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NBS/MV100Z.in +62 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Dunes_2000/NIST_Dunes_2000_SDC02.in +149 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Dunes_2000/NIST_Dunes_2000_SDC05.in +151 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Dunes_2000/NIST_Dunes_2000_SDC07.in +149 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Dunes_2000/NIST_Dunes_2000_SDC09.in +122 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Dunes_2000/NIST_Dunes_2000_SDC10.in +149 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Dunes_2000/NIST_Dunes_2000_SDC33.in +149 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Dunes_2000/NIST_Dunes_2000_SDC35.in +149 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Dunes_2000/NIST_Dunes_2000_SDC38.in +149 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Dunes_2000/NIST_Dunes_2000_SDC39.in +149 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T1.in +90 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T10.in +96 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T13.in +90 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T14.in +90 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T15.in +90 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T16.in +96 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T17.in +90 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T18.in +90 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T2.in +90 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T3.in +90 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T4.in +94 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T5.in +96 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T7.in +90 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T8.in +90 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC/NIST_NRC_T9.in +90 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/cabinet_01.in +394 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/cabinet_02.in +402 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/cabinet_03.in +388 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/cabinet_04.in +390 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/cabinet_05.in +392 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/cabinet_06.in +400 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/cabinet_07.in +388 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/cabinet_08.in +388 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/cabinet_09.in +390 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/cabinet_10.in +388 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/cabinet_11.in +379 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/cabinet_12.in +379 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/corner_200_kW.in +92 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/corner_300_kW.in +92 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/corner_400_kW.in +92 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/wall_200_kW.in +92 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/wall_300_kW.in +92 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_NRC_Corner_Effects/wall_400_kW.in +92 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_1.in +49 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_10.in +49 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_11.in +49 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_12.in +49 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_13.in +52 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_14.in +53 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_15.in +53 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_2.in +49 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_3.in +49 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_4.in +49 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_5.in +49 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_6.in +49 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_7.in +51 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_8.in +51 -0
- pycfast-0.2.2/tests/validation_tests/Validation/NIST_Vent_Study/Test_9.in +51 -0
- pycfast-0.2.2/tests/validation_tests/Validation/PRISME/PRS_D1.in +190 -0
- pycfast-0.2.2/tests/validation_tests/Validation/PRISME/PRS_D2.in +186 -0
- pycfast-0.2.2/tests/validation_tests/Validation/PRISME/PRS_D3.in +183 -0
- pycfast-0.2.2/tests/validation_tests/Validation/PRISME/PRS_D4.in +184 -0
- pycfast-0.2.2/tests/validation_tests/Validation/PRISME/PRS_D5.in +187 -0
- pycfast-0.2.2/tests/validation_tests/Validation/PRISME/PRS_D6.in +196 -0
- pycfast-0.2.2/tests/validation_tests/Validation/SP_AST/SP_AST_Diesel_1p1.in +51 -0
- pycfast-0.2.2/tests/validation_tests/Validation/SP_AST/SP_AST_Diesel_1p9.in +49 -0
- pycfast-0.2.2/tests/validation_tests/Validation/SP_AST/SP_AST_Heptane_1p1.in +49 -0
- pycfast-0.2.2/tests/validation_tests/Validation/SP_AST/SP_AST_Test_1.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/SP_AST/SP_AST_Test_2.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/SP_AST/SP_AST_Test_3.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_010.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_011.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_012.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_013.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_014.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_016.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_017.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_018.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_019.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_020.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_021.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_022.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_023.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_030.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_041.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_114.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_116.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_122.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_144.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_160.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_161.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_162.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_163.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_164.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_165.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_166.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_167.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_210.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_212.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_220.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_221.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_224.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_240.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_242.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_310.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_324.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_410.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_510.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_512.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_513.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_514.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_517.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_520.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_521.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_522.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_524.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_540.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_541.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_542.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_544.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_610.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_612.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_622.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_710.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Steckler_Compartment/Steckler_810.in +28 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_01.in +106 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_02.in +110 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_03.in +110 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_04.in +106 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_05.in +110 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_06.in +110 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_07.in +106 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_08.in +110 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_09.in +106 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_10.in +110 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_11.in +110 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_12.in +106 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_13.in +110 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_14.in +110 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_15.in +110 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_16.in +110 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_17.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_18.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_19.in +120 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_20.in +120 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_21.in +120 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_1_22.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_2_01.in +117 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_2_02.in +120 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_2_03.in +121 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_2_04.in +121 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_2_05.in +117 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_2_06.in +120 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_2_07.in +117 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_2_08.in +121 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_2_09.in +117 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_2_10.in +121 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_2_11.in +117 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NFPRF/UL_NFPRF_2_12.in +120 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NIJ_Houses/Single_Story_Gas_1.in +98 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NIJ_Houses/Single_Story_Gas_2.in +98 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NIJ_Houses/Single_Story_Gas_5.in +100 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NIJ_Houses/Two_Story_Gas_1.in +174 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NIJ_Houses/Two_Story_Gas_4.in +174 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NIJ_Houses/Two_Story_Gas_6.in +174 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NIST_Vents/UL_NIST_Vents_Test_1.in +50 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NIST_Vents/UL_NIST_Vents_Test_2.in +46 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NIST_Vents/UL_NIST_Vents_Test_3.in +48 -0
- pycfast-0.2.2/tests/validation_tests/Validation/UL_NIST_Vents/UL_NIST_Vents_Test_4.in +50 -0
- pycfast-0.2.2/tests/validation_tests/Validation/VTT/VTT_C1.in +51 -0
- pycfast-0.2.2/tests/validation_tests/Validation/VTT/VTT_C2.in +53 -0
- pycfast-0.2.2/tests/validation_tests/Validation/VTT/VTT_C3.in +60 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_1.in +60 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_10.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_11.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_12.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_13.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_14.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_15.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_16.in +60 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_17.in +60 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_18.in +60 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_19.in +62 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_2.in +60 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_20.in +62 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_21.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_22.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_23.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_24.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_25.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_26.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_27.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_28.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_29.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_3.in +60 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_30.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_31.in +60 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_32.in +60 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_33.in +60 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_34.in +62 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_35.in +62 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_36.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_37.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_38.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_39.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_4.in +62 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_40.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_41.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_42.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_43.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_44.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_45.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_5.in +62 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_6.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_7.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_8.in +114 -0
- pycfast-0.2.2/tests/validation_tests/Validation/Vettori_Flat/Test_9.in +116 -0
- pycfast-0.2.2/tests/validation_tests/Validation/WTC/WTC_01.in +229 -0
- pycfast-0.2.2/tests/validation_tests/Validation/WTC/WTC_02.in +229 -0
- pycfast-0.2.2/tests/validation_tests/Validation/WTC/WTC_03.in +229 -0
- pycfast-0.2.2/tests/validation_tests/Validation/WTC/WTC_04.in +235 -0
- pycfast-0.2.2/tests/validation_tests/Validation/WTC/WTC_05.in +235 -0
- pycfast-0.2.2/tests/validation_tests/Validation/WTC/WTC_06.in +235 -0
- pycfast-0.2.2/tests/validation_tests/Validation/iBMB_4/iBMB_4_T1.in +61 -0
- pycfast-0.2.2/tests/validation_tests/Validation/iBMB_5/iBMB_5_T4.in +116 -0
- pycfast-0.2.2/tests/validation_tests/__init__.py +1 -0
- pycfast-0.2.2/tests/validation_tests/test_parser_validation.py +143 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Energy_Balance/sealed_test.in +21 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Energy_Balance/sealed_test_2_layers.in +21 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Fires/Ignition_Test.in +65 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Mass_Balance/species_mass_1.in +22 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Mass_Balance/species_mass_2.in +30 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Mass_Balance/species_mass_3.in +29 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Mass_Balance/species_mass_4.in +47 -0
- pycfast-0.2.2/tests/verification_tests/Verification/NRC_Users_Guide/A_Cabinet_Fire_in_MCR/Cabinet_fire_in_MCR.in +76 -0
- pycfast-0.2.2/tests/verification_tests/Verification/NRC_Users_Guide/A_Cabinet_Fire_in_MCR/Cabinet_fire_in_MCR_no_ventilation.in +50 -0
- pycfast-0.2.2/tests/verification_tests/Verification/NRC_Users_Guide/B_Cabinet_Fire_in_Switchgear/Cabinet_fire_in_switchgear.in +98 -0
- pycfast-0.2.2/tests/verification_tests/Verification/NRC_Users_Guide/B_Cabinet_Fire_in_Switchgear/Initial_fire_only.in +70 -0
- pycfast-0.2.2/tests/verification_tests/Verification/NRC_Users_Guide/D_MCC_Fire_in_Switchgear/MCC_in_switchgear.in +68 -0
- pycfast-0.2.2/tests/verification_tests/Verification/NRC_Users_Guide/D_MCC_Fire_in_Switchgear/MCC_in_switchgear_one_compartment.in +64 -0
- pycfast-0.2.2/tests/verification_tests/Verification/NRC_Users_Guide/E_Trash_Fire_in_Cable_Spreading_Room/Trash_fire_in_cable_spreading_room.in +87 -0
- pycfast-0.2.2/tests/verification_tests/Verification/NRC_Users_Guide/G_Transient_Fire_in_Corridor/Transient in Corridor.in +107 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Radiation/radiation_1.in +31 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Radiation/radiation_2.in +32 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Radiation/radiation_3.in +74 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Radiation/radiation_4.in +74 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Radiation/radiation_5.in +74 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Species/Trace_Species_1.in +23 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Species/Trace_Species_2.in +35 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Species/Trace_Species_3.in +35 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Species/gas_tenability.in +31 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Species/heat_tenability.in +22 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Species/methane_flame_simple.in +23 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Species/species_test.in +24 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Sprinkler/sprinkler_1.in +24 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Target/target_1.in +24 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Target/target_2.in +43 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Thermal_Equilibrium/basic_tempequilib.in +17 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Thermal_Equilibrium/basic_tempequilib_window.in +21 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Thermal_Equilibrium/basic_tempequilib_window_elevation.in +21 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Ventilation/Leakage_1.in +19 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Ventilation/Leakage_2.in +19 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Ventilation/VVent_Tests.in +85 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Ventilation/surface_opened_fraction_1.in +62 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Ventilation/ventilation_1.in +24 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Ventilation/ventilation_2.in +43 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Ventilation/ventilation_3.in +46 -0
- pycfast-0.2.2/tests/verification_tests/Verification/Ventilation/ventilation_4.in +30 -0
- pycfast-0.2.2/tests/verification_tests/__init__.py +1 -0
- pycfast-0.2.2/tests/verification_tests/test_DOE_Guidance_Report.py +229 -0
- pycfast-0.2.2/tests/verification_tests/test_NRC_A_cabinet_fire_in_mcr.py +462 -0
- pycfast-0.2.2/tests/verification_tests/test_NRC_B_cabinet_fire_in_switchgear.py +593 -0
- pycfast-0.2.2/tests/verification_tests/test_NRC_D_mcc_fire_in_switchgear.py +475 -0
- pycfast-0.2.2/tests/verification_tests/test_NRC_E_trash_fire_in_cable_spreading_room.py +400 -0
- pycfast-0.2.2/tests/verification_tests/test_NRC_G_transient_fire_in_corridor.py +445 -0
- pycfast-0.2.2/tests/verification_tests/test_energy_balance.py +174 -0
- pycfast-0.2.2/tests/verification_tests/test_error.py +210 -0
- pycfast-0.2.2/tests/verification_tests/test_fires.py +209 -0
- pycfast-0.2.2/tests/verification_tests/test_mass_balance.py +472 -0
- pycfast-0.2.2/tests/verification_tests/test_model.py +188 -0
- pycfast-0.2.2/tests/verification_tests/test_parser_verification.py +147 -0
- pycfast-0.2.2/tests/verification_tests/test_radiation.py +1318 -0
- pycfast-0.2.2/tests/verification_tests/test_species.py +707 -0
- pycfast-0.2.2/tests/verification_tests/test_sprinkler.py +112 -0
- pycfast-0.2.2/tests/verification_tests/test_target.py +303 -0
- pycfast-0.2.2/tests/verification_tests/test_thermal_equilibrium.py +257 -0
- pycfast-0.2.2/tests/verification_tests/test_ventilation.py +1282 -0
- pycfast-0.2.2/uv.lock +4166 -0
- pycfast-0.2.0/PKG-INFO +0 -310
- pycfast-0.2.0/setup.cfg +0 -4
- pycfast-0.2.0/src/pycfast.egg-info/SOURCES.txt +0 -28
- pycfast-0.2.0/src/pycfast.egg-info/dependency_links.txt +0 -1
- pycfast-0.2.0/src/pycfast.egg-info/requires.txt +0 -41
- pycfast-0.2.0/src/pycfast.egg-info/top_level.txt +0 -1
- {pycfast-0.2.0 → pycfast-0.2.2}/LICENSE +0 -0
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/datasets/__init__.py +0 -0
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/datasets/data/sp_ast_diesel_1p1.csv.gz +0 -0
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/parsers/__init__.py +0 -0
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/simulation_environment.py +0 -0
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/utils/__init__.py +0 -0
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/utils/csv_config.py +0 -0
- {pycfast-0.2.0 → pycfast-0.2.2}/src/pycfast/utils/namelist.py +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
# Keep .git — hatch-vcs needs it to resolve the package version during the
|
|
2
|
+
# Docker build (see the sdist-builder stage in the Dockerfile).
|
|
3
|
+
|
|
4
|
+
.venv
|
|
5
|
+
.mypy_cache/
|
|
6
|
+
.ruff_cache/
|
|
7
|
+
.pytest_cache/
|
|
8
|
+
__pycache__/
|
|
9
|
+
*.py[codz]
|
|
10
|
+
htmlcov/
|
|
11
|
+
.coverage
|
|
12
|
+
docs/build/
|
|
13
|
+
docs/_build/
|
|
14
|
+
tests/verification_tests/verification_data_local/
|
|
15
|
+
tests/validation_tests/validation_data_local/
|
|
16
|
+
dist/
|
|
17
|
+
build/
|
|
18
|
+
*.egg-info/
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve
|
|
4
|
+
title: 'BUG: <Please write a comprehensive title after the ''BUG: '' prefix>'
|
|
5
|
+
labels: bug
|
|
6
|
+
assignees: bewygs
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Describe the bug**
|
|
11
|
+
A clear and concise description of what the bug is.
|
|
12
|
+
|
|
13
|
+
**To Reproduce**
|
|
14
|
+
Steps to reproduce the behavior:
|
|
15
|
+
1. Create a model with '...'
|
|
16
|
+
2. Run simulation with '...'
|
|
17
|
+
3. Parse results using '...'
|
|
18
|
+
4. See error
|
|
19
|
+
|
|
20
|
+
**Minimal Code Example**
|
|
21
|
+
Please provide a minimal code example that reproduces the issue:
|
|
22
|
+
|
|
23
|
+
```python
|
|
24
|
+
# Your code here
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
**Expected behavior**
|
|
28
|
+
A clear and concise description of what you expected to happen.
|
|
29
|
+
|
|
30
|
+
**Error message**
|
|
31
|
+
If applicable, paste the full error message/traceback:
|
|
32
|
+
|
|
33
|
+
```
|
|
34
|
+
Error traceback here
|
|
35
|
+
```
|
|
36
|
+
|
|
37
|
+
**Environment (please complete the following information):**
|
|
38
|
+
- OS: [e.g., Ubuntu 22.04, Windows 11]
|
|
39
|
+
- Python version: [e.g., 3.10, 3.11, 3.12, 3.13]
|
|
40
|
+
- PyCFAST version: [e.g., 0.1.0]
|
|
41
|
+
- CFAST version: [e.g., 7.7.7]
|
|
42
|
+
- Installation method: [e.g., pip, uv, from source]
|
|
43
|
+
|
|
44
|
+
**CFAST Input File**
|
|
45
|
+
If the issue is related to a specific CFAST model, please attach or include the `.in` file:
|
|
46
|
+
```
|
|
47
|
+
Attach or paste file content here
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
**Additional context**
|
|
51
|
+
Add any other context about the problem here (e.g., specific building configuration, fire scenario details, convergence issues, etc.).
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an idea or enhancement for PyCFAST
|
|
4
|
+
title: 'FEAT: <Please write a comprehensive title after the FEAT: prefix>'
|
|
5
|
+
labels: enhancement
|
|
6
|
+
assignees: bewygs
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
**Is your feature request related to a problem? Please describe.**
|
|
11
|
+
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
|
12
|
+
|
|
13
|
+
**Describe the solution you'd like**
|
|
14
|
+
A clear and concise description of what you want to happen.
|
|
15
|
+
|
|
16
|
+
**Describe alternatives you've considered**
|
|
17
|
+
A clear and concise description of any alternative solutions or features you've considered.
|
|
18
|
+
|
|
19
|
+
**Additional context**
|
|
20
|
+
Add any other context or screenshots about the feature request here.
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Commit Message Instructions for PyCFAST
|
|
2
|
+
|
|
3
|
+
Follow conventional commit format: `<type>: <description>`
|
|
4
|
+
|
|
5
|
+
## Types
|
|
6
|
+
- **DEV**: development tool or utility
|
|
7
|
+
- **FIX**: Bug fix
|
|
8
|
+
- **DOC**: Documentation changes
|
|
9
|
+
- **BLD**: Dependencies/build system (Makefile, pyproject.toml, ...)
|
|
10
|
+
- **STY**: Code formatting
|
|
11
|
+
- **TST**: addition or modification of tests
|
|
12
|
+
- **MAINT**: maintenance commit (refactoring, typos, etc.)
|
|
13
|
+
- **FEAT**: new feature or enhancement
|
|
14
|
+
- **CI**: CI/CD workflows
|
|
15
|
+
- **REL**: release commit (version bump, changelog update, etc.)
|
|
16
|
+
- **chore**: Other maintenance
|
|
17
|
+
|
|
18
|
+
## Rules
|
|
19
|
+
- Use imperative mood ("Add" not "Added")
|
|
20
|
+
- Start with capital letter
|
|
21
|
+
- No period at end
|
|
22
|
+
- Keep under 50 characters
|
|
23
|
+
- Reference issues when relevant
|
|
24
|
+
|
|
25
|
+
## Examples
|
|
26
|
+
```
|
|
27
|
+
FEAT: add CFAST 7.8 ventilation support
|
|
28
|
+
FIX: handle missing executable gracefully
|
|
29
|
+
DOC: update installation guide for uv
|
|
30
|
+
TST: add compartment validation tests
|
|
31
|
+
CI: migrate workflows to use uv
|
|
32
|
+
BLD: bump pandas minimum to 2.1.0
|
|
33
|
+
DEV: add mypy type checking to Makefile
|
|
34
|
+
MAINT: refactor simulation environment module
|
|
35
|
+
STY: apply ruff formatting rules
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
## Breaking Changes
|
|
39
|
+
Add `!` and footer:
|
|
40
|
+
```
|
|
41
|
+
FEAT!: redesign Model class interface
|
|
42
|
+
|
|
43
|
+
BREAKING CHANGE: Model.run() returns SimulationResult object
|
|
44
|
+
```
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# PyCFAST Overview
|
|
2
|
+
|
|
3
|
+
PyCFAST is a Python interface for building, running, and analyzing CFAST fire simulation models. It allows you to programmatically create CFAST input files, execute simulations, and process results directly in Python. It's a pure Python library that does not require any CFAST-specific dependencies.
|
|
4
|
+
|
|
5
|
+
CFAST is a computer program that fire investigators, safety officials, researchers, and engineers can use to simulate the impact of past or potential fires and smoke in a specific building environment. CFAST is a two-zone fire model used to calculate the evolving distribution of smoke, fire gases and temperature throughout compartments of a building during a fire.
|
|
6
|
+
|
|
7
|
+
## Folder Structure
|
|
8
|
+
|
|
9
|
+
- `/src/pycfast`: Contains the source code for the library.
|
|
10
|
+
- `/examples`: Contains examples scripts showing how to use the library.
|
|
11
|
+
- `/docs`: Contains documentation for the project, a user guides and some script to keep the documentation up to date with CFAST official documentation.
|
|
12
|
+
- `/tests`: Contains tests that validate the functionality of the library.
|
|
13
|
+
|
|
14
|
+
## Libraries and Frameworks
|
|
15
|
+
- python
|
|
16
|
+
- pandas
|
|
17
|
+
- f90nml
|
|
18
|
+
|
|
19
|
+
## Coding Standards
|
|
20
|
+
|
|
21
|
+
- Use ruff coding standard including formatting, linting, and best practices.
|
|
22
|
+
- Follow mypy for type checking.
|
|
23
|
+
- Use numpy docstring style for documentation.
|
|
24
|
+
- Stay Pythonic
|
|
25
|
+
- Follow SOLID and DRY principles where applicable.
|
|
26
|
+
|
|
27
|
+
## Environment Setup
|
|
28
|
+
|
|
29
|
+
When running command you can use the makefile commands to have the right environment with the right dependencies installed.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
|
|
3
|
+
updates:
|
|
4
|
+
- package-ecosystem: "uv"
|
|
5
|
+
directory: "/"
|
|
6
|
+
schedule:
|
|
7
|
+
interval: "weekly"
|
|
8
|
+
open-pull-requests-limit: 5
|
|
9
|
+
groups:
|
|
10
|
+
python-minor-patch:
|
|
11
|
+
patterns:
|
|
12
|
+
- "*"
|
|
13
|
+
update-types:
|
|
14
|
+
- "minor"
|
|
15
|
+
- "patch"
|
|
16
|
+
|
|
17
|
+
- package-ecosystem: "github-actions"
|
|
18
|
+
directory: "/"
|
|
19
|
+
schedule:
|
|
20
|
+
interval: "weekly"
|
|
21
|
+
groups:
|
|
22
|
+
github-actions-minor-patch:
|
|
23
|
+
patterns:
|
|
24
|
+
- "*"
|
|
25
|
+
update-types:
|
|
26
|
+
- "minor"
|
|
27
|
+
- "patch"
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
name: Docker Image CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
push:
|
|
6
|
+
branches: [ "main" ]
|
|
7
|
+
paths:
|
|
8
|
+
- 'Dockerfile'
|
|
9
|
+
- 'src/**'
|
|
10
|
+
- 'pyproject.toml'
|
|
11
|
+
- 'README.md'
|
|
12
|
+
- '.github/workflows/docker-image.yml'
|
|
13
|
+
|
|
14
|
+
pull_request:
|
|
15
|
+
branches: [ "main" ]
|
|
16
|
+
paths:
|
|
17
|
+
- 'Dockerfile'
|
|
18
|
+
- 'src/**'
|
|
19
|
+
- 'pyproject.toml'
|
|
20
|
+
- 'README.md'
|
|
21
|
+
- '.github/workflows/docker-image.yml'
|
|
22
|
+
|
|
23
|
+
# Triggers the `publish` job below once the PyPI release is available
|
|
24
|
+
workflow_run:
|
|
25
|
+
workflows: ["Upload Python Package"]
|
|
26
|
+
types: [completed]
|
|
27
|
+
|
|
28
|
+
permissions:
|
|
29
|
+
contents: read
|
|
30
|
+
|
|
31
|
+
jobs:
|
|
32
|
+
build:
|
|
33
|
+
if: github.event_name != 'workflow_run'
|
|
34
|
+
runs-on: ubuntu-latest
|
|
35
|
+
|
|
36
|
+
steps:
|
|
37
|
+
- uses: actions/checkout@v7
|
|
38
|
+
with:
|
|
39
|
+
# hatch-vcs needs the full history and tags to resolve the package
|
|
40
|
+
# version in the sdist-builder stage (see Dockerfile).
|
|
41
|
+
fetch-depth: 0
|
|
42
|
+
fetch-tags: true
|
|
43
|
+
|
|
44
|
+
- name: Set up Docker Buildx
|
|
45
|
+
uses: docker/setup-buildx-action@v4
|
|
46
|
+
|
|
47
|
+
- name: Build image
|
|
48
|
+
uses: docker/build-push-action@v7
|
|
49
|
+
with:
|
|
50
|
+
context: .
|
|
51
|
+
target: local
|
|
52
|
+
load: true
|
|
53
|
+
tags: pycfast:ci
|
|
54
|
+
cache-from: type=gha
|
|
55
|
+
cache-to: type=gha,mode=max
|
|
56
|
+
|
|
57
|
+
- name: test image
|
|
58
|
+
run: |
|
|
59
|
+
docker run --rm pycfast:ci python -c "import pycfast; print(pycfast.__version__)"
|
|
60
|
+
output=$(docker run --rm pycfast:ci sh -c "cfast 2>&1 || true")
|
|
61
|
+
echo "$output"
|
|
62
|
+
echo "$output" | grep -qi "cfast"
|
|
63
|
+
|
|
64
|
+
publish:
|
|
65
|
+
if: github.event_name == 'workflow_run' && github.event.workflow_run.conclusion == 'success'
|
|
66
|
+
runs-on: ubuntu-latest
|
|
67
|
+
permissions:
|
|
68
|
+
contents: read
|
|
69
|
+
packages: write
|
|
70
|
+
|
|
71
|
+
steps:
|
|
72
|
+
- uses: actions/checkout@v7
|
|
73
|
+
with:
|
|
74
|
+
# workflow_run defaults to the default branch; check out the exact
|
|
75
|
+
# commit that python-publish.yml actually released instead.
|
|
76
|
+
ref: ${{ github.event.workflow_run.head_sha }}
|
|
77
|
+
|
|
78
|
+
- name: Set up Docker Buildx
|
|
79
|
+
uses: docker/setup-buildx-action@v4
|
|
80
|
+
|
|
81
|
+
- name: Log in to GitHub Container Registry
|
|
82
|
+
uses: docker/login-action@v4
|
|
83
|
+
with:
|
|
84
|
+
registry: ghcr.io
|
|
85
|
+
username: ${{ github.actor }}
|
|
86
|
+
password: ${{ secrets.GITHUB_TOKEN }}
|
|
87
|
+
|
|
88
|
+
- name: Extract image metadata
|
|
89
|
+
id: meta
|
|
90
|
+
uses: docker/metadata-action@v6
|
|
91
|
+
with:
|
|
92
|
+
images: ghcr.io/${{ github.repository }}
|
|
93
|
+
# workflow_run doesn't carry the triggering tag in `github.ref`, so
|
|
94
|
+
# the tag/version has to be given explicitly. `head_branch` holds
|
|
95
|
+
# the tag name here despite the field name (GitHub Actions quirk).
|
|
96
|
+
tags: |
|
|
97
|
+
type=semver,pattern={{version}},value=${{ github.event.workflow_run.head_branch }}
|
|
98
|
+
type=semver,pattern={{major}}.{{minor}},value=${{ github.event.workflow_run.head_branch }}
|
|
99
|
+
|
|
100
|
+
- name: Push image to GitHub Container Registry
|
|
101
|
+
uses: docker/build-push-action@v7
|
|
102
|
+
with:
|
|
103
|
+
context: .
|
|
104
|
+
target: pypi
|
|
105
|
+
build-args: |
|
|
106
|
+
PYCFAST_VERSION=${{ steps.meta.outputs.version }}
|
|
107
|
+
push: true
|
|
108
|
+
tags: ${{ steps.meta.outputs.tags }}
|
|
109
|
+
labels: ${{ steps.meta.outputs.labels }}
|
|
110
|
+
cache-from: type=gha
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
name: Documentation
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
push:
|
|
5
|
+
branches: [main]
|
|
6
|
+
paths:
|
|
7
|
+
- 'src/**'
|
|
8
|
+
- 'docs/**'
|
|
9
|
+
- 'examples/**'
|
|
10
|
+
- 'CONTRIBUTING.md'
|
|
11
|
+
- 'pyproject.toml'
|
|
12
|
+
- 'uv.lock'
|
|
13
|
+
- '.github/workflows/docs.yml'
|
|
14
|
+
|
|
15
|
+
pull_request:
|
|
16
|
+
branches: [main]
|
|
17
|
+
paths:
|
|
18
|
+
- 'src/**'
|
|
19
|
+
- 'docs/**'
|
|
20
|
+
- 'examples/**'
|
|
21
|
+
- 'CONTRIBUTING.md'
|
|
22
|
+
- 'pyproject.toml'
|
|
23
|
+
- 'uv.lock'
|
|
24
|
+
- '.github/workflows/docs.yml'
|
|
25
|
+
|
|
26
|
+
permissions:
|
|
27
|
+
contents: read
|
|
28
|
+
pages: write
|
|
29
|
+
id-token: write
|
|
30
|
+
|
|
31
|
+
concurrency:
|
|
32
|
+
group: "pages"
|
|
33
|
+
cancel-in-progress: false
|
|
34
|
+
|
|
35
|
+
jobs:
|
|
36
|
+
build:
|
|
37
|
+
runs-on: ubuntu-latest
|
|
38
|
+
env:
|
|
39
|
+
CFAST_VERSION: "7.7.7"
|
|
40
|
+
CFAST_TAG: "CFAST-7.7.7"
|
|
41
|
+
steps:
|
|
42
|
+
- name: Checkout
|
|
43
|
+
uses: actions/checkout@v7
|
|
44
|
+
|
|
45
|
+
- name: Install uv
|
|
46
|
+
uses: astral-sh/setup-uv@v7
|
|
47
|
+
with:
|
|
48
|
+
enable-cache: true
|
|
49
|
+
cache-dependency-glob: "uv.lock"
|
|
50
|
+
|
|
51
|
+
- name: Set up Python
|
|
52
|
+
run: uv python install 3.10
|
|
53
|
+
|
|
54
|
+
- name: Install pandoc
|
|
55
|
+
run: sudo apt-get update && sudo apt-get install -y pandoc
|
|
56
|
+
|
|
57
|
+
- name: Cache CFAST binary
|
|
58
|
+
id: cache-cfast
|
|
59
|
+
uses: actions/cache@v6
|
|
60
|
+
with:
|
|
61
|
+
path: ~/cfast-cache/cfast-${{ env.CFAST_VERSION }}-ubuntu-latest
|
|
62
|
+
key: cfast-binary-${{ env.CFAST_VERSION }}-Linux-X64-${{ hashFiles('.github/workflows/docs.yml') }}
|
|
63
|
+
restore-keys: |
|
|
64
|
+
cfast-binary-${{ env.CFAST_VERSION }}-Linux-X64-
|
|
65
|
+
|
|
66
|
+
- name: Install build dependencies for CFAST
|
|
67
|
+
if: steps.cache-cfast.outputs.cache-hit != 'true'
|
|
68
|
+
run: sudo apt-get update && sudo apt-get install -y gfortran make
|
|
69
|
+
|
|
70
|
+
- name: Download and build CFAST ${{ env.CFAST_VERSION }}
|
|
71
|
+
if: steps.cache-cfast.outputs.cache-hit != 'true'
|
|
72
|
+
run: |
|
|
73
|
+
git clone --depth 1 --branch ${{ env.CFAST_TAG }} https://github.com/firemodels/cfast.git cfast-${{ env.CFAST_VERSION }}
|
|
74
|
+
cd cfast-${{ env.CFAST_VERSION }}/Build/CFAST/gnu_linux
|
|
75
|
+
chmod +x make_cfast.sh
|
|
76
|
+
./make_cfast.sh
|
|
77
|
+
mkdir -p ~/cfast-cache
|
|
78
|
+
cp cfast7_linux ~/cfast-cache/cfast-${{ env.CFAST_VERSION }}-ubuntu-latest
|
|
79
|
+
chmod +x ~/cfast-cache/cfast-${{ env.CFAST_VERSION }}-ubuntu-latest
|
|
80
|
+
|
|
81
|
+
- name: Install CFAST to system path
|
|
82
|
+
run: |
|
|
83
|
+
sudo cp ~/cfast-cache/cfast-${{ env.CFAST_VERSION }}-ubuntu-latest /usr/bin/cfast
|
|
84
|
+
sudo chmod +x /usr/bin/cfast
|
|
85
|
+
|
|
86
|
+
- name: Verify CFAST installation
|
|
87
|
+
run: |
|
|
88
|
+
which cfast
|
|
89
|
+
cfast
|
|
90
|
+
|
|
91
|
+
- name: Install dependencies
|
|
92
|
+
run: uv sync --extra docs
|
|
93
|
+
|
|
94
|
+
- name: Build documentation
|
|
95
|
+
run: |
|
|
96
|
+
cd docs
|
|
97
|
+
uv run sphinx-build -b html source build/html -W --keep-going
|
|
98
|
+
echo "pycfast.org" > build/html/CNAME
|
|
99
|
+
|
|
100
|
+
- name: Upload pages artifact
|
|
101
|
+
uses: actions/upload-pages-artifact@v5
|
|
102
|
+
with:
|
|
103
|
+
path: docs/build/html
|
|
104
|
+
|
|
105
|
+
deploy:
|
|
106
|
+
if: github.ref == 'refs/heads/main'
|
|
107
|
+
environment:
|
|
108
|
+
name: github-pages
|
|
109
|
+
url: ${{ steps.deployment.outputs.page_url }}
|
|
110
|
+
runs-on: ubuntu-latest
|
|
111
|
+
needs: build
|
|
112
|
+
steps:
|
|
113
|
+
- name: Deploy to GitHub Pages
|
|
114
|
+
id: deployment
|
|
115
|
+
uses: actions/deploy-pages@v5
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
name: JOSS Paper
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
workflow_dispatch:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
paths:
|
|
9
|
+
- .github/workflows/joss.yml
|
|
10
|
+
- 'paper/paper.md'
|
|
11
|
+
- 'paper/paper.bib'
|
|
12
|
+
pull_request:
|
|
13
|
+
paths:
|
|
14
|
+
- .github/workflows/joss.yml
|
|
15
|
+
- 'paper/paper.md'
|
|
16
|
+
- 'paper/paper.bib'
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
paper:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
name: Paper Draft
|
|
22
|
+
steps:
|
|
23
|
+
- name: Checkout
|
|
24
|
+
uses: actions/checkout@v7
|
|
25
|
+
- name: Build draft PDF
|
|
26
|
+
uses: openjournals/openjournals-draft-action@master
|
|
27
|
+
with:
|
|
28
|
+
journal: joss
|
|
29
|
+
# This should be the path to the paper within your repo.
|
|
30
|
+
paper-path: paper/paper.md
|
|
31
|
+
- name: Upload
|
|
32
|
+
uses: actions/upload-artifact@v7
|
|
33
|
+
with:
|
|
34
|
+
name: paper
|
|
35
|
+
# This is the output path where Pandoc will write the compiled
|
|
36
|
+
# PDF. Note, this should be the same directory as the input
|
|
37
|
+
# paper.md
|
|
38
|
+
path: paper/paper.pdf
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# This workflow will upload a Python Package to PyPI when a release is created
|
|
2
|
+
# For more information see: https://docs.github.com/en/actions/automating-builds-and-tests/building-and-testing-python#publishing-to-package-registries
|
|
3
|
+
|
|
4
|
+
# This workflow uses actions that are not certified by GitHub.
|
|
5
|
+
# They are provided by a third-party and are governed by
|
|
6
|
+
# separate terms of service, privacy policy, and support
|
|
7
|
+
# documentation.
|
|
8
|
+
|
|
9
|
+
name: Upload Python Package
|
|
10
|
+
|
|
11
|
+
on:
|
|
12
|
+
release:
|
|
13
|
+
types: [published]
|
|
14
|
+
|
|
15
|
+
permissions:
|
|
16
|
+
contents: read
|
|
17
|
+
|
|
18
|
+
jobs:
|
|
19
|
+
release-build:
|
|
20
|
+
runs-on: ubuntu-latest
|
|
21
|
+
|
|
22
|
+
steps:
|
|
23
|
+
- uses: actions/checkout@v7
|
|
24
|
+
with:
|
|
25
|
+
# hatch-vcs needs the full history and tags to resolve the package
|
|
26
|
+
# version from the release tag.
|
|
27
|
+
fetch-depth: 0
|
|
28
|
+
fetch-tags: true
|
|
29
|
+
|
|
30
|
+
- uses: actions/setup-python@v6
|
|
31
|
+
with:
|
|
32
|
+
python-version: "3.x"
|
|
33
|
+
|
|
34
|
+
- name: Build release distributions
|
|
35
|
+
run: |
|
|
36
|
+
# NOTE: put your own distribution build steps here.
|
|
37
|
+
python -m pip install build
|
|
38
|
+
python -m build
|
|
39
|
+
|
|
40
|
+
- name: Upload distributions
|
|
41
|
+
uses: actions/upload-artifact@v7
|
|
42
|
+
with:
|
|
43
|
+
name: release-dists
|
|
44
|
+
path: dist/
|
|
45
|
+
|
|
46
|
+
pypi-publish:
|
|
47
|
+
runs-on: ubuntu-latest
|
|
48
|
+
needs:
|
|
49
|
+
- release-build
|
|
50
|
+
permissions:
|
|
51
|
+
id-token: write
|
|
52
|
+
|
|
53
|
+
environment:
|
|
54
|
+
name: pypi
|
|
55
|
+
url: https://pypi.org/project/pycfast/
|
|
56
|
+
|
|
57
|
+
steps:
|
|
58
|
+
- name: Retrieve release distributions
|
|
59
|
+
uses: actions/download-artifact@v8
|
|
60
|
+
with:
|
|
61
|
+
name: release-dists
|
|
62
|
+
path: dist/
|
|
63
|
+
|
|
64
|
+
- name: Publish release distributions to PyPI
|
|
65
|
+
uses: pypa/gh-action-pypi-publish@release/v1
|
|
66
|
+
with:
|
|
67
|
+
packages-dir: dist/
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
name: Sync CFAST Input Files
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
schedule:
|
|
5
|
+
# Run every Sunday at 2 AM UTC
|
|
6
|
+
- cron: '0 2 * * 0'
|
|
7
|
+
workflow_dispatch:
|
|
8
|
+
inputs:
|
|
9
|
+
suite:
|
|
10
|
+
description: 'Which suite to sync'
|
|
11
|
+
required: false
|
|
12
|
+
default: 'all'
|
|
13
|
+
type: choice
|
|
14
|
+
options: [all, verification, validation]
|
|
15
|
+
|
|
16
|
+
permissions:
|
|
17
|
+
contents: write
|
|
18
|
+
pull-requests: write
|
|
19
|
+
|
|
20
|
+
jobs:
|
|
21
|
+
sync-input-files:
|
|
22
|
+
runs-on: ubuntu-latest
|
|
23
|
+
|
|
24
|
+
steps:
|
|
25
|
+
- name: Checkout repository
|
|
26
|
+
uses: actions/checkout@v7
|
|
27
|
+
with:
|
|
28
|
+
fetch-depth: 0
|
|
29
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
30
|
+
|
|
31
|
+
- name: Configure Git
|
|
32
|
+
run: |
|
|
33
|
+
git config --global user.name 'github-actions[bot]'
|
|
34
|
+
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
|
|
35
|
+
|
|
36
|
+
- name: Install required tools
|
|
37
|
+
run: sudo apt-get update && sudo apt-get install -y rsync curl
|
|
38
|
+
|
|
39
|
+
- name: Sync CFAST input files
|
|
40
|
+
id: sync
|
|
41
|
+
run: |
|
|
42
|
+
SUITE="${{ github.event.inputs.suite || 'all' }}"
|
|
43
|
+
chmod +x tests/sync_cfast_inputs.sh
|
|
44
|
+
tests/sync_cfast_inputs.sh --suite "$SUITE"
|
|
45
|
+
|
|
46
|
+
if git diff --quiet && git diff --cached --quiet; then
|
|
47
|
+
echo "changes_detected=false" >> $GITHUB_OUTPUT
|
|
48
|
+
else
|
|
49
|
+
echo "changes_detected=true" >> $GITHUB_OUTPUT
|
|
50
|
+
changed=$(git diff --name-only | wc -l)
|
|
51
|
+
new=$(git ls-files --others --exclude-standard tests/verification_tests/Verification/ tests/validation_tests/Validation/ | wc -l)
|
|
52
|
+
echo "changed_files=$changed" >> $GITHUB_OUTPUT
|
|
53
|
+
echo "new_files=$new" >> $GITHUB_OUTPUT
|
|
54
|
+
echo "total_changes=$((changed + new))" >> $GITHUB_OUTPUT
|
|
55
|
+
echo "suite=$SUITE" >> $GITHUB_OUTPUT
|
|
56
|
+
fi
|
|
57
|
+
|
|
58
|
+
- name: Create Pull Request
|
|
59
|
+
if: steps.sync.outputs.changes_detected == 'true'
|
|
60
|
+
uses: peter-evans/create-pull-request@v8
|
|
61
|
+
with:
|
|
62
|
+
token: ${{ secrets.GITHUB_TOKEN }}
|
|
63
|
+
commit-message: |
|
|
64
|
+
chore: sync CFAST ${{ steps.sync.outputs.suite }} input files
|
|
65
|
+
|
|
66
|
+
- Modified: ${{ steps.sync.outputs.changed_files }} files
|
|
67
|
+
- Added: ${{ steps.sync.outputs.new_files }} files
|
|
68
|
+
- Total: ${{ steps.sync.outputs.total_changes }} files
|
|
69
|
+
|
|
70
|
+
Auto-generated by sync-cfast-inputs workflow
|
|
71
|
+
title: 'chore: sync CFAST ${{ steps.sync.outputs.suite }} input files'
|
|
72
|
+
body: |
|
|
73
|
+
## Automated CFAST Input Files Sync
|
|
74
|
+
|
|
75
|
+
**Suite:** `${{ steps.sync.outputs.suite }}`
|
|
76
|
+
|
|
77
|
+
| | Count |
|
|
78
|
+
|---|---|
|
|
79
|
+
| Modified files | ${{ steps.sync.outputs.changed_files }} |
|
|
80
|
+
| New files | ${{ steps.sync.outputs.new_files }} |
|
|
81
|
+
| Total | ${{ steps.sync.outputs.total_changes }} |
|
|
82
|
+
|
|
83
|
+
Please review the changes and merge if everything looks correct.
|
|
84
|
+
branch: sync-cfast-input-files
|
|
85
|
+
delete-branch: true
|
|
86
|
+
labels: |
|
|
87
|
+
automated
|
|
88
|
+
maintenance
|
|
89
|
+
|
|
90
|
+
- name: Summary
|
|
91
|
+
run: |
|
|
92
|
+
if [ "${{ steps.sync.outputs.changes_detected }}" == "true" ]; then
|
|
93
|
+
echo "Changes detected — PR created"
|
|
94
|
+
echo " Suite: ${{ steps.sync.outputs.suite }}"
|
|
95
|
+
echo " Modified: ${{ steps.sync.outputs.changed_files }}"
|
|
96
|
+
echo " New: ${{ steps.sync.outputs.new_files }}"
|
|
97
|
+
echo " Total: ${{ steps.sync.outputs.total_changes }}"
|
|
98
|
+
else
|
|
99
|
+
echo "No changes — input files are up to date"
|
|
100
|
+
fi
|