diff --git a/README.md b/README.md index 665e3914..feafa9f6 100644 --- a/README.md +++ b/README.md @@ -34,7 +34,7 @@ [downloads-total-url]: https://juliapkgstats.com/pkg/OptimalControl The OptimalControl.jl package is the root package of the [control-toolbox ecosystem](https://github.com/control-toolbox). -The control-toolbox ecosystem gathers Julia packages for mathematical control and applications. It aims to provide tools to model and solve optimal control problems with ordinary differential equations by direct and indirect methods. +The control-toolbox ecosystem gathers Julia packages for mathematical control and applications. It aims to provide tools to model and solve optimal control problems with ordinary differential equations by direct and indirect methods, both on CPU and GPU. | **Name** | **Badge** | :-------------------|:------------------| diff --git a/docs/make.jl b/docs/make.jl index d5dc2962..d0230e35 100644 --- a/docs/make.jl +++ b/docs/make.jl @@ -111,7 +111,7 @@ cp("./docs/Project.toml", "./docs/src/assets/Project.toml"; force=true) repo_url = "github.com/control-toolbox/OptimalControl.jl" makedocs(; - draft=false, # if draft is true, then the julia code from .md is not executed + draft=true, # if draft is true, then the julia code from .md is not executed # to disable the draft mode in a specific markdown file, use the following: # ```@meta # Draft = false @@ -138,6 +138,7 @@ makedocs(; "Problem characteristics" => "manual-model.md", "Set an initial guess" => "manual-initial-guess.md", "Solve a problem" => "manual-solve.md", + "Solve on GPU" => "manual-solve-gpu.md", "Solution characteristics" => "manual-solution.md", "Plot a solution" => "manual-plot.md", "Compute flows" => [ @@ -163,4 +164,4 @@ makedocs(; plugins=[links], ) -deploydocs(; repo=repo_url * ".git", devbranch="main") +deploydocs(; repo = repo_url * ".git", devbranch = "main", push_preview = true) diff --git a/docs/src/index.md b/docs/src/index.md index 962b7613..1b59d22f 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -1,6 +1,6 @@ # OptimalControl.jl -The OptimalControl.jl package is the root package of the [control-toolbox ecosystem](https://github.com/control-toolbox). The control-toolbox ecosystem gathers Julia packages for mathematical control and applications. It aims to provide tools to model and solve optimal control problems with ordinary differential equations by direct and indirect methods. +The OptimalControl.jl package is the root package of the [control-toolbox ecosystem](https://github.com/control-toolbox). The control-toolbox ecosystem gathers Julia packages for mathematical control and applications. It aims to provide tools to model and solve optimal control problems with ordinary differential equations by direct and indirect methods, both on CPU and GPU. ## Installation diff --git a/docs/src/manual-abstract.md b/docs/src/manual-abstract.md index 19a473fd..2ab6d2fa 100644 --- a/docs/src/manual-abstract.md +++ b/docs/src/manual-abstract.md @@ -4,7 +4,7 @@ The full grammar of [OptimalControl.jl](https://control-toolbox.org/OptimalContr - pure Julia (and, as such, effortlessly analysed by the standard Julia parser), - as close as possible to the mathematical description of an optimal control problem. -While the syntax will be transparent to those users familiar with Julia expressions (`Expr`'s), we provide examples for every case that should be widely understandable. We rely heavily on [MLStyle.jl](https://thautwarm.github.io/MLStyle.jl) and its pattern matching abilities 👍🏽 for the semantic pass. Abstract definitions use the macro [`@def`](@ref). +While the syntax will be transparent to those users familiar with Julia expressions (`Expr`'s), we provide examples for every case that should be widely understandable. We rely heavily on [MLStyle.jl](https://thautwarm.github.io/MLStyle.jl) and its pattern matching abilities 👍🏽 both for the syntactic and semantic pass. Abstract definitions use the macro [`@def`](@ref). ## [Variable](@id manual-abstract-variable) diff --git a/docs/src/manual-solve-gpu.md b/docs/src/manual-solve-gpu.md new file mode 100644 index 00000000..456a3db1 --- /dev/null +++ b/docs/src/manual-solve-gpu.md @@ -0,0 +1,13 @@ +# [Solve on GPU](@id manual-solve-gpu) + +```@meta +CollapsedDocStrings = false +``` + +In this manual, we explain how to use the [`solve`](@ref) function from [OptimalControl.jl](https://control-toolbox.org/OptimalControl.jl) on GPU. We rely on [MadNLP](https://github.com/MadNLP/MadNLP.jl) and currently only provide support for NVIDIA thanks to [CUDA.jl](https://github.com/JuliaGPU/CUDA.jl). + +```@docs; canonical=false +solve(::CTModels.Model, ::Symbol...) +``` + +TBC