{"id":344210,"name":"Mocca","description":"Provides a Julia based framework for the simulating pressure / temperature swing adsorption processes for CO2 capture.","url":"https://github.com/sintefmath/mocca.jl","last_synced_at":"2026-04-23T13:00:25.607Z","repository":{"id":316209254,"uuid":"587234164","full_name":"sintefmath/Mocca.jl","owner":"sintefmath","description":"A package for modelling CO2 capture processes in Julia.","archived":false,"fork":false,"pushed_at":"2026-04-15T15:42:28.000Z","size":64389,"stargazers_count":16,"open_issues_count":10,"forks_count":5,"subscribers_count":8,"default_branch":"main","last_synced_at":"2026-04-17T10:03:20.597Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"https://sintefmath.github.io/Mocca.jl/","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/sintefmath.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-01-10T09:21:25.000Z","updated_at":"2026-04-15T15:20:09.000Z","dependencies_parsed_at":"2026-04-01T02:00:28.937Z","dependency_job_id":null,"html_url":"https://github.com/sintefmath/Mocca.jl","commit_stats":null,"previous_names":["sintefmath/mocca.jl"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/sintefmath/Mocca.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sintefmath%2FMocca.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sintefmath%2FMocca.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sintefmath%2FMocca.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sintefmath%2FMocca.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sintefmath","download_url":"https://codeload.github.com/sintefmath/Mocca.jl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/sintefmath%2FMocca.jl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32004043,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-18T20:23:30.271Z","status":"online","status_checked_at":"2026-04-19T02:00:07.110Z","response_time":55,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"owner":{"login":"sintefmath","name":"SINTEF Digital - Mathematics and Cybernetics","uuid":"1901550","kind":"organization","description":"","email":"TrondRunar.Hagen@sintef.no","website":"https://www.sintef.no/en/digital/departments-new/applied-mathematics/","location":"Oslo, Norway","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/1901550?v=4","repositories_count":48,"last_synced_at":"2024-04-16T16:10:52.176Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/sintefmath","funding_links":[],"total_stars":205,"followers":30,"following":0,"created_at":"2022-11-03T22:22:10.398Z","updated_at":"2024-04-16T16:11:06.427Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sintefmath","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/sintefmath/repositories"},"packages":[{"id":13378129,"name":"Mocca","ecosystem":"julia","description":"A module for modelling CO2 capture processes in Julia.","homepage":"https://sintefmath.github.io/Mocca.jl/","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/sintefmath/Mocca.jl","keywords_array":[],"namespace":null,"versions_count":1,"first_release_published_at":"2026-01-01T00:00:00.000Z","latest_release_published_at":"2026-01-01T00:00:00.000Z","latest_release_number":"0.0.1","last_synced_at":"2026-03-07T18:42:35.639Z","created_at":"2026-02-04T14:18:32.125Z","updated_at":"2026-03-07T18:42:37.029Z","registry_url":"https://juliahub.com/ui/Packages/General/Mocca/","install_command":"Pkg.add(\"Mocca\")","documentation_url":"https://docs.juliahub.com/General/Mocca/stable/","metadata":{"uuid":"eb14e3ba-90c8-11ed-0ecf-1dd2ea0d109c"},"repo_metadata":{},"repo_metadata_updated_at":"2026-03-07T18:42:37.006Z","dependent_packages_count":0,"downloads":4,"downloads_period":"last-month","dependent_repos_count":0,"rankings":{"downloads":10.94362375640639,"dependent_repos_count":7.747965028640337,"dependent_packages_count":33.35845643653904,"stargazers_count":null,"forks_count":null,"docker_downloads_count":null,"average":17.350015073861922},"purl":"pkg:julia/Mocca","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/julia/Mocca","docker_dependents_count":null,"docker_downloads_count":null,"usage_url":"https://repos.ecosyste.ms/usage/julia/Mocca","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/julia/Mocca/dependencies","status":null,"funding_links":[],"critical":null,"issue_metadata":null,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/packages/Mocca/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/packages/Mocca/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/packages/Mocca/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/packages/Mocca/related_packages","codemeta_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/packages/Mocca/codemeta","maintainers":[],"registry":{"name":"juliahub.com","url":"https://juliahub.com","ecosystem":"julia","default":true,"packages_count":13602,"maintainers_count":0,"namespaces_count":0,"keywords_count":0,"github":"JuliaRegistries","metadata":{"funded_packages_count":851},"icon_url":"https://github.com/JuliaRegistries.png","created_at":"2022-04-19T16:34:08.340Z","updated_at":"2026-04-03T06:47:58.091Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/juliahub.com/namespaces"}}],"commits":{"id":11615649,"full_name":"sintefmath/mocca.jl","default_branch":"master","total_commits":251,"total_committers":6,"total_bot_commits":0,"total_bot_committers":0,"mean_commits":41.833333333333336,"dds":0.6254980079681275,"past_year_total_commits":48,"past_year_total_committers":5,"past_year_total_bot_commits":0,"past_year_total_bot_committers":0,"past_year_mean_commits":9.6,"past_year_dds":0.6458333333333333,"last_synced_at":"2026-04-21T12:01:03.984Z","last_synced_commit":"93190f21ea3ec52233c88871400aa7a126e51b64","created_at":"2026-02-07T01:00:23.095Z","updated_at":"2026-04-21T12:00:53.588Z","committers":[{"name":"Kjetil Olsen Lye","email":"kjetil.olsen.lye@sintef.no","login":"kjetilly","count":94},{"name":"Francesca Watson","email":"francesca.watson@sintef.no","login":"FrancescaWatson","count":76},{"name":"Olav Møyner","email":"olav.moyner@gmail.com","login":"moyner","count":55},{"name":"Andreas Brostrøm","email":"andreas.brostrom@sintef.no","login":"andreas-brostrom","count":14},{"name":"jakobtorben","email":"Jakob.Torben@sintef.no","login":"jakobtorben","count":11},{"name":"Bjørn Ludvigsen","email":"58595057+nutspiano","login":"nutspiano","count":1}],"past_year_committers":[{"name":"Francesca Watson","email":"61835798+FrancescaWatson","login":"FrancescaWatson","count":17},{"name":"Andreas Brostrøm","email":"andreas.brostrom@sintef.no","login":"andreas-brostrom","count":14},{"name":"jakobtorben","email":"Jakob.Torben@sintef.no","login":"jakobtorben","count":11},{"name":"Olav Møyner","email":"olav.moyner@gmail.com","login":"moyner","count":5},{"name":"Bjørn Ludvigsen","email":"58595057+nutspiano","login":"nutspiano","count":1}],"commits_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories/sintefmath%2Fmocca.jl/commits","host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-23T00:00:09.178Z","repositories_count":6216781,"commits_count":899323942,"contributors_count":34909810,"owners_count":1144518,"icon_url":"https://github.com/github.png","host_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://commits.ecosyste.ms/api/v1/hosts/GitHub/repositories"}},"issues_stats":{"full_name":"sintefmath/Mocca.jl","html_url":"https://github.com/sintefmath/Mocca.jl","last_synced_at":"2026-04-21T12:00:39.305Z","status":"active","issues_count":1,"pull_requests_count":6,"avg_time_to_close_issue":null,"avg_time_to_close_pull_request":203364.33333333334,"issues_closed_count":0,"pull_requests_closed_count":3,"pull_request_authors_count":2,"issue_authors_count":1,"avg_comments_per_issue":3.0,"avg_comments_per_pull_request":0.0,"merged_pull_requests_count":3,"bot_issues_count":0,"bot_pull_requests_count":0,"past_year_issues_count":1,"past_year_pull_requests_count":6,"past_year_avg_time_to_close_issue":null,"past_year_avg_time_to_close_pull_request":203364.33333333334,"past_year_issues_closed_count":0,"past_year_pull_requests_closed_count":3,"past_year_pull_request_authors_count":2,"past_year_issue_authors_count":1,"past_year_avg_comments_per_issue":3.0,"past_year_avg_comments_per_pull_request":0.0,"past_year_bot_issues_count":0,"past_year_bot_pull_requests_count":0,"past_year_merged_pull_requests_count":3,"created_at":"2025-11-12T12:00:11.424Z","updated_at":"2026-04-21T12:00:39.305Z","repository_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/sintefmath%2FMocca.jl","issues_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories/sintefmath%2FMocca.jl/issues","issue_labels_count":{},"pull_request_labels_count":{},"issue_author_associations_count":{"NONE":1},"pull_request_author_associations_count":{"COLLABORATOR":4,"NONE":2},"issue_authors":{"viniviena":1},"pull_request_authors":{"jakobtorben":4,"Copilot":2},"host":{"name":"GitHub","url":"https://github.com","kind":"github","last_synced_at":"2026-04-23T00:00:09.119Z","repositories_count":14371608,"issues_count":34463211,"pull_requests_count":112857835,"authors_count":11243398,"icon_url":"https://github.com/github.png","host_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/repositories","owners_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/owners","authors_url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors"},"past_year_issue_labels_count":{},"past_year_pull_request_labels_count":{},"past_year_issue_author_associations_count":{"NONE":1},"past_year_pull_request_author_associations_count":{"COLLABORATOR":4,"NONE":2},"past_year_issue_authors":{"viniviena":1},"past_year_pull_request_authors":{"jakobtorben":4,"Copilot":2},"maintainers":[{"login":"jakobtorben","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jakobtorben"}],"active_maintainers":[{"login":"jakobtorben","count":4,"url":"https://issues.ecosyste.ms/api/v1/hosts/GitHub/authors/jakobtorben"}]},"events":{"total":{"DeleteEvent":2,"PullRequestEvent":10,"WatchEvent":5,"IssueCommentEvent":1,"PublicEvent":1,"PushEvent":57,"PullRequestReviewEvent":1,"PullRequestReviewCommentEvent":1,"CreateEvent":12,"CommitCommentEvent":1},"last_year":{"DeleteEvent":2,"PullRequestEvent":10,"WatchEvent":5,"IssueCommentEvent":1,"PublicEvent":1,"PushEvent":57,"PullRequestReviewEvent":1,"PullRequestReviewCommentEvent":1,"CreateEvent":12,"CommitCommentEvent":1}},"keywords":[],"dependencies":[{"ecosystem":"actions","filepath":".github/workflows/ci.yml","sha":null,"kind":"manifest","created_at":"2026-02-13T04:00:22.495Z","updated_at":"2026-02-13T04:00:22.495Z","repository_link":"https://github.com/sintefmath/Mocca.jl/blob/main/.github/workflows/ci.yml","dependencies":[{"id":25817179101,"package_name":"actions/checkout","ecosystem":"actions","requirements":"v2","direct":true,"kind":"composite","optional":false},{"id":25817179107,"package_name":"julia-actions/setup-julia","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":25817179111,"package_name":"julia-actions/julia-buildpkg","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":25817179124,"package_name":"julia-actions/julia-runtest","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false},{"id":25817179131,"package_name":"julia-actions/julia-docdeploy","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"julia","filepath":"docs/Project.toml","sha":null,"kind":"manifest","created_at":"2026-02-13T04:00:24.342Z","updated_at":"2026-02-13T04:00:24.342Z","repository_link":"https://github.com/sintefmath/Mocca.jl/blob/main/docs/Project.toml","dependencies":[{"id":25817179238,"package_name":"Documenter","ecosystem":"julia","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25817179259,"package_name":"Jutul","ecosystem":"julia","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25817179260,"package_name":"Literate","ecosystem":"julia","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25817179264,"package_name":"Mocca","ecosystem":"julia","requirements":"*","direct":true,"kind":"runtime","optional":false}]},{"ecosystem":"actions","filepath":".github/workflows/TagBot.yml","sha":null,"kind":"manifest","created_at":"2026-02-13T04:00:22.396Z","updated_at":"2026-02-13T04:00:22.396Z","repository_link":"https://github.com/sintefmath/Mocca.jl/blob/main/.github/workflows/TagBot.yml","dependencies":[{"id":25817179096,"package_name":"JuliaRegistries/TagBot","ecosystem":"actions","requirements":"v1","direct":true,"kind":"composite","optional":false}]},{"ecosystem":"julia","filepath":"Project.toml","sha":null,"kind":"manifest","created_at":"2026-02-13T04:00:23.172Z","updated_at":"2026-02-13T04:00:23.172Z","repository_link":"https://github.com/sintefmath/Mocca.jl/blob/main/Project.toml","dependencies":[{"id":25817179145,"package_name":"CairoMakie","ecosystem":"julia","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25817179155,"package_name":"Jutul","ecosystem":"julia","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25817179160,"package_name":"JutulDarcy","ecosystem":"julia","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25817179161,"package_name":"LinearAlgebra","ecosystem":"julia","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25817179166,"package_name":"Parameters","ecosystem":"julia","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25817179190,"package_name":"StaticArrays","ecosystem":"julia","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25817179196,"package_name":"Tullio","ecosystem":"julia","requirements":"*","direct":true,"kind":"runtime","optional":false},{"id":25817179204,"package_name":"JSON","ecosystem":"julia","requirements":"*","direct":true,"kind":"runtime","optional":false}]}],"score":6.436150368369428,"created_at":"2026-02-05T00:09:42.147Z","updated_at":"2026-04-23T13:00:25.615Z","avatar_url":"https://github.com/sintefmath.png","language":"Julia","category":"Emissions","sub_category":"Carbon Capture","monthly_downloads":4,"total_dependent_repos":0,"total_dependent_packages":0,"readme":"[![Zenodo](https://zenodo.org/badge/587234164.svg)](https://zenodo.org/badge/latestdoi/587234164)\r\n\r\n# Mocca\r\n\r\n![Mocca.jl logo](docs/src/assets/mocca_small_light.png)\r\n\r\n\r\n[Mocca.jl](https://github.com/sintefmath/Mocca.jl) provides a [Julia](https://julialang.org/) based framework for the simulating pressure / temperature swing adsorption processes for CO2 capture. \r\n\r\nTo learn more about using Mocca please see the [documentation](https://sintefmath.github.io/Mocca.jl/dev/).\r\n\r\nCurrently there is an implementation of a 4-stage vacuum swing adsorption process for CO2 capture, from a two-component flue gas, using Zeolite 13X and a dual-site Langmuir model. See [Direct Column Breakthrough simulation](https://github.com/sintefmath/Mocca.jl/blob/main/examples/simulate_DCB.jl) and [Cyclic Vacuum Swing Adsorption simulation](https://github.com/sintefmath/Mocca.jl/blob/main/examples/simulate_cyclic.jl). Additionally, we have made examples demonstrating capabilities for doing [Optimization](https://github.com/sintefmath/Mocca.jl/blob/main/examples/optimization.jl) and [History matching](https://github.com/sintefmath/Mocca.jl/blob/main/examples/history_matching.jl) in Mocca.jl.\r\n\r\nIn the future we hope to implement examples of other systems and isotherms e.g. temperature swing adsorption for Direct Air Capture (DAC).\r\n\r\n# Installation\r\n\r\nThe latest stable version of Mocca can be installed directly from Julia. First install Julia from [here](https://julialang.org/downloads/).\r\n\r\n## Working in an environment (optional)\r\nWe recommend running in a specific environment (similar to a virtual environment in python). More information on environments in Julia can be found [here](https://pkgdocs.julialang.org/v1/environments/).\r\n\r\nTo create an environment in Julia, navigate to the folder where you want the environment to be, start the [Julia REPL](https://docs.julialang.org/en/v1/stdlib/REPL/) and type the following at the Julia prompt:\r\n\r\n```julia\r\nusing Pkg\r\nPkg.activate(\".\")\r\nPkg.instantiate()\r\n```\r\n\r\n## Installing Mocca in your environment\r\n\r\nTo install Mocca just add the package to your current environment in the Julia REPL:\r\n\r\n```julia\r\nPkg.add(\"Mocca\")\r\n```\r\n\r\nThis will add Mocca to the current environment and install all necessary dependencies. Mocca is now installed and ready to use.\r\n\r\nTo get started try the [quick start](https://github.com/sintefmath/Mocca.jl/blob/main/examples/quick_start.jl) or [Direct Column Breakthrough simulation](https://github.com/sintefmath/Mocca.jl/blob/main/examples/simulate_DCB.jl) examples. Bear in mind that the first time you run the code in the Julia REPL it may take several minutes to run as Julia needs to compile all the necessary code. As long as you do not close the REPL, the second time you run the code will be much quicker!\r\n\r\n\r\n# Quick start example\r\nRun the following code to quickly setup and run a\r\nDirect Column breakthrough adsorption simulation using predefined input parameters.\r\n\r\nThe example uses some utility functions which simplify the simulation setup.\r\nTo see the steps used in more detail, please refer to the\r\n[Simulate DCB](https://github.com/sintefmath/Mocca.jl/blob/main/examples/simulate_DCB.jl) example.\r\n\r\n```julia\r\nusing Mocca\r\n\r\n# Import and load input parameters\r\njson_dir = joinpath(dirname(pathof(Mocca)), \"../models/json/\")\r\nfilepath = joinpath(json_dir, \"haghpanah_DCB_input_simple.json\")\r\n(constants, info ) = Mocca.parse_input(filepath)\r\n\r\n# Setup and run simulation\r\ncase, ts_config = Mocca.setup_mocca_case(constants, info)\r\nstates, timesteps = Mocca.simulate_process(case; timestep_selector_cfg = ts_config,\r\n    output_substates = true, info_level = 0)\r\n\r\n# Save results to CSV and plot\r\nMocca.export_cell_results(joinpath(Mocca.moccaResultsDir, \"haghpanah_DCB_results.csv\"),\r\n    case, states, timesteps; format=\"csv\")\r\nf = Mocca.plot_outlet(case, states, timesteps)\r\ndisplay(f)\r\n```\r\n\r\n# Acknowledgements\r\n\r\nThe authors would like to thank Shreenath Krishnamurthy, SINTEF Industry and Gokul Subraveti, SINTEF Energy for assistance developing the code. \r\nThis project has received funding from the following projects:\r\n- SINTEF Digital Strategic Development Fund\r\n- FME gigaCCS administered by the Research Council of Norway (350370). \r\n","funding_links":[],"readme_doi_urls":[],"works":{},"citation_counts":{},"total_citations":0,"keywords_from_contributors":[],"project_url":"https://ost.ecosyste.ms/api/v1/projects/344210","html_url":"https://ost.ecosyste.ms/projects/344210"}