Skip to content

Commit 16d6311

Browse files
docs: document new dump_* functions
1 parent 47aed59 commit 16d6311

File tree

3 files changed

+59
-0
lines changed

3 files changed

+59
-0
lines changed

docs/src/basics/Variable_metadata.md

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,6 +159,9 @@ lb, ub = getbounds(p) # operating on a vector, we get lower and upper bound vect
159159
b = getbounds(sys) # Operating on the system, we get a dict
160160
```
161161

162+
See also: [`ModelingToolkit.dump_variable_metadata`](@ref), [`ModelingToolkit.dump_parameters`](@ref),
163+
[`ModelingToolkit.dump_unknowns`](@ref).
164+
162165
## Index
163166

164167
```@index
@@ -172,3 +175,9 @@ Modules = [ModelingToolkit]
172175
Pages = ["variables.jl"]
173176
Private = false
174177
```
178+
179+
```@docs
180+
ModelingToolkit.dump_variable_metadata
181+
ModelingToolkit.dump_parameters
182+
ModelingToolkit.dump_unknowns
183+
```

src/systems/abstractsystem.jl

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2147,6 +2147,25 @@ function process_parameter_dependencies(pdeps, ps)
21472147
return pdeps, ps
21482148
end
21492149

2150+
"""
2151+
dump_parameters(sys::AbstractSystem)
2152+
2153+
Return an array of `NamedTuple`s containing the metadata associated with each parameter in
2154+
`sys`. Also includes the default value of the parameter, if provided.
2155+
2156+
```@example
2157+
using ModelingToolkit
2158+
using DynamicQuantities
2159+
using ModelingToolkit: t, D
2160+
2161+
@parameters p = 1.0, [description = "My parameter", tunable = false] q = 2.0, [description = "Other parameter"]
2162+
@variables x(t) = 3.0 [unit = u"m"]
2163+
@named sys = ODESystem(Equation[], t, [x], [p, q])
2164+
ModelingToolkit.dump_parameters(sys)
2165+
```
2166+
2167+
See also: [`ModelingToolkit.dump_variable_metadata`](@ref), [`ModelingToolkit.dump_unknowns`](@ref)
2168+
"""
21502169
function dump_parameters(sys::AbstractSystem)
21512170
defs = defaults(sys)
21522171
map(dump_variable_metadata.(parameters(sys))) do meta
@@ -2157,6 +2176,25 @@ function dump_parameters(sys::AbstractSystem)
21572176
end
21582177
end
21592178

2179+
"""
2180+
dump_unknowns(sys::AbstractSystem)
2181+
2182+
Return an array of `NamedTuple`s containing the metadata associated with each unknown in
2183+
`sys`. Also includes the default value of the unknown, if provided.
2184+
2185+
```@example
2186+
using ModelingToolkit
2187+
using DynamicQuantities
2188+
using ModelingToolkit: t, D
2189+
2190+
@parameters p = 1.0, [description = "My parameter", tunable = false] q = 2.0, [description = "Other parameter"]
2191+
@variables x(t) = 3.0 [unit = u"m"]
2192+
@named sys = ODESystem(Equation[], t, [x], [p, q])
2193+
ModelingToolkit.dump_unknowns(sys)
2194+
```
2195+
2196+
See also: [`ModelingToolkit.dump_variable_metadata`](@ref), [`ModelingToolkit.dump_parameters`](@ref)
2197+
"""
21602198
function dump_unknowns(sys::AbstractSystem)
21612199
defs = defaults(sys)
21622200
map(dump_variable_metadata.(unknowns(sys))) do meta

src/variables.jl

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,18 @@ Symbolics.option_to_metadata_type(::Val{:irreducible}) = VariableIrreducible
1515
Symbolics.option_to_metadata_type(::Val{:state_priority}) = VariableStatePriority
1616
Symbolics.option_to_metadata_type(::Val{:misc}) = VariableMisc
1717

18+
"""
19+
dump_variable_metadata(var)
20+
21+
Return all the metadata associated with symbolic variable `var` as a `NamedTuple`.
22+
23+
```@example
24+
using ModelingToolkit
25+
26+
@parameters p::Int [description = "My description", bounds = (0.5, 1.5)]
27+
ModelingToolkit.dump_variable_metadata(p)
28+
```
29+
"""
1830
function dump_variable_metadata(var)
1931
uvar = unwrap(var)
2032
vartype, name = get(uvar.metadata, VariableSource, (:unknown, :unknown))

0 commit comments

Comments
 (0)