{"id":32153613,"url":"https://github.com/sciml/boundaryvaluediffeq.jl","last_synced_at":"2026-05-02T02:03:59.071Z","repository":{"id":38884102,"uuid":"86002678","full_name":"SciML/BoundaryValueDiffEq.jl","owner":"SciML","description":"Boundary value problem (BVP) solvers for scientific machine learning (SciML)","archived":false,"fork":false,"pushed_at":"2026-04-23T02:59:32.000Z","size":8039,"stargazers_count":58,"open_issues_count":40,"forks_count":42,"subscribers_count":8,"default_branch":"master","last_synced_at":"2026-04-23T03:25:29.159Z","etag":null,"topics":["bvp","differential-equations","differentialequations","gpu","neural-bvp","neural-differential-equations","neural-ode","scientific-machine-learning","sciml"],"latest_commit_sha":null,"homepage":"https://docs.sciml.ai/BoundaryValueDiffEq/dev/","language":"Julia","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/SciML.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.bib","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},"funding":{"github":"SciML"}},"created_at":"2017-03-23T22:16:14.000Z","updated_at":"2026-04-23T01:54:32.000Z","dependencies_parsed_at":"2026-04-06T08:00:54.162Z","dependency_job_id":null,"html_url":"https://github.com/SciML/BoundaryValueDiffEq.jl","commit_stats":{"total_commits":819,"total_committers":27,"mean_commits":"30.333333333333332","dds":0.6459096459096458,"last_synced_commit":"3da7cb96ecff389b2b956c9cca27b391892af68e"},"previous_names":[],"tags_count":145,"template":false,"template_full_name":null,"purl":"pkg:github/SciML/BoundaryValueDiffEq.jl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SciML%2FBoundaryValueDiffEq.jl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SciML%2FBoundaryValueDiffEq.jl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SciML%2FBoundaryValueDiffEq.jl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SciML%2FBoundaryValueDiffEq.jl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/SciML","download_url":"https://codeload.github.com/SciML/BoundaryValueDiffEq.jl/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/SciML%2FBoundaryValueDiffEq.jl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32345816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-26T23:26:28.701Z","status":"online","status_checked_at":"2026-04-27T02:00:06.769Z","response_time":128,"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":["bvp","differential-equations","differentialequations","gpu","neural-bvp","neural-differential-equations","neural-ode","scientific-machine-learning","sciml"],"created_at":"2025-10-21T11:39:19.800Z","updated_at":"2026-04-27T17:01:09.630Z","avatar_url":"https://github.com/SciML.png","language":"Julia","funding_links":["https://github.com/sponsors/SciML"],"categories":[],"sub_categories":[],"readme":"# BoundaryValueDiffEq\n\n[![Join the chat at https://julialang.zulipchat.com #sciml-bridged](https://img.shields.io/static/v1?label=Zulip\u0026message=chat\u0026color=9558b2\u0026labelColor=389826)](https://julialang.zulipchat.com/#narrow/stream/279055-sciml-bridged)\n[![Global Docs](https://img.shields.io/badge/docs-SciML-blue.svg)](https://docs.sciml.ai/BoundaryValueDiffEq/dev/)\n\n[![Build Status](https://github.com/SciML/BoundaryValueDiffEq.jl/workflows/CI/badge.svg)](https://github.com/SciML/BoundaryValueDiffEq.jl/actions?query=workflow%3ACI)\n[![codecov](https://codecov.io/gh/SciML/BoundaryValueDiffEq.jl/branch/master/graph/badge.svg)](https://codecov.io/gh/SciML/BoundaryValueDiffEq.jl)\n[![Package Downloads](https://shields.io/endpoint?url=https://pkgs.genieframework.com/api/v1/badge/BoundaryValueDiffEq)](https://pkgs.genieframework.com?packages=BoundaryValueDiffEq)\n[![Aqua QA](https://raw.githubusercontent.com/JuliaTesting/Aqua.jl/master/badge.svg)](https://github.com/JuliaTesting/Aqua.jl)\n\n[![ColPrac: Contributor's Guide on Collaborative Practices for Community Packages](https://img.shields.io/badge/ColPrac-Contributor%27s%20Guide-blueviolet)](https://github.com/SciML/ColPrac)\n[![SciML Code Style](https://img.shields.io/static/v1?label=code%20style\u0026message=SciML\u0026color=9558b2\u0026labelColor=389826)](https://github.com/SciML/SciMLStyle)\n\nBoundaryValueDiffEq.jl is a component package in the DifferentialEquations ecosystem. It holds the\nboundary value problem solvers and utilities. While completely independent\nand usable on its own, users interested in using this\nfunctionality should check out [DifferentialEquations.jl](https://github.com/JuliaDiffEq/DifferentialEquations.jl).\n\n## API\n\nBoundaryValueDiffEq.jl is part of the SciML common interface, but can be used independently of DifferentialEquations.jl. The only requirement is that the user passes a BoundaryValueDiffEq.jl algorithm to solve. For example, we can solve the [BVP tutorial from the documentation](https://docs.sciml.ai/DiffEqDocs/stable/tutorials/bvp_example/) using the `MIRK4()` algorithm:\n\n```julia\nusing BoundaryValueDiffEq\ntspan = (0.0, pi / 2)\nfunction simplependulum!(du, u, p, t)\n    θ = u[1]\n    dθ = u[2]\n    du[1] = dθ\n    du[2] = -9.81 * sin(θ)\nend\nfunction bc!(residual, u, p, t)\n    residual[1] = u(pi / 4)[1] + pi / 2\n    residual[2] = u(pi / 2)[1] - pi / 2\nend\nprob = BVProblem(simplependulum!, bc!, [pi / 2, pi / 2], tspan)\nsol = solve(prob, MIRK4(), dt = 0.05)\n```\n\n## Available Solvers\n\nFor the list of available solvers, please refer to the [DifferentialEquations.jl BVP Solvers page](https://docs.sciml.ai/DiffEqDocs/stable/solvers/bvp_solve/). For options for the `solve` command, see the [common solver options page](https://docs.sciml.ai/DiffEqDocs/stable/basics/common_solver_opts/).\n\n## Controlling Precompilation\n\nPrecompilation can be controlled via `Preferences.jl`\n\n  - `PrecompileMIRK` -- Precompile the MIRK2 - MIRK6 algorithms (default: `true`).\n  - `PrecompileShooting` -- Precompile the single shooting algorithms (default: `true`).\n  - `PrecompileMultipleShooting` -- Precompile the multiple shooting algorithms (default: `true`).\n  - `PrecompileMIRKNLLS` -- Precompile the MIRK2 - MIRK6 algorithms for under-determined and over-determined BVPs (default: `false`).\n  - `PrecompileShootingNLLS` -- Precompile the single shooting algorithms for under-determined and over-determined BVPs (default: `true`).\n  - `PrecompileMultipleShootingNLLS` -- Precompile the multiple shooting algorithms for under-determined and over-determined BVPs (default: `true` ).\n\nTo set these preferences before loading the package, do the following (replacing `PrecompileShooting` with the preference you want to set, or pass in multiple pairs to set them together):\n\n```julia\nusing Preferences, UUIDs\nPreferences.set_preferences!(UUID(\"764a87c0-6b3e-53db-9096-fe964310641d\"), \"PrecompileShooting\" =\u003e false)\n```\n\n## Running Benchmarks Locally\n\nWe include a small set of benchmarks in the `benchmarks` folder. These are not extensive and mainly used to track regressions during development. For more extensive benchmarks, see the [SciMLBenchmarks](https://github.com/SciML/SciMLBenchmarks.jl) repository.\n\nTo run benchmarks locally install [AirspeedVelocity.jl](https://github.com/MilesCranmer/AirspeedVelocity.jl) and run the following command in the package directory:\n\n```bash\nbenchpkg BoundaryValueDiffEq --rev=\"master,\u003cgit sha for your commit\u003e\" --bench-on=\"master\"\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsciml%2Fboundaryvaluediffeq.jl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsciml%2Fboundaryvaluediffeq.jl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsciml%2Fboundaryvaluediffeq.jl/lists"}