From 3f3dee27826c045ba9fa22add8cbff8972484979 Mon Sep 17 00:00:00 2001 From: Martin Otter Date: Sun, 4 Jun 2023 09:24:18 +0200 Subject: [PATCH 1/8] Adapted _buildFunction to Modia 0.11.0 --- Project.toml | 4 ++-- src/Modia3D.jl | 4 ++-- src/ModiaInterface/buildModel3D.jl | 18 ++++++++++++------ 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/Project.toml b/Project.toml index 2ffc8a8..d5c9aaf 100644 --- a/Project.toml +++ b/Project.toml @@ -1,7 +1,7 @@ authors = ["Andrea Neumayr ", "Martin Otter ", "Gerhard Hippmann "] name = "Modia3D" uuid = "07f2c1e0-90b0-56cf-bda7-b44b56e34eed" -version = "0.12.0" +version = "0.12.1" [compat] Colors = "0.12, 0.11, 0.10" @@ -12,7 +12,7 @@ HTTP = "0.9" JSON = "0.21" Measurements = "2" MeshIO = "0.4.10" -Modia = "0.10.0" +Modia = "0.11.0, 0.10.0" MonteCarloMeasurements = "1" OrderedCollections = "1" Reexport = "1.0" diff --git a/src/Modia3D.jl b/src/Modia3D.jl index ab683ff..00108d8 100644 --- a/src/Modia3D.jl +++ b/src/Modia3D.jl @@ -4,8 +4,8 @@ module Modia3D const path = dirname(dirname(@__FILE__)) # Absolute path of package directory -const Version = "0.12.0" -const Date = "2023-05-30" +const Version = "0.12.1" +const Date = "2023-06-04" println("\nImporting Modia3D Version $Version ($Date)") diff --git a/src/ModiaInterface/buildModel3D.jl b/src/ModiaInterface/buildModel3D.jl index 1a9620c..02c6d89 100644 --- a/src/ModiaInterface/buildModel3D.jl +++ b/src/ModiaInterface/buildModel3D.jl @@ -65,10 +65,19 @@ equations = :[ ] ``` """ -function build_Model3D!(model::AbstractDict, FloatType::Type, TimeType::Type, unitless::Bool, - ID, modelPath::Union{Expr,Symbol,Nothing}, - buildOption::String = "ComputeGeneralizedForces") # ComputeJointAccelerations, ComputeJointAccelerationsOn +function build_Model3D!(model::AbstractDict, modelModule, FloatType::Type, TimeType::Type, + instantiateModelOptions::OrderedDict{Symbol,Any}, + ID, modelPath::Union{Expr,Symbol,Nothing}, + buildOption::String = "ComputeGeneralizedForces") # ComputeJointAccelerations, ComputeJointAccelerationsOn @assert(buildOption == "ComputeGeneralizedForces") + #println("modelPath = $modelPath") + modelPathAsString = isnothing(modelPath) ? "" : string(modelPath) + unitless = instantiateModelOptions[:unitless] + if !unitless + source = instantiateModelOptions[:source] + modelName = instantiateModelOptions[:modelName] + error("\nError from Model3D(..) in model $modelName at $source:\n@instantiatedModel(..., unitless=true, ...) required, because units not yet fully supported by Model3D.\n") + end jointInfo = [] getJointInfo!(model, jointInfo) @@ -111,9 +120,6 @@ function build_Model3D!(model::AbstractDict, FloatType::Type, TimeType::Type, un jointStatesFreeMotion_isrot123 = Expr[] freeMotionIndices = OrderedCollections.OrderedDict{String,Int}() - #println("modelPath = $modelPath") - modelPathAsString = isnothing(modelPath) ? "" : string(modelPath) - i=1 for joint in jointInfo path = joint.path From 13f75814941bb745e9acdfe2ebe543e2efd9487d Mon Sep 17 00:00:00 2001 From: Martin Otter Date: Sun, 4 Jun 2023 09:25:50 +0200 Subject: [PATCH 2/8] Removed Manifest.toml file --- Manifest.toml | 1259 ------------------------------------------------- 1 file changed, 1259 deletions(-) delete mode 100644 Manifest.toml diff --git a/Manifest.toml b/Manifest.toml deleted file mode 100644 index ca32961..0000000 --- a/Manifest.toml +++ /dev/null @@ -1,1259 +0,0 @@ -# This file is machine-generated - editing it directly is not advised - -julia_version = "1.8.5" -manifest_format = "2.0" -project_hash = "1d9efbfb04ea711879cc97dd219cc8ec9e376173" - -[[deps.ADTypes]] -git-tree-sha1 = "dcfdf328328f2645531c4ddebf841228aef74130" -uuid = "47edcb42-4c32-4615-8424-f2b9edc5f35b" -version = "0.1.3" - -[[deps.Adapt]] -deps = ["LinearAlgebra", "Requires"] -git-tree-sha1 = "76289dc51920fdc6e0013c872ba9551d54961c24" -uuid = "79e6a3ab-5dfb-504d-930d-738a2a938a0e" -version = "3.6.2" - -[[deps.ArgTools]] -uuid = "0dad84c5-d112-42e6-8d28-ef12dabb789f" -version = "1.1.1" - -[[deps.ArnoldiMethod]] -deps = ["LinearAlgebra", "Random", "StaticArrays"] -git-tree-sha1 = "62e51b39331de8911e4a7ff6f5aaf38a5f4cc0ae" -uuid = "ec485272-7323-5ecc-a04f-4719b315124d" -version = "0.2.0" - -[[deps.ArrayInterface]] -deps = ["Adapt", "LinearAlgebra", "Requires", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "917286faa2abb288796e75b88ca67edc016f3219" -uuid = "4fba245c-0d91-5ea0-9b3e-6abc04ee57a9" -version = "7.4.5" - -[[deps.ArrayInterfaceCore]] -deps = ["LinearAlgebra", "SnoopPrecompile", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "e5f08b5689b1aad068e01751889f2f615c7db36d" -uuid = "30b0a656-2188-435a-8636-2ec0e6a096e2" -version = "0.1.29" - -[[deps.ArrayLayouts]] -deps = ["FillArrays", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "4efc22e4c299e49995a38d503d9dbb0544a37838" -uuid = "4c555306-a7a7-4459-81d9-ec55ddd5c99a" -version = "1.0.4" - -[[deps.Artifacts]] -uuid = "56f22d72-fd6d-98f1-02f0-08ddc0907c33" - -[[deps.BandedMatrices]] -deps = ["ArrayLayouts", "FillArrays", "LinearAlgebra", "PrecompileTools", "SparseArrays"] -git-tree-sha1 = "b18febf0a34ba9192fdcd4fd2c57b535a48d3dd4" -uuid = "aae01518-5342-5314-be14-df237901396f" -version = "0.17.24" - -[[deps.Base64]] -uuid = "2a0f44e3-6c83-55bd-87e4-b1978d98bd5f" - -[[deps.BitTwiddlingConvenienceFunctions]] -deps = ["Static"] -git-tree-sha1 = "0c5f81f47bbbcf4aea7b2959135713459170798b" -uuid = "62783981-4cbd-42fc-bca8-16325de8dc4b" -version = "0.1.5" - -[[deps.BoundaryValueDiffEq]] -deps = ["BandedMatrices", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "NLsolve", "Reexport", "SciMLBase", "SparseArrays"] -git-tree-sha1 = "ed8e837bfb3d1e3157022c9636ec1c722b637318" -uuid = "764a87c0-6b3e-53db-9096-fe964310641d" -version = "2.11.0" - -[[deps.CEnum]] -git-tree-sha1 = "eb4cb44a499229b3b8426dcfb5dd85333951ff90" -uuid = "fa961155-64e5-5f13-b03f-caf6b980ea82" -version = "0.4.2" - -[[deps.CPUSummary]] -deps = ["CpuId", "IfElse", "PrecompileTools", "Static"] -git-tree-sha1 = "89e0654ed8c7aebad6d5ad235d6242c2d737a928" -uuid = "2a0fbf3d-bb9c-48f3-b0a9-814d99fd7ab9" -version = "0.2.3" - -[[deps.Calculus]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "f641eb0a4f00c343bbc32346e1217b86f3ce9dad" -uuid = "49dc2e85-a5d0-5ad3-a950-438e2897f1b9" -version = "0.5.1" - -[[deps.ChainRulesCore]] -deps = ["Compat", "LinearAlgebra", "SparseArrays"] -git-tree-sha1 = "e30f2f4e20f7f186dc36529910beaedc60cfa644" -uuid = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4" -version = "1.16.0" - -[[deps.ChangesOfVariables]] -deps = ["LinearAlgebra", "Test"] -git-tree-sha1 = "f84967c4497e0e1955f9a582c232b02847c5f589" -uuid = "9e997f8a-9a97-42d5-a9f1-ce6bfc15e2c0" -version = "0.1.7" - -[[deps.CloseOpenIntervals]] -deps = ["Static", "StaticArrayInterface"] -git-tree-sha1 = "70232f82ffaab9dc52585e0dd043b5e0c6b714f1" -uuid = "fb6a15b2-703c-40df-9091-08a04967cfa9" -version = "0.1.12" - -[[deps.ColorTypes]] -deps = ["FixedPointNumbers", "Random"] -git-tree-sha1 = "eb7f0f8307f71fac7c606984ea5fb2817275d6e4" -uuid = "3da002f7-5984-5a60-b8a6-cbb66c0b333f" -version = "0.11.4" - -[[deps.Colors]] -deps = ["ColorTypes", "FixedPointNumbers", "Reexport"] -git-tree-sha1 = "fc08e5930ee9a4e03f84bfb5211cb54e7769758a" -uuid = "5ae59095-9a9b-59fe-a467-6f913c188581" -version = "0.12.10" - -[[deps.CommonSolve]] -git-tree-sha1 = "9441451ee712d1aec22edad62db1a9af3dc8d852" -uuid = "38540f10-b2f7-11e9-35d8-d573e4eb0ff2" -version = "0.2.3" - -[[deps.CommonSubexpressions]] -deps = ["MacroTools", "Test"] -git-tree-sha1 = "7b8a93dba8af7e3b42fecabf646260105ac373f7" -uuid = "bbf7d656-a473-5ed7-a52c-81e309532950" -version = "0.3.0" - -[[deps.Compat]] -deps = ["Dates", "LinearAlgebra", "UUIDs"] -git-tree-sha1 = "7a60c856b9fa189eb34f5f8a6f6b5529b7942957" -uuid = "34da2185-b29b-5c13-b0c7-acf172513d20" -version = "4.6.1" - -[[deps.CompilerSupportLibraries_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "e66e0078-7015-5450-92f7-15fbd957f2ae" -version = "1.0.1+0" - -[[deps.ConstructionBase]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "738fec4d684a9a6ee9598a8bfee305b26831f28c" -uuid = "187b0558-2788-49d3-abe0-74a17ed4e7c9" -version = "1.5.2" - -[[deps.CpuId]] -deps = ["Markdown"] -git-tree-sha1 = "fcbb72b032692610bfbdb15018ac16a36cf2e406" -uuid = "adafc99b-e345-5852-983c-f28acb93d879" -version = "0.3.1" - -[[deps.Crayons]] -git-tree-sha1 = "249fe38abf76d48563e2f4556bebd215aa317e15" -uuid = "a8cc5b0e-0ffa-5ad4-8c14-923d3ee1735f" -version = "4.1.1" - -[[deps.DataAPI]] -git-tree-sha1 = "8da84edb865b0b5b0100c0666a9bc9a0b71c553c" -uuid = "9a962f9c-6df0-11e9-0e5d-c546b8b5ee8a" -version = "1.15.0" - -[[deps.DataFrames]] -deps = ["Compat", "DataAPI", "Future", "InlineStrings", "InvertedIndices", "IteratorInterfaceExtensions", "LinearAlgebra", "Markdown", "Missings", "PooledArrays", "PrettyTables", "Printf", "REPL", "Random", "Reexport", "SentinelArrays", "SnoopPrecompile", "SortingAlgorithms", "Statistics", "TableTraits", "Tables", "Unicode"] -git-tree-sha1 = "aa51303df86f8626a962fccb878430cdb0a97eee" -uuid = "a93c6f00-e57d-5684-b7b6-d8193f3e46c0" -version = "1.5.0" - -[[deps.DataStructures]] -deps = ["Compat", "InteractiveUtils", "OrderedCollections"] -git-tree-sha1 = "d1fff3a548102f48987a52a2e0d114fa97d730f0" -uuid = "864edb3b-99cc-5e75-8d2d-829cb0a9cfe8" -version = "0.18.13" - -[[deps.DataValueInterfaces]] -git-tree-sha1 = "bfc1187b79289637fa0ef6d4436ebdfe6905cbd6" -uuid = "e2d170a0-9d28-54be-80f0-106bbe20a464" -version = "1.0.0" - -[[deps.Dates]] -deps = ["Printf"] -uuid = "ade2ca70-3891-5945-98fb-dc099432e06a" - -[[deps.DelayDiffEq]] -deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "LinearAlgebra", "Logging", "OrdinaryDiffEq", "Printf", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SimpleUnPack"] -git-tree-sha1 = "89f3fbfe78f9d116d1ed0721d65b0b2cf9b36169" -uuid = "bcd4f6db-9728-5f36-b5f7-82caef46ccdb" -version = "5.42.0" - -[[deps.DensityInterface]] -deps = ["InverseFunctions", "Test"] -git-tree-sha1 = "80c3e8639e3353e5d2912fb3a1916b8455e2494b" -uuid = "b429d917-457f-4dbc-8f4c-0cc954292b1d" -version = "0.4.0" - -[[deps.DiffEqBase]] -deps = ["ArrayInterface", "ChainRulesCore", "DataStructures", "Distributions", "DocStringExtensions", "EnumX", "FastBroadcast", "ForwardDiff", "FunctionWrappers", "FunctionWrappersWrappers", "LinearAlgebra", "Logging", "Markdown", "MuladdMacro", "Parameters", "PreallocationTools", "Printf", "RecursiveArrayTools", "Reexport", "Requires", "SciMLBase", "SciMLOperators", "Setfield", "SparseArrays", "Static", "StaticArraysCore", "Statistics", "Tricks", "TruncatedStacktraces", "ZygoteRules"] -git-tree-sha1 = "1c03e389a28be70cd9049f98ff0b84cf7539d959" -uuid = "2b5f629d-d688-5b77-993f-72d75c75574e" -version = "6.125.0" - -[[deps.DiffEqCallbacks]] -deps = ["DataStructures", "DiffEqBase", "ForwardDiff", "LinearAlgebra", "Markdown", "NLsolve", "Parameters", "RecipesBase", "RecursiveArrayTools", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "63b6be7b396ad395825f3cc48c56b53bfaf7e69d" -uuid = "459566f4-90b8-5000-8ac3-15dfb0a30def" -version = "2.26.1" - -[[deps.DiffEqNoiseProcess]] -deps = ["DiffEqBase", "Distributions", "GPUArraysCore", "LinearAlgebra", "Markdown", "Optim", "PoissonRandom", "QuadGK", "Random", "Random123", "RandomNumbers", "RecipesBase", "RecursiveArrayTools", "Requires", "ResettableStacks", "SciMLBase", "StaticArrays", "Statistics"] -git-tree-sha1 = "2c4ed3eedb87579bfe9f20ecc2440de06b9f3b89" -uuid = "77a26b50-5914-5dd7-bc55-306e6241c503" -version = "5.16.0" - -[[deps.DiffResults]] -deps = ["StaticArraysCore"] -git-tree-sha1 = "782dd5f4561f5d267313f23853baaaa4c52ea621" -uuid = "163ba53b-c6d8-5494-b064-1a9d43ac40c5" -version = "1.1.0" - -[[deps.DiffRules]] -deps = ["IrrationalConstants", "LogExpFunctions", "NaNMath", "Random", "SpecialFunctions"] -git-tree-sha1 = "a4ad7ef19d2cdc2eff57abbbe68032b1cd0bd8f8" -uuid = "b552c78f-8df3-52c6-915a-8e097449b14b" -version = "1.13.0" - -[[deps.DifferentialEquations]] -deps = ["BoundaryValueDiffEq", "DelayDiffEq", "DiffEqBase", "DiffEqCallbacks", "DiffEqNoiseProcess", "JumpProcesses", "LinearAlgebra", "LinearSolve", "NonlinearSolve", "OrdinaryDiffEq", "Random", "RecursiveArrayTools", "Reexport", "SciMLBase", "SteadyStateDiffEq", "StochasticDiffEq", "Sundials"] -git-tree-sha1 = "ac145e3d718157c679fc4febf2fcef73ec77b067" -uuid = "0c46a032-eb83-5123-abaf-570d42b7fbaa" -version = "7.7.0" - -[[deps.Distances]] -deps = ["LinearAlgebra", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "49eba9ad9f7ead780bfb7ee319f962c811c6d3b2" -uuid = "b4f34e82-e78d-54a5-968a-f98e89d6e8f7" -version = "0.10.8" - -[[deps.Distributed]] -deps = ["Random", "Serialization", "Sockets"] -uuid = "8ba89e20-285c-5b6f-9357-94700520ee1b" - -[[deps.Distributions]] -deps = ["ChainRulesCore", "DensityInterface", "FillArrays", "LinearAlgebra", "PDMats", "Printf", "QuadGK", "Random", "SparseArrays", "SpecialFunctions", "Statistics", "StatsAPI", "StatsBase", "StatsFuns", "Test"] -git-tree-sha1 = "c72970914c8a21b36bbc244e9df0ed1834a0360b" -uuid = "31c24e10-a181-5473-b8eb-7969acd0382f" -version = "0.25.95" - -[[deps.DocStringExtensions]] -deps = ["LibGit2"] -git-tree-sha1 = "2fb1e02f2b635d0845df5d7c167fec4dd739b00d" -uuid = "ffbed154-4ef7-542d-bbb7-c09d3a79fcae" -version = "0.9.3" - -[[deps.DoubleFloats]] -deps = ["GenericLinearAlgebra", "LinearAlgebra", "Polynomials", "Printf", "Quadmath", "Random", "Requires", "SpecialFunctions"] -git-tree-sha1 = "ff64f5601c231a7bc730e1e4eba2c39035d6cc60" -uuid = "497a8b3b-efae-58df-a0af-a86822472b78" -version = "1.2.4" - -[[deps.Downloads]] -deps = ["ArgTools", "FileWatching", "LibCURL", "NetworkOptions"] -uuid = "f43a241f-c20a-4ad4-852c-f6b1247861c6" -version = "1.6.0" - -[[deps.DualNumbers]] -deps = ["Calculus", "NaNMath", "SpecialFunctions"] -git-tree-sha1 = "5837a837389fccf076445fce071c8ddaea35a566" -uuid = "fa6b7ba4-c1ee-5f82-b5fc-ecf0adba8f74" -version = "0.6.8" - -[[deps.EarCut_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "e3290f2d49e661fbd94046d7e3726ffcb2d41053" -uuid = "5ae413db-bbd1-5e63-b57d-d24a61df00f5" -version = "2.2.4+0" - -[[deps.EnumX]] -git-tree-sha1 = "bdb1942cd4c45e3c678fd11569d5cccd80976237" -uuid = "4e289a0a-7415-4d19-859d-a7e5c4648b56" -version = "1.0.4" - -[[deps.ExponentialUtilities]] -deps = ["Adapt", "ArrayInterface", "GPUArraysCore", "GenericSchur", "LinearAlgebra", "Printf", "SnoopPrecompile", "SparseArrays", "libblastrampoline_jll"] -git-tree-sha1 = "fb7dbef7d2631e2d02c49e2750f7447648b0ec9b" -uuid = "d4d017d3-3776-5f7e-afef-a10c40355c18" -version = "1.24.0" - -[[deps.ExprTools]] -git-tree-sha1 = "c1d06d129da9f55715c6c212866f5b1bddc5fa00" -uuid = "e2ba6199-217a-4e67-a87a-7c52f15ade04" -version = "0.1.9" - -[[deps.Extents]] -git-tree-sha1 = "5e1e4c53fa39afe63a7d356e30452249365fba99" -uuid = "411431e0-e8b7-467b-b5e0-f676ba4f2910" -version = "0.1.1" - -[[deps.FastBroadcast]] -deps = ["ArrayInterface", "LinearAlgebra", "Polyester", "Static", "StaticArrayInterface", "StrideArraysCore"] -git-tree-sha1 = "d1248fceea0b26493fd33e8e9e8c553270da03bd" -uuid = "7034ab61-46d4-4ed7-9d0f-46aef9175898" -version = "0.2.5" - -[[deps.FastClosures]] -git-tree-sha1 = "acebe244d53ee1b461970f8910c235b259e772ef" -uuid = "9aa1b823-49e4-5ca5-8b0f-3971ec8bab6a" -version = "0.3.2" - -[[deps.FastLapackInterface]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "c1293a93193f0ae94be7cf338d33e162c39d8788" -uuid = "29a986be-02c6-4525-aec4-84b980013641" -version = "1.2.9" - -[[deps.FileIO]] -deps = ["Pkg", "Requires", "UUIDs"] -git-tree-sha1 = "299dc33549f68299137e51e6d49a13b5b1da9673" -uuid = "5789e2e9-d7fb-5bc7-8068-2c6fae9b9549" -version = "1.16.1" - -[[deps.FileWatching]] -uuid = "7b1f6079-737a-58dc-b8bc-7a2ca5c1b5ee" - -[[deps.FillArrays]] -deps = ["LinearAlgebra", "Random", "SparseArrays", "Statistics"] -git-tree-sha1 = "ed569cb9e7e3590d5ba884da7edc50216aac5811" -uuid = "1a297f60-69ca-5386-bcde-b61e274b549b" -version = "1.1.0" - -[[deps.FiniteDiff]] -deps = ["ArrayInterface", "LinearAlgebra", "Requires", "Setfield", "SparseArrays", "StaticArrays"] -git-tree-sha1 = "abfd952bdf92f6d7195c45dc46d50043bd0d7dbe" -uuid = "6a86dc24-6348-571c-b903-95158fe2bd41" -version = "2.21.0" - -[[deps.FixedPointNumbers]] -deps = ["Statistics"] -git-tree-sha1 = "335bfdceacc84c5cdf16aadc768aa5ddfc5383cc" -uuid = "53c48c17-4a7d-5ca2-90c5-79b7896eea93" -version = "0.8.4" - -[[deps.Formatting]] -deps = ["Printf"] -git-tree-sha1 = "8339d61043228fdd3eb658d86c926cb282ae72a8" -uuid = "59287772-0a20-5a39-b81b-1366585eb4c0" -version = "0.4.2" - -[[deps.ForwardDiff]] -deps = ["CommonSubexpressions", "DiffResults", "DiffRules", "LinearAlgebra", "LogExpFunctions", "NaNMath", "Preferences", "Printf", "Random", "SpecialFunctions", "StaticArrays"] -git-tree-sha1 = "00e252f4d706b3d55a8863432e742bf5717b498d" -uuid = "f6369f11-7733-5829-9624-2563aa707210" -version = "0.10.35" - -[[deps.FunctionWrappers]] -git-tree-sha1 = "d62485945ce5ae9c0c48f124a84998d755bae00e" -uuid = "069b7b12-0de2-55c6-9aab-29f3d0a68a2e" -version = "1.1.3" - -[[deps.FunctionWrappersWrappers]] -deps = ["FunctionWrappers"] -git-tree-sha1 = "b104d487b34566608f8b4e1c39fb0b10aa279ff8" -uuid = "77dc65aa-8811-40c2-897b-53d922fa7daf" -version = "0.1.3" - -[[deps.Future]] -deps = ["Random"] -uuid = "9fa8497b-333b-5362-9e8d-4d0656e87820" - -[[deps.GPUArraysCore]] -deps = ["Adapt"] -git-tree-sha1 = "2d6ca471a6c7b536127afccfa7564b5b39227fe0" -uuid = "46192b85-c4d5-4398-a991-12ede77f4527" -version = "0.1.5" - -[[deps.GenericLinearAlgebra]] -deps = ["LinearAlgebra", "Printf", "Random", "libblastrampoline_jll"] -git-tree-sha1 = "02be7066f936af6b04669f7c370a31af9036c440" -uuid = "14197337-ba66-59df-a3e3-ca00e7dcff7a" -version = "0.3.11" - -[[deps.GenericSchur]] -deps = ["LinearAlgebra", "Printf"] -git-tree-sha1 = "fb69b2a645fa69ba5f474af09221b9308b160ce6" -uuid = "c145ed77-6b09-5dd9-b285-bf645a82121e" -version = "0.5.3" - -[[deps.GeoInterface]] -deps = ["Extents"] -git-tree-sha1 = "bb198ff907228523f3dee1070ceee63b9359b6ab" -uuid = "cf35fbd7-0cd7-5166-be24-54bfbe79505f" -version = "1.3.1" - -[[deps.GeometryBasics]] -deps = ["EarCut_jll", "GeoInterface", "IterTools", "LinearAlgebra", "StaticArrays", "StructArrays", "Tables"] -git-tree-sha1 = "659140c9375afa2f685e37c1a0b9c9a60ef56b40" -uuid = "5c1252a2-5f33-56bf-86c9-59e7332b4326" -version = "0.4.7" - -[[deps.Graphs]] -deps = ["ArnoldiMethod", "Compat", "DataStructures", "Distributed", "Inflate", "LinearAlgebra", "Random", "SharedArrays", "SimpleTraits", "SparseArrays", "Statistics"] -git-tree-sha1 = "1cf1d7dcb4bc32d7b4a5add4232db3750c27ecb4" -uuid = "86223c79-3864-5bf0-83f7-82e725a168b6" -version = "1.8.0" - -[[deps.HTTP]] -deps = ["Base64", "Dates", "IniFile", "Logging", "MbedTLS", "NetworkOptions", "Sockets", "URIs"] -git-tree-sha1 = "0fa77022fe4b511826b39c894c90daf5fce3334a" -uuid = "cd3eb016-35fb-5094-929b-558a96fad6f3" -version = "0.9.17" - -[[deps.HostCPUFeatures]] -deps = ["BitTwiddlingConvenienceFunctions", "IfElse", "Libdl", "Static"] -git-tree-sha1 = "734fd90dd2f920a2f1921d5388dcebe805b262dc" -uuid = "3e5b6fbb-0976-4d2c-9146-d79de83f2fb0" -version = "0.1.14" - -[[deps.HypergeometricFunctions]] -deps = ["DualNumbers", "LinearAlgebra", "OpenLibm_jll", "SpecialFunctions"] -git-tree-sha1 = "84204eae2dd237500835990bcade263e27674a93" -uuid = "34004b35-14d8-5ef3-9330-4cdb6864b03a" -version = "0.3.16" - -[[deps.IfElse]] -git-tree-sha1 = "debdd00ffef04665ccbb3e150747a77560e8fad1" -uuid = "615f187c-cbe4-4ef1-ba3b-2fcf58d6d173" -version = "0.1.1" - -[[deps.Inflate]] -git-tree-sha1 = "5cd07aab533df5170988219191dfad0519391428" -uuid = "d25df0c9-e2be-5dd7-82c8-3ad0b3e990b9" -version = "0.1.3" - -[[deps.IniFile]] -git-tree-sha1 = "f550e6e32074c939295eb5ea6de31849ac2c9625" -uuid = "83e8ac13-25f8-5344-8a64-a9f2b223428f" -version = "0.5.1" - -[[deps.InlineStrings]] -deps = ["Parsers"] -git-tree-sha1 = "9cc2baf75c6d09f9da536ddf58eb2f29dedaf461" -uuid = "842dd82b-1e85-43dc-bf29-5d0ee9dffc48" -version = "1.4.0" - -[[deps.InteractiveUtils]] -deps = ["Markdown"] -uuid = "b77e0a4c-d291-57a0-90e8-8db25a27a240" - -[[deps.InverseFunctions]] -deps = ["Test"] -git-tree-sha1 = "6667aadd1cdee2c6cd068128b3d226ebc4fb0c67" -uuid = "3587e190-3f89-42d0-90ee-14403ec27112" -version = "0.1.9" - -[[deps.InvertedIndices]] -git-tree-sha1 = "0dc7b50b8d436461be01300fd8cd45aa0274b038" -uuid = "41ab1584-1d38-5bbf-9106-f11c6c58b48f" -version = "1.3.0" - -[[deps.IrrationalConstants]] -git-tree-sha1 = "630b497eafcc20001bba38a4651b327dcfc491d2" -uuid = "92d709cd-6900-40b7-9082-c6be49f344b6" -version = "0.2.2" - -[[deps.IterTools]] -git-tree-sha1 = "fa6287a4469f5e048d763df38279ee729fbd44e5" -uuid = "c8e1da08-722c-5040-9ed9-7db0dc04731e" -version = "1.4.0" - -[[deps.IterativeSolvers]] -deps = ["LinearAlgebra", "Printf", "Random", "RecipesBase", "SparseArrays"] -git-tree-sha1 = "1169632f425f79429f245113b775a0e3d121457c" -uuid = "42fd0dbc-a981-5370-80f2-aaf504508153" -version = "0.9.2" - -[[deps.IteratorInterfaceExtensions]] -git-tree-sha1 = "a3f24677c21f5bbe9d2a714f95dcd58337fb2856" -uuid = "82899510-4779-5014-852e-03e436cf321d" -version = "1.0.0" - -[[deps.JLLWrappers]] -deps = ["Preferences"] -git-tree-sha1 = "abc9885a7ca2052a736a600f7fa66209f96506e1" -uuid = "692b3bcd-3c85-4b1f-b108-f13ce0eb3210" -version = "1.4.1" - -[[deps.JSON]] -deps = ["Dates", "Mmap", "Parsers", "Unicode"] -git-tree-sha1 = "31e996f0a15c7b280ba9f76636b3ff9e2ae58c9a" -uuid = "682c06a0-de6a-54ab-a142-c8b1cf79cde6" -version = "0.21.4" - -[[deps.JumpProcesses]] -deps = ["ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "FunctionWrappers", "Graphs", "LinearAlgebra", "Markdown", "PoissonRandom", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "StaticArrays", "TreeViews", "UnPack"] -git-tree-sha1 = "50bd271af7f6cc23be7d24c8c4804809bb5d05ae" -uuid = "ccbc3e58-028d-4f4c-8cd5-9ae44345cda5" -version = "9.6.3" - -[[deps.KLU]] -deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse_jll"] -git-tree-sha1 = "764164ed65c30738750965d55652db9c94c59bfe" -uuid = "ef3ab10e-7fda-4108-b977-705223b18434" -version = "0.4.0" - -[[deps.Krylov]] -deps = ["LinearAlgebra", "Printf", "SparseArrays"] -git-tree-sha1 = "0356a64062656b0cbb43c504ad5de338251f4bda" -uuid = "ba0b0d4f-ebba-5204-a429-3ac8c609bfb7" -version = "0.9.1" - -[[deps.KrylovKit]] -deps = ["ChainRulesCore", "GPUArraysCore", "LinearAlgebra", "Printf"] -git-tree-sha1 = "1a5e1d9941c783b0119897d29f2eb665d876ecf3" -uuid = "0b1a1467-8014-51b9-945f-bf0ae24f4b77" -version = "0.6.0" - -[[deps.LaTeXStrings]] -git-tree-sha1 = "f2355693d6778a178ade15952b7ac47a4ff97996" -uuid = "b964fa9f-0449-5b57-a5c2-d3ea65f4040f" -version = "1.3.0" - -[[deps.LayoutPointers]] -deps = ["ArrayInterface", "LinearAlgebra", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface"] -git-tree-sha1 = "88b8f66b604da079a627b6fb2860d3704a6729a1" -uuid = "10f19ff3-798f-405d-979b-55457f8fc047" -version = "0.1.14" - -[[deps.Lazy]] -deps = ["MacroTools"] -git-tree-sha1 = "1370f8202dac30758f3c345f9909b97f53d87d3f" -uuid = "50d2b5c4-7a5e-59d5-8109-a42b560f39c0" -version = "0.15.1" - -[[deps.LevyArea]] -deps = ["LinearAlgebra", "Random", "SpecialFunctions"] -git-tree-sha1 = "56513a09b8e0ae6485f34401ea9e2f31357958ec" -uuid = "2d8b4e74-eb68-11e8-0fb9-d5eb67b50637" -version = "1.0.0" - -[[deps.LibCURL]] -deps = ["LibCURL_jll", "MozillaCACerts_jll"] -uuid = "b27032c2-a3e7-50c8-80cd-2d36dbcbfd21" -version = "0.6.3" - -[[deps.LibCURL_jll]] -deps = ["Artifacts", "LibSSH2_jll", "Libdl", "MbedTLS_jll", "Zlib_jll", "nghttp2_jll"] -uuid = "deac9b47-8bc7-5906-a0fe-35ac56dc84c0" -version = "7.84.0+0" - -[[deps.LibGit2]] -deps = ["Base64", "NetworkOptions", "Printf", "SHA"] -uuid = "76f85450-5226-5b5a-8eaa-529ad045b433" - -[[deps.LibSSH2_jll]] -deps = ["Artifacts", "Libdl", "MbedTLS_jll"] -uuid = "29816b5a-b9ab-546f-933c-edad1886dfa8" -version = "1.10.2+0" - -[[deps.Libdl]] -uuid = "8f399da3-3557-5675-b5ff-fb832c97cbdb" - -[[deps.LineSearches]] -deps = ["LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "Printf"] -git-tree-sha1 = "7bbea35cec17305fc70a0e5b4641477dc0789d9d" -uuid = "d3d80556-e9d4-5f37-9878-2ab0fcc64255" -version = "7.2.0" - -[[deps.LinearAlgebra]] -deps = ["Libdl", "libblastrampoline_jll"] -uuid = "37e2e46d-f89d-539d-b4ee-838fcccc9c8e" - -[[deps.LinearSolve]] -deps = ["ArrayInterface", "DocStringExtensions", "EnumX", "FastLapackInterface", "GPUArraysCore", "IterativeSolvers", "KLU", "Krylov", "KrylovKit", "LinearAlgebra", "Preferences", "RecursiveFactorization", "Reexport", "SciMLBase", "SciMLOperators", "Setfield", "SnoopPrecompile", "SparseArrays", "Sparspak", "SuiteSparse", "UnPack"] -git-tree-sha1 = "4a4f8cc7a59fadbb02d1852d1e0cef5dca3a9460" -uuid = "7ed4a6bd-45f5-4d41-b270-4a48e9bafcae" -version = "1.42.0" - -[[deps.LogExpFunctions]] -deps = ["ChainRulesCore", "ChangesOfVariables", "DocStringExtensions", "InverseFunctions", "IrrationalConstants", "LinearAlgebra"] -git-tree-sha1 = "0a1b7c2863e44523180fdb3146534e265a91870b" -uuid = "2ab3a3ac-af41-5b50-aa03-7779005ae688" -version = "0.3.23" - -[[deps.Logging]] -uuid = "56ddb016-857b-54e1-b83d-db4d58db5568" - -[[deps.LoopVectorization]] -deps = ["ArrayInterface", "ArrayInterfaceCore", "CPUSummary", "ChainRulesCore", "CloseOpenIntervals", "DocStringExtensions", "ForwardDiff", "HostCPUFeatures", "IfElse", "LayoutPointers", "LinearAlgebra", "OffsetArrays", "PolyesterWeave", "PrecompileTools", "SIMDTypes", "SLEEFPirates", "SpecialFunctions", "Static", "StaticArrayInterface", "ThreadingUtilities", "UnPack", "VectorizationBase"] -git-tree-sha1 = "3bb62b5003bc7d2d49f26663484267dc49fa1bf5" -uuid = "bdcacae8-1622-11e9-2a5c-532679323890" -version = "0.12.159" - -[[deps.MacroTools]] -deps = ["Markdown", "Random"] -git-tree-sha1 = "42324d08725e200c23d4dfb549e0d5d89dede2d2" -uuid = "1914dd2f-81c6-5fcd-8719-6d5c9610ff09" -version = "0.5.10" - -[[deps.MakieCore]] -deps = ["Observables"] -git-tree-sha1 = "9926529455a331ed73c19ff06d16906737a876ed" -uuid = "20f20a25-4f0e-4fdf-b5d1-57303727442b" -version = "0.6.3" - -[[deps.ManualMemory]] -git-tree-sha1 = "bcaef4fc7a0cfe2cba636d84cda54b5e4e4ca3cd" -uuid = "d125e4d3-2237-4719-b19c-fa641b8a4667" -version = "0.1.8" - -[[deps.Markdown]] -deps = ["Base64"] -uuid = "d6f4376e-aef5-505a-96c1-9c027394607a" - -[[deps.MbedTLS]] -deps = ["Dates", "MbedTLS_jll", "MozillaCACerts_jll", "Random", "Sockets"] -git-tree-sha1 = "03a9b9718f5682ecb107ac9f7308991db4ce395b" -uuid = "739be429-bea8-5141-9913-cc70e7f3736d" -version = "1.1.7" - -[[deps.MbedTLS_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "c8ffd9c3-330d-5841-b78e-0817d7145fa1" -version = "2.28.0+0" - -[[deps.Measurements]] -deps = ["Calculus", "LinearAlgebra", "Printf", "RecipesBase", "Requires"] -git-tree-sha1 = "51d946d38d62709d6a2d37ea9bcc30c80c686801" -uuid = "eff96d63-e80a-5855-80a2-b1b0885c5ab7" -version = "2.9.0" - -[[deps.MeshIO]] -deps = ["ColorTypes", "FileIO", "GeometryBasics", "Printf"] -git-tree-sha1 = "8be09d84a2d597c7c0c34d7d604c039c9763e48c" -uuid = "7269a6da-0436-5bbc-96c2-40638cbb6118" -version = "0.4.10" - -[[deps.Missings]] -deps = ["DataAPI"] -git-tree-sha1 = "f66bdc5de519e8f8ae43bdc598782d35a25b1272" -uuid = "e1d29d7a-bbdc-5cf2-9ac0-f12de2c33e28" -version = "1.1.0" - -[[deps.Mmap]] -uuid = "a63ad114-7e13-5084-954f-fe012c677804" - -[[deps.Modia]] -deps = ["DataFrames", "DiffEqBase", "DifferentialEquations", "FiniteDiff", "ForwardDiff", "InteractiveUtils", "JSON", "LinearAlgebra", "Measurements", "ModiaBase", "MonteCarloMeasurements", "OrderedCollections", "Printf", "RecursiveFactorization", "Reexport", "SignalTables", "SnoopPrecompile", "StaticArrays", "Sundials", "Test", "TimerOutputs", "Unitful"] -git-tree-sha1 = "d57d67292a0db64687cb7fa88ad03c1e9a73ed8a" -uuid = "cb905087-75eb-5f27-8515-1ce0ec8e839e" -version = "0.10.0" - -[[deps.ModiaBase]] -deps = ["DataFrames", "DiffRules", "Measurements", "MonteCarloMeasurements", "OrderedCollections", "StaticArrays", "Unitful"] -git-tree-sha1 = "57f347bcda8e96732d3f0c2e3a162383fedbeeff" -uuid = "ec7bf1ca-419d-4510-bbab-199861c55244" -version = "0.11.0" - -[[deps.MonteCarloMeasurements]] -deps = ["Distributed", "Distributions", "ForwardDiff", "GenericSchur", "LinearAlgebra", "MacroTools", "Random", "RecipesBase", "Requires", "SLEEFPirates", "StaticArrays", "Statistics", "StatsBase", "Test"] -git-tree-sha1 = "6d9caa10b362227519efd3f1f4ce6e8795c61c11" -uuid = "0987c9cc-fe09-11e8-30f0-b96dd679fdca" -version = "1.1.4" - -[[deps.MozillaCACerts_jll]] -uuid = "14a3606d-f60d-562e-9121-12d972cd8159" -version = "2022.2.1" - -[[deps.MuladdMacro]] -git-tree-sha1 = "cac9cc5499c25554cba55cd3c30543cff5ca4fab" -uuid = "46d2c3a1-f734-5fdb-9937-b9b9aeba4221" -version = "0.2.4" - -[[deps.MutableArithmetics]] -deps = ["LinearAlgebra", "SparseArrays", "Test"] -git-tree-sha1 = "964cb1a7069723727025ae295408747a0b36a854" -uuid = "d8a4904e-b15c-11e9-3269-09a3773c0cb0" -version = "1.3.0" - -[[deps.NLSolversBase]] -deps = ["DiffResults", "Distributed", "FiniteDiff", "ForwardDiff"] -git-tree-sha1 = "a0b464d183da839699f4c79e7606d9d186ec172c" -uuid = "d41bc354-129a-5804-8e4c-c37616107c6c" -version = "7.8.3" - -[[deps.NLsolve]] -deps = ["Distances", "LineSearches", "LinearAlgebra", "NLSolversBase", "Printf", "Reexport"] -git-tree-sha1 = "019f12e9a1a7880459d0173c182e6a99365d7ac1" -uuid = "2774e3e8-f4cf-5e23-947b-6d7e65073b56" -version = "4.5.1" - -[[deps.NaNMath]] -deps = ["OpenLibm_jll"] -git-tree-sha1 = "0877504529a3e5c3343c6f8b4c0381e57e4387e4" -uuid = "77ba4419-2d1f-58cd-9bb1-8ffee604a2e3" -version = "1.0.2" - -[[deps.NetworkOptions]] -uuid = "ca575930-c2e3-43a9-ace4-1e988b2c1908" -version = "1.2.0" - -[[deps.NonlinearSolve]] -deps = ["ArrayInterface", "DiffEqBase", "EnumX", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "LinearSolve", "RecursiveArrayTools", "Reexport", "SciMLBase", "SimpleNonlinearSolve", "SnoopPrecompile", "SparseArrays", "SparseDiffTools", "StaticArraysCore", "UnPack"] -git-tree-sha1 = "a6000c813371cd3cd9cbbdf8a356fc3a97138d92" -uuid = "8913a72c-1f9b-4ce2-8d82-65094dcecaec" -version = "1.6.0" - -[[deps.Observables]] -git-tree-sha1 = "6862738f9796b3edc1c09d0890afce4eca9e7e93" -uuid = "510215fc-4207-5dde-b226-833fc4488ee2" -version = "0.5.4" - -[[deps.OffsetArrays]] -deps = ["Adapt"] -git-tree-sha1 = "82d7c9e310fe55aa54996e6f7f94674e2a38fcb4" -uuid = "6fe1bfb0-de20-5000-8ca7-80f57d26f881" -version = "1.12.9" - -[[deps.OpenBLAS_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "Libdl"] -uuid = "4536629a-c528-5b80-bd46-f80d51c5b363" -version = "0.3.20+0" - -[[deps.OpenLibm_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "05823500-19ac-5b8b-9628-191a04bc5112" -version = "0.8.1+0" - -[[deps.OpenSpecFun_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "13652491f6856acfd2db29360e1bbcd4565d04f1" -uuid = "efe28fd5-8261-553b-a9e1-b2916fc3738e" -version = "0.5.5+0" - -[[deps.Optim]] -deps = ["Compat", "FillArrays", "ForwardDiff", "LineSearches", "LinearAlgebra", "NLSolversBase", "NaNMath", "Parameters", "PositiveFactorizations", "Printf", "SparseArrays", "StatsBase"] -git-tree-sha1 = "a89b11f0f354f06099e4001c151dffad7ebab015" -uuid = "429524aa-4258-5aef-a3af-852621145aeb" -version = "1.7.5" - -[[deps.OrderedCollections]] -git-tree-sha1 = "d321bf2de576bf25ec4d3e4360faca399afca282" -uuid = "bac558e1-5e72-5ebc-8fee-abe8a469f55d" -version = "1.6.0" - -[[deps.OrdinaryDiffEq]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DocStringExtensions", "ExponentialUtilities", "FastBroadcast", "FastClosures", "FiniteDiff", "ForwardDiff", "FunctionWrappersWrappers", "IfElse", "LineSearches", "LinearAlgebra", "LinearSolve", "Logging", "LoopVectorization", "MacroTools", "MuladdMacro", "NLsolve", "NonlinearSolve", "Polyester", "PreallocationTools", "PrecompileTools", "Preferences", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLNLSolve", "SciMLOperators", "SimpleNonlinearSolve", "SimpleUnPack", "SparseArrays", "SparseDiffTools", "StaticArrayInterface", "StaticArrays", "TruncatedStacktraces"] -git-tree-sha1 = "7f758238ce4202ced5e08aa2903d19d3a4f0dd7c" -uuid = "1dea7af3-3e70-54e6-95c3-0bf5283fa5ed" -version = "6.52.0" - -[[deps.PDMats]] -deps = ["LinearAlgebra", "SparseArrays", "SuiteSparse"] -git-tree-sha1 = "67eae2738d63117a196f497d7db789821bce61d1" -uuid = "90014a1f-27ba-587c-ab20-58faa44d9150" -version = "0.11.17" - -[[deps.Parameters]] -deps = ["OrderedCollections", "UnPack"] -git-tree-sha1 = "34c0e9ad262e5f7fc75b10a9952ca7692cfc5fbe" -uuid = "d96e819e-fc66-5662-9728-84c9c7592b0a" -version = "0.12.3" - -[[deps.Parsers]] -deps = ["Dates", "PrecompileTools", "UUIDs"] -git-tree-sha1 = "a5aef8d4a6e8d81f171b2bd4be5265b01384c74c" -uuid = "69de0a69-1ddd-5017-9359-2bf0b02dc9f0" -version = "2.5.10" - -[[deps.Pkg]] -deps = ["Artifacts", "Dates", "Downloads", "LibGit2", "Libdl", "Logging", "Markdown", "Printf", "REPL", "Random", "SHA", "Serialization", "TOML", "Tar", "UUIDs", "p7zip_jll"] -uuid = "44cfe95a-1eb2-52ea-b672-e2afdf69b78f" -version = "1.8.0" - -[[deps.PoissonRandom]] -deps = ["Random"] -git-tree-sha1 = "a0f1159c33f846aa77c3f30ebbc69795e5327152" -uuid = "e409e4f3-bfea-5376-8464-e040bb5c01ab" -version = "0.4.4" - -[[deps.Polyester]] -deps = ["ArrayInterface", "BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "ManualMemory", "PolyesterWeave", "Requires", "Static", "StaticArrayInterface", "StrideArraysCore", "ThreadingUtilities"] -git-tree-sha1 = "0fe4e7c4d8ff4c70bfa507f0dd96fa161b115777" -uuid = "f517fe37-dbe3-4b94-8317-1923a5111588" -version = "0.7.3" - -[[deps.PolyesterWeave]] -deps = ["BitTwiddlingConvenienceFunctions", "CPUSummary", "IfElse", "Static", "ThreadingUtilities"] -git-tree-sha1 = "240d7170f5ffdb285f9427b92333c3463bf65bf6" -uuid = "1d0040c9-8b98-4ee7-8388-3f51789ca0ad" -version = "0.2.1" - -[[deps.Polynomials]] -deps = ["ChainRulesCore", "LinearAlgebra", "MakieCore", "MutableArithmetics", "RecipesBase"] -git-tree-sha1 = "3aa2bb4982e575acd7583f01531f241af077b163" -uuid = "f27b6e38-b328-58d1-80ce-0feddd5e7a45" -version = "3.2.13" - -[[deps.PooledArrays]] -deps = ["DataAPI", "Future"] -git-tree-sha1 = "a6062fe4063cdafe78f4a0a81cfffb89721b30e7" -uuid = "2dfb63ee-cc39-5dd5-95bd-886bf059d720" -version = "1.4.2" - -[[deps.PositiveFactorizations]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "17275485f373e6673f7e7f97051f703ed5b15b20" -uuid = "85a6dd25-e78a-55b7-8502-1745935b8125" -version = "0.2.4" - -[[deps.PreallocationTools]] -deps = ["Adapt", "ArrayInterface", "ForwardDiff", "Requires"] -git-tree-sha1 = "f739b1b3cc7b9949af3b35089931f2b58c289163" -uuid = "d236fae5-4411-538c-8e31-a6e3d9e00b46" -version = "0.4.12" - -[[deps.PrecompileTools]] -deps = ["Preferences"] -git-tree-sha1 = "259e206946c293698122f63e2b513a7c99a244e8" -uuid = "aea7be01-6a6a-4083-8856-8a6e6704d82a" -version = "1.1.1" - -[[deps.Preferences]] -deps = ["TOML"] -git-tree-sha1 = "7eb1686b4f04b82f96ed7a4ea5890a4f0c7a09f1" -uuid = "21216c6a-2e73-6563-6e65-726566657250" -version = "1.4.0" - -[[deps.PrettyTables]] -deps = ["Crayons", "Formatting", "LaTeXStrings", "Markdown", "Reexport", "StringManipulation", "Tables"] -git-tree-sha1 = "213579618ec1f42dea7dd637a42785a608b1ea9c" -uuid = "08abe8d2-0d0c-5749-adfa-8a2ac140af0d" -version = "2.2.4" - -[[deps.Printf]] -deps = ["Unicode"] -uuid = "de0858da-6303-5e67-8744-51eddeeeb8d7" - -[[deps.QuadGK]] -deps = ["DataStructures", "LinearAlgebra"] -git-tree-sha1 = "6ec7ac8412e83d57e313393220879ede1740f9ee" -uuid = "1fd47b50-473d-5c70-9696-f719f8f3bcdc" -version = "2.8.2" - -[[deps.Quadmath]] -deps = ["Compat", "Printf", "Random", "Requires"] -git-tree-sha1 = "2e368407cf5879f7ad63027b26e01988acd0e8da" -uuid = "be4d8f0f-7fa4-5f49-b795-2f01399ab2dd" -version = "0.5.8" - -[[deps.REPL]] -deps = ["InteractiveUtils", "Markdown", "Sockets", "Unicode"] -uuid = "3fa0cd96-eef1-5676-8a61-b3b8758bbffb" - -[[deps.Random]] -deps = ["SHA", "Serialization"] -uuid = "9a3f8284-a2c9-5f02-9a11-845980a1fd5c" - -[[deps.Random123]] -deps = ["Random", "RandomNumbers"] -git-tree-sha1 = "552f30e847641591ba3f39fd1bed559b9deb0ef3" -uuid = "74087812-796a-5b5d-8853-05524746bad3" -version = "1.6.1" - -[[deps.RandomNumbers]] -deps = ["Random", "Requires"] -git-tree-sha1 = "043da614cc7e95c703498a491e2c21f58a2b8111" -uuid = "e6cf234a-135c-5ec9-84dd-332b85af5143" -version = "1.5.3" - -[[deps.RecipesBase]] -deps = ["PrecompileTools"] -git-tree-sha1 = "5c3d09cc4f31f5fc6af001c250bf1278733100ff" -uuid = "3cdcf5f2-1ef4-517c-9805-6587b60abb01" -version = "1.3.4" - -[[deps.RecursiveArrayTools]] -deps = ["Adapt", "ArrayInterface", "DocStringExtensions", "GPUArraysCore", "IteratorInterfaceExtensions", "LinearAlgebra", "RecipesBase", "Requires", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables"] -git-tree-sha1 = "02ef02926f30d53b94be443bfaea010c47f6b556" -uuid = "731186ca-8d62-57ce-b412-fbd966d074cd" -version = "2.38.5" - -[[deps.RecursiveFactorization]] -deps = ["LinearAlgebra", "LoopVectorization", "Polyester", "SnoopPrecompile", "StrideArraysCore", "TriangularSolve"] -git-tree-sha1 = "9088515ad915c99026beb5436d0a09cd8c18163e" -uuid = "f2c3362d-daeb-58d1-803e-2bc74f2840b4" -version = "0.2.18" - -[[deps.Reexport]] -git-tree-sha1 = "45e428421666073eab6f2da5c9d310d99bb12f9b" -uuid = "189a3867-3050-52da-a836-e630ba90ab69" -version = "1.2.2" - -[[deps.Requires]] -deps = ["UUIDs"] -git-tree-sha1 = "838a3a4188e2ded87a4f9f184b4b0d78a1e91cb7" -uuid = "ae029012-a4dd-5104-9daa-d747884805df" -version = "1.3.0" - -[[deps.ResettableStacks]] -deps = ["StaticArrays"] -git-tree-sha1 = "256eeeec186fa7f26f2801732774ccf277f05db9" -uuid = "ae5879a3-cd67-5da8-be7f-38c6eb64a37b" -version = "1.1.1" - -[[deps.Rmath]] -deps = ["Random", "Rmath_jll"] -git-tree-sha1 = "f65dcb5fa46aee0cf9ed6274ccbd597adc49aa7b" -uuid = "79098fc4-a85e-5d69-aa6a-4863f24498fa" -version = "0.7.1" - -[[deps.Rmath_jll]] -deps = ["Artifacts", "JLLWrappers", "Libdl", "Pkg"] -git-tree-sha1 = "6ed52fdd3382cf21947b15e8870ac0ddbff736da" -uuid = "f50d1b31-88e8-58de-be2c-1cc44531875f" -version = "0.4.0+0" - -[[deps.RuntimeGeneratedFunctions]] -deps = ["ExprTools", "SHA", "Serialization"] -git-tree-sha1 = "92fa1dd437690a5e2ac39c81b6353ef106affc0e" -uuid = "7e49a35a-f44a-4d26-94aa-eba1b4ca6b47" -version = "0.5.8" - -[[deps.SHA]] -uuid = "ea8e919c-243c-51af-8825-aaa63cd721ce" -version = "0.7.0" - -[[deps.SIMDTypes]] -git-tree-sha1 = "330289636fb8107c5f32088d2741e9fd7a061a5c" -uuid = "94e857df-77ce-4151-89e5-788b33177be4" -version = "0.1.0" - -[[deps.SLEEFPirates]] -deps = ["IfElse", "Static", "VectorizationBase"] -git-tree-sha1 = "4b8586aece42bee682399c4c4aee95446aa5cd19" -uuid = "476501e8-09a2-5ece-8869-fb82de89a1fa" -version = "0.6.39" - -[[deps.SciMLBase]] -deps = ["ADTypes", "ArrayInterface", "CommonSolve", "ConstructionBase", "Distributed", "DocStringExtensions", "EnumX", "FunctionWrappersWrappers", "IteratorInterfaceExtensions", "LinearAlgebra", "Logging", "Markdown", "PrecompileTools", "Preferences", "RecipesBase", "RecursiveArrayTools", "Reexport", "RuntimeGeneratedFunctions", "SciMLOperators", "StaticArraysCore", "Statistics", "SymbolicIndexingInterface", "Tables", "TruncatedStacktraces"] -git-tree-sha1 = "75552338dda481baeb9b9e171f73ecd0171e8f34" -uuid = "0bca4576-84f4-4d90-8ffe-ffa030f20462" -version = "1.92.2" - -[[deps.SciMLNLSolve]] -deps = ["DiffEqBase", "LineSearches", "NLsolve", "Reexport", "SciMLBase"] -git-tree-sha1 = "a8eb97c56cac50c21096582afb2a0110784dc36e" -uuid = "e9a6253c-8580-4d32-9898-8661bb511710" -version = "0.1.6" - -[[deps.SciMLOperators]] -deps = ["ArrayInterface", "DocStringExtensions", "Lazy", "LinearAlgebra", "Setfield", "SparseArrays", "StaticArraysCore", "Tricks"] -git-tree-sha1 = "d9f0f6ce9bb899a657c4d218a846533910e9dea9" -uuid = "c0aeaf25-5076-4817-a8d5-81caf7dfa961" -version = "0.2.9" - -[[deps.SentinelArrays]] -deps = ["Dates", "Random"] -git-tree-sha1 = "77d3c4726515dca71f6d80fbb5e251088defe305" -uuid = "91c51154-3ec4-41a3-a24f-3f23e20d615c" -version = "1.3.18" - -[[deps.Serialization]] -uuid = "9e88b42a-f829-5b0c-bbe9-9e923198166b" - -[[deps.Setfield]] -deps = ["ConstructionBase", "Future", "MacroTools", "StaticArraysCore"] -git-tree-sha1 = "e2cc6d8c88613c05e1defb55170bf5ff211fbeac" -uuid = "efcf1570-3423-57d1-acb7-fd33fddbac46" -version = "1.1.1" - -[[deps.SharedArrays]] -deps = ["Distributed", "Mmap", "Random", "Serialization"] -uuid = "1a1011a3-84de-559e-8e89-a11a2f7dc383" - -[[deps.SignalTables]] -deps = ["DataFrames", "JSON", "OrderedCollections", "Pkg", "Tables", "Test", "Unitful"] -git-tree-sha1 = "0e2881db354851ca66127896890bd9f5264a8fb6" -uuid = "3201582d-3078-4276-ba5d-0a1254d79d7c" -version = "0.4.2" - -[[deps.SimpleNonlinearSolve]] -deps = ["ArrayInterface", "DiffEqBase", "FiniteDiff", "ForwardDiff", "LinearAlgebra", "PrecompileTools", "Reexport", "Requires", "SciMLBase", "StaticArraysCore"] -git-tree-sha1 = "7c55a3e65aad4ce6e610409cdd564b8d590b9726" -uuid = "727e6d20-b764-4bd8-a329-72de5adea6c7" -version = "0.1.15" - -[[deps.SimpleTraits]] -deps = ["InteractiveUtils", "MacroTools"] -git-tree-sha1 = "5d7e3f4e11935503d3ecaf7186eac40602e7d231" -uuid = "699a6c99-e7fa-54fc-8d76-47d257e15c1d" -version = "0.9.4" - -[[deps.SimpleUnPack]] -git-tree-sha1 = "58e6353e72cde29b90a69527e56df1b5c3d8c437" -uuid = "ce78b400-467f-4804-87d8-8f486da07d0a" -version = "1.1.0" - -[[deps.SnoopPrecompile]] -deps = ["Preferences"] -git-tree-sha1 = "e760a70afdcd461cf01a575947738d359234665c" -uuid = "66db9d55-30c0-4569-8b51-7e840670fc0c" -version = "1.0.3" - -[[deps.Sockets]] -uuid = "6462fe0b-24de-5631-8697-dd941f90decc" - -[[deps.SortingAlgorithms]] -deps = ["DataStructures"] -git-tree-sha1 = "a4ada03f999bd01b3a25dcaa30b2d929fe537e00" -uuid = "a2af1166-a08f-5f64-846c-94a0d3cef48c" -version = "1.1.0" - -[[deps.SparseArrays]] -deps = ["LinearAlgebra", "Random"] -uuid = "2f01184e-e22b-5df5-ae63-d93ebab69eaf" - -[[deps.SparseDiffTools]] -deps = ["ADTypes", "Adapt", "ArrayInterface", "Compat", "DataStructures", "FiniteDiff", "ForwardDiff", "Graphs", "LinearAlgebra", "Reexport", "Requires", "SciMLOperators", "SparseArrays", "StaticArrayInterface", "StaticArrays", "Tricks", "VertexSafeGraphs"] -git-tree-sha1 = "04f060e66a61a909ed59efd79f64943688d7568d" -uuid = "47a9eef4-7e08-11e9-0b38-333d64bd3804" -version = "2.3.0" - -[[deps.Sparspak]] -deps = ["Libdl", "LinearAlgebra", "Logging", "OffsetArrays", "Printf", "SparseArrays", "Test"] -git-tree-sha1 = "342cf4b449c299d8d1ceaf00b7a49f4fbc7940e7" -uuid = "e56a9233-b9d6-4f03-8d0f-1825330902ac" -version = "0.3.9" - -[[deps.SpecialFunctions]] -deps = ["ChainRulesCore", "IrrationalConstants", "LogExpFunctions", "OpenLibm_jll", "OpenSpecFun_jll"] -git-tree-sha1 = "ef28127915f4229c971eb43f3fc075dd3fe91880" -uuid = "276daf66-3868-5448-9aa4-cd146d93841b" -version = "2.2.0" - -[[deps.Static]] -deps = ["IfElse"] -git-tree-sha1 = "dbde6766fc677423598138a5951269432b0fcc90" -uuid = "aedffcd0-7271-4cad-89d0-dc628f76c6d3" -version = "0.8.7" - -[[deps.StaticArrayInterface]] -deps = ["ArrayInterface", "Compat", "IfElse", "LinearAlgebra", "Requires", "SnoopPrecompile", "SparseArrays", "Static", "SuiteSparse"] -git-tree-sha1 = "33040351d2403b84afce74dae2e22d3f5b18edcb" -uuid = "0d7ed370-da01-4f52-bd93-41d350b8b718" -version = "1.4.0" - -[[deps.StaticArrays]] -deps = ["LinearAlgebra", "Random", "StaticArraysCore", "Statistics"] -git-tree-sha1 = "8982b3607a212b070a5e46eea83eb62b4744ae12" -uuid = "90137ffa-7385-5640-81b9-e52037218182" -version = "1.5.25" - -[[deps.StaticArraysCore]] -git-tree-sha1 = "6b7ba252635a5eff6a0b0664a41ee140a1c9e72a" -uuid = "1e83bf80-4336-4d27-bf5d-d5a4f845583c" -version = "1.4.0" - -[[deps.Statistics]] -deps = ["LinearAlgebra", "SparseArrays"] -uuid = "10745b16-79ce-11e8-11f9-7d13ad32a3b2" - -[[deps.StatsAPI]] -deps = ["LinearAlgebra"] -git-tree-sha1 = "45a7769a04a3cf80da1c1c7c60caf932e6f4c9f7" -uuid = "82ae8749-77ed-4fe6-ae5f-f523153014b0" -version = "1.6.0" - -[[deps.StatsBase]] -deps = ["DataAPI", "DataStructures", "LinearAlgebra", "LogExpFunctions", "Missings", "Printf", "Random", "SortingAlgorithms", "SparseArrays", "Statistics", "StatsAPI"] -git-tree-sha1 = "d1bf48bfcc554a3761a133fe3a9bb01488e06916" -uuid = "2913bbd2-ae8a-5f71-8c99-4fb6c76f3a91" -version = "0.33.21" - -[[deps.StatsFuns]] -deps = ["ChainRulesCore", "HypergeometricFunctions", "InverseFunctions", "IrrationalConstants", "LogExpFunctions", "Reexport", "Rmath", "SpecialFunctions"] -git-tree-sha1 = "f625d686d5a88bcd2b15cd81f18f98186fdc0c9a" -uuid = "4c63d2b9-4356-54db-8cca-17b64c39e42c" -version = "1.3.0" - -[[deps.SteadyStateDiffEq]] -deps = ["DiffEqBase", "DiffEqCallbacks", "LinearAlgebra", "NLsolve", "Reexport", "SciMLBase"] -git-tree-sha1 = "564451a262696334a3bab19108a99dd90d5a22c8" -uuid = "9672c7b4-1e72-59bd-8a11-6ac3964bc41f" -version = "1.15.0" - -[[deps.StochasticDiffEq]] -deps = ["Adapt", "ArrayInterface", "DataStructures", "DiffEqBase", "DiffEqNoiseProcess", "DocStringExtensions", "FillArrays", "FiniteDiff", "ForwardDiff", "JumpProcesses", "LevyArea", "LinearAlgebra", "Logging", "MuladdMacro", "NLsolve", "OrdinaryDiffEq", "Random", "RandomNumbers", "RecursiveArrayTools", "Reexport", "SciMLBase", "SciMLOperators", "SparseArrays", "SparseDiffTools", "StaticArrays", "UnPack"] -git-tree-sha1 = "619c846726548b7b2e8728b72f288acf10390121" -uuid = "789caeaf-c7a9-5a7d-9973-96adeb23e2a0" -version = "6.61.0" - -[[deps.StrideArraysCore]] -deps = ["ArrayInterface", "CloseOpenIntervals", "IfElse", "LayoutPointers", "ManualMemory", "SIMDTypes", "Static", "StaticArrayInterface", "ThreadingUtilities"] -git-tree-sha1 = "5ffcee1813efc849f188dce82ca1553bd5f3a476" -uuid = "7792a7ef-975c-4747-a70f-980b88e8d1da" -version = "0.4.14" - -[[deps.StringManipulation]] -git-tree-sha1 = "46da2434b41f41ac3594ee9816ce5541c6096123" -uuid = "892a3eda-7b42-436c-8928-eab12a02cf0e" -version = "0.3.0" - -[[deps.StructArrays]] -deps = ["Adapt", "DataAPI", "GPUArraysCore", "StaticArraysCore", "Tables"] -git-tree-sha1 = "521a0e828e98bb69042fec1809c1b5a680eb7389" -uuid = "09ab397b-f2b6-538f-b94a-2f83cf4a842a" -version = "0.6.15" - -[[deps.SuiteSparse]] -deps = ["Libdl", "LinearAlgebra", "Serialization", "SparseArrays"] -uuid = "4607b0f0-06f3-5cda-b6b1-a6196a1729e9" - -[[deps.SuiteSparse_jll]] -deps = ["Artifacts", "Libdl", "Pkg", "libblastrampoline_jll"] -uuid = "bea87d4a-7f5b-5778-9afe-8cc45184846c" -version = "5.10.1+0" - -[[deps.Sundials]] -deps = ["CEnum", "DataStructures", "DiffEqBase", "Libdl", "LinearAlgebra", "Logging", "PrecompileTools", "Reexport", "SciMLBase", "SparseArrays", "Sundials_jll"] -git-tree-sha1 = "a982ee85e1908d39f58d7fff670e60f991ca2ddb" -uuid = "c3572dad-4567-51f8-b174-8c6c989267f4" -version = "4.19.0" - -[[deps.Sundials_jll]] -deps = ["Artifacts", "CompilerSupportLibraries_jll", "JLLWrappers", "Libdl", "OpenBLAS_jll", "Pkg", "SuiteSparse_jll"] -git-tree-sha1 = "04777432d74ec5bc91ca047c9e0e0fd7f81acdb6" -uuid = "fb77eaff-e24c-56d4-86b1-d163f2edb164" -version = "5.2.1+0" - -[[deps.SymbolicIndexingInterface]] -deps = ["DocStringExtensions"] -git-tree-sha1 = "f8ab052bfcbdb9b48fad2c80c873aa0d0344dfe5" -uuid = "2efcf032-c050-4f8e-a9bb-153293bab1f5" -version = "0.2.2" - -[[deps.TOML]] -deps = ["Dates"] -uuid = "fa267f1f-6049-4f14-aa54-33bafae1ed76" -version = "1.0.0" - -[[deps.TableTraits]] -deps = ["IteratorInterfaceExtensions"] -git-tree-sha1 = "c06b2f539df1c6efa794486abfb6ed2022561a39" -uuid = "3783bdb8-4a98-5b6b-af9a-565f29a5fe9c" -version = "1.0.1" - -[[deps.Tables]] -deps = ["DataAPI", "DataValueInterfaces", "IteratorInterfaceExtensions", "LinearAlgebra", "OrderedCollections", "TableTraits", "Test"] -git-tree-sha1 = "1544b926975372da01227b382066ab70e574a3ec" -uuid = "bd369af6-aec1-5ad0-b16a-f7cc5008161c" -version = "1.10.1" - -[[deps.Tar]] -deps = ["ArgTools", "SHA"] -uuid = "a4e569a6-e804-4fa4-b0f3-eef7a1d5b13e" -version = "1.10.1" - -[[deps.Test]] -deps = ["InteractiveUtils", "Logging", "Random", "Serialization"] -uuid = "8dfed614-e22c-5e08-85e1-65c5234f0b40" - -[[deps.ThreadingUtilities]] -deps = ["ManualMemory"] -git-tree-sha1 = "c97f60dd4f2331e1a495527f80d242501d2f9865" -uuid = "8290d209-cae3-49c0-8002-c8c24d57dab5" -version = "0.5.1" - -[[deps.TimerOutputs]] -deps = ["ExprTools", "Printf"] -git-tree-sha1 = "f548a9e9c490030e545f72074a41edfd0e5bcdd7" -uuid = "a759f4b9-e2f1-59dc-863e-4aeb61b1ea8f" -version = "0.5.23" - -[[deps.TreeViews]] -deps = ["Test"] -git-tree-sha1 = "8d0d7a3fe2f30d6a7f833a5f19f7c7a5b396eae6" -uuid = "a2a6695c-b41b-5b7d-aed9-dbfdeacea5d7" -version = "0.3.0" - -[[deps.TriangularSolve]] -deps = ["CloseOpenIntervals", "IfElse", "LayoutPointers", "LinearAlgebra", "LoopVectorization", "Polyester", "Static", "VectorizationBase"] -git-tree-sha1 = "31eedbc0b6d07c08a700e26d31298ac27ef330eb" -uuid = "d5829a12-d9aa-46ab-831f-fb7c9ab06edf" -version = "0.1.19" - -[[deps.Tricks]] -git-tree-sha1 = "aadb748be58b492045b4f56166b5188aa63ce549" -uuid = "410a4b4d-49e4-4fbc-ab6d-cb71b17b3775" -version = "0.1.7" - -[[deps.TruncatedStacktraces]] -deps = ["InteractiveUtils", "MacroTools", "Preferences"] -git-tree-sha1 = "7bc1632a4eafbe9bd94cf1a784a9a4eb5e040a91" -uuid = "781d530d-4396-4725-bb49-402e4bee1e77" -version = "1.3.0" - -[[deps.URIParser]] -deps = ["Unicode"] -git-tree-sha1 = "53a9f49546b8d2dd2e688d216421d050c9a31d0d" -uuid = "30578b45-9adc-5946-b283-645ec420af67" -version = "0.4.1" - -[[deps.URIs]] -git-tree-sha1 = "074f993b0ca030848b897beff716d93aca60f06a" -uuid = "5c2747f8-b7ea-4ff2-ba2e-563bfd36b1d4" -version = "1.4.2" - -[[deps.UUIDs]] -deps = ["Random", "SHA"] -uuid = "cf7118a7-6976-5b1a-9a39-7adc72f591a4" - -[[deps.UnPack]] -git-tree-sha1 = "387c1f73762231e86e0c9c5443ce3b4a0a9a0c2b" -uuid = "3a884ed6-31ef-47d7-9d2a-63182c4928ed" -version = "1.0.2" - -[[deps.Unicode]] -uuid = "4ec0a83e-493e-50e2-b9ac-8f72acf5a8f5" - -[[deps.Unitful]] -deps = ["ConstructionBase", "Dates", "LinearAlgebra", "Random"] -git-tree-sha1 = "ba4aa36b2d5c98d6ed1f149da916b3ba46527b2b" -uuid = "1986cc42-f94f-5a68-af5c-568840ba703d" -version = "1.14.0" - -[[deps.VectorizationBase]] -deps = ["ArrayInterface", "CPUSummary", "HostCPUFeatures", "IfElse", "LayoutPointers", "Libdl", "LinearAlgebra", "SIMDTypes", "Static", "StaticArrayInterface"] -git-tree-sha1 = "b182207d4af54ac64cbc71797765068fdeff475d" -uuid = "3d5dd08c-fd9d-11e8-17fa-ed2836048c2f" -version = "0.21.64" - -[[deps.VertexSafeGraphs]] -deps = ["Graphs"] -git-tree-sha1 = "8351f8d73d7e880bfc042a8b6922684ebeafb35c" -uuid = "19fa3120-7c27-5ec5-8db8-b0b0aa330d6f" -version = "0.2.0" - -[[deps.Zlib_jll]] -deps = ["Libdl"] -uuid = "83775a58-1f1d-513f-b197-d71354ab007a" -version = "1.2.12+3" - -[[deps.ZygoteRules]] -deps = ["ChainRulesCore", "MacroTools"] -git-tree-sha1 = "977aed5d006b840e2e40c0b48984f7463109046d" -uuid = "700de1a5-db45-46bc-99cf-38207098b444" -version = "0.2.3" - -[[deps.libblastrampoline_jll]] -deps = ["Artifacts", "Libdl", "OpenBLAS_jll"] -uuid = "8e850b90-86db-534c-a0d3-1478176c7d93" -version = "5.1.1+0" - -[[deps.nghttp2_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "8e850ede-7688-5339-a07c-302acd2aaf8d" -version = "1.48.0+0" - -[[deps.p7zip_jll]] -deps = ["Artifacts", "Libdl"] -uuid = "3f19e933-33d8-53b3-aaab-bd5110c3b7a0" -version = "17.4.0+0" From c19e6e7543df0a88f47def8d7d5f6fc44854ca7e Mon Sep 17 00:00:00 2001 From: Martin Otter Date: Sun, 4 Jun 2023 09:51:22 +0200 Subject: [PATCH 3/8] ModiaInterface adapted to changed argument list of _buildFunction in Modia 0.11.0 --- docs/src/index.md | 7 +++++++ src/ModiaInterface/buildModel3D.jl | 5 ++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/docs/src/index.md b/docs/src/index.md index 95805a0..b50da16 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -92,6 +92,13 @@ julia -JModia3D_sysimage.so (otherwise) | [8] |*[Modelling and Simulation of Physical Systems with Dynamically Changing Degrees of Freedom](https://doi.org/10.3390/electronics12030500)*| Electronics 2023, 12(3), 500 | [10.3390/electronics12030500](https://doi.org/10.3390/electronics12030500) | ## Release Notes + +### Version 0.12.1 + +- Adapted to Modia 0.11.0 (arguments of buildFunction in ModiaInterface had been changed) +- Manifest.toml file removed + + ### Version 0.12.0 - Support for variable-structure systems where variables (states) can appear and disappear during simulation - A simulation run is partitioned into phases that are called segments or modes (multi-mode modeling) diff --git a/src/ModiaInterface/buildModel3D.jl b/src/ModiaInterface/buildModel3D.jl index 02c6d89..5ffb507 100644 --- a/src/ModiaInterface/buildModel3D.jl +++ b/src/ModiaInterface/buildModel3D.jl @@ -11,7 +11,8 @@ nextMbsName(mbs,i,mbsi) = (Symbol(mbs*string(i+1)), mbsi, i+1) """ - buildCode = build_Model3D!(model, FloatType, TimeType, unitless, ID, modelPath; buildOption = "ComputeGeneralizedForces") + buildCode = build_Model3D!(model, modelModule, FloatType, TimeType, instantiateModelOptions, + ID, modelPath; buildOption = "ComputeGeneralizedForces") Generate and return the buildCode for a Modia3D model. @@ -19,6 +20,8 @@ Generate and return the buildCode for a Modia3D model. - `model`: Modia Model that contains Modia3D elements. - `FloatType`, `TimeType`: Types used when instantiating `SimulationModel{FloatType,TimeType} +- `instantiateModelOptions`: Options of @instantiateModel(...) +- `ID`: Unique ID within a model to identify the built-in component - `modelPath`: Path upto `model`. Path is a Symbol or Expr (such as :( a.b.c )) or nothing, if at the root. - `buildDict`: Dictionary, that will be stored in SimulationModel. An initial instance of Modia3D.Composition.MultibodyBuild{FloatType,TimeType} is stored in `buildDict` with key `string(modelPath)`, containing info about the generated code, in particular the joint type, path and From a61c7c118609969dd7c15245d1121abe24bd9ca8 Mon Sep 17 00:00:00 2001 From: Martin Otter Date: Sun, 4 Jun 2023 10:08:31 +0200 Subject: [PATCH 4/8] Require Modia 0.11.0 --- Project.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project.toml b/Project.toml index d5c9aaf..e01c240 100644 --- a/Project.toml +++ b/Project.toml @@ -12,7 +12,7 @@ HTTP = "0.9" JSON = "0.21" Measurements = "2" MeshIO = "0.4.10" -Modia = "0.11.0, 0.10.0" +Modia = "0.11.0" MonteCarloMeasurements = "1" OrderedCollections = "1" Reexport = "1.0" From 4ee7cab6d0439de061a4172e8cf5a6e74c4f2487 Mon Sep 17 00:00:00 2001 From: Martin Otter Date: Sun, 4 Jun 2023 13:00:42 +0200 Subject: [PATCH 5/8] Rename functions for built-in components --- src/Composition/ForceElements/Bushing.jl | 22 +++++++++---------- .../ForceElements/SpringDamperPtP.jl | 14 ++++++------ src/Composition/ForceElements/WorldForce.jl | 2 +- src/Composition/ForceElements/WorldTorque.jl | 2 +- src/Composition/joints/joints.jl | 2 +- 5 files changed, 21 insertions(+), 21 deletions(-) diff --git a/src/Composition/ForceElements/Bushing.jl b/src/Composition/ForceElements/Bushing.jl index 36bb471..054cc59 100644 --- a/src/Composition/ForceElements/Bushing.jl +++ b/src/Composition/ForceElements/Bushing.jl @@ -245,17 +245,17 @@ function evaluateForceElement(model::Modia.SimulationModel{F,TimeType}, force::B applyFrameTorquePair!(force.obj2, force.obj1, t12; frameCoord=force.obj1) if Modia.storeResults(model) - Modia.add_w_segmented_value!(model, force.translationResultIndex, r12) - Modia.add_w_segmented_value!(model, force.rotationResultIndex, ang) - Modia.add_w_segmented_value!(model, force.velocityResultIndex, v12) - Modia.add_w_segmented_value!(model, force.rotationVelocityResultIndex, angd) - Modia.add_w_segmented_value!(model, force.springForceResultIndex, fc) - Modia.add_w_segmented_value!(model, force.springTorqueResultIndex, mc) - Modia.add_w_segmented_value!(model, force.damperForceResultIndex, fd) - Modia.add_w_segmented_value!(model, force.damperTorqueResultIndex, md) - Modia.add_w_segmented_value!(model, force.torqueResultIndex, mom) - Modia.add_w_segmented_value!(model, force.forceVectorResultIndex, -f12) - Modia.add_w_segmented_value!(model, force.torqueVectorResultIndex, -t12) + Modia.copy_w_segmented_value_to_result(model, force.translationResultIndex, r12) + Modia.copy_w_segmented_value_to_result(model, force.rotationResultIndex, ang) + Modia.copy_w_segmented_value_to_result(model, force.velocityResultIndex, v12) + Modia.copy_w_segmented_value_to_result(model, force.rotationVelocityResultIndex, angd) + Modia.copy_w_segmented_value_to_result(model, force.springForceResultIndex, fc) + Modia.copy_w_segmented_value_to_result(model, force.springTorqueResultIndex, mc) + Modia.copy_w_segmented_value_to_result(model, force.damperForceResultIndex, fd) + Modia.copy_w_segmented_value_to_result(model, force.damperTorqueResultIndex, md) + Modia.copy_w_segmented_value_to_result(model, force.torqueResultIndex, mom) + Modia.copy_w_segmented_value_to_result(model, force.forceVectorResultIndex, -f12) + Modia.copy_w_segmented_value_to_result(model, force.torqueVectorResultIndex, -t12) end return nothing diff --git a/src/Composition/ForceElements/SpringDamperPtP.jl b/src/Composition/ForceElements/SpringDamperPtP.jl index bde3445..f27aee6 100644 --- a/src/Composition/ForceElements/SpringDamperPtP.jl +++ b/src/Composition/ForceElements/SpringDamperPtP.jl @@ -111,13 +111,13 @@ function evaluateForceElement(model::Modia.SimulationModel{F,TimeType}, force::S applyFrameForcePair!(force.obj2, force.obj1, f12; frameCoord=force.obj1) if Modia.storeResults(model) - Modia.add_w_segmented_value!(model, force.distanceResultIndex, pos) - Modia.add_w_segmented_value!(model, force.deflectionResultIndex, defl) - Modia.add_w_segmented_value!(model, force.velocityResultIndex, vel) - Modia.add_w_segmented_value!(model, force.springForceResultIndex, fc) - Modia.add_w_segmented_value!(model, force.damperForceResultIndex, fd) - Modia.add_w_segmented_value!(model, force.forceResultIndex, frc) - Modia.add_w_segmented_value!(model, force.forceVectorResultIndex, -f12) + Modia.copy_w_segmented_value_to_result(model, force.distanceResultIndex, pos) + Modia.copy_w_segmented_value_to_result(model, force.deflectionResultIndex, defl) + Modia.copy_w_segmented_value_to_result(model, force.velocityResultIndex, vel) + Modia.copy_w_segmented_value_to_result(model, force.springForceResultIndex, fc) + Modia.copy_w_segmented_value_to_result(model, force.damperForceResultIndex, fd) + Modia.copy_w_segmented_value_to_result(model, force.forceResultIndex, frc) + Modia.copy_w_segmented_value_to_result(model, force.forceVectorResultIndex, -f12) end return nothing diff --git a/src/Composition/ForceElements/WorldForce.jl b/src/Composition/ForceElements/WorldForce.jl index 957583d..f32f374 100644 --- a/src/Composition/ForceElements/WorldForce.jl +++ b/src/Composition/ForceElements/WorldForce.jl @@ -63,7 +63,7 @@ function evaluateForceElement(model::Modia.SimulationModel{F,TimeType}, force::W applyFrameForce!(force.objectApply, forceVector; frameCoord=force.objectCoord) if Modia.storeResults(model) - Modia.add_w_segmented_value!(model, force.forceVectorResultIndex, forceVector) + Modia.copy_w_segmented_value_to_result(model, force.forceVectorResultIndex, forceVector) end return nothing diff --git a/src/Composition/ForceElements/WorldTorque.jl b/src/Composition/ForceElements/WorldTorque.jl index 781344e..f5751c4 100644 --- a/src/Composition/ForceElements/WorldTorque.jl +++ b/src/Composition/ForceElements/WorldTorque.jl @@ -63,7 +63,7 @@ function evaluateForceElement(model::Modia.SimulationModel{F,TimeType}, force::W applyFrameTorque!(force.objectApply, torqueVector; frameCoord=force.objectCoord) if Modia.storeResults(model) - Modia.add_w_segmented_value!(model, force.torqueVectorResultIndex, torqueVector) + Modia.copy_w_segmented_value_to_result(model, force.torqueVectorResultIndex, torqueVector) end return nothing diff --git a/src/Composition/joints/joints.jl b/src/Composition/joints/joints.jl index ca3b6ce..40d9c5d 100644 --- a/src/Composition/joints/joints.jl +++ b/src/Composition/joints/joints.jl @@ -650,7 +650,7 @@ function change_rotSequence!(m::Modia.SimulationModel, freeMotion::FreeMotion, x freeMotion.rot = rot123fromR(Rfromrot132(freeMotion.rot)) freeMotion.isrot123 = true end - Modia.add_w_segmented_value!(m, freeMotion.iextra_isrot123, freeMotion.isrot123) + Modia.copy_w_segmented_value_to_result(m, freeMotion.iextra_isrot123, freeMotion.isrot123) # Change x-vector startIndex = freeMotion.ix_segmented_rot From 0d37b5119d1fcbd7ab5bc46124247ea11cacad4e Mon Sep 17 00:00:00 2001 From: Martin Otter Date: Sun, 4 Jun 2023 13:34:37 +0200 Subject: [PATCH 6/8] SimulationModel renamed to InstantiatedModel (due to change in Modia) --- Project.toml | 2 +- src/Composition/ForceElements/Bushing.jl | 4 ++-- src/Composition/ForceElements/SpringDamperPtP.jl | 4 ++-- src/Composition/ForceElements/WorldForce.jl | 4 ++-- src/Composition/ForceElements/WorldTorque.jl | 4 ++-- src/Composition/_module.jl | 2 +- src/Composition/dynamicCollision.jl | 4 ++-- src/Composition/dynamics.jl | 6 +++--- src/Composition/joints/joints.jl | 12 ++++++------ src/Composition/object3D.jl | 2 +- src/ModiaInterface/buildModel3D.jl | 6 +++--- src/ModiaInterface/model3D.jl | 4 ++-- src/PathPlanning/referencePathInternal.jl | 2 +- 13 files changed, 28 insertions(+), 28 deletions(-) diff --git a/Project.toml b/Project.toml index e01c240..b1ad05c 100644 --- a/Project.toml +++ b/Project.toml @@ -12,7 +12,7 @@ HTTP = "0.9" JSON = "0.21" Measurements = "2" MeshIO = "0.4.10" -Modia = "0.11.0" +Modia = "0.12.0, 0.11.0" MonteCarloMeasurements = "1" OrderedCollections = "1" Reexport = "1.0" diff --git a/src/Composition/ForceElements/Bushing.jl b/src/Composition/ForceElements/Bushing.jl index 054cc59..7645568 100644 --- a/src/Composition/ForceElements/Bushing.jl +++ b/src/Composition/ForceElements/Bushing.jl @@ -201,7 +201,7 @@ function torqueFromMoments(largeAngles::Bool, moments::SVector{3,F}, sico::SMatr end -function initializeForceElement(model::Modia.SimulationModel{F,TimeType}, force::Bushing{F})::Nothing where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} +function initializeForceElement(model::Modia.InstantiatedModel{F,TimeType}, force::Bushing{F})::Nothing where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} force.obj1.hasForceElement = true force.obj2.hasForceElement = true @@ -220,7 +220,7 @@ function initializeForceElement(model::Modia.SimulationModel{F,TimeType}, force: return nothing end -function evaluateForceElement(model::Modia.SimulationModel{F,TimeType}, force::Bushing{F}, time::TimeType) where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} +function evaluateForceElement(model::Modia.InstantiatedModel{F,TimeType}, force::Bushing{F}, time::TimeType) where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} R12 = measFrameRotation(force.obj2; frameOrig=force.obj1) r12 = measFramePosition(force.obj2; frameOrig=force.obj1, frameCoord=force.obj1) w12 = measFrameRotVelocity(force.obj2; frameOrig=force.obj1, frameCoord=force.obj1) diff --git a/src/Composition/ForceElements/SpringDamperPtP.jl b/src/Composition/ForceElements/SpringDamperPtP.jl index f27aee6..e7cef08 100644 --- a/src/Composition/ForceElements/SpringDamperPtP.jl +++ b/src/Composition/ForceElements/SpringDamperPtP.jl @@ -83,7 +83,7 @@ end SpringDamperPtP(; kwargs...) = SpringDamperPtP{Float64}(; kwargs...) -function initializeForceElement(model::Modia.SimulationModel{F,TimeType}, force::SpringDamperPtP{F}) where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} +function initializeForceElement(model::Modia.InstantiatedModel{F,TimeType}, force::SpringDamperPtP{F}) where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} force.obj1.hasForceElement = true force.obj2.hasForceElement = true @@ -98,7 +98,7 @@ function initializeForceElement(model::Modia.SimulationModel{F,TimeType}, force: return nothing end -function evaluateForceElement(model::Modia.SimulationModel{F,TimeType}, force::SpringDamperPtP{F}, time::TimeType) where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} +function evaluateForceElement(model::Modia.InstantiatedModel{F,TimeType}, force::SpringDamperPtP{F}, time::TimeType) where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} (pos, norm) = measFrameDistance(force.obj2; frameOrig=force.obj1) vel = measFrameDistVelocity(force.obj2; frameOrig=force.obj1) diff --git a/src/Composition/ForceElements/WorldForce.jl b/src/Composition/ForceElements/WorldForce.jl index f32f374..9ff0a2b 100644 --- a/src/Composition/ForceElements/WorldForce.jl +++ b/src/Composition/ForceElements/WorldForce.jl @@ -44,7 +44,7 @@ end WorldForce(; kwargs...) = WorldForce{Float64}(; kwargs...) -function initializeForceElement(model::Modia.SimulationModel{F,TimeType}, force::WorldForce{F})::Nothing where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} +function initializeForceElement(model::Modia.InstantiatedModel{F,TimeType}, force::WorldForce{F})::Nothing where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} force.objectApply.hasForceElement = true if !isnothing(force.objectCoord) @@ -56,7 +56,7 @@ function initializeForceElement(model::Modia.SimulationModel{F,TimeType}, force: return nothing end -function evaluateForceElement(model::Modia.SimulationModel{F,TimeType}, force::WorldForce{F}, time::TimeType) where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} +function evaluateForceElement(model::Modia.InstantiatedModel{F,TimeType}, force::WorldForce{F}, time::TimeType) where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} forceVector = force.forceFunction(; time=time, objectApply=force.objectApply, objectCoord=force.objectCoord) diff --git a/src/Composition/ForceElements/WorldTorque.jl b/src/Composition/ForceElements/WorldTorque.jl index f5751c4..d62ecbf 100644 --- a/src/Composition/ForceElements/WorldTorque.jl +++ b/src/Composition/ForceElements/WorldTorque.jl @@ -44,7 +44,7 @@ end WorldTorque(; kwargs...) = WorldTorque{Float64}(; kwargs...) -function initializeForceElement(model::Modia.SimulationModel{F,TimeType}, force::WorldTorque{F})::Nothing where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} +function initializeForceElement(model::Modia.InstantiatedModel{F,TimeType}, force::WorldTorque{F})::Nothing where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} force.objectApply.hasForceElement = true if !isnothing(force.objectCoord) @@ -56,7 +56,7 @@ function initializeForceElement(model::Modia.SimulationModel{F,TimeType}, force: return nothing end -function evaluateForceElement(model::Modia.SimulationModel{F,TimeType}, force::WorldTorque{F}, time::TimeType) where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} +function evaluateForceElement(model::Modia.InstantiatedModel{F,TimeType}, force::WorldTorque{F}, time::TimeType) where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} torqueVector = force.torqueFunction(; time=time, objectApply=force.objectApply, objectCoord=force.objectCoord) diff --git a/src/Composition/_module.jl b/src/Composition/_module.jl index c084c6d..7abe8ec 100644 --- a/src/Composition/_module.jl +++ b/src/Composition/_module.jl @@ -69,7 +69,7 @@ export isFree, isNotFree, changeJointFromFreeMotionToFix!, changeJointFromFixToF export fullName, instanceName -# export updateSimulationModel! +# export updateInstantiatedModel! export rot123fromR, rot132fromR, Rfromrot123, Rfromrot132 diff --git a/src/Composition/dynamicCollision.jl b/src/Composition/dynamicCollision.jl index 47641c1..c1f2177 100644 --- a/src/Composition/dynamicCollision.jl +++ b/src/Composition/dynamicCollision.jl @@ -4,7 +4,7 @@ # between objs with mpr algorithm, and use them as zero-crossing functions # (see file ...\ContactDetectionMPR\handler.jl) # after computing all distances between colliding shapes response calculations are done -function computeContactForcesAndTorques(sim::Modia.SimulationModel, scene, world, time, file) +function computeContactForcesAndTorques(sim::Modia.InstantiatedModel, scene, world, time, file) if typeof(scene.options.contactDetection) <: Modia3D.ContactDetectionMPR_handler ch::Modia3D.ContactDetectionMPR_handler = scene.options.contactDetection # Compute signed distances of all contact shapes during zero-crossing computation @@ -39,7 +39,7 @@ end # (see file ...\Composition\responseCalculation\elasticCollisionResponse.jl) # further, at an event simulation status is updated, contact material is replaced # and the actual contactDict is stored -function dealWithContacts!(sim::Modia.SimulationModel{F, T}, scene::Scene{F}, ch::Composition.ContactDetectionMPR_handler{M,F}, world::Composition.Object3D{F}, time::Float64, file::Nothing)::Nothing where {F <: Modia3D.VarFloatType, T, M} +function dealWithContacts!(sim::Modia.InstantiatedModel{F, T}, scene::Scene{F}, ch::Composition.ContactDetectionMPR_handler{M,F}, world::Composition.Object3D{F}, time::Float64, file::Nothing)::Nothing where {F <: Modia3D.VarFloatType, T, M} simh::Modia.EventHandler{F,T} = sim.eventHandler f1::SVector{3,F}=Modia3D.ZeroVector3D(F) diff --git a/src/Composition/dynamics.jl b/src/Composition/dynamics.jl index 8f0ee88..585ac27 100644 --- a/src/Composition/dynamics.jl +++ b/src/Composition/dynamics.jl @@ -105,12 +105,12 @@ end """ - initSegment_Model3D!(partiallyInstantiatedModel::Modia.SimulationModel, + initSegment_Model3D!(partiallyInstantiatedModel::Modia.InstantiatedModel, modelPath::String, ID, parameters::AbstractDict; log=false) Called once before initialization of a new simulation segment to instantiate/re-initialize a Model3D model """ -function initSegment_Model3D!(partiallyInstantiatedModel::Modia.SimulationModel{F,TimeType}, +function initSegment_Model3D!(partiallyInstantiatedModel::Modia.InstantiatedModel{F,TimeType}, modelPath::String, ID, parameters::AbstractDict; log=false)::Nothing where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} TimerOutputs.@timeit partiallyInstantiatedModel.timer "Modia3D_0 initSegment_Model3D!" begin if log @@ -215,7 +215,7 @@ Open Model3D: - Copy der(r):=v and der(rot):= f(w) into hidden derivatives. - Return mbs. """ -function openModel3D!(instantiatedModel::Modia.SimulationModel{F,TimeType}, modelPath::String, x::AbstractVector, time::TimeType)::MultibodyData{F,TimeType} where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} +function openModel3D!(instantiatedModel::Modia.InstantiatedModel{F,TimeType}, modelPath::String, x::AbstractVector, time::TimeType)::MultibodyData{F,TimeType} where {F <: Modia3D.VarFloatType, TimeType <: AbstractFloat} # println("bin in openModel3D ", instantiatedModel.eventHandler.restart) mbsBuild::MultibodyBuild{F,TimeType} = instantiatedModel.buildDict[modelPath] diff --git a/src/Composition/joints/joints.jl b/src/Composition/joints/joints.jl index 40d9c5d..4efa61a 100644 --- a/src/Composition/joints/joints.jl +++ b/src/Composition/joints/joints.jl @@ -6,7 +6,7 @@ # mutable struct MultibodyData{F <: Modia3D.VarFloatType, TimeType} - instantiatedModel::Modia.SimulationModel{F,TimeType} + instantiatedModel::Modia.InstantiatedModel{F,TimeType} path::String # Path of Model3D(...) world::Object3D{F} # Pointer to world object @@ -41,7 +41,7 @@ mutable struct MultibodyData{F <: Modia3D.VarFloatType, TimeType} # for multibodyAccelerations leq::Vector{Modia.LinearEquations{F}} - function MultibodyData{F,TimeType}(partiallyInstantiatedModel::Modia.SimulationModel{F,TimeType}, modelPath::String, world, scene, + function MultibodyData{F,TimeType}(partiallyInstantiatedModel::Modia.InstantiatedModel{F,TimeType}, modelPath::String, world, scene, revoluteObjects, prismaticObjects, freeMotionObjects, hiddenJointObjects, revoluteIndices, prismaticIndices, freeMotionIndices, zStartIndex, nz) where {F,TimeType} @@ -642,7 +642,7 @@ Change rotation sequence of `freeMotion.rot` from `x-axis, y-axis, z-axis` to `x - If `freeMotion.isrot123 = false`, set `freeMotion.isrot123 = true` and `x[..] = x_segmented[..] = rot123fromR(Rfromrot132(freeMotion.rot))` """ -function change_rotSequence!(m::Modia.SimulationModel, freeMotion::FreeMotion, x::AbstractVector, x_segmented::AbstractVector)::Nothing +function change_rotSequence!(m::Modia.InstantiatedModel, freeMotion::FreeMotion, x::AbstractVector, x_segmented::AbstractVector)::Nothing if freeMotion.isrot123 freeMotion.rot = rot132fromR(Rfromrot123(freeMotion.rot)) freeMotion.isrot123 = false @@ -680,12 +680,12 @@ end """ - setStatesHiddenJoints!(instantiatedModel::Modia.SimulationModel, mbs::MultibodyData, x) + setStatesHiddenJoints!(instantiatedModel::Modia.InstantiatedModel, mbs::MultibodyData, x) Copy states from the hidden state vector instantiatedModel.x_segmented to the hidden joints into the corresponding Object3Ds and copy some state derivatives into instantiatedModel.der_x_segmented. """ -function setStatesHiddenJoints!(m::Modia.SimulationModel{F,TimeType}, mbs::MultibodyData{F,TimeType}, _x)::Nothing where {F,TimeType} +function setStatesHiddenJoints!(m::Modia.InstantiatedModel{F,TimeType}, mbs::MultibodyData{F,TimeType}, _x)::Nothing where {F,TimeType} x_segmented = m.x_segmented der_x_segmented = m.der_x_segmented j1::Int = 0 @@ -790,7 +790,7 @@ end Copy derivatives of hidden states to instantiatedModel.der_x_segmented """ -function setHiddenStatesDerivatives!(m::Modia.SimulationModel{F,TimeType}, mbs::MultibodyData{F,TimeType}, genForces::Vector{F})::Nothing where {F,TimeType} +function setHiddenStatesDerivatives!(m::Modia.InstantiatedModel{F,TimeType}, mbs::MultibodyData{F,TimeType}, genForces::Vector{F})::Nothing where {F,TimeType} for obj in mbs.hiddenJointObjects freeMotion = mbs.freeMotion[obj.jointIndex] diff --git a/src/Composition/object3D.jl b/src/Composition/object3D.jl index 4b31ad8..57b3b5d 100644 --- a/src/Composition/object3D.jl +++ b/src/Composition/object3D.jl @@ -607,7 +607,7 @@ end # Inquire properties of a Object3D -fullName( obj::Object3D{F}) where F <: Modia3D.VarFloatType = obj.path # Modia.SimulationModel.modelName + Object3D.path (wird ca. 98x verwendet) +fullName( obj::Object3D{F}) where F <: Modia3D.VarFloatType = obj.path # Modia.InstantiatedModel.modelName + Object3D.path (wird ca. 98x verwendet) instanceName( obj::Object3D{F}) where F <: Modia3D.VarFloatType = obj.path fullName(obj) = error("fullName not implemented for ", typeof(obj)) instanceName(obj) = error("instanceName not implemented for ", typeof(obj)) diff --git a/src/ModiaInterface/buildModel3D.jl b/src/ModiaInterface/buildModel3D.jl index 5ffb507..ce6d083 100644 --- a/src/ModiaInterface/buildModel3D.jl +++ b/src/ModiaInterface/buildModel3D.jl @@ -19,11 +19,11 @@ Generate and return the buildCode for a Modia3D model. # Arguments - `model`: Modia Model that contains Modia3D elements. -- `FloatType`, `TimeType`: Types used when instantiating `SimulationModel{FloatType,TimeType} +- `FloatType`, `TimeType`: Types used when instantiating `InstantiatedModel{FloatType,TimeType} - `instantiateModelOptions`: Options of @instantiateModel(...) - `ID`: Unique ID within a model to identify the built-in component - `modelPath`: Path upto `model`. Path is a Symbol or Expr (such as :( a.b.c )) or nothing, if at the root. -- `buildDict`: Dictionary, that will be stored in SimulationModel. An initial instance of Modia3D.Composition.MultibodyBuild{FloatType,TimeType} +- `buildDict`: Dictionary, that will be stored in InstantiatedModel. An initial instance of Modia3D.Composition.MultibodyBuild{FloatType,TimeType} is stored in `buildDict` with key `string(modelPath)`, containing info about the generated code, in particular the joint type, path and order of the joint variables in the function calls present in the returned `buildCode`. - `buildOption`: Code generation method. Possible values: `"ComputeGeneralizedForces"` (and in the future: `"ComputeGeneralizedAccelerations"`). @@ -345,7 +345,7 @@ quat = [[0.10, 0.20, 0.30, 0.86], =# ``` """ -function get_animationHistory(instantiatedModel::Modia.SimulationModel{FloatType,TimeType}, +function get_animationHistory(instantiatedModel::Modia.InstantiatedModel{FloatType,TimeType}, modelPathAsString::String; log::Bool = true)::Union{OrderedDict{String,Any},Nothing} where {FloatType,TimeType} mbs::Modia3D.Composition.MultibodyData{FloatType,TimeType} = instantiatedModel.buildDict[modelPathAsString].mbs diff --git a/src/ModiaInterface/model3D.jl b/src/ModiaInterface/model3D.jl index 4fbf00c..eecded5 100644 --- a/src/ModiaInterface/model3D.jl +++ b/src/ModiaInterface/model3D.jl @@ -103,7 +103,7 @@ PrismaticWithFlange(; obj1, obj2, axis=1, s=Var(init=0.0), v=Var(init=0.0), canC """ - next_isrot123 = change_rotSequenceInNextIteration!(rot::AbstractVector, isrot123::Bool, instantiatedModel::SimulationModel, x, rot_name) + next_isrot123 = change_rotSequenceInNextIteration!(rot::AbstractVector, isrot123::Bool, instantiatedModel::InstantiatedModel, x, rot_name) Change rotation sequence of `rot` from `x-axis, y-axis, z-axis` to `x-axis, z-axis, y-axis` or visa versa in the next event iteration: @@ -111,7 +111,7 @@ Change rotation sequence of `rot` from `x-axis, y-axis, z-axis` to `x-axis, z-ax - If `isrot123 = false`, return `next_isrot123 = true` and `x[..] = rot123fromR(Rfromrot132(rot))` """ -function change_rotSequenceInNextIteration!(rot::AbstractVector, isrot123::Bool, instantiatedModel::SimulationModel, x, rot_name)::Bool +function change_rotSequenceInNextIteration!(rot::AbstractVector, isrot123::Bool, instantiatedModel::InstantiatedModel, x, rot_name)::Bool if isrot123 #println(" switch $rot_name 123 -> 132") next_rot = Modia3D.rot132fromR(Modia3D.Rfromrot123(rot)) diff --git a/src/PathPlanning/referencePathInternal.jl b/src/PathPlanning/referencePathInternal.jl index 9a799cb..e597439 100644 --- a/src/PathPlanning/referencePathInternal.jl +++ b/src/PathPlanning/referencePathInternal.jl @@ -27,7 +27,7 @@ end mutable struct ModelActions{F <: Modia3D.VarFloatType, TimeType} path::String scene::Composition.Scene{F} - instantiatedModel::Modia.SimulationModel{F,TimeType} # SimulationModel of model + instantiatedModel::Modia.InstantiatedModel{F,TimeType} # InstantiatedModel of model refMotion::Vector{ArbitraryMotion} # stores explicit robot functions nextEventTime::Float64 From 2ceceeaf26d0a8e131ae4baafa161d4c28f63302 Mon Sep 17 00:00:00 2001 From: Martin Otter Date: Mon, 5 Jun 2023 00:16:37 +0200 Subject: [PATCH 7/8] Store r_abs, R_abs of visual shapes in result --- Project.toml | 2 +- src/Composition/dynamics.jl | 27 +++++++++++++++++++++++---- src/Composition/joints/joints.jl | 6 ++++-- test/Basic/Pendulum.jl | 4 ++-- test/Segmented/TwoStageRocket3D.jl | 5 +++-- 5 files changed, 33 insertions(+), 11 deletions(-) diff --git a/Project.toml b/Project.toml index b1ad05c..411aaf7 100644 --- a/Project.toml +++ b/Project.toml @@ -12,7 +12,7 @@ HTTP = "0.9" JSON = "0.21" Measurements = "2" MeshIO = "0.4.10" -Modia = "0.12.0, 0.11.0" +Modia = "0.12.0" MonteCarloMeasurements = "1" OrderedCollections = "1" Reexport = "1.0" diff --git a/src/Composition/dynamics.jl b/src/Composition/dynamics.jl index 585ac27..4711f96 100644 --- a/src/Composition/dynamics.jl +++ b/src/Composition/dynamics.jl @@ -174,10 +174,23 @@ function initSegment_Model3D!(partiallyInstantiatedModel::Modia.InstantiatedMode zStartIndex = 0 end + # objIndices[i,1]: Index of r_abs of Object3D i + # [i,2]: Index of R_abs of Object3D i + objIndices = Matrix{Int}(undef, length(scene.updateVisuElements), 2) + for (i,obj) in enumerate(scene.updateVisuElements) + if typeof(obj.feature) == Modia3D.Composition.EmptyObject3DFeature + objIndices[i,1] = 0 + objIndices[i,2] = 0 + else + objIndices[i,1] = Modia.new_w_segmented_variable!(partiallyInstantiatedModel, obj.path*".r_abs", Modia3D.ZeroVector3D(F), "m") + objIndices[i,2] = Modia.new_w_segmented_variable!(partiallyInstantiatedModel, obj.path*".R_abs", Modia3D.NullRotation(F), "") + end + end + mbsBuild.mbs = MultibodyData{F,TimeType}(partiallyInstantiatedModel, modelPath, world, scene, - revoluteObjects, prismaticObjects, freeMotionObjects, hiddenJointObjects, - mbsBuild.revoluteIndices, mbsBuild.prismaticIndices, mbsBuild.freeMotionIndices, - zStartIndex, nz) + revoluteObjects, prismaticObjects, freeMotionObjects, hiddenJointObjects, + mbsBuild.revoluteIndices, mbsBuild.prismaticIndices, mbsBuild.freeMotionIndices, + objIndices, zStartIndex, nz) parameters[:qdd_hidden] = zeros(F, length(mbsBuild.mbs.hiddenGenForces)) if log @@ -514,11 +527,17 @@ function computeGeneralizedForces!(mbs::MultibodyData{F,TimeType}, qdd_hidden::V TimerOutputs.@timeit instantiatedModel.timer "Modia3D_3" begin # objects can have interactionManner (need to rename updateVisuElements) if scene.options.useOptimizedStructure - for obj in scene.updateVisuElements + objIndices = mbs.objIndices + for (i,obj) in enumerate(scene.updateVisuElements) parent = obj.parent obj.r_abs = obj.r_rel ≡ Modia3D.ZeroVector3D(F) ? parent.r_abs : parent.r_abs + parent.R_abs'*obj.r_rel obj.R_abs = obj.R_rel ≡ Modia3D.NullRotation(F) ? parent.R_abs : obj.R_rel*parent.R_abs + if objIndices[i,1] > 0 + Modia.copy_w_segmented_value_to_result(instantiatedModel, objIndices[i,1], obj.r_abs) + Modia.copy_w_segmented_value_to_result(instantiatedModel, objIndices[i,2], obj.R_abs) + end + # is executed only if an internal Object3D called if length( obj.visualizationFrame ) == 1 obj.visualizationFrame[1].r_abs = obj.r_abs diff --git a/src/Composition/joints/joints.jl b/src/Composition/joints/joints.jl index 4efa61a..85b1e53 100644 --- a/src/Composition/joints/joints.jl +++ b/src/Composition/joints/joints.jl @@ -31,6 +31,8 @@ mutable struct MultibodyData{F <: Modia3D.VarFloatType, TimeType} freeMotionCache_h::Vector{SVector{3,F}} # = h_f(q,qd,gravity,contact-forces) hiddenCache_h::Vector{F} # = h_hidden(q,qd,gravity,contact-forces) + objIndices::Matrix{Int} # objIndices[i,1]: Index of local w_segmented variable r_abs of Object3D i + # [i,2]: Index of local w_segmented variable R_abs of Object3D i zStartIndex::Int # eventHandler.z[zStartIndex] is first index of crossing function # (or zero, if enableContactDetection=false) nz::Int # Number of used zero crossing functions @@ -43,7 +45,7 @@ mutable struct MultibodyData{F <: Modia3D.VarFloatType, TimeType} function MultibodyData{F,TimeType}(partiallyInstantiatedModel::Modia.InstantiatedModel{F,TimeType}, modelPath::String, world, scene, revoluteObjects, prismaticObjects, freeMotionObjects, hiddenJointObjects, - revoluteIndices, prismaticIndices, freeMotionIndices, + revoluteIndices, prismaticIndices, freeMotionIndices, objIndices, zStartIndex, nz) where {F,TimeType} # Make joints available revoluteJoints = Vector{Revolute{F}}( undef, length(revoluteObjects)) @@ -116,7 +118,7 @@ mutable struct MultibodyData{F <: Modia3D.VarFloatType, TimeType} zeros(F, length(revoluteObjects)), zeros(F, length(prismaticObjects)), zeros(F, length(revoluteObjects)+length(prismaticObjects)), zeros(SVector{3,F}, 2*length(freeMotionObjects)), zeros(F, nhidden_qdd), zeros(F, length(revoluteObjects)+length(prismaticObjects)), zeros(SVector{3,F}, 2*length(freeMotionObjects)), zeros(F, nhidden_qdd), - zStartIndex, nz, partiallyInstantiatedModel.time, + objIndices, zStartIndex, nz, partiallyInstantiatedModel.time, zeros(F, 2*3*length(freeMotionObjects)), Modia.LinearEquations{F}[]) end diff --git a/test/Basic/Pendulum.jl b/test/Basic/Pendulum.jl index 16235fc..04d321e 100644 --- a/test/Basic/Pendulum.jl +++ b/test/Basic/Pendulum.jl @@ -12,9 +12,9 @@ Pendulum = Model3D( pendulum = @instantiateModel(Pendulum, unitless=true, log=false, logDetails=false, logCode=true, logStateSelection=false, logCalculations=false) requiredFinalStates = [5.970529829666215, -1.1395482781332746] simulate!(pendulum, stopTime=3.0, log=true, requiredFinalStates = requiredFinalStates) +showInfo(pendulum) @usingModiaPlot -plot(pendulum, "rev.phi") - +plot(pendulum, ["rev.phi", "body.r_abs", "body.R_abs"]) end diff --git a/test/Segmented/TwoStageRocket3D.jl b/test/Segmented/TwoStageRocket3D.jl index f066104..6cb1eb0 100644 --- a/test/Segmented/TwoStageRocket3D.jl +++ b/test/Segmented/TwoStageRocket3D.jl @@ -69,12 +69,13 @@ rocket = @instantiateModel(TwoStageRocket, unitless=true) stopTime = 15.0 tolerance = 1.0e-6 requiredFinalStates = [0.0, 1232.2203937213537, 0.0, 0.0, 77.85108394267779, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0] -simulate!(rocket, stopTime=stopTime, tolerance=tolerance, log=true, logEvents=false, logStates=false, requiredFinalStates=requiredFinalStates) - +simulate!(rocket, stopTime=stopTime, tolerance=tolerance, log=true, logEvents=true, logStates=false, requiredFinalStates=requiredFinalStates) +showInfo(rocket) @usingModiaPlot plot(rocket, [("stage2.body.translation[2]", "stage1.body.translation[2]" ), ("stage2.body.velocity[2]", "stage1.body.velocity[2]"), ("stage1.thrust.forceVector[2]", "stage2.thrust.forceVector[2]")]) +plot(rocket, ["stage1.body.r_abs[2]", "stage2.body.r_abs[2]"], figure=2) end From c2b2df8d66329e232b0d138a1dacdc2789b0b609 Mon Sep 17 00:00:00 2001 From: Martin Otter Date: Mon, 5 Jun 2023 00:20:38 +0200 Subject: [PATCH 8/8] Release notes updated --- docs/src/index.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/docs/src/index.md b/docs/src/index.md index b50da16..4b29f31 100644 --- a/docs/src/index.md +++ b/docs/src/index.md @@ -95,7 +95,10 @@ julia -JModia3D_sysimage.so (otherwise) ### Version 0.12.1 -- Adapted to Modia 0.11.0 (arguments of buildFunction in ModiaInterface had been changed) +- Adapted to Modia 0.12.0 (arguments of buildFunction in ModiaInterface had been changed, + as well as function names to define/access variables of built-in components) +- Absolute position (`r_abs`) and orientation (`R_abs`) of visible shapes are stored in the result + data structure and can be plotted (see Modia3D/test/Basid/Pendulum.jl, Modia3D/test/Segmented/TwoStageRocket3D.jl) - Manifest.toml file removed