Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bifurcation kit extension #2300

Closed
wants to merge 63 commits into from
Closed
Show file tree
Hide file tree
Changes from 2 commits
Commits
Show all changes
63 commits
Select commit Hold shift + click to select a range
e56de20
split parameters linearize bug
Sep 25, 2023
cee69ed
added old MatrixGain definition for comparison
Sep 25, 2023
b4f821e
new promote_to_concrete
Sep 25, 2023
e62e3ee
improvements to protmote_to_concrete
Sep 26, 2023
ee4deb9
remake issue
Sep 26, 2023
a9c56b6
Suppose heterogeneous parameters for linearize and remake
YingboMa Sep 26, 2023
1a96915
Fix zero_dummy_der
YingboMa Sep 26, 2023
023e024
Relax tests
YingboMa Sep 26, 2023
119cb27
Don't use SciMLBase 2
YingboMa Sep 26, 2023
6bb0b2e
Merge branch 'master' into bgc/split_params_bug
YingboMa Oct 2, 2023
29aec7b
Fix eq ordering
YingboMa Oct 2, 2023
addf335
Change bounds back
YingboMa Oct 2, 2023
2e4c1bb
Format
YingboMa Oct 2, 2023
2a553a7
Be careful with string sorting
YingboMa Oct 2, 2023
f9ea3a6
Update LaTeXify ref tests
YingboMa Oct 2, 2023
c2f92f1
init
TorkelE Oct 4, 2023
b05bc5f
makefunction
TorkelE Oct 4, 2023
f2d80b0
1.6 has a different term ordering
YingboMa Oct 4, 2023
ae05041
Fix DiscreteProblem construction
YingboMa Oct 4, 2023
2309f9f
Merge pull request #2283 from SciML/bgc/split_params_bug
YingboMa Oct 4, 2023
fb7c3af
Update Project.toml
YingboMa Oct 4, 2023
6e795b8
Fix recursive structure and setup precompilation
ChrisRackauckas Oct 6, 2023
7949761
Merge pull request #2301 from SciML/precompile_workload
ChrisRackauckas Oct 6, 2023
c5bd821
docs(refactor): update acausal components tutorial with `@mtkmodel`
ven-k Sep 27, 2023
6ac545d
docs(refactor): update structural identifiability tutorial with `@mtk…
ven-k Sep 27, 2023
278698b
docs(fix): set a `u0` within the constraint for the optimization problem
ven-k Sep 28, 2023
94fb749
docs(refactor): refactor "Getting Started" section with `@mtkmodel`
ven-k Oct 3, 2023
438a225
docs(refactor): rename the `@mtkmodel` docs page as "Defining compone…
ven-k Oct 3, 2023
ff2a778
docs: reword Components and Connectors and elaborate Connectors and M…
ven-k Oct 3, 2023
2ef4752
docs: add `connect` section to Variable metadata
ven-k Oct 3, 2023
3034c9f
Merge pull request #2286 from ven-k/vkb/mtkmodel-examples
ChrisRackauckas Oct 8, 2023
c4868e3
Add `@mtkbuild` greatly simplify the tutorials
ChrisRackauckas Oct 8, 2023
ac75e77
Add `parent` to hierarchical systems and set it in `structural_simplify`
YingboMa Oct 8, 2023
b0c2938
Format
YingboMa Oct 8, 2023
c3c030e
Add "docs/src/assets/*.toml" to gitignore
YingboMa Oct 8, 2023
cd0f04a
Add tests
YingboMa Oct 8, 2023
0d5ab59
Fix CI
YingboMa Oct 8, 2023
7370a45
fix tutorial syntax
ChrisRackauckas Oct 8, 2023
137d3d1
Support implicit name unpack in `at extend`
YingboMa Oct 8, 2023
c679dd9
fix acausal tutorial
ChrisRackauckas Oct 8, 2023
17a3b6a
Merge pull request #2305 from SciML/mtkbuild
ChrisRackauckas Oct 8, 2023
3d83c4c
one more tutorial simplification
ChrisRackauckas Oct 8, 2023
0a9dca1
Merge branch 'master' into myb/extend
YingboMa Oct 8, 2023
73f9e0a
Stop using `at testset` macro
YingboMa Oct 8, 2023
718ae81
Remove ODAEProblem from acausal tutorial
ChrisRackauckas Oct 8, 2023
0bcdee8
Merge pull request #2308 from SciML/odaeproblem
YingboMa Oct 8, 2023
379161f
Merge pull request #2307 from SciML/tuts
YingboMa Oct 8, 2023
314bb1d
Merge pull request #2306 from SciML/myb/extend
YingboMa Oct 9, 2023
298a9a5
patch system names
ChrisRackauckas Oct 9, 2023
bdc45d1
Simplify `at extend`
YingboMa Oct 9, 2023
1152f30
update docs for new extension syntax
ChrisRackauckas Oct 9, 2023
9e45fee
fix for simplified extend
ChrisRackauckas Oct 9, 2023
563f04f
Merge pull request #2310 from SciML/myb/extend
ChrisRackauckas Oct 9, 2023
2c17d63
Merge pull request #2309 from SciML/extend
ChrisRackauckas Oct 9, 2023
d4239a7
Update Project.toml
ChrisRackauckas Oct 9, 2023
bc93796
non canonical docstrings
ArnoStrouwen Oct 14, 2023
b54b05b
update contributing docs
ArnoStrouwen Oct 14, 2023
0ef0bb4
Merge pull request #2315 from ArnoStrouwen/docs
ChrisRackauckas Oct 14, 2023
2c86306
updates
TorkelE Oct 14, 2023
3249aeb
init
TorkelE Oct 4, 2023
7f5d8be
makefunction
TorkelE Oct 4, 2023
c4a1a20
updates
TorkelE Oct 14, 2023
918f5e6
Merge remote-tracking branch 'TorkelE/BifurcationKitExtension' into B…
TorkelE Oct 16, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,11 @@ UnPack = "3a884ed6-31ef-47d7-9d2a-63182c4928ed"
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"

[weakdeps]
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
DeepDiffs = "ab62b9b5-e342-54a8-a765-a90f495de1a6"

[extensions]
MTKBifurcationKitExt = "BifurcationKit"
MTKDeepDiffsExt = "DeepDiffs"

[compat]
Expand Down
40 changes: 40 additions & 0 deletions ext/MTKBifurcationKitExt.jl
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
module MTKBifurcationKitExt
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fix the naming.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what should I name it?


println("BifurcationKit extension loaded")

### Preparations ###

# Imports
using ModelingToolkit, Setfield
import BifurcationKit

### Creates BifurcationProblem Overloads ###

# When input is a NonlinearSystem.
function BifurcationKit.BifurcationProblem(nsys::NonlinearSystem, u0_guess, p_start, bif_par, args...; plot_var=nothing, record_from_solution=BifurcationKit.record_sol_default, kwargs...)

Check warning on line 14 in ext/MTKBifurcationKitExt.jl

View check run for this annotation

Codecov / codecov/patch

ext/MTKBifurcationKitExt.jl#L14

Added line #L14 was not covered by tests
# Creates F and J functions.
ofun = NonlinearFunction(nsys; jac=true)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

is the jac required? The user should request it if it's not.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I will make it optional.

F = ofun.f
J = ofun.jac

Check warning on line 18 in ext/MTKBifurcationKitExt.jl

View check run for this annotation

Codecov / codecov/patch

ext/MTKBifurcationKitExt.jl#L16-L18

Added lines #L16 - L18 were not covered by tests

# Computes bifurcation parameter and plot var indexes.
bif_idx = findfirst(isequal(bif_par), parameters(nsys))
if !isnothing(plot_var)
plot_idx = findfirst(isequal(plot_var), states(nsys))
record_from_solution = (x, p) -> x[plot_idx]

Check warning on line 24 in ext/MTKBifurcationKitExt.jl

View check run for this annotation

Codecov / codecov/patch

ext/MTKBifurcationKitExt.jl#L21-L24

Added lines #L21 - L24 were not covered by tests
end

# Converts the input state guess.
u0_guess = ModelingToolkit.varmap_to_vars(u0_guess, states(nsys))

Check warning on line 28 in ext/MTKBifurcationKitExt.jl

View check run for this annotation

Codecov / codecov/patch

ext/MTKBifurcationKitExt.jl#L28

Added line #L28 was not covered by tests

return BifurcationKit.BifurcationProblem(F, u0_guess, [p_start], (@lens _[1]), args...; record_from_solution = record_from_solution, J = J, kwargs...)

Check warning on line 30 in ext/MTKBifurcationKitExt.jl

View check run for this annotation

Codecov / codecov/patch

ext/MTKBifurcationKitExt.jl#L30

Added line #L30 was not covered by tests
end

# When input is a ODESystem.
function BifurcationKit.BifurcationProblem(osys::ODESystem, u0, p, args...; kwargs...)
return BifurcationProblem(convert(NonlinearProblem, osys), args...; kwargs...)

Check warning on line 35 in ext/MTKBifurcationKitExt.jl

View check run for this annotation

Codecov / codecov/patch

ext/MTKBifurcationKitExt.jl#L34-L35

Added lines #L34 - L35 were not covered by tests
end



end # module
Loading