Skip to content

Commit 1c5a66b

Browse files
Merge pull request #279 from SciML/montecarlounitful
Support nesting Unitful and MonteCarloMeasurements
2 parents 6b7f7fe + 2579f61 commit 1c5a66b

File tree

4 files changed

+32
-0
lines changed

4 files changed

+32
-0
lines changed

Project.toml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,13 @@ Tables = "bd369af6-aec1-5ad0-b16a-f7cc5008161c"
1919

2020
[weakdeps]
2121
Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7"
22+
MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca"
2223
Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c"
2324
Zygote = "e88e6eb3-aa80-5325-afca-941959d7151f"
2425

2526
[extensions]
2627
RecursiveArrayToolsMeasurementsExt = "Measurements"
28+
RecursiveArrayToolsMonteCarloMeasurementsExt = "MonteCarloMeasurements"
2729
RecursiveArrayToolsTrackerExt = "Tracker"
2830
RecursiveArrayToolsZygoteExt = "Zygote"
2931

@@ -46,6 +48,7 @@ Aqua = "4c88cf16-eb10-579e-8560-4a9242c79595"
4648
ForwardDiff = "f6369f11-7733-5829-9624-2563aa707210"
4749
LabelledArrays = "2ee39098-c373-598a-b85f-a56591580800"
4850
Measurements = "eff96d63-e80a-5855-80a2-b1b0885c5ab7"
51+
MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca"
4952
NLsolve = "2774e3e8-f4cf-5e23-947b-6d7e65073b56"
5053
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
5154
Pkg = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f"
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
module RecursiveArrayToolsMeasurementsExt
2+
3+
import RecursiveArrayTools
4+
isdefined(Base, :get_extension) ? (import Measurements) : (import ..Measurements)
5+
6+
function RecursiveArrayTools.recursive_unitless_bottom_eltype(a::Type{
7+
<:MonteCarloMeasurements.Particles
8+
})
9+
typeof(one(a))
10+
end
11+
12+
function RecursiveArrayTools.recursive_unitless_eltype(a::Type{<:MonteCarloMeasurements.Particles})
13+
typeof(one(a))
14+
end
15+
16+
end

test/downstream/Project.toml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
[deps]
22
ModelingToolkit = "961ee093-0014-501f-94e3-6117800e7a78"
3+
MonteCarloMeasurements = "0987c9cc-fe09-11e8-30f0-b96dd679fdca"
34
OrdinaryDiffEq = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed"
5+
Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
46
Tracker = "9f7883ad-71c0-57eb-9f7f-b5c9e6d3789c"
57

68
[compat]
79
ModelingToolkit = "8.33"
10+
MonteCarloMeasurements = "1.1"
811
OrdinaryDiffEq = "6.31"
12+
Unitful = "1.17"
913
Tracker = "0.2"
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
using Unitful,MonteCarloMeasurements,OrdinaryDiffEq
2+
3+
g3 = 9.81u"m/s^2"
4+
du4 = [10.0±.1,10.0±.1].*u"m/s"
5+
tspan3 = (0.0,1.0).*u"s"
6+
f3(du,u,p,t) = [0.0u"m/s^2",-g3]
7+
u3 = [0.0,0.0].*u"m"
8+
problem4 = SecondOrderODEProblem(f3,du4,u3,tspan3)
9+
solve(problem4, Tsit5())

0 commit comments

Comments
 (0)