{"id":32177818,"url":"https://github.com/zwicker-group/py-pde","last_synced_at":"2026-02-03T10:03:11.477Z","repository":{"id":37041648,"uuid":"242093001","full_name":"zwicker-group/py-pde","owner":"zwicker-group","description":"Python package for solving partial differential equations using finite differences.","archived":false,"fork":false,"pushed_at":"2026-01-29T10:36:03.000Z","size":11352,"stargazers_count":454,"open_issues_count":4,"forks_count":62,"subscribers_count":11,"default_branch":"master","last_synced_at":"2026-01-29T23:33:46.362Z","etag":null,"topics":["dynamical-systems","finite-difference-method","partial-differential-equations","pdes","python","scientific-computing"],"latest_commit_sha":null,"homepage":"https://py-pde.readthedocs.io","language":"Python","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/zwicker-group.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","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":"2020-02-21T08:42:23.000Z","updated_at":"2026-01-29T10:36:04.000Z","dependencies_parsed_at":"2023-10-05T10:06:12.099Z","dependency_job_id":"ad55f01e-f707-4c58-9113-cb380a62f46d","html_url":"https://github.com/zwicker-group/py-pde","commit_stats":{"total_commits":1075,"total_committers":9,"mean_commits":"119.44444444444444","dds":"0.012093023255813962","last_synced_commit":"bd0fd1f75032d726518212a177bd4fe47486eca6"},"previous_names":[],"tags_count":134,"template":false,"template_full_name":null,"purl":"pkg:github/zwicker-group/py-pde","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwicker-group%2Fpy-pde","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwicker-group%2Fpy-pde/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwicker-group%2Fpy-pde/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwicker-group%2Fpy-pde/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zwicker-group","download_url":"https://codeload.github.com/zwicker-group/py-pde/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zwicker-group%2Fpy-pde/sbom","scorecard":{"id":1237886,"data":{"date":"2025-07-28","repo":{"name":"github.com/zwicker-group/py-pde","commit":"aa8396225f0858d99a3bb2d2baa744508ce30a82"},"scorecard":{"version":"v5.2.1-26-g4feedb85","commit":"4feedb857ab8d82158aa9774bf8054df41992180"},"score":4.5,"checks":[{"name":"Maintained","score":10,"reason":"16 commit(s) and 2 issue activity found in the last 90 days -- score normalized to 10","details":null,"documentation":{"short":"Determines if the project is \"actively maintained\".","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#maintained"}},{"name":"Code-Review","score":0,"reason":"Found 0/13 approved changesets -- score normalized to 0","details":null,"documentation":{"short":"Determines if the project requires human code review before pull requests (aka merge requests) are merged.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#code-review"}},{"name":"Packaging","score":-1,"reason":"packaging workflow not detected","details":["Warn: no GitHub/GitLab publishing workflow detected."],"documentation":{"short":"Determines if the project is published as a package that others can easily download, install, easily update, and uninstall.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#packaging"}},{"name":"Dangerous-Workflow","score":10,"reason":"no dangerous workflow patterns detected","details":null,"documentation":{"short":"Determines if the project's GitHub Action workflows avoid dangerous patterns.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#dangerous-workflow"}},{"name":"CII-Best-Practices","score":0,"reason":"no effort to earn an OpenSSF best practices badge detected","details":null,"documentation":{"short":"Determines if the project has an OpenSSF (formerly CII) Best Practices Badge.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#cii-best-practices"}},{"name":"Token-Permissions","score":0,"reason":"detected GitHub workflow tokens with excessive permissions","details":["Warn: no topLevel permission defined: .github/workflows/check_docs.yml:1","Warn: no topLevel permission defined: .github/workflows/codeql-analysis.yml:1","Warn: no topLevel permission defined: .github/workflows/coverage_report.yml:1","Warn: no topLevel permission defined: .github/workflows/release_pip.yml:1","Warn: no topLevel permission defined: .github/workflows/tests_all.yml:1","Warn: no topLevel permission defined: .github/workflows/tests_minversion.yml:1","Warn: no topLevel permission defined: .github/workflows/tests_mpi.yml:1","Warn: no topLevel permission defined: .github/workflows/tests_types.yml:1","Info: no jobLevel write permissions found"],"documentation":{"short":"Determines if the project's workflows follow the principle of least privilege.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#token-permissions"}},{"name":"Binary-Artifacts","score":10,"reason":"no binaries found in the repo","details":null,"documentation":{"short":"Determines if the project has generated executable (binary) artifacts in the source repository.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#binary-artifacts"}},{"name":"License","score":10,"reason":"license file detected","details":["Info: project has a license file: LICENSE:0","Info: FSF or OSI recognized license: MIT License: LICENSE:0"],"documentation":{"short":"Determines if the project has defined a license.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#license"}},{"name":"Pinned-Dependencies","score":0,"reason":"dependency not pinned by hash detected -- score normalized to 0","details":["Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/check_docs.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/check_docs.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/check_docs.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/check_docs.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:36: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:43: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/codeql-analysis.yml:57: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/codeql-analysis.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage_report.yml:11: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/coverage_report.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/coverage_report.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/coverage_report.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/coverage_report.yml:19: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/coverage_report.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/coverage_report.yml:42: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/coverage_report.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/coverage_report.yml:59: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/coverage_report.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release_pip.yml:13: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/release_pip.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/release_pip.yml:18: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/release_pip.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests_all.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/tests_all.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests_all.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/tests_all.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests_all.yml:22: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/tests_all.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests_minversion.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/tests_minversion.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests_minversion.yml:16: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/tests_minversion.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests_mpi.yml:20: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/tests_mpi.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests_mpi.yml:23: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/tests_mpi.yml/master?enable=pin","Warn: third-party GitHubAction not pinned by hash: .github/workflows/tests_mpi.yml:28: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/tests_mpi.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests_types.yml:14: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/tests_types.yml/master?enable=pin","Warn: GitHub-owned GitHubAction not pinned by hash: .github/workflows/tests_types.yml:17: update your workflow using https://app.stepsecurity.io/secureworkflow/zwicker-group/py-pde/tests_types.yml/master?enable=pin","Warn: pipCommand not pinned by hash: .github/workflows/coverage_report.yml:27","Warn: pipCommand not pinned by hash: .github/workflows/coverage_report.yml:28","Warn: pipCommand not pinned by hash: .github/workflows/coverage_report.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/coverage_report.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/coverage_report.yml:51","Warn: pipCommand not pinned by hash: .github/workflows/release_pip.yml:24","Warn: pipCommand not pinned by hash: .github/workflows/release_pip.yml:25","Warn: pipCommand not pinned by hash: .github/workflows/tests_all.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/tests_all.yml:31","Warn: pipCommand not pinned by hash: .github/workflows/tests_all.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/tests_all.yml:33","Warn: pipCommand not pinned by hash: .github/workflows/tests_minversion.yml:23","Warn: pipCommand not pinned by hash: .github/workflows/tests_minversion.yml:24","Warn: pipCommand not pinned by hash: .github/workflows/tests_minversion.yml:25","Warn: pipCommand not pinned by hash: .github/workflows/tests_mpi.yml:34","Warn: pipCommand not pinned by hash: .github/workflows/tests_mpi.yml:35","Warn: pipCommand not pinned by hash: .github/workflows/tests_mpi.yml:36","Warn: pipCommand not pinned by hash: .github/workflows/tests_types.yml:27","Warn: pipCommand not pinned by hash: .github/workflows/tests_types.yml:28","Warn: pipCommand not pinned by hash: .github/workflows/tests_types.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/tests_types.yml:30","Warn: pipCommand not pinned by hash: .github/workflows/tests_types.yml:31","Info:   0 out of  17 GitHub-owned GitHubAction dependencies pinned","Info:   0 out of   6 third-party GitHubAction dependencies pinned","Info:   0 out of  22 pipCommand dependencies pinned"],"documentation":{"short":"Determines if the project has declared and pinned the dependencies of its build process.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#pinned-dependencies"}},{"name":"Fuzzing","score":0,"reason":"project is not fuzzed","details":["Warn: no fuzzer integrations found"],"documentation":{"short":"Determines if the project uses fuzzing.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#fuzzing"}},{"name":"Signed-Releases","score":-1,"reason":"no releases found","details":null,"documentation":{"short":"Determines if the project cryptographically signs release artifacts.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#signed-releases"}},{"name":"Branch-Protection","score":-1,"reason":"internal error: error during branchesHandler.setup: internal error: githubv4.Query: Resource not accessible by integration","details":null,"documentation":{"short":"Determines if the default and release branches are protected with GitHub's branch protection settings.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#branch-protection"}},{"name":"Security-Policy","score":0,"reason":"security policy file not detected","details":["Warn: no security policy file detected","Warn: no security file to analyze","Warn: no security file to analyze","Warn: no security file to analyze"],"documentation":{"short":"Determines if the project has published a security policy.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#security-policy"}},{"name":"SAST","score":10,"reason":"SAST tool is run on all commits","details":["Info: SAST configuration detected: CodeQL","Info: all commits (29) are checked with a SAST tool"],"documentation":{"short":"Determines if the project uses static code analysis.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#sast"}},{"name":"Vulnerabilities","score":0,"reason":"40 existing vulnerabilities detected","details":["Warn: Project is vulnerable to: GHSA-3f63-hfp8-52jq","Warn: Project is vulnerable to: PYSEC-2021-41 / GHSA-3wvg-mj6g-m9cv","Warn: Project is vulnerable to: PYSEC-2020-77 / GHSA-3xv8-3j54-hgrp","Warn: Project is vulnerable to: PYSEC-2020-80 / GHSA-43fq-w8qq-v88h","Warn: Project is vulnerable to: GHSA-44wm-f244-xhp3","Warn: Project is vulnerable to: GHSA-4fx9-vc88-q2xc","Warn: Project is vulnerable to: PYSEC-2021-35 / GHSA-57h3-9rgr-c24m","Warn: Project is vulnerable to: PYSEC-2021-331 / GHSA-7534-mm45-c74v","Warn: Project is vulnerable to: PYSEC-2021-137 / GHSA-77gc-v2xv-rvvh","Warn: Project is vulnerable to: PYSEC-2021-92 / GHSA-7r7m-5h27-29hp","Warn: Project is vulnerable to: PYSEC-2020-78 / GHSA-8843-m7mw-mxqm","Warn: Project is vulnerable to: PYSEC-2023-227 / GHSA-8ghj-p4vj-mr35","Warn: Project is vulnerable to: PYSEC-2022-10 / GHSA-8vj2-vxx3-667w","Warn: Project is vulnerable to: PYSEC-2021-36 / GHSA-8xjq-8fcg-g5hw","Warn: Project is vulnerable to: PYSEC-2021-42 / GHSA-95q3-8gr9-gm8w","Warn: Project is vulnerable to: PYSEC-2021-317 / GHSA-98vv-pw6r-q6q4","Warn: Project is vulnerable to: PYSEC-2021-38 / GHSA-9hx2-hgq2-2g4f","Warn: Project is vulnerable to: PYSEC-2022-168 / GHSA-9j59-75qj-795w","Warn: Project is vulnerable to: PYSEC-2020-76 / GHSA-cqhg-xjhh-p8hf","Warn: Project is vulnerable to: PYSEC-2021-40 / GHSA-f4w8-cv6p-x6r5","Warn: Project is vulnerable to: PYSEC-2021-69 / GHSA-f5g8-5qq7-938w","Warn: Project is vulnerable to: PYSEC-2021-139 / GHSA-g6rj-rv7j-xwp4","Warn: Project is vulnerable to: PYSEC-2021-71 / GHSA-hf64-x4gq-p99h","Warn: Project is vulnerable to: PYSEC-2021-94 / GHSA-hjfx-8p6c-g7gx","Warn: Project is vulnerable to: GHSA-j7hp-h8jx-5ppr","Warn: Project is vulnerable to: GHSA-jgpv-4h4c-xhw3","Warn: Project is vulnerable to: PYSEC-2022-42979 / GHSA-m2vv-5vj5-2hm7","Warn: Project is vulnerable to: PYSEC-2021-37 / GHSA-mvg9-xffr-p774","Warn: Project is vulnerable to: PYSEC-2021-39 / GHSA-p43w-g3c5-g5mq","Warn: Project is vulnerable to: PYSEC-2022-8 / GHSA-pw3c-h7wp-cvhx","Warn: Project is vulnerable to: PYSEC-2021-93 / GHSA-q5hq-fp76-qmrc","Warn: Project is vulnerable to: PYSEC-2021-138 / GHSA-rwv7-3v45-hg29","Warn: Project is vulnerable to: GHSA-vj42-xq3r-hr3r","Warn: Project is vulnerable to: PYSEC-2021-70 / GHSA-vqcj-wrf2-7v73","Warn: Project is vulnerable to: PYSEC-2022-9 / GHSA-xrcv-f9gm-v42c","Warn: Project is vulnerable to: PYSEC-2023-175","Warn: Project is vulnerable to: GHSA-g7vv-2v7x-gj9p","Warn: Project is vulnerable to: GHSA-44cc-43rp-5947","Warn: Project is vulnerable to: GHSA-4m77-cmpx-vjc4","Warn: Project is vulnerable to: GHSA-9q39-rmj3-p4r2"],"documentation":{"short":"Determines if the project has open, known unfixed vulnerabilities.","url":"https://github.com/ossf/scorecard/blob/4feedb857ab8d82158aa9774bf8054df41992180/docs/checks.md#vulnerabilities"}}]},"last_synced_at":"2025-09-19T05:56:06.562Z","repository_id":37041648,"created_at":"2025-09-19T05:56:06.562Z","updated_at":"2025-09-19T05:56:06.562Z"},"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28964426,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-02-01T01:25:30.373Z","status":"online","status_checked_at":"2026-02-01T02:00:08.102Z","response_time":56,"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"}},"keywords":["dynamical-systems","finite-difference-method","partial-differential-equations","pdes","python","scientific-computing"],"created_at":"2025-10-21T20:30:03.997Z","updated_at":"2026-02-03T10:03:11.465Z","avatar_url":"https://github.com/zwicker-group.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# py-pde\n\n\u003cimg src=\"docs/source/_images/logo.png\" width=\"200em\" align=\"right\" /\u003e\n\n\n[![PyPI version](https://badge.fury.io/py/py-pde.svg)](https://badge.fury.io/py/py-pde)\n[![Conda Version](https://img.shields.io/conda/vn/conda-forge/py-pde.svg)](https://anaconda.org/conda-forge/py-pde)\n[![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](https://opensource.org/licenses/MIT)\n[![Build Status](https://github.com/zwicker-group/py-pde/actions/workflows/tests_all.yml/badge.svg)](https://github.com/zwicker-group/py-pde/actions/workflows/tests_all.yml)\n[![codecov](https://codecov.io/gh/zwicker-group/py-pde/branch/master/graph/badge.svg)](https://codecov.io/gh/zwicker-group/py-pde)\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/zwicker-group/py-pde/master?filepath=examples%2Fjupyter)\n[![Documentation Status](https://readthedocs.org/projects/py-pde/badge/?version=latest)](https://py-pde.readthedocs.io/en/latest/?badge=latest)\n[![DOI](https://joss.theoj.org/papers/10.21105/joss.02158/status.svg)](https://doi.org/10.21105/joss.02158)\n\n`py-pde` is a Python package for solving partial differential equations (PDEs). \nThe package provides classes for grids on which scalar and tensor fields can be\ndefined. The associated differential operators are computed using a\nnumba-compiled implementation of finite differences. This allows defining,\ninspecting, and solving typical PDEs that appear for instance in the study of\ndynamical systems in physics. The focus of the package lies on easy usage to\nexplore the behavior of PDEs. However, core computations can be compiled\ntransparently using numba for speed.\n\n[Try it online!](https://mybinder.org/v2/gh/zwicker-group/py-pde/master?filepath=examples%2Fjupyter)\n\n\nInstallation\n------------\n\n`py-pde` is available on `pypi`, so you should be able to install it through `pip`:\n\n```bash\npip install py-pde\n```\n\nIn order to have all features of the package available, you might want to \ninstall the following optional packages:\n\n```bash\npip install h5py pandas mpi4py numba-mpi\n```\n\nMoreover, `ffmpeg` needs to be installed for creating movies.\n\nAs an alternative, you can install `py-pde` through [conda](https://docs.conda.io/en/latest/)\nusing the [conda-forge](https://conda-forge.org/) channel:\n\n```bash\nconda install -c conda-forge py-pde\n```\n\nInstallation with `conda` includes all dependencies of `py-pde`.\n\nUsage\n-----\n\nA simple example showing the evolution of the diffusion equation in 2d:\n\n```python\nimport pde\n\ngrid = pde.UnitGrid([64, 64])                 # generate grid\nstate = pde.ScalarField.random_uniform(grid)  # generate initial condition\n\neq = pde.DiffusionPDE(diffusivity=0.1)        # define the pde\nresult = eq.solve(state, t_range=10)          # solve the pde\nresult.plot()                                 # plot the resulting field\n```\n\nPDEs can also be specified by simply writing expressions of the evolution rate.\nFor instance, the\n[Cahn-Hilliard equation](https://en.wikipedia.org/wiki/Cahn–Hilliard_equation)\ncan be implemented as\n```python\neq = pde.PDE({'c': 'laplace(c**3 - c - laplace(c))'})\n```\nwhich can be used in place of the `DiffusionPDE` in the example above.\n\n\nMore information\n----------------\n* Tutorial notebooks in the [tutorials folder](https://github.com/zwicker-group/py-pde/tree/master/examples/jupyter)\n* [Examples gallery](https://py-pde.readthedocs.io/en/latest/gallery.html)\n  with an overview of the capabilities of the package\n* The [Discussions on GitHub](https://github.com/zwicker-group/py-pde/discussions)\n* [Full documentation on readthedocs](https://py-pde.readthedocs.io/)\n  or as [a single PDF file](https://py-pde.readthedocs.io/_/downloads/en/latest/pdf/).\n* The [paper published in the Journal of Open Source Software](https://doi.org/10.21105/joss.02158)\n* [Practical tutorial on pattern formation in biological cells](https://github.com/zwicker-group/tutorial-pattern-formation-in-cells)\n\n \n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzwicker-group%2Fpy-pde","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzwicker-group%2Fpy-pde","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzwicker-group%2Fpy-pde/lists"}