diff --git a/dev/.documenter-siteinfo.json b/dev/.documenter-siteinfo.json index 5dae5727..0c11688f 100644 --- a/dev/.documenter-siteinfo.json +++ b/dev/.documenter-siteinfo.json @@ -1 +1 @@ -{"documenter":{"julia_version":"1.11.2","generation_timestamp":"2025-01-09T15:57:25","documenter_version":"1.8.0"}} \ No newline at end of file +{"documenter":{"julia_version":"1.11.2","generation_timestamp":"2025-01-15T15:59:31","documenter_version":"1.8.0"}} \ No newline at end of file diff --git a/dev/contents/index.html b/dev/contents/index.html index 368de51d..7e284f95 100644 --- a/dev/contents/index.html +++ b/dev/contents/index.html @@ -1,2 +1,2 @@ -Contents · FMI.jl
+Contents · FMI.jl
diff --git a/dev/deprecated/index.html b/dev/deprecated/index.html index 2d1fee52..b0093385 100644 --- a/dev/deprecated/index.html +++ b/dev/deprecated/index.html @@ -1,2 +1,2 @@ -Deprecated · FMI.jl

deprecated Functions

this doc page is necessary as all exported functions must be documented in the manual with documenter configured to check for missing documentation, therefor this hidden page exists

internal functions: remove export?

FMICore.fmi2CallbackFunctionsType

Source: FMISpec2.0.2[p.19-22]: 2.1.5 Creation, Destruction and Logging of FMU Instances

The struct contains pointers to functions provided by the environment to be used by the FMU. It is not allowed to change these functions between fmi2Instantiate(..) and fmi2Terminate(..) calls. Additionally, a pointer to the environment is provided (componentEnvironment) that needs to be passed to the “logger” function, in order that the logger function can utilize data from the environment, such as mapping a valueReference to a string. In the unlikely case that fmi2Component is also needed in the logger, it has to be passed via argument componentEnvironment. Argument componentEnvironment may be a null pointer. The componentEnvironment pointer is also passed to the stepFinished(..) function in order that the environment can provide an efficient way to identify the slave that called stepFinished(..).

source

deprecated

Mostly wrappers that are not supposed to be used (call specific wrapped functions instead)

all gone since 0.14.0 (nice)

+Deprecated · FMI.jl

deprecated Functions

this doc page is necessary as all exported functions must be documented in the manual with documenter configured to check for missing documentation, therefor this hidden page exists

internal functions: remove export?

FMICore.fmi2CallbackFunctionsType

Source: FMISpec2.0.2[p.19-22]: 2.1.5 Creation, Destruction and Logging of FMU Instances

The struct contains pointers to functions provided by the environment to be used by the FMU. It is not allowed to change these functions between fmi2Instantiate(..) and fmi2Terminate(..) calls. Additionally, a pointer to the environment is provided (componentEnvironment) that needs to be passed to the “logger” function, in order that the logger function can utilize data from the environment, such as mapping a valueReference to a string. In the unlikely case that fmi2Component is also needed in the logger, it has to be passed via argument componentEnvironment. Argument componentEnvironment may be a null pointer. The componentEnvironment pointer is also passed to the stepFinished(..) function in order that the environment can provide an efficient way to identify the slave that called stepFinished(..).

source

deprecated

Mostly wrappers that are not supposed to be used (call specific wrapped functions instead)

all gone since 0.14.0 (nice)

diff --git a/dev/examples/fmiexport_examples/Export/index.html b/dev/examples/fmiexport_examples/Export/index.html new file mode 100644 index 00000000..1b79c8e5 --- /dev/null +++ b/dev/examples/fmiexport_examples/Export/index.html @@ -0,0 +1,345 @@ + +Export Bouncing Ball · FMI.jl

Create a Bouncing Ball FMU

Tutorial by Tobias Thummerer, Simon Exner | Last edit: October 29 2024

🚧 This is a placeholder example, it will be changed or replaced soon. It is not meant to be tutorial at the current state! See the examples folder for examples. 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar
+# Licensed under the MIT license.
+# See LICENSE (https://github.com/thummeto/FMIExport.jl/blob/main/LICENSE) file in the project root for details.

Motivation

This Julia Package FMIExport.jl is motivated by the export of simulation models in Julia. Here the FMI specification is implemented. FMI (Functional Mock-up Interface) is a free standard (fmi-standard.org) that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. The user is able to create own FMUs (Functional Mock-up Units).

REPL-commands or build-script

The way to do this usually will be the REPL, but if you plan on exporting FMUs in an automated way, you may want to use a jl script containing the following commands. To run this example, the previously installed packages must be included.

using FMIExport
+using FMIBuild: saveFMU

Next we have to define where to put the generated files:

tmpDir = mktempdir(; prefix="fmibuildjl_test_", cleanup=false) 
+@info "Saving example files at: $(tmpDir)"
+fmu_save_path = joinpath(tmpDir, "BouncingBall.fmu")  
[ Info: Saving example files at: C:\Users\RUNNER~1\AppData\Local\Temp\fmibuildjl_test_4aPeCb
+
+
+
+
+
+"C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\fmibuildjl_test_4aPeCb\\BouncingBall.fmu"

Remember, that we use the FMU-source stored at examples/FMI2/BouncingBall. If you execute this notebook locally, make shure to adjust the fmusourcepath to where your FMU-Package resides. It is important, that an absolute path is provided! For this notebook to work in the automated bulid pipeline, this absolute path is obtained by the following instructions. If you run this example locally, you can provide the path manually, just make shure you use the correct directory seperator or just use just use julias joinpath function.

working_dir = pwd() # current working directory
+println(string("pwd() returns: ", working_dir))
+
+package_dir = split(working_dir, joinpath("examples", "jupyter-src"))[1] # remove everything after and including "examples\jupyter-src"
+println(string("package_dir is ", package_dir))
+
+fmu_source_package = joinpath(package_dir, "examples", "FMI2", "BouncingBall") # add correct relative path
+println(string("fmu_source_package is ", fmu_source_package))
+
+fmu_source_path = joinpath(fmu_source_package, "src", "BouncingBall.jl") # add correct relative path
+println(string("fmu_source_path is ", fmu_source_path))
pwd() returns: D:\a\FMIExport.jl\FMIExport.jl\examples\jupyter-src
+package_dir is D:\a\FMIExport.jl\FMIExport.jl\
+fmu_source_package is D:\a\FMIExport.jl\FMIExport.jl\examples\FMI2\BouncingBall
+fmu_source_path is D:\a\FMIExport.jl\FMIExport.jl\examples\FMI2\BouncingBall\src\BouncingBall.jl

The following codecell contains workardound code that will be obsolete with the next release. This is just to check the CI-Pipeline!

using FMIExport.FMIBase.FMICore: fmi2True, fmi2False 
+
+EPS = 1e-6
+
+FMU_FCT_INIT = function()
+    m = 1.0         # ball mass
+    r = 0.0         # ball radius
+    d = 0.7         # ball collision damping
+    v_min = 1e-1    # ball minimum velocity
+    g = 9.81        # gravity constant 
+    sticking = fmi2False
+
+    s = 1.0         # ball position
+    v = 0.0         # ball velocity
+    a = 0.0         # ball acceleration
+
+    t = 0.0        
+    x_c = [s, v]      
+    ẋ_c = [v, a]
+    x_d = [sticking]
+    u = []
+    p = [m, r, d, v_min, g]
+
+    return (t, x_c, ẋ_c, x_d, u, p)
+end
+
+FMU_FCT_EVALUATE = function(t, x_c, ẋ_c, x_d, u, p, eventMode)
+    m, r, d, v_min, g = p
+    s, v = x_c
+    sticking = x_d[1]
+    _, a = ẋ_c
+
+    if sticking == fmi2True
+        a = 0.0
+    elseif sticking == fmi2False
+        if eventMode
+            if s < r && v < 0.0
+                s = r + EPS # so that indicator is not triggered again
+                v = -v*d 
+                
+                # stop bouncing to prevent high frequency bouncing (and maybe tunneling the floor)
+                if abs(v) < v_min
+                    sticking = fmi2True
+                    v = 0.0
+                end
+            end
+        else
+            # no specials in continuos time mode
+        end
+
+        a = (m * -g) / m     # the system's physical equation (a little longer than necessary)
+    else
+        @error "Unknown value for `sticking` == $(sticking)."
+        return (x_c, ẋ_c, x_d, p)
+    end
+
+    x_c = [s, v]
+    ẋ_c = [v, a]
+    x_d = [sticking]
+    p = [m, r, d, v_min, g]
+
+    return (x_c, ẋ_c, x_d, p) # evaluation can't change discrete state!
+end
+
+FMU_FCT_OUTPUT = function(t, x_c, ẋ_c, x_d, u, p)
+    m, r, d, v_min, g = p
+    s, v = x_c
+    _, a = ẋ_c
+    sticking = x_d[1]
+
+    y = [s]
+
+    return y
+end
+
+FMU_FCT_EVENT = function(t, x_c, ẋ_c, x_d, u, p)
+    m, r, d, v_min, g = p
+    s, v = x_c
+    _, a = ẋ_c
+    sticking = x_d[1]
+   
+    if sticking == fmi2True
+        z1 = 1.0            # event 1: ball stay-on-ground
+    else
+        z1 = (s-r)          # event 1: ball hits ground 
+    end
+
+    z = [z1]
+
+    return z
+end
+FMIBUILD_CONSTRUCTOR = function(resPath="")
+    fmu = fmi2CreateSimple(initializationFct=FMU_FCT_INIT,
+                        evaluationFct=FMU_FCT_EVALUATE,
+                        outputFct=FMU_FCT_OUTPUT,
+                        eventFct=FMU_FCT_EVENT)
+
+    fmu.modelDescription.modelName = "BouncingBall"
+
+    # modes 
+    fmi2ModelDescriptionAddModelExchange(fmu.modelDescription, "BouncingBall")
+
+    # states [2]
+    fmi2AddStateAndDerivative(fmu, "ball.s"; stateDescr="Absolute position of ball center of mass", derivativeDescr="Absolute velocity of ball center of mass")
+    fmi2AddStateAndDerivative(fmu, "ball.v"; stateDescr="Absolute velocity of ball center of mass", derivativeDescr="Absolute acceleration of ball center of mass")
+
+    # discrete state [1]
+    fmi2AddIntegerDiscreteState(fmu, "sticking"; description="Indicator (boolean) if the mass is sticking on the ground, as soon as abs(v) < v_min")
+
+    # outputs [1]
+    fmi2AddRealOutput(fmu, "ball.s_out"; description="Absolute position of ball center of mass")
+
+    # parameters [5]
+    fmi2AddRealParameter(fmu, "m";     description="Mass of ball")
+    fmi2AddRealParameter(fmu, "r";     description="Radius of ball")
+    fmi2AddRealParameter(fmu, "d";     description="Collision damping constant (velocity fraction after hitting the ground)")
+    fmi2AddRealParameter(fmu, "v_min"; description="Minimal ball velocity to enter on-ground-state")
+    fmi2AddRealParameter(fmu, "g";     description="Gravity constant")
+
+    fmi2AddEventIndicator(fmu)
+
+    return fmu
+end
+fmu = FMIBUILD_CONSTRUCTOR()
Model name:	BouncingBall
+Type:		0

We need to make shure the fmusourcepackage is instantiated:

using Pkg
+notebook_env = Base.active_project(); # save current enviroment to return to it after we are done
+Pkg.activate(fmu_source_package); # activate the FMUs enviroment
+
+# make shure to use the same FMI source as in the enviroment of this example ("notebook_env"). 
+# As this example is automattically built using the local FMIExport package and not the one from the Juila registry, we need to add it using "develop". 
+Pkg.develop(PackageSpec(path=package_dir)); # If you added FMIExport using "add FMIExport", you have to remove this line and use instantiate instead.
+# Pkg.instantiate(); # instantiate the FMUs enviroment only if develop was not previously called
+
+Pkg.activate(notebook_env); # return to the original notebooks enviroment
  Activating project at `D:\a\FMIExport.jl\FMIExport.jl\examples\FMI2\BouncingBall`
+
+
+
+
+   Resolving package versions...
+
+
+
+
+    Updating `D:\a\FMIExport.jl\FMIExport.jl\examples\FMI2\BouncingBall\Project.toml`
+  [226f0e26] + FMIBuild v0.3.2
+  [31b88311] + FMIExport v0.4.1 `D:\a\FMIExport.jl\FMIExport.jl\`
+    Updating `D:\a\FMIExport.jl\FMIExport.jl\examples\FMI2\BouncingBall\Manifest.toml`
+
+
+  [47edcb42] + ADTypes v1.11.0
+  [7d9f7c33] + Accessors v0.1.41
+  [79e6a3ab] + Adapt v4.1.1
+  [4fba245c] + ArrayInterface v7.18.0
+  [4c555306] + ArrayLayouts v1.11.0
+  [62783981] + BitTwiddlingConvenienceFunctions v0.1.6
+  [2a0fbf3d] + CPUSummary v0.2.6
+⌅ [d360d2e6] + ChainRulesCore v1.24.0
+  [fb6a15b2] + CloseOpenIntervals v0.1.13
+  [38540f10] + CommonSolve v0.2.4
+  [bbf7d656] + CommonSubexpressions v0.3.1
+  [f70d9fcc] + CommonWorldInvalidations v1.0.0
+  [34da2185] + Compat v4.16.0
+  [a33af91c] + CompositionsBase v0.1.2
+  [2569d6c7] + ConcreteStructs v0.2.3
+  [187b0558] + ConstructionBase v1.5.8
+  [adafc99b] + CpuId v0.3.1
+  [9a962f9c] + DataAPI v1.16.0
+  [864edb3b] + DataStructures v0.18.20
+  [e2d170a0] + DataValueInterfaces v1.0.0
+  [2b5f629d] + DiffEqBase v6.161.0
+⌅ [459566f4] + DiffEqCallbacks v3.9.1
+  [163ba53b] + DiffResults v1.1.0
+  [b552c78f] + DiffRules v1.15.1
+  [a0c0ee7d] + DifferentiationInterface v0.6.29
+  [ffbed154] + DocStringExtensions v0.9.3
+  [4e289a0a] + EnumX v1.0.4
+  [f151be2c] + EnzymeCore v0.8.8
+  [e2ba6199] + ExprTools v0.1.10
+⌅ [6b7a57c9] + Expronicon v0.8.5
+  [8f5d6c58] + EzXML v1.2.0
+  [900ee838] + FMIBase v1.0.10
+  [226f0e26] + FMIBuild v0.3.2
+  [8af89139] + FMICore v1.1.1
+  [31b88311] + FMIExport v0.4.1 `D:\a\FMIExport.jl\FMIExport.jl\`
+  [7034ab61] + FastBroadcast v0.3.5
+  [9aa1b823] + FastClosures v0.3.2
+  [29a986be] + FastLapackInterface v2.0.4
+  [a4df4552] + FastPower v1.1.1
+  [1a297f60] + FillArrays v1.13.0
+  [6a86dc24] + FiniteDiff v2.26.2
+  [f6369f11] + ForwardDiff v0.10.38
+  [069b7b12] + FunctionWrappers v1.1.3
+  [77dc65aa] + FunctionWrappersWrappers v0.1.3
+⌅ [d9f16b24] + Functors v0.4.12
+  [46192b85] + GPUArraysCore v0.2.0
+  [c27321d9] + Glob v1.3.1
+  [3e5b6fbb] + HostCPUFeatures v0.1.17
+  [615f187c] + IfElse v0.1.1
+  [3587e190] + InverseFunctions v0.1.17
+  [92d709cd] + IrrationalConstants v0.2.2
+  [82899510] + IteratorInterfaceExtensions v1.0.0
+  [692b3bcd] + JLLWrappers v1.7.0
+  [ef3ab10e] + KLU v0.6.0
+  [ba0b0d4f] + Krylov v0.9.8
+  [10f19ff3] + LayoutPointers v0.1.17
+  [5078a376] + LazyArrays v2.3.2
+  [87fe0de2] + LineSearch v0.1.4
+  [d3d80556] + LineSearches v7.3.0
+  [7ed4a6bd] + LinearSolve v2.38.0
+  [2ab3a3ac] + LogExpFunctions v0.3.29
+  [bdcacae8] + LoopVectorization v0.12.171
+  [d8e11817] + MLStyle v0.4.17
+  [1914dd2f] + MacroTools v0.5.15
+  [d125e4d3] + ManualMemory v0.1.8
+  [bb5d69b7] + MaybeInplace v0.1.4
+  [46d2c3a1] + MuladdMacro v0.2.4
+  [d41bc354] + NLSolversBase v7.8.3
+  [77ba4419] + NaNMath v1.0.3
+⌅ [8913a72c] + NonlinearSolve v3.15.1
+  [6fe1bfb0] + OffsetArrays v1.15.0
+  [bac558e1] + OrderedCollections v1.7.0
+  [9b87118b] + PackageCompiler v2.2.0
+  [65ce6f38] + PackageExtensionCompat v1.0.2
+  [d96e819e] + Parameters v0.12.3
+  [f517fe37] + Polyester v0.7.16
+  [1d0040c9] + PolyesterWeave v0.2.2
+  [d236fae5] + PreallocationTools v0.4.24
+  [aea7be01] + PrecompileTools v1.2.1
+  [21216c6a] + Preferences v1.4.3
+  [92933f4c] + ProgressMeter v1.10.2
+  [3cdcf5f2] + RecipesBase v1.3.4
+  [731186ca] + RecursiveArrayTools v3.27.4
+  [f2c3362d] + RecursiveFactorization v0.2.23
+  [189a3867] + Reexport v1.2.2
+  [05181044] + RelocatableFolders v1.0.1
+  [ae029012] + Requires v1.3.0
+  [7e49a35a] + RuntimeGeneratedFunctions v0.5.13
+  [94e857df] + SIMDTypes v0.1.0
+  [476501e8] + SLEEFPirates v0.6.43
+  [0bca4576] + SciMLBase v2.70.0
+  [19f34311] + SciMLJacobianOperators v0.1.1
+  [c0aeaf25] + SciMLOperators v0.3.12
+  [53ae85a6] + SciMLStructures v1.6.1
+  [6c6a2e73] + Scratch v1.2.1
+  [efcf1570] + Setfield v1.1.1
+⌅ [727e6d20] + SimpleNonlinearSolve v1.12.3
+  [9f842d2f] + SparseConnectivityTracer v0.6.9
+  [0a514795] + SparseMatrixColorings v0.4.10
+  [e56a9233] + Sparspak v0.3.9
+  [276daf66] + SpecialFunctions v2.5.0
+  [aedffcd0] + Static v1.1.1
+  [0d7ed370] + StaticArrayInterface v1.8.0
+  [1e83bf80] + StaticArraysCore v1.4.3
+  [7792a7ef] + StrideArraysCore v0.5.7
+  [2efcf032] + SymbolicIndexingInterface v0.3.37
+  [3783bdb8] + TableTraits v1.0.1
+  [bd369af6] + Tables v1.12.0
+  [8290d209] + ThreadingUtilities v0.5.2
+  [a759f4b9] + TimerOutputs v0.5.26
+  [d5829a12] + TriangularSolve v0.2.1
+  [781d530d] + TruncatedStacktraces v1.4.0
+  [3a884ed6] + UnPack v1.0.2
+  [3d5dd08c] + VectorizationBase v0.21.71
+  [a5390f91] + ZipFile v0.10.1
+  [1d5cc7b8] + IntelOpenMP_jll v2024.2.1+0
+  [94ce4f54] + Libiconv_jll v1.18.0+0
+  [856f044c] + MKL_jll v2024.2.0+0
+  [efe28fd5] + OpenSpecFun_jll v0.5.6+0
+  [02c8fc9c] + XML2_jll v2.13.5+0
+  [1317d2d5] + oneTBB_jll v2021.12.0+0
+  [0dad84c5] + ArgTools v1.1.1
+  [56f22d72] + Artifacts
+  [2a0f44e3] + Base64
+  [ade2ca70] + Dates
+  [8ba89e20] + Distributed
+  [f43a241f] + Downloads v1.6.0
+  [7b1f6079] + FileWatching
+  [9fa8497b] + Future
+  [b77e0a4c] + InteractiveUtils
+  [4af54fe1] + LazyArtifacts
+  [b27032c2] + LibCURL v0.6.4
+  [76f85450] + LibGit2
+  [8f399da3] + Libdl
+  [37e2e46d] + LinearAlgebra
+  [56ddb016] + Logging
+  [d6f4376e] + Markdown
+  [ca575930] + NetworkOptions v1.2.0
+  [44cfe95a] + Pkg v1.10.0
+  [de0858da] + Printf
+  [3fa0cd96] + REPL
+  [9a3f8284] + Random
+  [ea8e919c] + SHA v0.7.0
+  [9e88b42a] + Serialization
+  [6462fe0b] + Sockets
+  [2f01184e] + SparseArrays v1.10.0
+  [10745b16] + Statistics v1.10.0
+  [fa267f1f] + TOML v1.0.3
+  [a4e569a6] + Tar v1.10.0
+  [8dfed614] + Test
+  [cf7118a7] + UUIDs
+  [4ec0a83e] + Unicode
+  [e66e0078] + CompilerSupportLibraries_jll v1.1.1+0
+  [deac9b47] + LibCURL_jll v8.4.0+0
+  [e37daf67] + LibGit2_jll v1.6.4+0
+  [29816b5a] + LibSSH2_jll v1.11.0+1
+  [c8ffd9c3] + MbedTLS_jll v2.28.2+1
+  [14a3606d] + MozillaCACerts_jll v2023.1.10
+  [4536629a] + OpenBLAS_jll v0.3.23+4
+  [05823500] + OpenLibm_jll v0.8.1+2
+  [bea87d4a] + SuiteSparse_jll v7.2.1+1
+  [83775a58] + Zlib_jll v1.2.13+1
+  [8e850b90] + libblastrampoline_jll v5.11.0+0
+  [8e850ede] + nghttp2_jll v1.52.0+1
+  [3f19e933] + p7zip_jll v17.4.0+2
+        Info Packages marked with ⌅ have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`
+  Activating project at `D:\a\FMIExport.jl\FMIExport.jl\examples`

That is all the preperation, that was necessary. Now we can export the FMU.

The following codecell contains workardound code that will need to be modified with the next release.

# currently export is broken, therefor we will not do it
+#saveFMU(fmu, fmu_save_path, fmu_source_path; debug=false, compress=false) # feel free to set debug true, disabled for documentation building
+#saveFMU(fmu_save_path, fmu_source_path; debug=false, compress=false) this meight be the format after the next release

Now we will grab the generated FMU and move it to a path, where it will be included in this documentation

mkpath("Export_files")
+# currently export is broken, therefor we will not find anything there
+#cp(fmu_save_path, joinpath("Export_files", "BouncingBall.fmu"))
"Export_files"

One current limitation of Julia-FMUs is, that they can not be imported back into Julia, as it is currently not allowed having two Julia-sys-images existing at the same time within the same process. (The Julia FMU comes bundeled with its own image).

Therefore we will test our generated FMU in Python unsing FMPy.

diff --git a/dev/examples/inputs/index.html b/dev/examples/inputs/index.html index 14fb17ba..00b7ebb1 100644 --- a/dev/examples/inputs/index.html +++ b/dev/examples/inputs/index.html @@ -1,5 +1,5 @@ -Inputs · FMI.jl

Simulate an FMU with inputs

Tutorial by Tobias Thummerer

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar
+Inputs · FMI.jl

Simulate an FMU with inputs

Tutorial by Tobias Thummerer

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar
 # Licensed under the MIT license. 
 # See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.

Introduction to the example

This example shows how to add custom inputs to a FMU, that are used during simulation.

Other formats

Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook.

Code section

# imports
 using FMI
@@ -902,4 +902,4 @@
 
 # simulate while setting inputs
 data_extForce_cxt = simulate(fmu, (tStart, tStop); saveat=tSave, inputValueReferences=["extForce"], inputFunction=extForce_cxt, dtmax=1e-2, showProgress=false)
-plot(data_extForce_cxt)

svg

Unload FMU

After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.

unloadFMU(fmu)
+plot(data_extForce_cxt)

svg

Unload FMU

After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.

unloadFMU(fmu)
diff --git a/dev/examples/manipulation/index.html b/dev/examples/manipulation/index.html index d3945f11..2ce8083b 100644 --- a/dev/examples/manipulation/index.html +++ b/dev/examples/manipulation/index.html @@ -1,5 +1,5 @@ -Manipulation · FMI.jl

Manipulate a function

Tutorial by Tobias Thummerer, Johannes Stoljar

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar
+Manipulation · FMI.jl

Manipulate a function

Tutorial by Tobias Thummerer, Johannes Stoljar

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar
 # Licensed under the MIT license. 
 # See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.

Introduction to the example

This example shows how to overwrite a FMI function with a custom C-function. For this the FMU model is simulated first without changes. Then the function fmi2GetReal() is overwritten and simulated again. Both simulations are displayed in a graph to show the change caused by overwriting the function. The model used is a one-dimensional spring pendulum with friction. The object-orientated structure of the SpringFrictionPendulum1D can be seen in the following graphic.

svg

Other formats

Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook.

Code section

To run the example, the previously installed packages must be included.

# imports
 using FMI
@@ -968,4 +968,4 @@
     return status
 end
myGetReal! (generic function with 1 method)

In the next command the original function is overwritten with the new defined function, for which the command fmiSetFctGetReal() is called.

# no we overwrite the original function
 fmi2SetFctGetReal(fmu, myGetReal!)
Ptr{Nothing} @0x0000018801a00fc0

Simulate and Plot FMU with modified function

As before, the identical command is called here for simulation. This is also a model exchange simulation. Immediately afterwards, the results are added to the previous graph as a dashed line.

simData = simulate(fmu, (tStart, tStop); recordValues=vrs)
-plot!(fig, simData; states=false, style=:dash)

svg

As expected by overwriting the function, all values are doubled.

Unload FMU

After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.

unloadFMU(fmu)

Summary

In this tutorial it is shown how an existing function of the library can be replaced by an own implementation.

+plot!(fig, simData; states=false, style=:dash)

svg

As expected by overwriting the function, all values are doubled.

Unload FMU

After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.

unloadFMU(fmu)

Summary

In this tutorial it is shown how an existing function of the library can be replaced by an own implementation.

diff --git a/dev/examples/modelica_conference_2021/index.html b/dev/examples/modelica_conference_2021/index.html index 42ba45cb..7e154c0f 100644 --- a/dev/examples/modelica_conference_2021/index.html +++ b/dev/examples/modelica_conference_2021/index.html @@ -1,5 +1,5 @@ -Modelica conference 2021 · FMI.jl

Example from the Modelica Conference 2021

Tutorial by Tobias Thummerer, Johannes Stoljar

This example was updated over time to keep track with developments and changes in FMI.jl.

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar
+Modelica conference 2021 · FMI.jl

Example from the Modelica Conference 2021

Tutorial by Tobias Thummerer, Johannes Stoljar

This example was updated over time to keep track with developments and changes in FMI.jl.

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar
 # Licensed under the MIT license. 
 # See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.

Introduction to the example

FMUs can be simulated in multiple ways using FMI.jl. You can use a very simple interface, that offers possibilities that satisfy almost any user requirement. However, if you need to build a custom simulation loop for your use case using the core FMI functions, we show that too.

svg

Other formats

Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook.

Code section

To run the example, the previously installed packages must be included.

# imports
 using FMI
@@ -714,4 +714,4 @@
 
 plot(tSave, values)

svg

The instantiated FMU must be terminated and then the memory area for the instance can also be deallocated. The last step is to unload the FMU to remove all unpacked data on disc.

fmi2Terminate(instanceFMU)
 fmi2FreeInstance!(instanceFMU)
-unloadFMU(fmu)

Summary

The tutorial has shown how to use the default simulation command and how to deploy a custom simulation loop.

+unloadFMU(fmu)

Summary

The tutorial has shown how to use the default simulation command and how to deploy a custom simulation loop.

diff --git a/dev/examples/multiple_instances/index.html b/dev/examples/multiple_instances/index.html index 876449c1..34cac487 100644 --- a/dev/examples/multiple_instances/index.html +++ b/dev/examples/multiple_instances/index.html @@ -1,5 +1,5 @@ -Multiple instances · FMI.jl

Multiple Instances of an FMU

Tutorial by Johannes Stoljar, Tobias Thummerer

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar
+Multiple instances · FMI.jl

Multiple Instances of an FMU

Tutorial by Johannes Stoljar, Tobias Thummerer

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar
 # Licensed under the MIT license. 
 # See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.

Motivation

This Julia Package FMI.jl is motivated by the use of simulation models in Julia. Here the FMI specification is implemented. FMI (Functional Mock-up Interface) is a free standard (fmi-standard.org) that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. The user can thus use simulation models in the form of an FMU (Functional Mock-up Units). Besides loading the FMU, the user can also set values for parameters and states and simulate the FMU both as co-simulation and model exchange simulation.

Introduction to the example

In this example we want to show that it is possible to create different instances of an FMU. The different instances can then be used to run independent simulations. After the FMU has been simulated, the simulation results are displayed in a graph. The used model is a one-dimensional spring pendulum without friction. The object-orientated structure of the SpringPendulum1D can be seen in the following graphic.

svg

Target group

The example is primarily intended for users who work in the field of simulations. The example wants to show how simple it is to use FMUs in Julia.

Other formats

Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook.

Getting started

Installation prerequisites

DescriptionCommandAlternative
1.Enter Package Manager via]
2.Install FMI viaadd FMIadd " https://github.com/ThummeTo/FMI.jl "
3.Install FMIZoo viaadd FMIZooadd " https://github.com/ThummeTo/FMIZoo.jl "
4.Install Plots viaadd Plots

Code section

To run the example, the previously installed packages must be included.

# imports
 using FMI
@@ -705,4 +705,4 @@
     FMU time:       -Inf
     FMU states:     nothing

The addresses of the instantiated FMUs must differ, and you can see that in the comparison below.

@assert comp1Address !== comp2Address

Again, a dictionary for the parameters is created. With this dictionary you can set the initial states of the variables of the FMU. For the spring constant spring.c a value of $1.0 \frac{N}{m}$ and for the position of the mass mass.s a value of $2.0 m$ is set. The created dictionary with the specified variables for recording are passed to the command for simulation. As before, the two keywords instantiate=false and freeInstance=false are set.

param2 = Dict("spring.c"=>1.0, "mass.s"=>2.0)
 data2 = simulateCS(c2, (tStart, tStop);  parameters=param2, recordValues=vrs, instantiate=false, freeInstance=false)
-plot!(fig, data2)

svg

For control, you can compare again the address of the instance comp2 to the previous address comp2Address and it should be the same address.

@assert c2.addr === comp2Address

Unload FMU

After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.

unloadFMU(myFMU)

Summary

Based on the example it can be seen that it is possible to create different instances of an FMU. The different instances can then be used to perform different simulations.

+plot!(fig, data2)

svg

For control, you can compare again the address of the instance comp2 to the previous address comp2Address and it should be the same address.

@assert c2.addr === comp2Address

Unload FMU

After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.

unloadFMU(myFMU)

Summary

Based on the example it can be seen that it is possible to create different instances of an FMU. The different instances can then be used to perform different simulations.

diff --git a/dev/examples/multiprocessing/index.html b/dev/examples/multiprocessing/index.html index f7c9cbb8..29c25ed6 100644 --- a/dev/examples/multiprocessing/index.html +++ b/dev/examples/multiprocessing/index.html @@ -1,5 +1,5 @@ -Multiprocessing · FMI.jl

Multiprocessing

Tutorial by Jonas Wilfert, Tobias Thummerer

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar, Jonas Wilfert
+Multiprocessing · FMI.jl

Multiprocessing

Tutorial by Jonas Wilfert, Tobias Thummerer

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar, Jonas Wilfert
 # Licensed under the MIT license. 
 # See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.

Motivation

This Julia Package FMI.jl is motivated by the use of simulation models in Julia. Here the FMI specification is implemented. FMI (Functional Mock-up Interface) is a free standard (fmi-standard.org) that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. The user can thus use simulation models in the form of an FMU (Functional Mock-up Units). Besides loading the FMU, the user can also set values for parameters and states and simulate the FMU both as co-simulation and model exchange simulation.

Introduction to the example

This example shows how to parallelize the computation of an FMU in FMI.jl. We can compute a batch of FMU-evaluations in parallel with different initial settings. Parallelization can be achieved using multithreading or using multiprocessing. This example shows multiprocessing, check multithreading.ipynb for multithreading. Advantage of multithreading is a lower communication overhead as well as lower RAM usage. However in some cases multiprocessing can be faster as the garbage collector is not shared.

The model used is a one-dimensional spring pendulum with friction. The object-orientated structure of the SpringFrictionPendulum1D can be seen in the following graphic.

svg

Target group

The example is primarily intended for users who work in the field of simulations. The example wants to show how simple it is to use FMUs in Julia.

Other formats

Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook.

Getting started

Installation prerequisites

DescriptionCommandAlternative
1.Enter Package Manager via]
2.Install FMI viaadd FMIadd " https://github.com/ThummeTo/FMI.jl "
3.Install FMIZoo viaadd FMIZooadd " https://github.com/ThummeTo/FMIZoo.jl "
4.Install FMICore viaadd FMICoreadd " https://github.com/ThummeTo/FMICore.jl "
5.Install BenchmarkTools viaadd BenchmarkTools

Code section

Adding your desired amount of processes:

using Distributed
 n_procs = 2
@@ -845,4 +845,4 @@
 
 BenchmarkTools.Trial: 1 sample with 1 evaluation per sample.
  Single result which took 30.101 s (0.00% GC) to evaluate,
- with a memory estimate of 99.47 KiB, over 1597 allocations.

As you can see, there is a significant speed-up in the median execution time. But: The speed-up is often much smaller than n_procs (or the number of physical cores of your CPU), this has different reasons. For a rule of thumb, the speed-up should be around n/2 on a n-core-processor with n Julia processes.

Unload FMU

After calculating the data, the FMU is unloaded and all unpacked data on disc is removed.

@everywhere unloadFMU(SharedModule.model_fmu)

Summary

In this tutorial it is shown how multi processing with Distributed.jl can be used to improve the performance for calculating a Batch of FMUs.

+ with a memory estimate of 99.47 KiB, over 1597 allocations.

As you can see, there is a significant speed-up in the median execution time. But: The speed-up is often much smaller than n_procs (or the number of physical cores of your CPU), this has different reasons. For a rule of thumb, the speed-up should be around n/2 on a n-core-processor with n Julia processes.

Unload FMU

After calculating the data, the FMU is unloaded and all unpacked data on disc is removed.

@everywhere unloadFMU(SharedModule.model_fmu)

Summary

In this tutorial it is shown how multi processing with Distributed.jl can be used to improve the performance for calculating a Batch of FMUs.

diff --git a/dev/examples/multithreading/index.html b/dev/examples/multithreading/index.html index 9105d768..ecf3902b 100644 --- a/dev/examples/multithreading/index.html +++ b/dev/examples/multithreading/index.html @@ -1,5 +1,5 @@ -Multithreading · FMI.jl

Multithreading

Tutorial by Jonas Wilfert, Tobias Thummerer

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar, Jonas Wilfert
+Multithreading · FMI.jl

Multithreading

Tutorial by Jonas Wilfert, Tobias Thummerer

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar, Jonas Wilfert
 # Licensed under the MIT license. 
 # See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.

Motivation

This Julia Package FMI.jl is motivated by the use of simulation models in Julia. Here the FMI specification is implemented. FMI (Functional Mock-up Interface) is a free standard (fmi-standard.org) that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. The user can thus use simulation models in the form of an FMU (Functional Mock-up Units). Besides loading the FMU, the user can also set values for parameters and states and simulate the FMU both as co-simulation and model exchange simulation.

Introduction to the example

This example shows how to parallelize the computation of an FMU in FMI.jl. We can compute a batch of FMU-evaluations in parallel with different initial settings. Parallelization can be achieved using multithreading or using multiprocessing. This example shows multithreading, check multiprocessing.ipynb for multiprocessing. Advantage of multithreading is a lower communication overhead as well as lower RAM usage. However in some cases multiprocessing can be faster as the garbage collector is not shared.

The model used is a one-dimensional spring pendulum with friction. The object-orientated structure of the SpringFrictionPendulum1D can be seen in the following graphic.

svg

Target group

The example is primarily intended for users who work in the field of simulations. The example wants to show how simple it is to use FMUs in Julia.

Other formats

Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook.

Getting started

Installation prerequisites

DescriptionCommandAlternative
1.Enter Package Manager via]
2.Install FMI viaadd FMIadd " https://github.com/ThummeTo/FMI.jl "
3.Install FMIZoo viaadd FMIZooadd " https://github.com/ThummeTo/FMIZoo.jl "
4.Install FMICore viaadd FMICoreadd " https://github.com/ThummeTo/FMICore.jl "
5.Install Folds viaadd Folds
6.Install BenchmarkTools viaadd BenchmarkTools

Code section

To run the example, the previously installed packages must be included.

# imports
 using FMI
@@ -1282,4 +1282,4 @@
 
  Memory estimate: 300.75 MiB, allocs estimate: 7602438.

As you can see, there is a significant speed-up in the median execution time. But: The speed-up is often much smaller than Threads.nthreads(), this has different reasons. For a rule of thumb, the speed-up should be around n/2 on a n-core-processor with n threads for the Julia process.

Unload FMU

After calculating the data, the FMU is unloaded and all unpacked data on disc is removed.

unloadFMU(realFMU)
 unloadFMU.(realFMUBatch)
1-element Vector{Nothing}:
- nothing

Summary

In this tutorial it is shown how multi threading with Folds.jl can be used to improve the performance for calculating a Batch of FMUs.

+ nothing

Summary

In this tutorial it is shown how multi threading with Folds.jl can be used to improve the performance for calculating a Batch of FMUs.

diff --git a/dev/examples/overview/index.html b/dev/examples/overview/index.html index d2e2c688..8fca7a80 100644 --- a/dev/examples/overview/index.html +++ b/dev/examples/overview/index.html @@ -1,2 +1,2 @@ -Overview · FMI.jl

Overview

This section discusses the included examples of the FMI.jl library. If you require further information about the function calls, see the function sections of the library.

Examples are subdevided into Basics, Advanced, Pluto workshops and Publication appendices.

Basic examples:

  • Simulate: Showing how you can simulate a CS-FMU and a ME-FMU.
  • Parameterize: A short example explaining how to parameterize a FMU before simulation.
  • Inputs: A short example explaining how to simulate a FMU with inputs.

Advanced examples:

Pluto workshops:

Publication appendices:

+Overview · FMI.jl

Overview

This section discusses the included examples of the FMI.jl library. If you require further information about the function calls, see the function sections of the library.

Examples are subdevided into Basics, Advanced, Export, Pluto workshops and Publication appendices.

Basic examples:

  • Simulate: Showing how you can simulate a CS-FMU and a ME-FMU.
  • Parameterize: A short example explaining how to parameterize a FMU before simulation.
  • Inputs: A short example explaining how to simulate a FMU with inputs.

Advanced examples:

FMIExport.jl examples:

Pluto workshops:

Publication appendices:

diff --git a/dev/examples/parameter_optimization/index.html b/dev/examples/parameter_optimization/index.html index d18337d4..433fd7f6 100644 --- a/dev/examples/parameter_optimization/index.html +++ b/dev/examples/parameter_optimization/index.html @@ -1,5 +1,5 @@ -FMU Parameter Optimization · FMI.jl

FMU Parameter Optimization

Tutorial by Tobias Thummerer

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons
+FMU Parameter Optimization · FMI.jl

FMU Parameter Optimization

Tutorial by Tobias Thummerer

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons
 # Licensed under the MIT license. 
 # See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.

Introduction to the example

This example shows how a parameter optimization can be set up for a FMU. The goal is to fit FMU parameters (and initial states), so that a reference trajectory is fit as good as possible.

Note, that this tutorial covers optimization without gradient information. Basically, FMI.jl supports gradient based optimization, too.

Other formats

Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook.

Getting started

Installation prerequisites

DescriptionCommand
1.Enter Package Manager via]
2.Install FMI viaadd FMI
3.Install FMIZoo viaadd FMIZoo
4.Install Optim viaadd Optim
5.Install Plots viaadd Plots

Code section

To run the example, the previously installed packages must be included.

# imports
 using FMI
@@ -961,4 +961,4 @@
  0.14283995779131217

Looks promising, let's have a look on the results plot:

s_fmu = simulateFMU(p_res); # simulate the position
 
 plot(tSave, s_fmu; label="FMU")
-plot!(tSave, s_tar; label="Optimization target")

svg

Actually a pretty fit! If you have higher requirements, check out the Optim.jl library.

unloadFMU(fmu)

Summary

This tutorial showed how a parameter (and start value) optimization can be performed on a FMU with a gradient free optimizer. This tutorial will be extended soon to further show how convergence for large parameter spaces can be improoved!

+plot!(tSave, s_tar; label="Optimization target")

svg

Actually a pretty fit! If you have higher requirements, check out the Optim.jl library.

unloadFMU(fmu)

Summary

This tutorial showed how a parameter (and start value) optimization can be performed on a FMU with a gradient free optimizer. This tutorial will be extended soon to further show how convergence for large parameter spaces can be improoved!

diff --git a/dev/examples/parameterize/index.html b/dev/examples/parameterize/index.html index 9c72d831..f65cab91 100644 --- a/dev/examples/parameterize/index.html +++ b/dev/examples/parameterize/index.html @@ -1,5 +1,5 @@ -Parameterize · FMI.jl

Parameterize a FMU

Tutorial by Tobias Thummerer, Johannes Stoljar

Last update: 09.08.2023

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar
+Parameterize · FMI.jl

Parameterize a FMU

Tutorial by Tobias Thummerer, Johannes Stoljar

Last update: 09.08.2023

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar
 # Licensed under the MIT license. 
 # See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.

Introduction

This example shows how to parameterize a FMU. We will show to possible ways to parameterize: The default option using the parameterization feature of fmiSimulate, fmiSimulateME or fmiSimulateCS. Second, a custom parameterization routine for advanced users.

Other formats

Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook.

Code section

To run the example, the previously installed packages must be included.

# imports
 using FMI
@@ -678,4 +678,4 @@
 Values [2]:
 	0.0	(63.821182015235024, 1.0, 98.0)
 	1.0	(63.821182015235024, 1.0, 98.0)
-Events [0]:

Unload FMU

The FMU will be unloaded and all unpacked data on disc will be removed.

unloadFMU(fmu)

Summary

Based on this tutorial it can be seen that there are two different variants to set and get parameters.These examples should make it clear to the user how parameters can also be set with different data types. As a small reminder, the sequence of commands for the manual parameterization of an FMU is summarized again.

loadFMU() &#8594; fmiInstantiate!() &#8594; fmiSetupExperiment() &#8594; fmiSetXXX() &#8594; fmiEnterInitializationMode() &#8594; fmiGetXXX() &#8594; fmiExitInitializationMode() &#8594; simualte() &#8594; unloadFMU()

+Events [0]:

Unload FMU

The FMU will be unloaded and all unpacked data on disc will be removed.

unloadFMU(fmu)

Summary

Based on this tutorial it can be seen that there are two different variants to set and get parameters.These examples should make it clear to the user how parameters can also be set with different data types. As a small reminder, the sequence of commands for the manual parameterization of an FMU is summarized again.

loadFMU() &#8594; fmiInstantiate!() &#8594; fmiSetupExperiment() &#8594; fmiSetXXX() &#8594; fmiEnterInitializationMode() &#8594; fmiGetXXX() &#8594; fmiExitInitializationMode() &#8594; simualte() &#8594; unloadFMU()

diff --git a/dev/examples/simulate/index.html b/dev/examples/simulate/index.html index 66106436..a28e8558 100644 --- a/dev/examples/simulate/index.html +++ b/dev/examples/simulate/index.html @@ -1,5 +1,5 @@ -Simulate · FMI.jl

Simulate an FMU in different modes

Tutorial by Johannes Stoljar, Tobias Thummerer

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar
+Simulate · FMI.jl

Simulate an FMU in different modes

Tutorial by Johannes Stoljar, Tobias Thummerer

🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧

License

# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar
 # Licensed under the MIT license. 
 # See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.

Motivation

This Julia Package FMI.jl is motivated by the use of simulation models in Julia. Here the FMI specification is implemented. FMI (Functional Mock-up Interface) is a free standard (fmi-standard.org) that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. The user can thus use simulation models in the form of an FMU (Functional Mock-up Units). Besides loading the FMU, the user can also set values for parameters and states and simulate the FMU both as co-simulation and model exchange simulation.

Introduction to the example

In this example we want to show how fast and easy the simulation for an FMU is. For this purpose, the FMU is simulated in co-simulation mode and in model-exchange mode. After the FMU has been simulated, the simulation results are displayed in a graph. The graphs of the different modes are compared with each other. The used model is a one-dimensional spring pendulum with friction. The object-orientated structure of the SpringFrictionPendulum1D can be seen in the following graphic.

svg

Target group

The example is primarily intended for users who work in the field of simulations. The example wants to show how simple it is to use FMUs in Julia.

Other formats

Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook.

Getting started

Installation prerequisites

DescriptionCommandAlternative
1.Enter Package Manager via]
2.Install FMI viaadd FMIadd " https://github.com/ThummeTo/FMI.jl "
3.Install FMIZoo viaadd FMIZooadd " https://github.com/ThummeTo/FMIZoo.jl "
4.Install Plots viaadd Plots

Code section

To run the example, the previously installed packages must be included.

# imports
 using FMI
@@ -1016,4 +1016,4 @@
 	State-Event #19 @ 1.9882755413329303s (state-change: false)
 	State-Event #11 @ 2.983039300931689s (state-change: false)
 	State-Event #19 @ 3.97882965888157s (state-change: false)
-	State-Event #11 @ 4.976975955923361s (state-change: false)

Plotting FMU

After the simulation is finished the results of the FMU for the co-simulation and model-exchange mode can be plotted. In the plot for the FMU it can be seen that the oscillation continues to decrease due to the effect of the friction. If you simulate long enough, the oscillation comes to a standstill in a certain time.

plot(dataCS)

svg

plot(dataME)

svg

From both graphs it can be seen that the simulation calculates exactly the same results.

Unload FMU

After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.

unloadFMU(myFMU)

Summary

Based on this tutorial it can be seen that simulating in the different mode is very easy, and it only takes a few commands to simulate the FMU.

+ State-Event #11 @ 4.976975955923361s (state-change: false)

Plotting FMU

After the simulation is finished the results of the FMU for the co-simulation and model-exchange mode can be plotted. In the plot for the FMU it can be seen that the oscillation continues to decrease due to the effect of the friction. If you simulate long enough, the oscillation comes to a standstill in a certain time.

plot(dataCS)

svg

plot(dataME)

svg

From both graphs it can be seen that the simulation calculates exactly the same results.

Unload FMU

After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.

unloadFMU(myFMU)

Summary

Based on this tutorial it can be seen that simulating in the different mode is very easy, and it only takes a few commands to simulate the FMU.

diff --git a/dev/examples/workshops/index.html b/dev/examples/workshops/index.html index c20d829f..e3451797 100644 --- a/dev/examples/workshops/index.html +++ b/dev/examples/workshops/index.html @@ -1,2 +1,2 @@ -Pluto Workshops · FMI.jl

Pluto based notebooks, that can easyly be executed on your own Pluto-Setup.

+Pluto Workshops · FMI.jl

Pluto based notebooks, that can easyly be executed on your own Pluto-Setup.

diff --git a/dev/faq/index.html b/dev/faq/index.html index 644cd9fc..7f4a2be0 100644 --- a/dev/faq/index.html +++ b/dev/faq/index.html @@ -1,5 +1,5 @@ -FAQ · FMI.jl

FAQ

This list some common - often numerical - errors, that can be fixed by better understanding the ODE-Problem inside your FMU.


Solving non-linear system fails

Description

Error message or warning, that solving of a non-linear system failed, close to the simulation start time.

Example

Solving non-linear system 101 failed at time=3e-05.

Reason

This could be, because the first step of the integration is accepted by the solver's error estimation, but shouldn't. This is usually, if the first step is picked to large by the solver's start step size heuristics.

Fix

  • Try a small start value for the integration with keyword dt.

Access denied

Description

Error message, that the binary for callback functions can't be accessed/opened.

Example

ERROR:
+FAQ · FMI.jl

FAQ

This list some common - often numerical - errors, that can be fixed by better understanding the ODE-Problem inside your FMU.


Solving non-linear system fails

Description

Error message or warning, that solving of a non-linear system failed, close to the simulation start time.

Example

Solving non-linear system 101 failed at time=3e-05.

Reason

This could be, because the first step of the integration is accepted by the solver's error estimation, but shouldn't. This is usually, if the first step is picked to large by the solver's start step size heuristics.

Fix

  • Try a small start value for the integration with keyword dt.

Access denied

Description

Error message, that the binary for callback functions can't be accessed/opened.

Example

ERROR:
 could not load library "...\src\FMI2\callbackFunctions\binaries\win64\callbackFunctions.dll"
 Access denied

Reason

This is because your OS doesn't allow to interact with the binaries shipped with FMI.jl.

Fix

This can easily be solved by fixing the binary's permission options or is automatically fixed if Julia runs with admin privileges.


Double Callback Crossing

Description

Error message, that solving failed because of double callback crossing.

Example

ERROR:
-Double callback crossing floating pointer reducer errored. Report this issue.

Reason

This is because the event instant (time point) of an FMU event indicator can't be found precisely.

Fix

This can be solved by allowing for more interpolation points during searching of the zero crossing:

fmu.executionConfig.rootSearchInterpolationPoints = 1000 # default value is 10

This will have negative performance impact on systems with extreme amount of events (thousands per second). For systems with only a few events there won't be a noticeable slow down.


+Double callback crossing floating pointer reducer errored. Report this issue.

Reason

This is because the event instant (time point) of an FMU event indicator can't be found precisely.

Fix

This can be solved by allowing for more interpolation points during searching of the zero crossing:

fmu.executionConfig.rootSearchInterpolationPoints = 1000 # default value is 10

This will have negative performance impact on systems with extreme amount of events (thousands per second). For systems with only a few events there won't be a noticeable slow down.


diff --git a/dev/features/index.html b/dev/features/index.html index c7c43fc4..bd77f94e 100644 --- a/dev/features/index.html +++ b/dev/features/index.html @@ -1,2 +1,2 @@ -Features · FMI.jl

Features

Please note, that this guide focuses also on users, that are not familiar with FMI. The following feature explanations are written in an easy-to-read-fashion, so there might be some points that are scientifically only 95% correct. For further information on FMI and FMUs, see fmi-standard.org. The term fmiX... refers to a value or function that is available along different versions of FMI, for example fmiXValueReference is a wildcard for fmi2ValueReference and fmi3ValueReference.

Execution Configuration

Not all FMUs support all features they should according to the FMI-standard, so FMI.jl provides a so called execution configuration. This configuration is also respected by FMIFlux.jl. The content of the execution configuration may change in future (together with new or deprecated features of linked libraries), but the most important core features will be kept over time. Because not all users need the full potential of this configuration tool, there are three presets given:

  • myFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_NO_RESET is the default operation mode for FMUs. FMUs are not reset via fmi2Reset, but new instantiated for every simulation run (or training step). This is not the most efficient way, but many FMUs have problems with resetting.
  • myFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_RESET is faster for well-implemented FMUs, but needs a fully working fmi2Reset-function. So if you know you have a fully working fmi2Reset, you may be faster with that option.
  • myFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_NO_FREEING should only be the very last choice. If your FMU neither supports fmi2Reset nor a proper fmi2FreeInstance, you could use this configuration as a last way out. Keep in mind, that new FMU instances are allocated but not freed, as long as your Julia instance is running (memory leak). In general, the amount of leaked memory is small, but you need to know what you are doing, if you do thousands or ten-thousands of simulation runs with such a FMU.
  • myFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_NOTHING should be used if you want maximum control over what is done and what not. This means you need to take care of instantiating, initialization, setting up and releasing FMU instances by yourself.

For a more detailed overview, please see the ?FMUExecutionConfig.

Debugging / Logging

Logging FMI-calls

To log all FMI-calls that happen (including "hidden" calls e.g. if you are using simulate) you can enable debugging for FMICore.jl using ENV["JULIA_DEBUG"] = "FMICore". This will log any fmi2xxx- and fmi3xxx-call, including the given parameters and return value. This can be a lot of calls, so you may want to redirect your REPL output to file.

Printing internal FMU messages

Many FMUs support for printing debugging messages. To force message printing, you can use the keyword loggingOn=true either ...

  • in the call fmiInstantiate, for example fmiInstantiate(myFMU; loggingOn=true) or
  • as part of the executionConfig, for example myFMU.executionConfig.loggingOn=true

You can further control which message types - like OK, Warning, Discard, Error, Fatal, Pending - should be logged by using the keywords logStatus{TYPE}=true as part of fmiInstantiate or (soon) the execution configuration. By default, all are activated. If your FMU (for FMI2 only, FMI3 changed this) uses a variadic callback function for messages (this is not supported by Julia at this time), you may need to activate external callbacks with the keyword externalCallbacks=true either ...

  • in the call fmiInstantiate!, for example fmiInstantiate!(myFMU; loggingOn=true, externalCallbacks=true) or
  • as part of the executionConfig, for example myFMU.executionConfig.loggingOn=true; myFMU.executionConfig.externalCallbacks=true

External callbacks are currently only supported on Windows and Linux.

Model variable identification

FMI.jl offers multiple ways to retrieve your model variables. Any function that accepts a variable identifier can handle the following argument types:

  • UInt32 or fmiXValueReference for example 1610612742 or 0x16000001: This is the most performant way of passing a variable identifier, but you need to know the value reference (you can determine them by having a look in the modelDescription.xml).
  • Vector{UInt32} or Vector{fmiXValueReference} for example [1610612742, 1610612743] or [0x16000001, 0x16000002]: This is the most performant way of passing multiple variable identifiers, but you need to know the value references.
  • String for example "ball.s": This is the most intuitive way, because you might already know the variable name from your modelling environment or model documentation.
  • Vector{String} for example ["ball.s", "der(ball.s)"]: This is the most intuitive way for multiple variable identifiers, because you might already know the variable names from your modelling environment or model documentation.
  • Symbol for example :states: There are multiple symbol-wildcards for interesting variable groups like :all, :none, :states, :derivatives, :inputs and :outputs.
  • nothing: If you don't want to record anything (same as :none)

Event handling

In FMI, there are basically two types of events: state and time. State events are triggered, as soon as one or more event indicators - scalar values that describe the "distance" in state space to the next state event - crossing zero. Time events are triggered at known time points during the simulation. If your model has state and/or time events is detected automatically by FMI.jl and the event handling happens automatically in the background.

Model exchange, co-simulation and scheduled execution

There are two different model types for FMUs in FMI2: Model exchange (ME) and co-simulation (CS). FMI3 further adds the mode scheduled execution (SE). If you have a FMU and are only interested in getting it simulated, use simulate so FMI.jl will automatically pick CS if available and otherwise ME. If you want to force a specific simulation mode, you can use simulateME (for ME), simulateCS (for CS) or simulateSE (for SE).

Simulate arbitrary time intervals

You can simply simulate arbitrary time intervals by passing a startTime unequal zero to fmi2SetupExperiment or [ToDo: corresponding FMI3 function]. Because some FMUs don't support startTime != 0.0 and will throw an error or warning, a time shifting feature inside FMI.jl can be used, that performs all necessary steps in the background - corresponding commands like e.g. fmi2SetTime or fmi2NewDiscreteStates act like the desired time interval is simulated. This feature is disabled by default, but can be activated in the execution configuration using myFMU.executionConfig.autoTimeShift=true while providing a startTime != 0.0.

Performance

In- and Out-of-Place: Many commands in FMI.jl are available in in-place and out-of-place semantics. Of course, in-place-calls are faster, because they don't need to allocate new memory at every call (for the return values). So if you have an eye on performance (or must have), a good starting point is to substitute out-of-place- with in-place-calls. Typical improvements are:

  • valueArray = fmi2GetReal(args...) -> fmi2GetReal!(args..., valueArray)
  • valueArray = fmi2GetDerivatives(args...) -> fmi2GetDerivatives!(args..., valueArray)
  • valueArray = fmi2NewDiscreteStates(args...) -> fmi2NewDiscreteStates!(args..., valueArray)

Of course, you have to use the same piece of memory (to write your return values in) for multiple calls - otherwise there will be no improvement because the number of allocations stays the same.

Views: You can use array-views instead of array-slices as input for in-place-functions, which further reduces memory allocations.

AD-Ecosystem (differentiation over FMUs)

Sensitivites over FMUs are fully integrated into FMI.jl, FMIImport.jl and FMIFlux.jl. Supported are ForwardDiff.jl together with all AD-frameworks, that use the interface of ChainRules.jl like e.g. Zygote.jl and ReverseDiff.jl. As a result, you can use implicit solvers or you can use FMUs as part of machine learning applications.

Watch your progress

When simulating FMUs with FMI.jl, a progress meter is shown per default. You can control the appearance via the keyword argument showProgress for simulate, simulateME, simulateCS and simulateSE. Progress meters are also available for FMIFlux.jl, but deactivated by default (during training, this can be a bit too much). When evaluating a NeuralFMU, you can use the same keyword with showProgress=true to show a progress bar during training, too. The simulation trajectory (also called the solution of your FMU's ODE system) can be plotted using plot(solution), all axis will be labeled automatically.

Parallelization

A native integrated support for multi-threaded and multi-process FMU-simulation (for example for Monte Carlo experiments) will be deployed soon.

+Features · FMI.jl

Features

Please note, that this guide focuses also on users, that are not familiar with FMI. The following feature explanations are written in an easy-to-read-fashion, so there might be some points that are scientifically only 95% correct. For further information on FMI and FMUs, see fmi-standard.org. The term fmiX... refers to a value or function that is available along different versions of FMI, for example fmiXValueReference is a wildcard for fmi2ValueReference and fmi3ValueReference.

Execution Configuration

Not all FMUs support all features they should according to the FMI-standard, so FMI.jl provides a so called execution configuration. This configuration is also respected by FMIFlux.jl. The content of the execution configuration may change in future (together with new or deprecated features of linked libraries), but the most important core features will be kept over time. Because not all users need the full potential of this configuration tool, there are three presets given:

  • myFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_NO_RESET is the default operation mode for FMUs. FMUs are not reset via fmi2Reset, but new instantiated for every simulation run (or training step). This is not the most efficient way, but many FMUs have problems with resetting.
  • myFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_RESET is faster for well-implemented FMUs, but needs a fully working fmi2Reset-function. So if you know you have a fully working fmi2Reset, you may be faster with that option.
  • myFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_NO_FREEING should only be the very last choice. If your FMU neither supports fmi2Reset nor a proper fmi2FreeInstance, you could use this configuration as a last way out. Keep in mind, that new FMU instances are allocated but not freed, as long as your Julia instance is running (memory leak). In general, the amount of leaked memory is small, but you need to know what you are doing, if you do thousands or ten-thousands of simulation runs with such a FMU.
  • myFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_NOTHING should be used if you want maximum control over what is done and what not. This means you need to take care of instantiating, initialization, setting up and releasing FMU instances by yourself.

For a more detailed overview, please see the ?FMUExecutionConfig.

Debugging / Logging

Logging FMI-calls

To log all FMI-calls that happen (including "hidden" calls e.g. if you are using simulate) you can enable debugging for FMICore.jl using ENV["JULIA_DEBUG"] = "FMICore". This will log any fmi2xxx- and fmi3xxx-call, including the given parameters and return value. This can be a lot of calls, so you may want to redirect your REPL output to file.

Printing internal FMU messages

Many FMUs support for printing debugging messages. To force message printing, you can use the keyword loggingOn=true either ...

  • in the call fmiInstantiate, for example fmiInstantiate(myFMU; loggingOn=true) or
  • as part of the executionConfig, for example myFMU.executionConfig.loggingOn=true

You can further control which message types - like OK, Warning, Discard, Error, Fatal, Pending - should be logged by using the keywords logStatus{TYPE}=true as part of fmiInstantiate or (soon) the execution configuration. By default, all are activated. If your FMU (for FMI2 only, FMI3 changed this) uses a variadic callback function for messages (this is not supported by Julia at this time), you may need to activate external callbacks with the keyword externalCallbacks=true either ...

  • in the call fmiInstantiate!, for example fmiInstantiate!(myFMU; loggingOn=true, externalCallbacks=true) or
  • as part of the executionConfig, for example myFMU.executionConfig.loggingOn=true; myFMU.executionConfig.externalCallbacks=true

External callbacks are currently only supported on Windows and Linux.

Model variable identification

FMI.jl offers multiple ways to retrieve your model variables. Any function that accepts a variable identifier can handle the following argument types:

  • UInt32 or fmiXValueReference for example 1610612742 or 0x16000001: This is the most performant way of passing a variable identifier, but you need to know the value reference (you can determine them by having a look in the modelDescription.xml).
  • Vector{UInt32} or Vector{fmiXValueReference} for example [1610612742, 1610612743] or [0x16000001, 0x16000002]: This is the most performant way of passing multiple variable identifiers, but you need to know the value references.
  • String for example "ball.s": This is the most intuitive way, because you might already know the variable name from your modelling environment or model documentation.
  • Vector{String} for example ["ball.s", "der(ball.s)"]: This is the most intuitive way for multiple variable identifiers, because you might already know the variable names from your modelling environment or model documentation.
  • Symbol for example :states: There are multiple symbol-wildcards for interesting variable groups like :all, :none, :states, :derivatives, :inputs and :outputs.
  • nothing: If you don't want to record anything (same as :none)

Event handling

In FMI, there are basically two types of events: state and time. State events are triggered, as soon as one or more event indicators - scalar values that describe the "distance" in state space to the next state event - crossing zero. Time events are triggered at known time points during the simulation. If your model has state and/or time events is detected automatically by FMI.jl and the event handling happens automatically in the background.

Model exchange, co-simulation and scheduled execution

There are two different model types for FMUs in FMI2: Model exchange (ME) and co-simulation (CS). FMI3 further adds the mode scheduled execution (SE). If you have a FMU and are only interested in getting it simulated, use simulate so FMI.jl will automatically pick CS if available and otherwise ME. If you want to force a specific simulation mode, you can use simulateME (for ME), simulateCS (for CS) or simulateSE (for SE).

Simulate arbitrary time intervals

You can simply simulate arbitrary time intervals by passing a startTime unequal zero to fmi2SetupExperiment or [ToDo: corresponding FMI3 function]. Because some FMUs don't support startTime != 0.0 and will throw an error or warning, a time shifting feature inside FMI.jl can be used, that performs all necessary steps in the background - corresponding commands like e.g. fmi2SetTime or fmi2NewDiscreteStates act like the desired time interval is simulated. This feature is disabled by default, but can be activated in the execution configuration using myFMU.executionConfig.autoTimeShift=true while providing a startTime != 0.0.

Performance

In- and Out-of-Place: Many commands in FMI.jl are available in in-place and out-of-place semantics. Of course, in-place-calls are faster, because they don't need to allocate new memory at every call (for the return values). So if you have an eye on performance (or must have), a good starting point is to substitute out-of-place- with in-place-calls. Typical improvements are:

  • valueArray = fmi2GetReal(args...) -> fmi2GetReal!(args..., valueArray)
  • valueArray = fmi2GetDerivatives(args...) -> fmi2GetDerivatives!(args..., valueArray)
  • valueArray = fmi2NewDiscreteStates(args...) -> fmi2NewDiscreteStates!(args..., valueArray)

Of course, you have to use the same piece of memory (to write your return values in) for multiple calls - otherwise there will be no improvement because the number of allocations stays the same.

Views: You can use array-views instead of array-slices as input for in-place-functions, which further reduces memory allocations.

AD-Ecosystem (differentiation over FMUs)

Sensitivites over FMUs are fully integrated into FMI.jl, FMIImport.jl and FMIFlux.jl. Supported are ForwardDiff.jl together with all AD-frameworks, that use the interface of ChainRules.jl like e.g. Zygote.jl and ReverseDiff.jl. As a result, you can use implicit solvers or you can use FMUs as part of machine learning applications.

Watch your progress

When simulating FMUs with FMI.jl, a progress meter is shown per default. You can control the appearance via the keyword argument showProgress for simulate, simulateME, simulateCS and simulateSE. Progress meters are also available for FMIFlux.jl, but deactivated by default (during training, this can be a bit too much). When evaluating a NeuralFMU, you can use the same keyword with showProgress=true to show a progress bar during training, too. The simulation trajectory (also called the solution of your FMU's ODE system) can be plotted using plot(solution), all axis will be labeled automatically.

Parallelization

A native integrated support for multi-threaded and multi-process FMU-simulation (for example for Monte Carlo experiments) will be deployed soon.

diff --git a/dev/fmi-tool-info/index.html b/dev/fmi-tool-info/index.html index fbdf31a5..daf1085e 100644 --- a/dev/fmi-tool-info/index.html +++ b/dev/fmi-tool-info/index.html @@ -1,2 +1,2 @@ -FMI Tool Information · FMI.jl

FMU Import Compatibility information (FMIImport.jl)

This section contains information about how import and simulation of FMI.jl and FMIInmport.jl where tested.

FMI-3.0

FMI3 is for now only beta supported and information will be deployed together with the full support release.

FMI-2.0

FMI.jl and FMIImport.jl are validated by simulating all valid FMI2-FMUs from the official FMI-Cross-Check in ME- as well as in CS-Mode, excluding the tools AMESim, Test-FMUs, SimulationX and Silver. For more information see our automated GitHub-Action. The results files - as defined by the FMI Cross Check - can be found in the forked repository inside of the corresponding sub folders. There are different branches for different OS-configurations available.

FMU Export Compatibility information (FMIExport.jl)

Detailed export information and automatically generated FMUs will be deployed soon in the repository.

FMI-3.0

File namex86_64-windowsx86_64-linux
BouncingBallcoming sooncoming soon
Manipulationcoming sooncoming soon
NeuralFMUcoming sooncoming soon

FMI-2.0

File namex86_64-windowsx86_64-linux
BouncingBallMEcoming soon
ManipulationMEcoming soon
NeuralFMUMEcoming soon

Validation tools

+FMI Tool Information · FMI.jl

FMU Import Compatibility information (FMIImport.jl)

This section contains information about how import and simulation of FMI.jl and FMIInmport.jl where tested.

FMI-3.0

FMI3 is for now only beta supported and information will be deployed together with the full support release.

FMI-2.0

FMI.jl and FMIImport.jl are validated by simulating all valid FMI2-FMUs from the official FMI-Cross-Check in ME- as well as in CS-Mode, excluding the tools AMESim, Test-FMUs, SimulationX and Silver. For more information see our automated GitHub-Action. The results files - as defined by the FMI Cross Check - can be found in the forked repository inside of the corresponding sub folders. There are different branches for different OS-configurations available.

FMU Export Compatibility information (FMIExport.jl)

Detailed export information and automatically generated FMUs will be deployed soon in the repository.

FMI-3.0

File namex86_64-windowsx86_64-linux
BouncingBallcoming sooncoming soon
Manipulationcoming sooncoming soon
NeuralFMUcoming sooncoming soon

FMI-2.0

File namex86_64-windowsx86_64-linux
BouncingBallMEcoming soon
ManipulationMEcoming soon
NeuralFMUMEcoming soon

Validation tools

diff --git a/dev/fmi2_lowlevel_CS_functions/index.html b/dev/fmi2_lowlevel_CS_functions/index.html index 863f007d..ac39dea4 100644 --- a/dev/fmi2_lowlevel_CS_functions/index.html +++ b/dev/fmi2_lowlevel_CS_functions/index.html @@ -1,5 +1,5 @@ -FMI for Co-Simulation · FMI.jl

FMI for Co-Simulation

This chapter defines the Functional Mock-up Interface (FMI) for the coupling of two or more simulation models in a Co-Simulation environment (FMI for Co-Simulation). Co-Simulation is a rather general approach to the simulation of coupled technical systems and coupled physical phenomena in engineering with focus on instationary (time-dependent) problems.

Transfer of Input / Output Values and Parameters

In order to enable the slave to interpolate the continuous real inputs between communication steps, the derivatives of the inputs with respect to time can be provided. Also, higher derivatives can be set to allow higher order interpolation.

FMIImport.fmi2GetRealOutputDerivativesFunction
fmi2GetRealOutputDerivatives(c::FMU2Component, vr::fmi2ValueReferenceFormat, order::AbstractArray{fmi2Integer})

Sets the n-th time derivative of real input variables.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called "ValueReference" that t define the variables whose derivatives shall be set.
  • order::Array{fmi2Integer}: Argument order is an array of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.

Returns

  • value::AbstactArray{fmi2Integer}: Return value is an array which represents a vector with the values of the derivatives.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters
source

Computation

The computation of time steps is controlled by the following function.

FMICore.fmi2DoStepFunction

Source: FMISpec2.0.2[p.104]: 4.2.2 Computation

The computation of a time step is started.

source
fmi2DoStep(c::FMU2Component, 
+FMI for Co-Simulation · FMI.jl

FMI for Co-Simulation

This chapter defines the Functional Mock-up Interface (FMI) for the coupling of two or more simulation models in a Co-Simulation environment (FMI for Co-Simulation). Co-Simulation is a rather general approach to the simulation of coupled technical systems and coupled physical phenomena in engineering with focus on instationary (time-dependent) problems.

Transfer of Input / Output Values and Parameters

In order to enable the slave to interpolate the continuous real inputs between communication steps, the derivatives of the inputs with respect to time can be provided. Also, higher derivatives can be set to allow higher order interpolation.

FMIImport.fmi2GetRealOutputDerivativesFunction
fmi2GetRealOutputDerivatives(c::FMU2Component, vr::fmi2ValueReferenceFormat, order::AbstractArray{fmi2Integer})

Sets the n-th time derivative of real input variables.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called "ValueReference" that t define the variables whose derivatives shall be set.
  • order::Array{fmi2Integer}: Argument order is an array of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.

Returns

  • value::AbstactArray{fmi2Integer}: Return value is an array which represents a vector with the values of the derivatives.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters
source

Computation

The computation of time steps is controlled by the following function.

FMICore.fmi2DoStepFunction

Source: FMISpec2.0.2[p.104]: 4.2.2 Computation

The computation of a time step is started.

source
fmi2DoStep(c::FMU2Component, 
                 currentCommunicationPoint::fmi2Real, 
                 communicationStepSize::fmi2Real, 
                 noSetFMUStatePriorToCurrentPoint::fmi2Boolean)

The computation of a time step is started.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • currentCommunicationPoint::fmi2Real: Argument currentCommunicationPoint contains a value of type fmi2Real which is a identifier for a variable value . currentCommunicationPoint defines the current communication point of the master.
  • communicationStepSize::fmi2Real: Argument communicationStepSize contains a value of type fmi2Real which is a identifier for a variable value. communicationStepSize defines the communiction step size.

noSetFMUStatePriorToCurrentPoint::Bool = true: Argument noSetFMUStatePriorToCurrentPoint contains a value of type Boolean. If no argument is passed the default value true is used. noSetFMUStatePriorToCurrentPoint indicates whether fmi2SetFMUState is no longer called for times before the currentCommunicationPoint in this simulation run Simulation run.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.104]: 4.2.2 Computation

See also fmi2DoStep.

source
fmi2DoStep(c::FMU2Component, 
@@ -15,4 +15,4 @@
                         s::fmi2StatusKind, 
                         value::Ref{fmi2Boolean})

Informs the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • s::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.

The following status information can be retrieved from a slave:

  • fmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.
  • fmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation
  • fmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.
  • fmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.
  • value::Ref{fmi2Boolean}: Argument value points to the return value (fmi2Boolean) which was requested. fmi2Boolean is a alias type for Boolean data type.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave

See also fmi2GetBooleanStatus!.

source
FMICore.fmi2GetStringStatus!Function

Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave

Informs the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.

source
fmi2GetStringStatus!(c::FMU2Component, 
                         s::fmi2StatusKind, 
-                        value::Ref{fmi2String})

Informs the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • s::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.

The following status information can be retrieved from a slave:

  • fmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.
  • fmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation
  • fmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.
  • fmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.
  • value:Ref{fmi2String}: Argument value points to the return value (fmi2String) which was requested. fmi2String is a alias type for String data type.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave

See also fmi2GetStringStatus!.

source
+ value::Ref{fmi2String})

Informs the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • s::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.

The following status information can be retrieved from a slave:

  • fmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.
  • fmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation
  • fmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.
  • fmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.
  • value:Ref{fmi2String}: Argument value points to the return value (fmi2String) which was requested. fmi2String is a alias type for String data type.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave

See also fmi2GetStringStatus!.

source
diff --git a/dev/fmi2_lowlevel_ME_functions/index.html b/dev/fmi2_lowlevel_ME_functions/index.html index 67ca0614..9fdeb425 100644 --- a/dev/fmi2_lowlevel_ME_functions/index.html +++ b/dev/fmi2_lowlevel_ME_functions/index.html @@ -1,5 +1,5 @@ -FMI for Model Exchange · FMI.jl

FMI for Model Exchange

This chapter contains the interface description to access the equations of a dynamic system from a C program.

Providing Independent Variables and Re-initialization of Caching

Depending on the situation, different variables need to be computed. In order to be efficient, it is important that the interface requires only the computation of variables that are needed in the present context. The state derivatives shall be reused from the previous call. This feature is called “caching of variables” in the sequel. Caching requires that the model evaluation can detect when the input arguments, like time or states, have changed.

FMICore.fmi2SetTimeFunction

Source: FMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching

Set a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).

source
fmi2SetTime(c::FMU2Component, 
+FMI for Model Exchange · FMI.jl

FMI for Model Exchange

This chapter contains the interface description to access the equations of a dynamic system from a C program.

Providing Independent Variables and Re-initialization of Caching

Depending on the situation, different variables need to be computed. In order to be efficient, it is important that the interface requires only the computation of variables that are needed in the present context. The state derivatives shall be reused from the previous call. This feature is called “caching of variables” in the sequel. Caching requires that the model evaluation can detect when the input arguments, like time or states, have changed.

FMICore.fmi2SetTimeFunction

Source: FMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching

Set a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).

source
fmi2SetTime(c::FMU2Component, 
                 time::fmi2Real; 
                 soft::Bool=false,
                 track::Bool=true,
@@ -12,4 +12,4 @@
                    derivatives::AbstractArray{fmi2Real},
                    nx::Csize_t)

Compute state derivatives at the current time instant and for the current states.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • derivatives::AbstractArray{fmi2Real}: Argument derivatives contains values of type fmi2Real which is a alias type for Real data type.derivatives is the AbstractArray which contains the Real values of the vector that represent the derivatives. The ordering of the elements of the derivatives vector is identical to the ordering of the state vector.
  • nx::Csize_t: Argument nx defines the length of vector derivatives and is provided for checking purposes

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetDerivatives!.

source
fmi2GetDerivatives!(c::FMU2Component, derivatives::AbstractArray{fmi2Real})

Compute state derivatives at the current time instant and for the current states.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • derivatives::Array{fmi2Real}: Stores fmi2Real values representing the derivatives for the current states. The ordering of the elements of the derivatives vector is identical to the ordering of the state vector.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetDerivatives!.

source
FMIImport.fmi2GetEventIndicatorsFunction
fmi2GetEventIndicators(c::FMU2Component)

Returns the event indicators of the FMU

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • eventIndicators::Array{fmi2Real}:The event indicators are returned as a vector represented by an array of "fmi2Real" values.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetEventIndicators!.

source
FMICore.fmi2GetEventIndicators!Function

Source: FMISpec2.0.2[p.86]: 3.2.2 Evaluation of Model Equations

Compute event indicators at the current time instant and for the current states.

source
fmi2GetEventIndicators!(c::FMU2Component, eventIndicators::AbstractArray{fmi2Real}, ni::Csize_t)

Compute event indicators at the current time instant and for the current states.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • eventIndicators::AbstractArray{fmi2Real}: Argument eventIndicators contains values of type fmi2Real which is a alias type for Real data type.eventIndicators is the AbstractArray which contains the Real values of the vector that represent the event indicators.
  • ni::Csize_t: Argument ni defines the length of vector eventIndicators and is provided for checking purposes

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetEventIndicators!.

source
fmi2GetEventIndicators!(c::FMU2Component, eventIndicators::AbstractArray{fmi2Real})

Returns the event indicators of the FMU.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • eventIndicators::AbstractArray{fmi2Real}:The event indicators are in an AbstractArray represented by an array of "fmi2Real" values.

Returns

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations
source
FMIImport.fmi2GetContinuousStatesFunction
fmi2GetContinuousStates(c::FMU2Component)

Return the new (continuous) state vector x

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • x::Array{fmi2Real}: Returns an array of fmi2Real values representing the new continuous state vector x.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetEventIndicators!.

source
FMICore.fmi2GetContinuousStates!Function

Source: FMISpec2.0.2[p.86]: 3.2.2 Evaluation of Model Equations

Return the new (continuous) state vector x.

source
fmi2GetContinuousStates!(c::FMU2Component,
                             x::AbstractArray{fmi2Real},
-                            nx::Csize_t)

Stores the new (continuous) state vector in x.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • x::AbstractArray{fmi2Real}: Argument x contains values of type fmi2Real which is a alias type for Real data type.x is the AbstractArray which contains the Real values of the vector that represent the new state vector.
  • nx::Csize_t: Argument nx defines the length of vector x and is provided for checking purposes

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetEventIndicators!.

source
FMIImport.fmi2GetNominalsOfContinuousStatesFunction
fmi2GetNominalsOfContinuousStates(c::FMU2Component)

Return the new (continuous) state vector x

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • x::Array{fmi2Real}: Returns an array of fmi2Real values representing the new continuous state vector x.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetNominalsOfContinuousStates.

source
FMICore.fmi2GetNominalsOfContinuousStates!Function

Source: FMISpec2.0.2[p.86]: 3.2.2 Evaluation of Model Equations

Return the nominal values of the continuous states.

source
fmi2GetNominalsOfContinuousStates!(c::FMU2Component, x_nominal::AbstractArray{fmi2Real}, nx::Csize_t)

Stores the nominal values of the continuous states in x_nominal.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • x_nominal::AbstractArray{fmi2Real}: Argument x_nominal contains values of type fmi2Real which is a alias type for Real data type.x_nominal is the AbstractArray which contains the Real values of the vector that represent the nominal values of the continuous states.
  • nx::Csize_t: Argument nx defines the length of vector x and is provided for checking purposes

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetEventIndicators!.

source
+ nx::Csize_t)

Stores the new (continuous) state vector in x.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • x::AbstractArray{fmi2Real}: Argument x contains values of type fmi2Real which is a alias type for Real data type.x is the AbstractArray which contains the Real values of the vector that represent the new state vector.
  • nx::Csize_t: Argument nx defines the length of vector x and is provided for checking purposes

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetEventIndicators!.

source
FMIImport.fmi2GetNominalsOfContinuousStatesFunction
fmi2GetNominalsOfContinuousStates(c::FMU2Component)

Return the new (continuous) state vector x

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • x::Array{fmi2Real}: Returns an array of fmi2Real values representing the new continuous state vector x.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetNominalsOfContinuousStates.

source
FMICore.fmi2GetNominalsOfContinuousStates!Function

Source: FMISpec2.0.2[p.86]: 3.2.2 Evaluation of Model Equations

Return the nominal values of the continuous states.

source
fmi2GetNominalsOfContinuousStates!(c::FMU2Component, x_nominal::AbstractArray{fmi2Real}, nx::Csize_t)

Stores the nominal values of the continuous states in x_nominal.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • x_nominal::AbstractArray{fmi2Real}: Argument x_nominal contains values of type fmi2Real which is a alias type for Real data type.x_nominal is the AbstractArray which contains the Real values of the vector that represent the nominal values of the continuous states.
  • nx::Csize_t: Argument nx defines the length of vector x and is provided for checking purposes

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)
  • FMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations

See also fmi2GetEventIndicators!.

source
diff --git a/dev/fmi2_lowlevel_library_constants/index.html b/dev/fmi2_lowlevel_library_constants/index.html index 903ffb26..d464d7d5 100644 --- a/dev/fmi2_lowlevel_library_constants/index.html +++ b/dev/fmi2_lowlevel_library_constants/index.html @@ -1,3 +1,3 @@ -FMI2 Types in FMI Import/Core .jl · FMI.jl

FMI2 Types in FMI Import/Core .jl

FMIBase.FMU2Type

The mutable struct representing a FMU (and a container for all its instances) in the FMI 2.0.2 Standard. Also contains the paths to the FMU and ZIP folder as well als all the FMI 2.0.2 function pointers.

source
FMIBase.FMU2ComponentEnvironmentType

Source: FMISpec 2.0.3 [p.16f]

This is a pointer to a data structure in the simulation environment that calls the FMU. Using this pointer, data from the modelDescription.xml file [(for example, mapping of valueReferences to variable names)] can be transferred between the simulation environment and the logger function (see [FMISpec 2.0.3] section 2.1.5).

source
FMIBase.FMI2StructType
FMI2Struct

A wildcard for FMI2 related structs, namely Union{FMU2, fmi2ModelDescription, FMU2Component}.

source
FMICore.fmi2InitialType

Source: FMISpec2.0.2[p.48]: 2.2.7 Definition of Model Variables (ModelVariables)

Enumeration that defines how the variable is initialized. It is not allowed to provide a value for initial if causality = "input" or "independent":

"exact": The variable is initialized with the start value (provided under Real, Integer, Boolean, String or Enumeration). "approx": The variable is an iteration variable of an algebraic loop and the iteration at initialization starts with the start value. "calculated": The variable is calculated from other variables during initialization. It is not allowed to provide a “start” value. If initial is not present, it is defined by the table below based on causality and variability. If initial = exact or approx, or causality = ″input″, a start value must be provided. If initial = calculated, or causality = ″independent″, it is not allowed to provide a start value. If fmiSetXXX is not called on a variable with causality = ″input″, then the FMU must use the start value as value of this input. Added prefix "fmi2" to help with redefinition of constans in enums.

source
FMICore.fmi2ScalarVariableType

Source: FMISpec2.0.2[p.46]: 2.2.7 Definition of Model Variables (ModelVariables)

The fmi2ScalarVariable specifies the type and argument of every exposed variable in the fmu

source
FMICore.fmi2SimpleTypeType

Source: FMISpec2.0.3[p.40]: 2.2.3 Definition of Types (TypeDefinitions)

The fmi2SimpleType describes the attributes of a type definition.

source
FMICore.fmi2TypeType

Source: FMISpec2.0.2[p.19]: 2.1.5 Creation, Destruction and Logging of FMU Instances

Argument fmuType defines the type of the FMU:

  • fmi2ModelExchange: FMU with initialization and events; between events simulation of continuous systems is performed with external integrators from the environment.
  • fmi2CoSimulation: Black box interface for co-simulation.
source
FMICore.fmi2BaseUnitType

Source: FMISpec2.0.3[p.35]: 2.2.2 Definition of Units (UnitDefinitions)

fmi2BaseUnit(
-    kg=0, m=0, s=0, A=0, K=0, mol=0, cd=0, rad=0, factor=1.0, offset=0.0)

Type for the optional “BaseUnit” field of an fmi2Unit.

source
FMICore.fmi2UnitType

Source: FMISpec2.0.3[p.35]: 2.2.2 Definition of Units (UnitDefinitions)

Element “UnitDefinitions ” of fmiModelDescription.

source
FMICore.fmi2DisplayUnitType

Source: FMISpec2.0.3[p.35]: 2.2.2 Definition of Units (UnitDefinitions)

fmi2DisplayUnit(name, factor=1.0, offset=0.0)

Type for the optional “DisplayUnit” field(s) of an fmi2Unit.

source
FMICore.fmi2CharType

Source: FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions

FMI2 Data Types To simplify porting, no C types are used in the function interfaces, but the alias types are defined in this section. All definitions in this section are provided in the header file “fmi2TypesPlatform.h”.

source
FMICore.fmi2VariabilityType

Source: FMISpec2.0.2[p.49]: 2.2.7 Definition of Model Variables (ModelVariables)

Enumeration that defines the time dependency of the variable, in other words, it defines the time instants when a variable can change its value.

"constant": The value of the variable never changes. "fixed": The value of the variable is fixed after initialization, in other words, after fmi2ExitInitializationMode was called the variable value does not change anymore. "tunable": The value of the variable is constant between external events (ModelExchange) and between Communication Points (Co-Simulation) due to changing variables with causality = "parameter" or "input" and variability = "tunable". Whenever a parameter or input signal with variability = "tunable" changes, an event is triggered externally (ModelExchange), or the change is performed at the next Communication Point (Co-Simulation) and the variables with variability = "tunable" and causality = "calculatedParameter" or "output" must be newly computed. "discrete": ModelExchange: The value of the variable is constant between external and internal events (= time, state, step events defined implicitly in the FMU). Co-Simulation: By convention, the variable is from a “real” sampled data system and its value is only changed at Communication Points (also inside the slave). "continuous": Only a variable of type = “Real” can be “continuous”. ModelExchange: No restrictions on value changes. Co-Simulation: By convention, the variable is from a differential The default is “continuous”. Added prefix "fmi2" to help with redefinition of constans in enums.

source
FMICore.fmi2VariableDependencyType

Mutable Struct representing existance and kind of dependencies of an Unknown on Known Variables in Continuous-Time and Event Mode (ME) and at Communication Points (CS)

See also FMI2.0.3 Spec fmi2VariableDependency [p.60]

source
FMICore.fmi2DependencyKindType

Types of dependency:

  • fmi2DependencyKindDependent: no particular structure, f(v)
  • fmi2DependencyKindConstant: constant factor, c*v (for Real valued variables only)
  • fmi2DependencyKindFixed: tunable factor, p*v (for Real valued variables only)
  • fmi2DependencyKindTunable [ToDo]
  • fmi2DependencyKindDiscrete [ToDo]

Source: FMI2.0.3 Spec for fmi2VariableDependency [p.60]

source
FMICore.fmi2EventInfoType

Source: FMISpec2.0.2[p.84]: 3.2.2 Evaluation of Model Equations

If return argument fmi2eventInfo.newDiscreteStatesNeeded = fmi2True, the FMU should stay in Event Mode, and the FMU requires to set new inputs to the FMU (fmi2SetXXX on inputs) to compute and get the outputs (fmi2GetXXX on outputs) and to call fmi2NewDiscreteStates again. Depending on the connection with other FMUs, the environment shall

  • call fmi2Terminate, if terminateSimulation = fmi2True is returned by at least one FMU.
  • call fmi2EnterContinuousTimeMode if all FMUs return newDiscreteStatesNeeded = fmi2False.
  • stay in Event Mode otherwise.

When the FMU is terminated, it is assumed that an appropriate message is printed by the logger function (see section 2.1.5) to explain the reason for the termination. If nominalsOfContinuousStatesChanged = fmi2True, then the nominal values of the states have changed due to the function call and can be inquired with fmi2GetNominalsOfContinuousStates. If valuesOfContinuousStatesChanged = fmi2True. then at least one element of the continuous state vector has changed its value due to the function call. The new values of the states can be retrieved with fmi2GetContinuousStates or individually for each state for which reinit = "true" by calling getReal. If no element of the continuous state vector has changed its value, valuesOfContinuousStatesChanged must return fmi2False. [If fmi2True would be returned in this case, an infinite event loop may occur.] If nextEventTimeDefined = fmi2True, then the simulation shall integrate at most until time = nextEventTime, and shall call fmi2EnterEventMode at this time instant. If integration is stopped before nextEventTime, for example, due to a state event, the definition of nextEventTime becomes obsolete.

source
FMICore.fmi2StatusType

Source: FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

Status returned by functions. The status has the following meaning:

  • fmi2OK – all well
  • fmi2Warning – things are not quite right, but the computation can continue. Function “logger” was called in the model (see below), and it is expected that this function has shown the prepared information message to the user.
  • fmi2Discard – this return status is only possible if explicitly defined for the corresponding function

(ModelExchange: fmi2SetReal, fmi2SetInteger, fmi2SetBoolean, fmi2SetString, fmi2SetContinuousStates, fmi2GetReal, fmi2GetDerivatives, fmi2GetContinuousStates, fmi2GetEventIndicators; CoSimulation: fmi2SetReal, fmi2SetInteger, fmi2SetBoolean, fmi2SetString, fmi2DoStep, fmiGetXXXStatus): For “model exchange”: It is recommended to perform a smaller step size and evaluate the model equations again, for example because an iterative solver in the model did not converge or because a function is outside of its domain (for example sqrt(<negative number>)). If this is not possible, the simulation has to be terminated. For “co-simulation”: fmi2Discard is returned also if the slave is not able to return the required status information. The master has to decide if the simulation run can be continued. In both cases, function “logger” was called in the FMU (see below) and it is expected that this function has shown the prepared information message to the user if the FMU was called in debug mode (loggingOn = fmi2True). Otherwise, “logger” should not show a message.

  • fmi2Error – the FMU encountered an error. The simulation cannot be continued with this FMU instance. If one of the functions returns fmi2Error, it can be tried to restart the simulation from a formerly stored FMU state by calling fmi2SetFMUstate.

This can be done if the capability flag canGetAndSetFMUstate is true and fmi2GetFMUstate was called before in non-erroneous state. If not, the simulation cannot be continued and fmi2FreeInstance or fmi2Reset must be called afterwards.4 Further processing is possible after this call; especially other FMU instances are not affected. Function “logger” was called in the FMU (see below), and it is expected that this function has shown the prepared information message to the user.

  • fmi2Fatal – the model computations are irreparably corrupted for all FMU instances. [For example, due to a run-time exception such as access violation or integer division by zero during the execution of an fmi function]. Function “logger” was called in the FMU (see below), and it is expected that this function has shown the prepared information message to the user. It is not possible to call any other function for any of the FMU instances.
  • fmi2Pending – this status is returned only from the co-simulation interface, if the slave executes the function in an asynchronous way. That means the slave starts to compute but returns immediately. The master has to call fmi2GetStatus(..., fmi2DoStepStatus) to determine if the slave has finished the computation. Can be returned only by fmi2DoStep and by fmi2GetStatus (see section 4.2.3).
source
FMICore.fmi2ModelDescriptionType

Source: FMISpec2.0.2[p.34]: 2.2.1 Definition of an FMU (fmiModelDescription)

The “ModelVariables” element of fmiModelDescription is the central part of the model description. It provides the static information of all exposed variables.

source
FMICore.fmi2FMUstateType

fmi2FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant. This allows to restart a simulation from a previous FMU state.

Source: FMI2.0.3 Spec [p.17]; See also section 2.1.8

source
FMICore.fmi2StatusKindType

Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave

CoSimulation specific Enum representing state of FMU after fmi2DoStep returned fmi2Pending.

source
FMICore.fmi2CausalityType

Source: FMISpec2.0.2[p.48]: 2.2.7 Definition of Model Variables (ModelVariables)

Enumeration that defines the causality of the variable. Allowed values of this enumeration:

"parameter": Independent parameter (a data value that is constant during the simulation and is provided by the environment and cannot be used in connections). variability must be "fixed" or "tunable". initial must be exact or not present (meaning exact). "calculatedParameter": A data value that is constant during the simulation and is computed during initialization or when tunable parameters change. variability must be "fixed" or "tunable". initial must be "approx", "calculated" or not present (meaning calculated). "input": The variable value can be provided from another model or slave. It is not allowed to define initial. "output": The variable value can be used by another model or slave. The algebraic relationship to the inputs is defined via the dependencies attribute of <fmiModelDescription><ModelStructure><Outputs><Unknown>. "local": Local variable that is calculated from other variables or is a continuous-time state (see section 2.2.8). It is not allowed to use the variable value in another model or slave. "independent": The independent variable (usually “time”). All variables are a function of this independent variable. variability must be "continuous". At most one ScalarVariable of an FMU can be defined as "independent". If no variable is defined as "independent", it is implicitly present with name = "time" and unit = "s". If one variable is defined as "independent", it must be defined as "Real" without a "start" attribute. It is not allowed to call function fmi2SetReal on an "independent" variable. Instead, its value is initialized with fmi2SetupExperiment and after initialization set by fmi2SetTime for ModelExchange and by arguments currentCommunicationPoint and communicationStepSize of fmi2DoStep for CoSimulation. [The actual value can be inquired with fmi2GetReal.] The default of causality is “local”. A continuous-time state must have causality = "local" or "output", see also section 2.2.8. [causality = "calculatedParameter" and causality = "local" with variability = "fixed" or "tunable" are similar. The difference is that a calculatedParameter can be used in another model or slave, whereas a local variable cannot. For example, when importing an FMU in a Modelica environment, a "calculatedParameter" should be imported in a public section as final parameter, whereas a "local" variable should be imported in a protected section of the model.] Added prefix "fmi2" to help with redefinition of constans in enums.

source

fmi2StructMD FMU2Solution FMIImport.fmi2ValueReferenceFormat FMU2Event FMU2ExecutionConfiguration

FMI2 Constants in FMI Import/Core .jl

FMICore.fmi2TrueConstant

Source: FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions

To simplify porting, no C types are used in the function interfaces, but the alias types are defined in this section. All definitions in this section are provided in the header file “fmi2TypesPlatform.h”.

source

fmi2False fmi2StatusOK fmi2StatusWarning fmi2StatusPending fmi2StatusError fmi2StatusDiscard fmi2StatusFatal

+FMI2 Types in FMI Import/Core .jl · FMI.jl

FMI2 Types in FMI Import/Core .jl

FMIBase.FMU2Type

The mutable struct representing a FMU (and a container for all its instances) in the FMI 2.0.2 Standard. Also contains the paths to the FMU and ZIP folder as well als all the FMI 2.0.2 function pointers.

source
FMIBase.FMU2ComponentEnvironmentType

Source: FMISpec 2.0.3 [p.16f]

This is a pointer to a data structure in the simulation environment that calls the FMU. Using this pointer, data from the modelDescription.xml file [(for example, mapping of valueReferences to variable names)] can be transferred between the simulation environment and the logger function (see [FMISpec 2.0.3] section 2.1.5).

source
FMIBase.FMI2StructType
FMI2Struct

A wildcard for FMI2 related structs, namely Union{FMU2, fmi2ModelDescription, FMU2Component}.

source
FMICore.fmi2InitialType

Source: FMISpec2.0.2[p.48]: 2.2.7 Definition of Model Variables (ModelVariables)

Enumeration that defines how the variable is initialized. It is not allowed to provide a value for initial if causality = "input" or "independent":

"exact": The variable is initialized with the start value (provided under Real, Integer, Boolean, String or Enumeration). "approx": The variable is an iteration variable of an algebraic loop and the iteration at initialization starts with the start value. "calculated": The variable is calculated from other variables during initialization. It is not allowed to provide a “start” value. If initial is not present, it is defined by the table below based on causality and variability. If initial = exact or approx, or causality = ″input″, a start value must be provided. If initial = calculated, or causality = ″independent″, it is not allowed to provide a start value. If fmiSetXXX is not called on a variable with causality = ″input″, then the FMU must use the start value as value of this input. Added prefix "fmi2" to help with redefinition of constans in enums.

source
FMICore.fmi2ScalarVariableType

Source: FMISpec2.0.2[p.46]: 2.2.7 Definition of Model Variables (ModelVariables)

The fmi2ScalarVariable specifies the type and argument of every exposed variable in the fmu

source
FMICore.fmi2SimpleTypeType

Source: FMISpec2.0.3[p.40]: 2.2.3 Definition of Types (TypeDefinitions)

The fmi2SimpleType describes the attributes of a type definition.

source
FMICore.fmi2TypeType

Source: FMISpec2.0.2[p.19]: 2.1.5 Creation, Destruction and Logging of FMU Instances

Argument fmuType defines the type of the FMU:

  • fmi2ModelExchange: FMU with initialization and events; between events simulation of continuous systems is performed with external integrators from the environment.
  • fmi2CoSimulation: Black box interface for co-simulation.
source
FMICore.fmi2BaseUnitType

Source: FMISpec2.0.3[p.35]: 2.2.2 Definition of Units (UnitDefinitions)

fmi2BaseUnit(
+    kg=0, m=0, s=0, A=0, K=0, mol=0, cd=0, rad=0, factor=1.0, offset=0.0)

Type for the optional “BaseUnit” field of an fmi2Unit.

source
FMICore.fmi2UnitType

Source: FMISpec2.0.3[p.35]: 2.2.2 Definition of Units (UnitDefinitions)

Element “UnitDefinitions ” of fmiModelDescription.

source
FMICore.fmi2DisplayUnitType

Source: FMISpec2.0.3[p.35]: 2.2.2 Definition of Units (UnitDefinitions)

fmi2DisplayUnit(name, factor=1.0, offset=0.0)

Type for the optional “DisplayUnit” field(s) of an fmi2Unit.

source
FMICore.fmi2CharType

Source: FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions

FMI2 Data Types To simplify porting, no C types are used in the function interfaces, but the alias types are defined in this section. All definitions in this section are provided in the header file “fmi2TypesPlatform.h”.

source
FMICore.fmi2VariabilityType

Source: FMISpec2.0.2[p.49]: 2.2.7 Definition of Model Variables (ModelVariables)

Enumeration that defines the time dependency of the variable, in other words, it defines the time instants when a variable can change its value.

"constant": The value of the variable never changes. "fixed": The value of the variable is fixed after initialization, in other words, after fmi2ExitInitializationMode was called the variable value does not change anymore. "tunable": The value of the variable is constant between external events (ModelExchange) and between Communication Points (Co-Simulation) due to changing variables with causality = "parameter" or "input" and variability = "tunable". Whenever a parameter or input signal with variability = "tunable" changes, an event is triggered externally (ModelExchange), or the change is performed at the next Communication Point (Co-Simulation) and the variables with variability = "tunable" and causality = "calculatedParameter" or "output" must be newly computed. "discrete": ModelExchange: The value of the variable is constant between external and internal events (= time, state, step events defined implicitly in the FMU). Co-Simulation: By convention, the variable is from a “real” sampled data system and its value is only changed at Communication Points (also inside the slave). "continuous": Only a variable of type = “Real” can be “continuous”. ModelExchange: No restrictions on value changes. Co-Simulation: By convention, the variable is from a differential The default is “continuous”. Added prefix "fmi2" to help with redefinition of constans in enums.

source
FMICore.fmi2VariableDependencyType

Mutable Struct representing existance and kind of dependencies of an Unknown on Known Variables in Continuous-Time and Event Mode (ME) and at Communication Points (CS)

See also FMI2.0.3 Spec fmi2VariableDependency [p.60]

source
FMICore.fmi2DependencyKindType

Types of dependency:

  • fmi2DependencyKindDependent: no particular structure, f(v)
  • fmi2DependencyKindConstant: constant factor, c*v (for Real valued variables only)
  • fmi2DependencyKindFixed: tunable factor, p*v (for Real valued variables only)
  • fmi2DependencyKindTunable [ToDo]
  • fmi2DependencyKindDiscrete [ToDo]

Source: FMI2.0.3 Spec for fmi2VariableDependency [p.60]

source
FMICore.fmi2EventInfoType

Source: FMISpec2.0.2[p.84]: 3.2.2 Evaluation of Model Equations

If return argument fmi2eventInfo.newDiscreteStatesNeeded = fmi2True, the FMU should stay in Event Mode, and the FMU requires to set new inputs to the FMU (fmi2SetXXX on inputs) to compute and get the outputs (fmi2GetXXX on outputs) and to call fmi2NewDiscreteStates again. Depending on the connection with other FMUs, the environment shall

  • call fmi2Terminate, if terminateSimulation = fmi2True is returned by at least one FMU.
  • call fmi2EnterContinuousTimeMode if all FMUs return newDiscreteStatesNeeded = fmi2False.
  • stay in Event Mode otherwise.

When the FMU is terminated, it is assumed that an appropriate message is printed by the logger function (see section 2.1.5) to explain the reason for the termination. If nominalsOfContinuousStatesChanged = fmi2True, then the nominal values of the states have changed due to the function call and can be inquired with fmi2GetNominalsOfContinuousStates. If valuesOfContinuousStatesChanged = fmi2True. then at least one element of the continuous state vector has changed its value due to the function call. The new values of the states can be retrieved with fmi2GetContinuousStates or individually for each state for which reinit = "true" by calling getReal. If no element of the continuous state vector has changed its value, valuesOfContinuousStatesChanged must return fmi2False. [If fmi2True would be returned in this case, an infinite event loop may occur.] If nextEventTimeDefined = fmi2True, then the simulation shall integrate at most until time = nextEventTime, and shall call fmi2EnterEventMode at this time instant. If integration is stopped before nextEventTime, for example, due to a state event, the definition of nextEventTime becomes obsolete.

source
FMICore.fmi2StatusType

Source: FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions

Status returned by functions. The status has the following meaning:

  • fmi2OK – all well
  • fmi2Warning – things are not quite right, but the computation can continue. Function “logger” was called in the model (see below), and it is expected that this function has shown the prepared information message to the user.
  • fmi2Discard – this return status is only possible if explicitly defined for the corresponding function

(ModelExchange: fmi2SetReal, fmi2SetInteger, fmi2SetBoolean, fmi2SetString, fmi2SetContinuousStates, fmi2GetReal, fmi2GetDerivatives, fmi2GetContinuousStates, fmi2GetEventIndicators; CoSimulation: fmi2SetReal, fmi2SetInteger, fmi2SetBoolean, fmi2SetString, fmi2DoStep, fmiGetXXXStatus): For “model exchange”: It is recommended to perform a smaller step size and evaluate the model equations again, for example because an iterative solver in the model did not converge or because a function is outside of its domain (for example sqrt(<negative number>)). If this is not possible, the simulation has to be terminated. For “co-simulation”: fmi2Discard is returned also if the slave is not able to return the required status information. The master has to decide if the simulation run can be continued. In both cases, function “logger” was called in the FMU (see below) and it is expected that this function has shown the prepared information message to the user if the FMU was called in debug mode (loggingOn = fmi2True). Otherwise, “logger” should not show a message.

  • fmi2Error – the FMU encountered an error. The simulation cannot be continued with this FMU instance. If one of the functions returns fmi2Error, it can be tried to restart the simulation from a formerly stored FMU state by calling fmi2SetFMUstate.

This can be done if the capability flag canGetAndSetFMUstate is true and fmi2GetFMUstate was called before in non-erroneous state. If not, the simulation cannot be continued and fmi2FreeInstance or fmi2Reset must be called afterwards.4 Further processing is possible after this call; especially other FMU instances are not affected. Function “logger” was called in the FMU (see below), and it is expected that this function has shown the prepared information message to the user.

  • fmi2Fatal – the model computations are irreparably corrupted for all FMU instances. [For example, due to a run-time exception such as access violation or integer division by zero during the execution of an fmi function]. Function “logger” was called in the FMU (see below), and it is expected that this function has shown the prepared information message to the user. It is not possible to call any other function for any of the FMU instances.
  • fmi2Pending – this status is returned only from the co-simulation interface, if the slave executes the function in an asynchronous way. That means the slave starts to compute but returns immediately. The master has to call fmi2GetStatus(..., fmi2DoStepStatus) to determine if the slave has finished the computation. Can be returned only by fmi2DoStep and by fmi2GetStatus (see section 4.2.3).
source
FMICore.fmi2ModelDescriptionType

Source: FMISpec2.0.2[p.34]: 2.2.1 Definition of an FMU (fmiModelDescription)

The “ModelVariables” element of fmiModelDescription is the central part of the model description. It provides the static information of all exposed variables.

source
FMICore.fmi2FMUstateType

fmi2FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant. This allows to restart a simulation from a previous FMU state.

Source: FMI2.0.3 Spec [p.17]; See also section 2.1.8

source
FMICore.fmi2StatusKindType

Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave

CoSimulation specific Enum representing state of FMU after fmi2DoStep returned fmi2Pending.

source
FMICore.fmi2CausalityType

Source: FMISpec2.0.2[p.48]: 2.2.7 Definition of Model Variables (ModelVariables)

Enumeration that defines the causality of the variable. Allowed values of this enumeration:

"parameter": Independent parameter (a data value that is constant during the simulation and is provided by the environment and cannot be used in connections). variability must be "fixed" or "tunable". initial must be exact or not present (meaning exact). "calculatedParameter": A data value that is constant during the simulation and is computed during initialization or when tunable parameters change. variability must be "fixed" or "tunable". initial must be "approx", "calculated" or not present (meaning calculated). "input": The variable value can be provided from another model or slave. It is not allowed to define initial. "output": The variable value can be used by another model or slave. The algebraic relationship to the inputs is defined via the dependencies attribute of <fmiModelDescription><ModelStructure><Outputs><Unknown>. "local": Local variable that is calculated from other variables or is a continuous-time state (see section 2.2.8). It is not allowed to use the variable value in another model or slave. "independent": The independent variable (usually “time”). All variables are a function of this independent variable. variability must be "continuous". At most one ScalarVariable of an FMU can be defined as "independent". If no variable is defined as "independent", it is implicitly present with name = "time" and unit = "s". If one variable is defined as "independent", it must be defined as "Real" without a "start" attribute. It is not allowed to call function fmi2SetReal on an "independent" variable. Instead, its value is initialized with fmi2SetupExperiment and after initialization set by fmi2SetTime for ModelExchange and by arguments currentCommunicationPoint and communicationStepSize of fmi2DoStep for CoSimulation. [The actual value can be inquired with fmi2GetReal.] The default of causality is “local”. A continuous-time state must have causality = "local" or "output", see also section 2.2.8. [causality = "calculatedParameter" and causality = "local" with variability = "fixed" or "tunable" are similar. The difference is that a calculatedParameter can be used in another model or slave, whereas a local variable cannot. For example, when importing an FMU in a Modelica environment, a "calculatedParameter" should be imported in a public section as final parameter, whereas a "local" variable should be imported in a protected section of the model.] Added prefix "fmi2" to help with redefinition of constans in enums.

source

fmi2StructMD FMU2Solution FMIImport.fmi2ValueReferenceFormat FMU2Event FMU2ExecutionConfiguration

FMI2 Constants in FMI Import/Core .jl

FMICore.fmi2TrueConstant

Source: FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions

To simplify porting, no C types are used in the function interfaces, but the alias types are defined in this section. All definitions in this section are provided in the header file “fmi2TypesPlatform.h”.

source

fmi2False fmi2StatusOK fmi2StatusWarning fmi2StatusPending fmi2StatusError fmi2StatusDiscard fmi2StatusFatal

diff --git a/dev/fmi2_lowlevel_library_functions/index.html b/dev/fmi2_lowlevel_library_functions/index.html index 699753dd..6472d811 100644 --- a/dev/fmi2_lowlevel_library_functions/index.html +++ b/dev/fmi2_lowlevel_library_functions/index.html @@ -1,5 +1,5 @@ -FMI Common Concepts for Model Exchange and Co-Simulation · FMI.jl

FMI Common Concepts for Model Exchange and Co-Simulation

In both cases, FMI defines an input/output block of a dynamic model where the distribution of the block, the platform dependent header file, several access functions, as well as the schema files are identical.

Opening and closing FMUs

fmi2Unzip fmi2Load fmi2Reload fmi2Unload

Creation, Destruction and Logging of FMU Instances

FMIImport.fmi2Instantiate!Function
fmi2Instantiate!(fmu::FMU2;
+FMI Common Concepts for Model Exchange and Co-Simulation · FMI.jl

FMI Common Concepts for Model Exchange and Co-Simulation

In both cases, FMI defines an input/output block of a dynamic model where the distribution of the block, the platform dependent header file, several access functions, as well as the schema files are identical.

Opening and closing FMUs

fmi2Unzip fmi2Load fmi2Reload fmi2Unload

Creation, Destruction and Logging of FMU Instances

FMIImport.fmi2Instantiate!Function
fmi2Instantiate!(fmu::FMU2;
                     instanceName::String=fmu.modelName,
                     type::fmi2Type=fmu.type,
                     pushComponents::Bool = true,
@@ -38,4 +38,7 @@
                                 vr::AbstractArray{fmi2ValueReference}, 
                                 nvr::Csize_t, order::AbstractArray{fmi2Integer}, 
                                 value::AbstractArray{fmi2Real})

Sets the n-th time derivative of real input variables.

Arguments

  • c::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called "ValueReference" that t define the variables whose derivatives shall be set.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • order::Array{fmi2Integer}: Argument order is an array of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.
  • values::Array{fmi2Real}: Argument values is an array with the actual values of these variables.

Returns

  • status::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.

More detailed:

  • fmi2OK: all well
  • fmi2Warning: things are not quite right, but the computation can continue
  • fmi2Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi2Error: the communication step could not be carried out at all
  • fmi2Fatal: if an error occurred which corrupted the FMU irreparably
  • fmi2Pending: this status is returned if the slave executes the function asynchronously

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
  • FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions
  • FMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters
source

fmi2SampleJacobian fmi2SampleJacobian!

External/Additional functions

FMIBase.setDiscreteStatesFunction

ToDo

source
setDiscreteStates(c::FMU2Component,
-                             x::Union{AbstractArray{Float32},AbstractArray{Float64}})

Set a new (discrete) state vector and reinitialize chaching of variables that depend on states.

Arguments

[ToDo]

source
FMIBase.getDiscreteStates!Function
getDiscreteStates!(c, xd)

Sets a new (discrete) state vector (in-place).

Arguments

  • c::FMU2Component
  • xd::AbstractArray{Union{fmi2Real, fmi2Integer, fmi2Boolean}}
source
FMIBase.getSimpleTypeAttributeStructFunction
getSimpleTypeAttributeStruct(st::fmi2SimpleType)

Returns the attribute structure for the simple type st. Depending on definition, this is either st.Real, st.Integer, st.String, st.Boolean or st.Enumeration.

Arguments

  • st::fmi2SimpleType: Struct which provides the information on custom SimpleTypes.

Source

source
FMIBase.getDeclaredTypeFunction
getDeclaredType(md::fmi2ModelDescription, mv::fmi2ScalarVariable)

Returns the fmi2SimpleType of the corresponding model variable mv as defined in md.typeDefinitions. If mv does not have a declared type, return nothing. If mv has a declared type, but it is not found, issue a warning and return nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.
  • mv::fmi2ScalarVariable: The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.

Source

source

fmi2GetSolutionDerivative fmi2GetSolutionState fmi2GetSolutionValue fmi2GetSolutionTime fmi2GetJacobian fmi2GetJacobian! fmi2GetFullJacobian fmi2GetFullJacobian!

+ x::Union{AbstractArray{Float32},AbstractArray{Float64}})

Set a new (discrete) state vector and reinitialize chaching of variables that depend on states.

Arguments

[ToDo]

source
FMIBase.getDiscreteStates!Function
getDiscreteStates!(c, xd)

Sets a new (discrete) state vector (in-place).

Arguments

  • c::FMU2Component
  • xd::AbstractArray{Union{fmi2Real, fmi2Integer, fmi2Boolean}}
source
FMIBase.getSimpleTypeAttributeStructFunction
getSimpleTypeAttributeStruct(st::fmi2SimpleType)

Returns the attribute structure for the simple type st. Depending on definition, this is either st.Real, st.Integer, st.String, st.Boolean or st.Enumeration.

Arguments

  • st::fmi2SimpleType: Struct which provides the information on custom SimpleTypes.

Source

source
FMIBase.getDeclaredTypeFunction
getDeclaredType(md::fmi2ModelDescription, mv::fmi2ScalarVariable)

Returns the fmi2SimpleType of the corresponding model variable mv as defined in md.typeDefinitions. If mv does not have a declared type, return nothing. If mv has a declared type, but it is not found, issue a warning and return nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.
  • mv::fmi2ScalarVariable: The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.

Source

source

fmi2GetSolutionDerivative fmi2GetSolutionState fmi2GetSolutionValue fmi2GetSolutionTime fmi2GetJacobian fmi2GetJacobian! fmi2GetFullJacobian fmi2GetFullJacobian!

Export functions

FMIExport.fmi2CreateSimpleFunction
initializationFct           # () -> (t, xc, ẋc, xd, u, p)
+evaluationFct               # (t, xc, ẋc, xd, u, p, event) -> (xc, ẋc, xd, p)
+outputFct                   # (t, xc, ẋc, xd, u, p) -> y
+eventFct                    # (t, xc, ẋc, xd, u, p) -> e
source
diff --git a/dev/fmi2_lowlevel_modeldescription_functions/index.html b/dev/fmi2_lowlevel_modeldescription_functions/index.html index 90eca6c0..4c3ac52b 100644 --- a/dev/fmi2_lowlevel_modeldescription_functions/index.html +++ b/dev/fmi2_lowlevel_modeldescription_functions/index.html @@ -1,2 +1,2 @@ -Working with the FMI model description · FMI.jl

Working with the FMI model description

The FMI model description provides all human readable information on the model. The following functions can be used to obtain all information provided by the model description, which in turn can be extracted from the fmu.

Loading/Parsing

fmi2LoadModelDescription

general information about the FMU

fmi2GetGenerationTool fmi2GetGenerationDateAndTime

technical information about the FMU

FMICore.fmi2GetVersionFunction

Source: FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files

Returns the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “2.0”

source
fmi2GetVersion(fmu::FMU2)

Returns the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • Returns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “2.0”

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
source
FMICore.fmi2GetTypesPlatformFunction

Source: FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files

Returns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU. The standard header file, as documented in this specification, has fmi2TypesPlatform set to “default” (so this function usually returns “default”).

source
fmi2GetTypesPlatform(fmu::FMU2)

Returns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU. The standard header file, as documented in this specification, has fmi2TypesPlatform set to “default” (so this function usually returns “default”).

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • Returns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
source

FMU capabilities

FMIBase.canGetSetFMUStateFunction
canGetSetFMUState(md::fmi2ModelDescription)

Returns true, if the FMU supports the getting/setting of states

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU supports the getting/setting of states.
source
FMIImport.isModelStructureAvailableFunction
isModelStructureAvailable(md::fmi2ModelDescription)

Returns true if the FMU model description contains dependency information.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU model description contains dependency information.
source
FMIImport.isModelStructureDerivativesAvailableFunction
isModelStructureDerivativesAvailable(md::fmi2ModelDescription)

Returns if the FMU model description contains dependency information for derivatives.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU model description contains dependency information for derivatives.
source

fmi2DependenciesSupported fmi2DerivativeDependenciesSupported fmi2CanSerializeFMUstate fmi2ProvidesDirectionalDerivative

value references

FMIBase.getModelVariableIndicesFunction
getModelVariableIndices(md::fmi2ModelDescription; vrs=md.valueReferences)

Returns a array of indices corresponding to value references vrs

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})

Returns

  • names::Array{Integer}: Returns a array of indices corresponding to value references vrs
source

fmi2GetValueReferencesAndNames fmi2GetNames

In-/Outputs

fmi2GetOutputValueReferencesAndNames

+Working with the FMI model description · FMI.jl

Working with the FMI model description

The FMI model description provides all human readable information on the model. The following functions can be used to obtain all information provided by the model description, which in turn can be extracted from the fmu.

Loading/Parsing

fmi2LoadModelDescription

general information about the FMU

fmi2GetGenerationTool fmi2GetGenerationDateAndTime

technical information about the FMU

FMICore.fmi2GetVersionFunction

Source: FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files

Returns the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “2.0”

source
fmi2GetVersion(fmu::FMU2)

Returns the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • Returns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “2.0”

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
source
FMICore.fmi2GetTypesPlatformFunction

Source: FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files

Returns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU. The standard header file, as documented in this specification, has fmi2TypesPlatform set to “default” (so this function usually returns “default”).

source
fmi2GetTypesPlatform(fmu::FMU2)

Returns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU. The standard header file, as documented in this specification, has fmi2TypesPlatform set to “default” (so this function usually returns “default”).

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • Returns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU.

Source

  • FMISpec2.0.2 Link: https://fmi-standard.org/
  • FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files
  • FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions
source

FMU capabilities

FMIBase.canGetSetFMUStateFunction
canGetSetFMUState(md::fmi2ModelDescription)

Returns true, if the FMU supports the getting/setting of states

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU supports the getting/setting of states.
source
FMIImport.isModelStructureAvailableFunction
isModelStructureAvailable(md::fmi2ModelDescription)

Returns true if the FMU model description contains dependency information.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU model description contains dependency information.
source
FMIImport.isModelStructureDerivativesAvailableFunction
isModelStructureDerivativesAvailable(md::fmi2ModelDescription)

Returns if the FMU model description contains dependency information for derivatives.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU model description contains dependency information for derivatives.
source

fmi2DependenciesSupported fmi2DerivativeDependenciesSupported fmi2CanSerializeFMUstate fmi2ProvidesDirectionalDerivative

value references

FMIBase.getModelVariableIndicesFunction
getModelVariableIndices(md::fmi2ModelDescription; vrs=md.valueReferences)

Returns a array of indices corresponding to value references vrs

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})

Returns

  • names::Array{Integer}: Returns a array of indices corresponding to value references vrs
source

fmi2GetValueReferencesAndNames fmi2GetNames

In-/Outputs

fmi2GetOutputValueReferencesAndNames

diff --git a/dev/fmi3_lowlevel_CS_functions/index.html b/dev/fmi3_lowlevel_CS_functions/index.html index 11c7ab90..6a1d7e83 100644 --- a/dev/fmi3_lowlevel_CS_functions/index.html +++ b/dev/fmi3_lowlevel_CS_functions/index.html @@ -1,4 +1,4 @@ -FMI for Co-Simulation · FMI.jl

FMI for Co-Simulation

This chapter defines the Functional Mock-up Interface (FMI) for the coupling of two or more simulation models in a Co-Simulation environment (FMI for Co-Simulation). Co-Simulation is a rather general approach to the simulation of coupled technical systems and coupled physical phenomena in engineering with focus on instationary (time-dependent) problems.

Transfer of Input / Output Values and Parameters

In order to enable the slave to interpolate the continuous real inputs between communication steps, the derivatives of the inputs with respect to time can be provided. Also, higher derivatives can be set to allow higher order interpolation.

fmi3CallbackIntermediateUpdate

Computation

The computation of time steps is controlled by the following function.

FMICore.fmi3EnterStepModeFunction

Source: FMISpec3.0, Version D5ef1c1: 2.3.5. State: Event Mode

This function must be called to change from Event Mode into Step Mode in Co-Simulation (see 4.2.).

source
fmi3EnterStepMode(c::FMU3Instance; soft::Bool=false)

This function must be called to change from Event Mode into Step Mode in Co-Simulation (see 4.2.).

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Keywords

  • soft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.5. State: Event Mode

See also fmi3EnterStepMode.

source
FMICore.fmi3DoStep!Function

Source: FMISpec3.0, Version D5ef1c1: 4.2.1. State: Step Mode

The computation of a time step is started.

source
fmi3DoStep!(c::FMU3Instance, currentCommunicationPoint::fmi3Float64, communicationStepSize::fmi3Float64, noSetFMUStatePriorToCurrentPoint::fmi3Boolean,
+FMI for Co-Simulation · FMI.jl

FMI for Co-Simulation

This chapter defines the Functional Mock-up Interface (FMI) for the coupling of two or more simulation models in a Co-Simulation environment (FMI for Co-Simulation). Co-Simulation is a rather general approach to the simulation of coupled technical systems and coupled physical phenomena in engineering with focus on instationary (time-dependent) problems.

Transfer of Input / Output Values and Parameters

In order to enable the slave to interpolate the continuous real inputs between communication steps, the derivatives of the inputs with respect to time can be provided. Also, higher derivatives can be set to allow higher order interpolation.

fmi3CallbackIntermediateUpdate

Computation

The computation of time steps is controlled by the following function.

FMICore.fmi3EnterStepModeFunction

Source: FMISpec3.0, Version D5ef1c1: 2.3.5. State: Event Mode

This function must be called to change from Event Mode into Step Mode in Co-Simulation (see 4.2.).

source
fmi3EnterStepMode(c::FMU3Instance; soft::Bool=false)

This function must be called to change from Event Mode into Step Mode in Co-Simulation (see 4.2.).

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Keywords

  • soft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.5. State: Event Mode

See also fmi3EnterStepMode.

source
FMICore.fmi3DoStep!Function

Source: FMISpec3.0, Version D5ef1c1: 4.2.1. State: Step Mode

The computation of a time step is started.

source
fmi3DoStep!(c::FMU3Instance, currentCommunicationPoint::fmi3Float64, communicationStepSize::fmi3Float64, noSetFMUStatePriorToCurrentPoint::fmi3Boolean,
                 eventEncountered::Ref{fmi3Boolean}, terminateSimulation::Ref{fmi3Boolean}, earlyReturn::Ref{fmi3Boolean}, lastSuccessfulTime::Ref{fmi3Float64})

The computation of a time step is started.

TODO argmuents

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • currentCommunicationPoint::fmi3Float64:
  • communicationStepSize::fmi3Float64:
  • noSetFMUStatePriorToCurrentPoint::fmi3Boolean:
  • eventEncountered::Ref{fmi3Boolean}:
  • terminateSimulation::Ref{fmi3Boolean}:
  • earlyReturn::Ref{fmi3Boolean}:
  • lastSuccessfulTime::Ref{fmi3Float64}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 4.2.1. State: Step Mode

See also fmi3DoStep!.

source
fmi3DoStep!(c::FMU3Instance, currentCommunicationPoint::Union{Real, Nothing} = nothing, communicationStepSize::Union{Real, Nothing} = nothing, noSetFMUStatePriorToCurrentPoint::Bool = true,
-    eventEncountered::fmi3Boolean = fmi3False, terminateSimulation::fmi3Boolean = fmi3False, earlyReturn::fmi3Boolean = fmi3False, lastSuccessfulTime::fmi3Float64 = 0.0)

The computation of a time step is started.

TODO argmuents

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • currentCommunicationPoint::Union{Real, Nothing} = nothing
  • communicationStepSize::Union{Real, Nothing} = nothing
  • noSetFMUStatePriorToCurrentPoint::Bool = true
  • eventEncountered::fmi3Boolean = fmi3False
  • terminateSimulation::fmi3Boolean = fmi3False
  • earlyReturn::fmi3Boolean = fmi3False
  • lastSuccessfulTime::fmi3Float64 = 0.0

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 4.2.1. State: Step Mode

See also fmi3DoStep!.

source

Retrieving Status Information from the Slave

Status information is retrieved from the slave by the following functions:

+ eventEncountered::fmi3Boolean = fmi3False, terminateSimulation::fmi3Boolean = fmi3False, earlyReturn::fmi3Boolean = fmi3False, lastSuccessfulTime::fmi3Float64 = 0.0)

The computation of a time step is started.

TODO argmuents

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • currentCommunicationPoint::Union{Real, Nothing} = nothing
  • communicationStepSize::Union{Real, Nothing} = nothing
  • noSetFMUStatePriorToCurrentPoint::Bool = true
  • eventEncountered::fmi3Boolean = fmi3False
  • terminateSimulation::fmi3Boolean = fmi3False
  • earlyReturn::fmi3Boolean = fmi3False
  • lastSuccessfulTime::fmi3Float64 = 0.0

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 4.2.1. State: Step Mode

See also fmi3DoStep!.

source

Retrieving Status Information from the Slave

Status information is retrieved from the slave by the following functions:

diff --git a/dev/fmi3_lowlevel_ME_functions/index.html b/dev/fmi3_lowlevel_ME_functions/index.html index 975fd6b6..51d946e3 100644 --- a/dev/fmi3_lowlevel_ME_functions/index.html +++ b/dev/fmi3_lowlevel_ME_functions/index.html @@ -1,7 +1,7 @@ -FMI for Model Exchange · FMI.jl

FMI for Model Exchange

This chapter contains the interface description to access the equations of a dynamic system from a C program.

Providing Independent Variables and Re-initialization of Caching

Depending on the situation, different variables need to be computed. In order to be efficient, it is important that the interface requires only the computation of variables that are needed in the present context. The state derivatives shall be reused from the previous call. This feature is called “caching of variables” in the sequel. Caching requires that the model evaluation can detect when the input arguments, like time or states, have changed.

FMICore.fmi3SetTimeFunction

Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode

Set a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).

source
fmi3SetTime(c::FMU3Instance, time::fmi3Float64)

Set a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • time::fmi3Float64: Argument time contains a value of type fmi3Float64 which is a alias type for Real data type. time sets the independent variable time t.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3SetTime.

source
fmi3SetTime(c::FMU3Instance, time::Real)

Set a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • t::Real: Argument t contains a value of type Real which is a alias type for Real data type. time sets the independent variable time t.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3SetTime.

source
FMICore.fmi3SetContinuousStatesFunction

Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode

Set a new (continuous) state vector and re-initialize caching of variables that depend on the states. Argument nx is the length of vector x and is provided for checking purposes

source
fmi3SetContinuousStates(c::FMU3Instance,
+FMI for Model Exchange · FMI.jl

FMI for Model Exchange

This chapter contains the interface description to access the equations of a dynamic system from a C program.

Providing Independent Variables and Re-initialization of Caching

Depending on the situation, different variables need to be computed. In order to be efficient, it is important that the interface requires only the computation of variables that are needed in the present context. The state derivatives shall be reused from the previous call. This feature is called “caching of variables” in the sequel. Caching requires that the model evaluation can detect when the input arguments, like time or states, have changed.

FMICore.fmi3SetTimeFunction

Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode

Set a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).

source
fmi3SetTime(c::FMU3Instance, time::fmi3Float64)

Set a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • time::fmi3Float64: Argument time contains a value of type fmi3Float64 which is a alias type for Real data type. time sets the independent variable time t.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3SetTime.

source
fmi3SetTime(c::FMU3Instance, time::Real)

Set a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • t::Real: Argument t contains a value of type Real which is a alias type for Real data type. time sets the independent variable time t.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3SetTime.

source
FMICore.fmi3SetContinuousStatesFunction

Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode

Set a new (continuous) state vector and re-initialize caching of variables that depend on the states. Argument nx is the length of vector x and is provided for checking purposes

source
fmi3SetContinuousStates(c::FMU3Instance,
     x::AbstractArray{fmi3Float64},
     nx::Csize_t)

Set a new (continuous) state vector and re-initialize caching of variables that depend on the states. Argument nx is the length of vector x and is provided for checking purposes

If fmi3UpdateDiscreteStates returned with nominalsOfContinuousStatesChanged == fmi3True, then at least one nominal value of the states has changed and can be inquired with fmi3GetNominalsOfContinuousStates. Not allowed in Co-Simulation and Scheduled Execution.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • x::AbstractArray{fmi3Float64}: Argument x contains values of type fmi3Float64 which is a alias type for Real data type. x is the AbstractArray which contains the Real values of the vector that represent the nominal values of the continuous states.
  • nx::Csize_t: Argument nx defines the length of vector x and is provided for checking purposes

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3SetContinuousStates.

source
fmi3SetContinuousStates(c::FMU3Instance, x::Union{AbstractArray{Float32}, AbstractArray{Float64}})

Set a new (continuous) state vector and re-initialize caching of variables that depend on the states. Argument nx is the length of vector x and is provided for checking purposes

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • x::Union{AbstractArray{Float32},AbstractArray{Float64}}:Argument x is the AbstractArray of the vector values of Float64 or Float32.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3SetContinuousStates.

source
FMIImport.fmi3GetEventIndicatorsFunction
fmi3GetEventIndicators(c::FMU3Instance)

Returns the event indicators of the FMU

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • eventIndicators::Array{fmi3Float64}:The event indicators are returned as a vector represented by an array of "fmi3Float64" values.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3GetEventIndicators.

source
FMICore.fmi3GetEventIndicators!Function

Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode

Compute event indicators at the current time instant and for the current states. EventIndicators signal Events by their sign change.

source
fmi3GetEventIndicators!(c::FMU3Instance, eventIndicators::AbstractArray{fmi3Float64}, ni::Csize_t)

Compute event indicators at the current time instant and for the current states. EventIndicators signal Events by their sign change.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • eventIndicators::AbstractArray{fmi3Float64}: Argument eventIndicators contains values of type fmi3Float64 which is a alias type for Real data type.eventIndicators is the AbstractArray which contains the Real values of the vector that represent the event indicators.
  • ni::Csize_t: Argument ni defines the length of vector eventIndicators and is provided for checking purposes

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3GetEventIndicators!.

source

Evaluation of Model Equations

FMICore.fmi3EnterEventModeFunction

Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode

The model enters Event Mode from the Continuous-Time Mode in ModelExchange oder Step Mode in CoSimulation and discrete-time equations may become active (and relations are not “frozen”).

source
fmi3EnterEventMode(c::FMU3Instance, stepEvent::fmi3Boolean, stateEvent::fmi3Boolean, rootsFound::AbstractArray{fmi3Int32}, nEventIndicators::Csize_t, timeEvent::fmi3Boolean; soft::Bool=false)

The model enters Event Mode from the Continuous-Time Mode in ModelExchange oder Step Mode in CoSimulation and discrete-time equations may become active (and relations are not “frozen”).

TODO argmuents

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • stepEvent::fmi3Boolean:
  • stateEvent::fmi3Boolean:
  • rootsFound::AbstractArray{fmi3Int32}:
  • nEventIndicators::Csize_t:
  • timeEvent::fmi3Boolean:
  • soft::Bool=false:

Keywords

  • soft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3EnterEventMode.

source
fmi3EnterEventMode(c::FMU3Instance, stepEvent::Bool, stateEvent::Bool, rootsFound::AbstractArray{fmi3Int32}, nEventIndicators::Csize_t, timeEvent::Bool)

The model enters Event Mode from the Continuous-Time Mode in ModelExchange oder Step Mode in CoSimulation and discrete-time equations may become active (and relations are not “frozen”).

TODO argmuents

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • stepEvent::Bool:
  • stateEvent::Bool:
  • rootsFound::AbstractArray{fmi3Int32}:
  • nEventIndicators::Csize_t:
  • timeEvent::Bool:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3EnterEventMode.

source
FMICore.fmi3EnterContinuousTimeModeFunction

Source: FMISpec3.0, Version D5ef1c1: 2.3.5. State: Event Mode

The model enters Continuous-Time Mode and all discrete-time equations become inactive and all relations are “frozen”. This function has to be called when changing from Event Mode (after the global event iteration in Event Mode over all involved FMUs and other models has converged) into Continuous-Time Mode.

source
fmi3EnterContinuousTimeMode(c::FMU3Instance; soft::Bool=false)

The model enters Continuous-Time Mode and all discrete-time equations become inactive and all relations are “frozen”. This function has to be called when changing from Event Mode (after the global event iteration in Event Mode over all involved FMUs and other models has converged) into Continuous-Time Mode.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Keywords

  • soft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.5. State: Event Mode

See also fmi3EnterContinuousTimeMode.

source
FMICore.fmi3CompletedIntegratorStep!Function

Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode

This function must be called by the environment after every completed step of the integrator provided the capability flag needsCompletedIntegratorStep = true. If enterEventMode == fmi3True, the event mode must be entered If terminateSimulation == fmi3True, the simulation shall be terminated

source
fmi3CompletedIntegratorStep!(c::FMU3Instance,
                                   noSetFMUStatePriorToCurrentPoint::fmi3Boolean,
                                   enterEventMode::Ref{fmi3Boolean},
-                                  terminateSimulation::Ref{fmi3Boolean})

This function must be called by the environment after every completed step of the integrator provided the capability flag needsCompletedIntegratorStep == true. If enterEventMode == fmi3True, the event mode must be entered If terminateSimulation == fmi3True, the simulation shall be terminated

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • noSetFMUStatePriorToCurrentPoint::fmi3Boolean: Argument noSetFMUStatePriorToCurrentPoint = fmi3True if fmi3SetFMUState will no longer be called for time instants prior to current time in this simulation run.
  • enterEventMode::Ref{fmi3Boolean}: Argument enterEventMode points to the return value (fmi3Boolean) which signals to the environment if the FMU shall call fmi3EnterEventMode. fmi3Boolean is an alias type for Boolean data type.
  • terminateSimulation::Ref{fmi3Boolean}: Argument terminateSimulation points to the return value (fmi3Boolean) which signals signal if the simulation shall be terminated. fmi3Boolean is an alias type for Boolean data type.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3CompletedIntegratorStep!.

source
FMIImport.fmi3GetContinuousStatesFunction
fmi3GetContinuousStates(c::FMU3Instance)

Return the new (continuous) state vector x

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • x::Array{fmi3Float64}: Returns an array of fmi3Float64 values representing the new continuous state vector x.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.3.3. State: Initialization Mode

See also fmi3GetContinuousStates.

source
FMICore.fmi3GetContinuousStates!Function

Source: FMISpec3.0, Version D5ef1c1: 2.3.3. State: Initialization Mode

Return the states at the current time instant.

This function must be called if fmi3UpdateDiscreteStates returned with valuesOfContinuousStatesChanged == fmi3True. Not allowed in Co-Simulation and Scheduled Execution.

source
fmi3GetContinuousStates!(c::FMU3Instance, nominals::AbstractArray{fmi3Float64}, nContinuousStates::Csize_t)

Return the states at the current time instant.

This function must be called if fmi3UpdateDiscreteStates returned with valuesOfContinuousStatesChanged == fmi3True. Not allowed in Co-Simulation and Scheduled Execution.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • nominals::AbstractArray{fmi3Float64}: Argument nominals contains values of type fmi3Float64 which is a alias type for Real data type. nominals is the AbstractArray which contains the Real values of the vector that represent the new state vector.
  • nContinuousStates::Csize_t: Argument nContinuousStates defines the length of vector nominals and is provided for checking purposes

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.3. State: Initialization Mode

See also fmi3GetContinuousStates!.

source
FMICore.fmi3GetNominalsOfContinuousStates!Function

Source: FMISpec3.0, Version D5ef1c1: 2.3.3. State: Initialization Mode

Return the nominal values of the continuous states.

If fmi3UpdateDiscreteStates returned with nominalsOfContinuousStatesChanged == fmi3True, then at least one nominal value of the states has changed and can be inquired with fmi3GetNominalsOfContinuousStates. Not allowed in Co-Simulation and Scheduled Execution.

source
fmi3GetNominalsOfContinuousStates!(c::FMU3Instance, x_nominal::AbstractArray{fmi3Float64}, nx::Csize_t)

Return the nominal values of the continuous states.

If fmi3UpdateDiscreteStates returned with nominalsOfContinuousStatesChanged == fmi3True, then at least one nominal value of the states has changed and can be inquired with fmi3GetNominalsOfContinuousStates. Not allowed in Co-Simulation and Scheduled Execution.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • x_nominal::AbstractArray{fmi3Float64}: Argument x_nominal contains values of type fmi3Float64 which is a alias type for Real data type. x_nominal is the AbstractArray which contains the Real values of the vector that represent the nominal values of the continuous states.
  • nx::Csize_t: Argument nx defines the length of vector x_nominal and is provided for checking purposes

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.3. State: Initialization Mode

See also fmi3GetNominalsOfContinuousStates!.

source
FMIImport.fmi3GetNumberOfContinuousStatesFunction
fmi3GetNumberOfContinuousStates(c::FMU3Instance)

This function returns the number of continuous states. This function can only be called in Model Exchange.

fmi3GetNumberOfContinuousStates must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • size::Integer: Return size is the number of continuous states of this instance

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3GetNumberOfContinuousStates.

source
FMICore.fmi3GetNumberOfContinuousStates!Function

Source: FMISpec3.0, Version D5ef1c1: 2.3.2. State: Instantiated

This function returns the number of continuous states. This function can only be called in Model Exchange.

fmi3GetNumberOfContinuousStates must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

source
fmi3GetNumberOfContinuousStates!(c::FMU3Instance, nContinuousStates::Ref{Csize_t})

This function returns the number of continuous states. This function can only be called in Model Exchange.

fmi3GetNumberOfContinuousStates must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • nContinuousStates::Ref{Csize_t}: Stores the number of continuous states returned by the function

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3GetNumberOfContinuousStates!.

source

fmi3CompletedIntegratorStep

+ terminateSimulation::Ref{fmi3Boolean})

This function must be called by the environment after every completed step of the integrator provided the capability flag needsCompletedIntegratorStep == true. If enterEventMode == fmi3True, the event mode must be entered If terminateSimulation == fmi3True, the simulation shall be terminated

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • noSetFMUStatePriorToCurrentPoint::fmi3Boolean: Argument noSetFMUStatePriorToCurrentPoint = fmi3True if fmi3SetFMUState will no longer be called for time instants prior to current time in this simulation run.
  • enterEventMode::Ref{fmi3Boolean}: Argument enterEventMode points to the return value (fmi3Boolean) which signals to the environment if the FMU shall call fmi3EnterEventMode. fmi3Boolean is an alias type for Boolean data type.
  • terminateSimulation::Ref{fmi3Boolean}: Argument terminateSimulation points to the return value (fmi3Boolean) which signals signal if the simulation shall be terminated. fmi3Boolean is an alias type for Boolean data type.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 3.2.1. State: Continuous-Time Mode

See also fmi3CompletedIntegratorStep!.

source
FMIImport.fmi3GetContinuousStatesFunction
fmi3GetContinuousStates(c::FMU3Instance)

Return the new (continuous) state vector x

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.

Returns

  • x::Array{fmi3Float64}: Returns an array of fmi3Float64 values representing the new continuous state vector x.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.3.3. State: Initialization Mode

See also fmi3GetContinuousStates.

source
FMICore.fmi3GetContinuousStates!Function

Source: FMISpec3.0, Version D5ef1c1: 2.3.3. State: Initialization Mode

Return the states at the current time instant.

This function must be called if fmi3UpdateDiscreteStates returned with valuesOfContinuousStatesChanged == fmi3True. Not allowed in Co-Simulation and Scheduled Execution.

source
fmi3GetContinuousStates!(c::FMU3Instance, nominals::AbstractArray{fmi3Float64}, nContinuousStates::Csize_t)

Return the states at the current time instant.

This function must be called if fmi3UpdateDiscreteStates returned with valuesOfContinuousStatesChanged == fmi3True. Not allowed in Co-Simulation and Scheduled Execution.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • nominals::AbstractArray{fmi3Float64}: Argument nominals contains values of type fmi3Float64 which is a alias type for Real data type. nominals is the AbstractArray which contains the Real values of the vector that represent the new state vector.
  • nContinuousStates::Csize_t: Argument nContinuousStates defines the length of vector nominals and is provided for checking purposes

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.3. State: Initialization Mode

See also fmi3GetContinuousStates!.

source
FMICore.fmi3GetNominalsOfContinuousStates!Function

Source: FMISpec3.0, Version D5ef1c1: 2.3.3. State: Initialization Mode

Return the nominal values of the continuous states.

If fmi3UpdateDiscreteStates returned with nominalsOfContinuousStatesChanged == fmi3True, then at least one nominal value of the states has changed and can be inquired with fmi3GetNominalsOfContinuousStates. Not allowed in Co-Simulation and Scheduled Execution.

source
fmi3GetNominalsOfContinuousStates!(c::FMU3Instance, x_nominal::AbstractArray{fmi3Float64}, nx::Csize_t)

Return the nominal values of the continuous states.

If fmi3UpdateDiscreteStates returned with nominalsOfContinuousStatesChanged == fmi3True, then at least one nominal value of the states has changed and can be inquired with fmi3GetNominalsOfContinuousStates. Not allowed in Co-Simulation and Scheduled Execution.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • x_nominal::AbstractArray{fmi3Float64}: Argument x_nominal contains values of type fmi3Float64 which is a alias type for Real data type. x_nominal is the AbstractArray which contains the Real values of the vector that represent the nominal values of the continuous states.
  • nx::Csize_t: Argument nx defines the length of vector x_nominal and is provided for checking purposes

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.3. State: Initialization Mode

See also fmi3GetNominalsOfContinuousStates!.

source
FMIImport.fmi3GetNumberOfContinuousStatesFunction
fmi3GetNumberOfContinuousStates(c::FMU3Instance)

This function returns the number of continuous states. This function can only be called in Model Exchange.

fmi3GetNumberOfContinuousStates must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • size::Integer: Return size is the number of continuous states of this instance

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3GetNumberOfContinuousStates.

source
FMICore.fmi3GetNumberOfContinuousStates!Function

Source: FMISpec3.0, Version D5ef1c1: 2.3.2. State: Instantiated

This function returns the number of continuous states. This function can only be called in Model Exchange.

fmi3GetNumberOfContinuousStates must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

source
fmi3GetNumberOfContinuousStates!(c::FMU3Instance, nContinuousStates::Ref{Csize_t})

This function returns the number of continuous states. This function can only be called in Model Exchange.

fmi3GetNumberOfContinuousStates must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • nContinuousStates::Ref{Csize_t}: Stores the number of continuous states returned by the function

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3GetNumberOfContinuousStates!.

source

fmi3CompletedIntegratorStep

diff --git a/dev/fmi3_lowlevel_SE_functions/index.html b/dev/fmi3_lowlevel_SE_functions/index.html index bfa6ac7a..8e1464ed 100644 --- a/dev/fmi3_lowlevel_SE_functions/index.html +++ b/dev/fmi3_lowlevel_SE_functions/index.html @@ -1,2 +1,2 @@ -FMI for Scheduled Execution · FMI.jl
+FMI for Scheduled Execution · FMI.jl
diff --git a/dev/fmi3_lowlevel_library_constants/index.html b/dev/fmi3_lowlevel_library_constants/index.html index 668ca492..3418bf29 100644 --- a/dev/fmi3_lowlevel_library_constants/index.html +++ b/dev/fmi3_lowlevel_library_constants/index.html @@ -1,2 +1,2 @@ -FMI3 Types in FMI Import/Core .jl · FMI.jl

FMI3 Types in FMI Import/Core .jl

FMIBase.FMU3Type

Source: FMISpec3.0, Version D5ef1c1: 2.2.1. Header Files and Naming of Functions

The mutable struct representing an FMU in the FMI 3.0 Standard. Also contains the paths to the FMU and ZIP folder as well als all the FMI 3.0 function pointers

source
FMIBase.FMU3InstanceType

Source: FMISpec3.0, Version D5ef1c1:: 2.2.1. Header Files and Naming of Functions

The mutable struct represents a pointer to an FMU specific data structure that contains the information needed to process the model equations or to process the co-simulation of the model/subsystem represented by the FMU.

source
FMIBase.FMU3InstanceEnvironmentType

This is a pointer to a data structure in the importer. Using this pointer, data may be transferred between the importer and callback functions the importer provides with the instantiation functions.

Source: FMISpec 3.0.1 [2.2.3. Platform Dependent Definitions]

source
FMIBase.FMI3StructType
FMI3Struct

A wildcard for FMI3 related structs, namely Union{FMU3, fmi3ModelDescription, FMU3Instance}.

source
FMICore.fmi3InstanceType
fmi3Instance (alias for Ptr{Cvoid})

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3FMUStateType
fmi3FMUState (alias for Ptr{Cvoid})

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3InitialType

Source: FMISpec3.0, Version D5ef1c1:2.4.7.5. Type specific properties Enumeration that defines how the variable is initialized, i.e. if a fmi3Set{VariableType} is allowed and how the FMU internally treats this value in Instantiated and Initialization Mode. For the variable with causality = independent, the attribute initial must not be provided, because its start value is set with the startTime parameter of fmi3EnterInitializationMode.

The attribute initial for other variables can have the following values and meanings:

exact - The variable is initialized with the start value (provided under the variable type element).

approx - The start value provides an approximation that may be modified during initialization, e.g., if the FMU is part of an algebraic loop where the variable might be an iteration variable and start value is taken as initial value for an iterative solution process.

calculated - The variable is calculated from other variables during initialization. It is not allowed to provide a start value.

If initial is not present, it is defined by Table 22 based on causality and variability. If initial = exact or approx, or causality = input, a start value must be provided. If initial = calculated, or causality = independent, it is not allowed to provide a start value.

[The environment decides when to use the start value of a variable with causality = input. Examples: * Automatic tests of FMUs are performed, and the FMU is tested by providing the start value as constant input. * For a Model Exchange FMU, the FMU might be part of an algebraic loop. If the input variable is iteration variable of this algebraic loop, then initialization starts with its start value.]

If fmi3Set{VariableType} is not called on a variable with causality = input, then the FMU must use the start value as value of this input.

Added prefix "fmi3" to help with redefinition of constans in enums.

source
FMICore.fmi3VariableType

Source: FMISpec3.0, Version D5ef1c1: 2.4.7. Definition of Model Variables

A fmi3Variable describes the the type, name, valueRefence and optional information for every variable in the Modeldescription.

source
FMICore.fmi3BinaryType
fmi3Binary (alias for Ptr{fmi3Byte})

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3TypeType

Source: FMISpec3.0, Version D5ef1c1: 2.3.1. Super State: FMU State Setable

Argument fmuType defines the type of the FMU:

  • fmi3ModelExchange: FMU with initialization and events; between events simulation of continuous systems is performed with external integrators from the environment.
  • fmi3CoSimulation: Black box interface for co-simulation.
  • fmi3ScheduledExecution: Concurrent computation of model partitions on a single computational resource (e.g. CPU-core)
source
FMICore.fmi3BooleanType
fmi3Boolean (alias for Cuchar)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3ByteType
fmi3Byte (alias for Cuchar)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3CharType
fmi3Char (alias for Cuchar)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3Float32Type
fmi3Float32 (alias for Cfloat)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3Float64Type
fmi3Float64 (alias for Cdouble)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3Int8Type
fmi3Int8 (alias for Cchar)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3Int16Type
fmi3Int16 (alias for Cshort)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3Int32Type
fmi3Int32 (alias for Cint)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3Int64Type
fmi3Int64 (alias for Clonglong)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3UInt8Type
fmi3UInt8 (alias for Cuchar)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3UInt16Type
fmi3UInt16 (alias for Cushort)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3UInt32Type
fmi3UInt32 (alias for Cuint)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3UInt64Type
fmi3UInt64 (alias for Culonglong)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3StringType
fmi3String (alias for Ptr{fmi3Char})

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3ClockType
fmi3Clock (alias for Cint)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3IntervalQualifierType

Source: FMISpec3.0, Version D5ef1c1: 2.2.9.4. Scheduled Execution Enumeration that defines the IntervalQualifiers which describe how to treat the intervals and intervalCounters arguments. They have the following meaning: fmi3IntervalNotYetKnown - is returned for a countdown aperiodic Clock for which the next interval is not yet known. This qualifier value can only be returned directly after the Clock was active and previous calls to fmi3GetInterval never returned fmi3IntervalChanged (nor fmi3IntervalUnchanged). In Scheduled Execution this return value means that the corresponding model partition cannot be scheduled yet.

fmi3IntervalUnchanged - is returned if a previous call to fmi3GetInterval already returned a value qualified with fmi3IntervalChanged which has not changed since. In Scheduled Execution this means the corresponding model partition has already been scheduled.

fmi3IntervalChanged - is returned to indicate that the value for the interval has changed for this Clock. Any previously returned intervals (if any) are overwritten with the current value. The new Clock interval is relative to the time of the current Event Mode or Clock Update Mode in contrast to the interval of a periodic Clock, where the interval is defined as the time between consecutive Clock ticks. In Scheduled Execution this means that the corresponding model partition has to be scheduled or re-scheduled (if a previous call to fmi3GetInterval returned fmi3IntervalChanged).

source
FMICore.fmi3VariabilityType

Source: FMISpec3.0, Version D5ef1c1: 2.4.7.4. Variable Attributes Enumeration that defines the time dependency of the variable, in other words, it defines the time instants when a variable can change its value. [The purpose of this attribute is to define when a result value needs to be inquired and to be stored. For example, discrete variables change their values only at event instants (ME) or at a communication point (CS and SE) and it is therefore only necessary to inquire them with fmi3Get{VariableType} and store them at event times.] Allowed values of this enumeration: constant - The value of the variable never changes.

fixed - The value of the variable is fixed after initialization, in other words, after fmi3ExitInitializationMode was called the variable value does not change anymore.

tunable - The value of the variable is constant between events (ME) and between communication points (CS and SE) due to changing variables with causality = parameter and variability = tunable. Whenever a parameter with variability = tunable changes, an event is triggered externally (ME or CS if events are supported), or the change is performed at the next communication point (CS and SE) and the variables with variability = tunable and causality = calculatedParameter or output must be newly computed. [tunable inputs are not allowed, see Table 18.]

discrete - Model Exchange: The value of the variable is constant between external and internal events (= time, state, step events defined implicitly in the FMU). Co-Simulation: By convention, the variable is from a real sampled data system and its value is only changed at communication points (including event handling). During intermediateUpdate, discrete variables are not allowed to change. [If the simulation algorithm notices a change in a discrete variable during intermediateUpdate, the simulation algorithm will delay the change, raise an event with earlyReturnRequested == fmi3True and during the communication point it can change the discrete variable, followed by event handling.]

continuous - Only a variable of type == fmi3GetFloat32 or type == fmi3GetFloat64 can be continuous. Model Exchange: No restrictions on value changes (see Section 4.1.1).

The default is continuous for variables of type <Float32> and <Float64>, and discrete for all other types.

For variables of type Clock and clocked variables the variability is always discrete or tunable.

[Note that the information about continuous states is defined with elements <ContinuousStateDerivative> in <ModelStructure>.]

Added prefix "fmi3" to help with redefinition of constans in enums.

source
FMICore.fmi3DependencyKindType

Source: FMISpec3.0, Version D5ef1c1: 2.2.10. Dependencies of Variables

Enumeration that defines the dependencies a single unknown variable vunknown can have in relation to a known variable vknown. They have the following meaning: dependent - no particular structure, f(.., v_{known,i}, ..)

Only for floating point type unknowns v_{unknown}:

constant - constant factor, c ⋅ v_{known,i} where c is an expression that is evaluated before fmi3EnterInitializationMode is called.

Only for floating point type unknowns v_{unknown} in Event and Continuous-Time Mode (ME) and at communication points (CS and SE), and not for <InitialUnknown> for Initialization Mode:

fixed - fixed factor, p⋅v_{known,i} where p is an expression that is evaluated before fmi3ExitInitializationMode is called.

tunable - tunable factor, p⋅v_{known,i} where p is an expression that is evaluated before fmi3ExitInitializationMode is called and in Event Mode due to event handling (ME) or at a communication point (CS and SE)

discrete - discrete factor, d⋅v_{known,i} where d is an expression that is evaluated before fmi3ExitInitializationMode is called and in Event Mode due to an external or internal event or at a communication point (CS and SE).

source
FMICore.fmi3StatusType

Defines the status flag (an enumeration of type fmi3Status defined in file fmi3FunctionTypes.h) that is returned by functions to indicate the success of the function call: The status has the following meaning:

  • fmi3OK: The call was successful. The output argument values are defined.
  • fmi3Warning: A non-critical problem was detected, but the computation can continue. The output argument values are defined. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings.

[In certain applications, e.g. in a prototyping environment, warnings may be acceptable. For production environments warnings should be treated like errors unless they can be safely ignored.]

  • fmi3Discard: The call was not successful and the FMU is in the same state as before the call. The output argument values are not defined, but the computation can continue. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. Advanced simulation algorithms can try alternative approaches to drive the simulation by calling the function with different arguments or calling another function. Otherwise the simulation algorithm has to treat this return code like fmi3Error and has to terminate the simulation.

[Examples for usage of fmi3Discard are handling of min/max violation, or signal numerical problems during model evaluation forcing smaller step sizes.]

  • fmi3Error: The call failed. The output argument values are undefined and the simulation cannot be continued. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. If a function returns fmi3Error, it is possible to restore a previously retrieved FMU state by calling fmi3SetFMUState. Otherwise fmi3FreeInstance or fmi3Reset must be called. When detecting illegal arguments or a function call not allowed in the current state according to the respective state machine, the FMU must return fmi3Error. Other instances of this FMU are not affected by the error.
  • fmi3Fatal: The state of all instances of the model is irreparably corrupted. [For example, due to a runtime exception such as access violation or integer division by zero during the execution of an FMI function.] Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings, if still possible. It is not allowed to call any other function for any instance of the FMU.

Source: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions

source
FMICore.fmi3ModelDescriptionType

Source: FMISpec3.0, Version D5ef1c1: 2.4.1. Definition of an FMU

The central FMU data structure defining all variables of the FMU that are visible/accessible via the FMU functions.

source
FMICore.fmi3CausalityType

Source: FMISpec3.0, Version D5ef1c1: 2.4.7.4. Variable Attributes Enumeration that defines the causality of the variable. Allowed values of this enumeration:

parameter - A data value that is constant during the simulation (except for tunable parameters, see there) and is provided by the environment and cannot be used in connections, except for parameter propagation in terminals as described in Section 2.4.9.2.6. variability must be fixed or tunable. These parameters can be changed independently, unlike calculated parameters. initial must be exact or not present (meaning exact).

calculatedParameter - A data value that is constant during the simulation and is computed during initialization or when tunable parameters change. variability must be fixed or tunable. initial must be approx, calculated or not present (meaning calculated).

input - The variable value can be provided by the importer. [For example, the importer could forward the output of another FMU into this input.]

output - The variable value can be used by the importer. [For example, this value can be forwarded to an input of another FMU.] The algebraic relationship to the inputs can be defined via the dependencies attribute of <fmiModelDescription><ModelStructure><Output>.

local - Local variables are:

  • continuous states and their ContinuousStateDerivatives, ClockedStates, EventIndicators or InitialUnknowns. These variables are listed in the <fmiModelDescription><ModelStructure>.
  • internal, intermediate variables or local clocks which can be read for debugging purposes and are not listed in the <fmiModelDescription><ModelStructure>.

Setting of local variables:

  • In Initialization Mode and before, local variables need to be set if they do have start values or are listed as <InitialUnknown>.
  • In super state Initialized, fmi3Set{VariableType} must not be called on any of the local variables. Only in Model Exchange, continuous states can be set with fmi3SetContinuousStates. Local variable values must not be used as input to another model or FMU.

independent - The independent variable (usually time [but could also be, for example, angle]). All variables are a function of this independent variable. variability must be continuous. Exactly one variable of an FMU must be defined as independent. For Model Exchange the value is the last value set by fmi3SetTime. For Co-Simulation the value of the independent variable is lastSuccessfulTime return by the last call to fmi3DoStep or the value of argument intermediateUpdateTime of fmi3CallbackIntermediateUpdate. For Scheduled Execution the value of the independent variable is not defined. [The main purpose of this variable in Scheduled Execution is to define a quantity and unit for the independent variable.] The initial value of the independent variable is the value of the argument startTime of fmi3EnterInitializationMode for both Co-Simulation and Model Exchange. If the unit for the independent variable is not defined, it is implicitly s (seconds). If one variable is defined as independent, it must be defined with a floating point type without a start attribute. It is not allowed to call function fmi3Set{VariableType} on an independent variable. Instead, its value is initialized with fmi3EnterInitializationMode and after initialization set by fmi3SetTime for Model Exchange and by arguments currentCommunicationPoint and communicationStepSize of fmi3DoStep for Co-Simulation FMUs. [The actual value can be inquired with fmi3Get{VariableType}.]

structuralParameter - The variable value can only be changed in Configuration Mode or Reconfiguration Mode. The variability attribute must be fixed or tunable. The initial attribute must be exact or not present (meaning exact). The start attribute is mandatory. A structural parameter must not have a <Dimension> element. A structural parameter may be referenced in <Dimension> elements. If a structural parameters is referenced in <Dimension> elements, it must be of type <UInt64> and its start attribute must be larger than 0. The min attribute might still be 0.

The default of causality is local. A continuous-time state or an event indicator must have causality = local or output, see also Section 2.4.8.

[causality = calculatedParameter and causality = local with variability = fixed or tunable are similar. The difference is that a calculatedParameter can be used in another model or FMU, whereas a local variable cannot. For example, when importing an FMU in a Modelica environment, a calculatedParameter should be imported in a public section as final parameter, whereas a local variable should be imported in a protected section of the model.]

The causality of variables of type Clock must be either input or output.

Added prefix "fmi3" to help with redefinition of constans in enums.

source

FMI3 Constants in FMI Import/Core .jl

FMICore.fmi3StatusOKConstant

fmi3OK: The call was successful. The output argument values are defined.

Source: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions

source
FMICore.fmi3StatusWarningConstant

fmi3Warning: A non-critical problem was detected, but the computation can continue. The output argument values are defined. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. [In certain applications, e.g. in a prototyping environment, warnings may be acceptable. For production environments warnings should be treated like errors unless they can be safely ignored.]

Source: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions

source
FMICore.fmi3StatusDiscardConstant

fmi3Discard: The call was not successful and the FMU is in the same state as before the call. The output argument values are not defined, but the computation can continue. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. Advanced simulation algorithms can try alternative approaches to drive the simulation by calling the function with different arguments or calling another function. Otherwise the simulation algorithm has to treat this return code like fmi3Error and has to terminate the simulation. [Examples for usage of fmi3Discard are handling of min/max violation, or signal numerical problems during model evaluation forcing smaller step sizes.]

Source: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions

source
FMICore.fmi3StatusErrorConstant

fmi3Error: The call failed. The output argument values are undefined and the simulation cannot be continued. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. If a function returns fmi3Error, it is possible to restore a previously retrieved FMU state by calling fmi3SetFMUState. Otherwise fmi3FreeInstance or fmi3Reset must be called. When detecting illegal arguments or a function call not allowed in the current state according to the respective state machine, the FMU must return fmi3Error. Other instances of this FMU are not affected by the error.

Source: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions

source
FMICore.fmi3StatusFatalConstant

fmi3Fatal: The state of all instances of the model is irreparably corrupted. [For example, due to a runtime exception such as access violation or integer division by zero during the execution of an FMI function.] Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings, if still possible. It is not allowed to call any other function for any instance of the FMU.

Source: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions

source
+FMI3 Types in FMI Import/Core .jl · FMI.jl

FMI3 Types in FMI Import/Core .jl

FMIBase.FMU3Type

Source: FMISpec3.0, Version D5ef1c1: 2.2.1. Header Files and Naming of Functions

The mutable struct representing an FMU in the FMI 3.0 Standard. Also contains the paths to the FMU and ZIP folder as well als all the FMI 3.0 function pointers

source
FMIBase.FMU3InstanceType

Source: FMISpec3.0, Version D5ef1c1:: 2.2.1. Header Files and Naming of Functions

The mutable struct represents a pointer to an FMU specific data structure that contains the information needed to process the model equations or to process the co-simulation of the model/subsystem represented by the FMU.

source
FMIBase.FMU3InstanceEnvironmentType

This is a pointer to a data structure in the importer. Using this pointer, data may be transferred between the importer and callback functions the importer provides with the instantiation functions.

Source: FMISpec 3.0.1 [2.2.3. Platform Dependent Definitions]

source
FMIBase.FMI3StructType
FMI3Struct

A wildcard for FMI3 related structs, namely Union{FMU3, fmi3ModelDescription, FMU3Instance}.

source
FMICore.fmi3InstanceType
fmi3Instance (alias for Ptr{Cvoid})

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3FMUStateType
fmi3FMUState (alias for Ptr{Cvoid})

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3InitialType

Source: FMISpec3.0, Version D5ef1c1:2.4.7.5. Type specific properties Enumeration that defines how the variable is initialized, i.e. if a fmi3Set{VariableType} is allowed and how the FMU internally treats this value in Instantiated and Initialization Mode. For the variable with causality = independent, the attribute initial must not be provided, because its start value is set with the startTime parameter of fmi3EnterInitializationMode.

The attribute initial for other variables can have the following values and meanings:

exact - The variable is initialized with the start value (provided under the variable type element).

approx - The start value provides an approximation that may be modified during initialization, e.g., if the FMU is part of an algebraic loop where the variable might be an iteration variable and start value is taken as initial value for an iterative solution process.

calculated - The variable is calculated from other variables during initialization. It is not allowed to provide a start value.

If initial is not present, it is defined by Table 22 based on causality and variability. If initial = exact or approx, or causality = input, a start value must be provided. If initial = calculated, or causality = independent, it is not allowed to provide a start value.

[The environment decides when to use the start value of a variable with causality = input. Examples: * Automatic tests of FMUs are performed, and the FMU is tested by providing the start value as constant input. * For a Model Exchange FMU, the FMU might be part of an algebraic loop. If the input variable is iteration variable of this algebraic loop, then initialization starts with its start value.]

If fmi3Set{VariableType} is not called on a variable with causality = input, then the FMU must use the start value as value of this input.

Added prefix "fmi3" to help with redefinition of constans in enums.

source
FMICore.fmi3VariableType

Source: FMISpec3.0, Version D5ef1c1: 2.4.7. Definition of Model Variables

A fmi3Variable describes the the type, name, valueRefence and optional information for every variable in the Modeldescription.

source
FMICore.fmi3BinaryType
fmi3Binary (alias for Ptr{fmi3Byte})

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3TypeType

Source: FMISpec3.0, Version D5ef1c1: 2.3.1. Super State: FMU State Setable

Argument fmuType defines the type of the FMU:

  • fmi3ModelExchange: FMU with initialization and events; between events simulation of continuous systems is performed with external integrators from the environment.
  • fmi3CoSimulation: Black box interface for co-simulation.
  • fmi3ScheduledExecution: Concurrent computation of model partitions on a single computational resource (e.g. CPU-core)
source
FMICore.fmi3BooleanType
fmi3Boolean (alias for Cuchar)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3ByteType
fmi3Byte (alias for Cuchar)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3CharType
fmi3Char (alias for Cuchar)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3Float32Type
fmi3Float32 (alias for Cfloat)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3Float64Type
fmi3Float64 (alias for Cdouble)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3Int8Type
fmi3Int8 (alias for Cchar)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3Int16Type
fmi3Int16 (alias for Cshort)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3Int32Type
fmi3Int32 (alias for Cint)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3Int64Type
fmi3Int64 (alias for Clonglong)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3UInt8Type
fmi3UInt8 (alias for Cuchar)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3UInt16Type
fmi3UInt16 (alias for Cushort)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3UInt32Type
fmi3UInt32 (alias for Cuint)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3UInt64Type
fmi3UInt64 (alias for Culonglong)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3StringType
fmi3String (alias for Ptr{fmi3Char})

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3ClockType
fmi3Clock (alias for Cint)

Source: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions

source
FMICore.fmi3IntervalQualifierType

Source: FMISpec3.0, Version D5ef1c1: 2.2.9.4. Scheduled Execution Enumeration that defines the IntervalQualifiers which describe how to treat the intervals and intervalCounters arguments. They have the following meaning: fmi3IntervalNotYetKnown - is returned for a countdown aperiodic Clock for which the next interval is not yet known. This qualifier value can only be returned directly after the Clock was active and previous calls to fmi3GetInterval never returned fmi3IntervalChanged (nor fmi3IntervalUnchanged). In Scheduled Execution this return value means that the corresponding model partition cannot be scheduled yet.

fmi3IntervalUnchanged - is returned if a previous call to fmi3GetInterval already returned a value qualified with fmi3IntervalChanged which has not changed since. In Scheduled Execution this means the corresponding model partition has already been scheduled.

fmi3IntervalChanged - is returned to indicate that the value for the interval has changed for this Clock. Any previously returned intervals (if any) are overwritten with the current value. The new Clock interval is relative to the time of the current Event Mode or Clock Update Mode in contrast to the interval of a periodic Clock, where the interval is defined as the time between consecutive Clock ticks. In Scheduled Execution this means that the corresponding model partition has to be scheduled or re-scheduled (if a previous call to fmi3GetInterval returned fmi3IntervalChanged).

source
FMICore.fmi3VariabilityType

Source: FMISpec3.0, Version D5ef1c1: 2.4.7.4. Variable Attributes Enumeration that defines the time dependency of the variable, in other words, it defines the time instants when a variable can change its value. [The purpose of this attribute is to define when a result value needs to be inquired and to be stored. For example, discrete variables change their values only at event instants (ME) or at a communication point (CS and SE) and it is therefore only necessary to inquire them with fmi3Get{VariableType} and store them at event times.] Allowed values of this enumeration: constant - The value of the variable never changes.

fixed - The value of the variable is fixed after initialization, in other words, after fmi3ExitInitializationMode was called the variable value does not change anymore.

tunable - The value of the variable is constant between events (ME) and between communication points (CS and SE) due to changing variables with causality = parameter and variability = tunable. Whenever a parameter with variability = tunable changes, an event is triggered externally (ME or CS if events are supported), or the change is performed at the next communication point (CS and SE) and the variables with variability = tunable and causality = calculatedParameter or output must be newly computed. [tunable inputs are not allowed, see Table 18.]

discrete - Model Exchange: The value of the variable is constant between external and internal events (= time, state, step events defined implicitly in the FMU). Co-Simulation: By convention, the variable is from a real sampled data system and its value is only changed at communication points (including event handling). During intermediateUpdate, discrete variables are not allowed to change. [If the simulation algorithm notices a change in a discrete variable during intermediateUpdate, the simulation algorithm will delay the change, raise an event with earlyReturnRequested == fmi3True and during the communication point it can change the discrete variable, followed by event handling.]

continuous - Only a variable of type == fmi3GetFloat32 or type == fmi3GetFloat64 can be continuous. Model Exchange: No restrictions on value changes (see Section 4.1.1).

The default is continuous for variables of type <Float32> and <Float64>, and discrete for all other types.

For variables of type Clock and clocked variables the variability is always discrete or tunable.

[Note that the information about continuous states is defined with elements <ContinuousStateDerivative> in <ModelStructure>.]

Added prefix "fmi3" to help with redefinition of constans in enums.

source
FMICore.fmi3DependencyKindType

Source: FMISpec3.0, Version D5ef1c1: 2.2.10. Dependencies of Variables

Enumeration that defines the dependencies a single unknown variable vunknown can have in relation to a known variable vknown. They have the following meaning: dependent - no particular structure, f(.., v_{known,i}, ..)

Only for floating point type unknowns v_{unknown}:

constant - constant factor, c ⋅ v_{known,i} where c is an expression that is evaluated before fmi3EnterInitializationMode is called.

Only for floating point type unknowns v_{unknown} in Event and Continuous-Time Mode (ME) and at communication points (CS and SE), and not for <InitialUnknown> for Initialization Mode:

fixed - fixed factor, p⋅v_{known,i} where p is an expression that is evaluated before fmi3ExitInitializationMode is called.

tunable - tunable factor, p⋅v_{known,i} where p is an expression that is evaluated before fmi3ExitInitializationMode is called and in Event Mode due to event handling (ME) or at a communication point (CS and SE)

discrete - discrete factor, d⋅v_{known,i} where d is an expression that is evaluated before fmi3ExitInitializationMode is called and in Event Mode due to an external or internal event or at a communication point (CS and SE).

source
FMICore.fmi3StatusType

Defines the status flag (an enumeration of type fmi3Status defined in file fmi3FunctionTypes.h) that is returned by functions to indicate the success of the function call: The status has the following meaning:

  • fmi3OK: The call was successful. The output argument values are defined.
  • fmi3Warning: A non-critical problem was detected, but the computation can continue. The output argument values are defined. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings.

[In certain applications, e.g. in a prototyping environment, warnings may be acceptable. For production environments warnings should be treated like errors unless they can be safely ignored.]

  • fmi3Discard: The call was not successful and the FMU is in the same state as before the call. The output argument values are not defined, but the computation can continue. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. Advanced simulation algorithms can try alternative approaches to drive the simulation by calling the function with different arguments or calling another function. Otherwise the simulation algorithm has to treat this return code like fmi3Error and has to terminate the simulation.

[Examples for usage of fmi3Discard are handling of min/max violation, or signal numerical problems during model evaluation forcing smaller step sizes.]

  • fmi3Error: The call failed. The output argument values are undefined and the simulation cannot be continued. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. If a function returns fmi3Error, it is possible to restore a previously retrieved FMU state by calling fmi3SetFMUState. Otherwise fmi3FreeInstance or fmi3Reset must be called. When detecting illegal arguments or a function call not allowed in the current state according to the respective state machine, the FMU must return fmi3Error. Other instances of this FMU are not affected by the error.
  • fmi3Fatal: The state of all instances of the model is irreparably corrupted. [For example, due to a runtime exception such as access violation or integer division by zero during the execution of an FMI function.] Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings, if still possible. It is not allowed to call any other function for any instance of the FMU.

Source: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions

source
FMICore.fmi3ModelDescriptionType

Source: FMISpec3.0, Version D5ef1c1: 2.4.1. Definition of an FMU

The central FMU data structure defining all variables of the FMU that are visible/accessible via the FMU functions.

source
FMICore.fmi3CausalityType

Source: FMISpec3.0, Version D5ef1c1: 2.4.7.4. Variable Attributes Enumeration that defines the causality of the variable. Allowed values of this enumeration:

parameter - A data value that is constant during the simulation (except for tunable parameters, see there) and is provided by the environment and cannot be used in connections, except for parameter propagation in terminals as described in Section 2.4.9.2.6. variability must be fixed or tunable. These parameters can be changed independently, unlike calculated parameters. initial must be exact or not present (meaning exact).

calculatedParameter - A data value that is constant during the simulation and is computed during initialization or when tunable parameters change. variability must be fixed or tunable. initial must be approx, calculated or not present (meaning calculated).

input - The variable value can be provided by the importer. [For example, the importer could forward the output of another FMU into this input.]

output - The variable value can be used by the importer. [For example, this value can be forwarded to an input of another FMU.] The algebraic relationship to the inputs can be defined via the dependencies attribute of <fmiModelDescription><ModelStructure><Output>.

local - Local variables are:

  • continuous states and their ContinuousStateDerivatives, ClockedStates, EventIndicators or InitialUnknowns. These variables are listed in the <fmiModelDescription><ModelStructure>.
  • internal, intermediate variables or local clocks which can be read for debugging purposes and are not listed in the <fmiModelDescription><ModelStructure>.

Setting of local variables:

  • In Initialization Mode and before, local variables need to be set if they do have start values or are listed as <InitialUnknown>.
  • In super state Initialized, fmi3Set{VariableType} must not be called on any of the local variables. Only in Model Exchange, continuous states can be set with fmi3SetContinuousStates. Local variable values must not be used as input to another model or FMU.

independent - The independent variable (usually time [but could also be, for example, angle]). All variables are a function of this independent variable. variability must be continuous. Exactly one variable of an FMU must be defined as independent. For Model Exchange the value is the last value set by fmi3SetTime. For Co-Simulation the value of the independent variable is lastSuccessfulTime return by the last call to fmi3DoStep or the value of argument intermediateUpdateTime of fmi3CallbackIntermediateUpdate. For Scheduled Execution the value of the independent variable is not defined. [The main purpose of this variable in Scheduled Execution is to define a quantity and unit for the independent variable.] The initial value of the independent variable is the value of the argument startTime of fmi3EnterInitializationMode for both Co-Simulation and Model Exchange. If the unit for the independent variable is not defined, it is implicitly s (seconds). If one variable is defined as independent, it must be defined with a floating point type without a start attribute. It is not allowed to call function fmi3Set{VariableType} on an independent variable. Instead, its value is initialized with fmi3EnterInitializationMode and after initialization set by fmi3SetTime for Model Exchange and by arguments currentCommunicationPoint and communicationStepSize of fmi3DoStep for Co-Simulation FMUs. [The actual value can be inquired with fmi3Get{VariableType}.]

structuralParameter - The variable value can only be changed in Configuration Mode or Reconfiguration Mode. The variability attribute must be fixed or tunable. The initial attribute must be exact or not present (meaning exact). The start attribute is mandatory. A structural parameter must not have a <Dimension> element. A structural parameter may be referenced in <Dimension> elements. If a structural parameters is referenced in <Dimension> elements, it must be of type <UInt64> and its start attribute must be larger than 0. The min attribute might still be 0.

The default of causality is local. A continuous-time state or an event indicator must have causality = local or output, see also Section 2.4.8.

[causality = calculatedParameter and causality = local with variability = fixed or tunable are similar. The difference is that a calculatedParameter can be used in another model or FMU, whereas a local variable cannot. For example, when importing an FMU in a Modelica environment, a calculatedParameter should be imported in a public section as final parameter, whereas a local variable should be imported in a protected section of the model.]

The causality of variables of type Clock must be either input or output.

Added prefix "fmi3" to help with redefinition of constans in enums.

source

FMI3 Constants in FMI Import/Core .jl

FMICore.fmi3StatusOKConstant

fmi3OK: The call was successful. The output argument values are defined.

Source: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions

source
FMICore.fmi3StatusWarningConstant

fmi3Warning: A non-critical problem was detected, but the computation can continue. The output argument values are defined. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. [In certain applications, e.g. in a prototyping environment, warnings may be acceptable. For production environments warnings should be treated like errors unless they can be safely ignored.]

Source: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions

source
FMICore.fmi3StatusDiscardConstant

fmi3Discard: The call was not successful and the FMU is in the same state as before the call. The output argument values are not defined, but the computation can continue. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. Advanced simulation algorithms can try alternative approaches to drive the simulation by calling the function with different arguments or calling another function. Otherwise the simulation algorithm has to treat this return code like fmi3Error and has to terminate the simulation. [Examples for usage of fmi3Discard are handling of min/max violation, or signal numerical problems during model evaluation forcing smaller step sizes.]

Source: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions

source
FMICore.fmi3StatusErrorConstant

fmi3Error: The call failed. The output argument values are undefined and the simulation cannot be continued. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. If a function returns fmi3Error, it is possible to restore a previously retrieved FMU state by calling fmi3SetFMUState. Otherwise fmi3FreeInstance or fmi3Reset must be called. When detecting illegal arguments or a function call not allowed in the current state according to the respective state machine, the FMU must return fmi3Error. Other instances of this FMU are not affected by the error.

Source: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions

source
FMICore.fmi3StatusFatalConstant

fmi3Fatal: The state of all instances of the model is irreparably corrupted. [For example, due to a runtime exception such as access violation or integer division by zero during the execution of an FMI function.] Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings, if still possible. It is not allowed to call any other function for any instance of the FMU.

Source: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions

source
diff --git a/dev/fmi3_lowlevel_library_functions/index.html b/dev/fmi3_lowlevel_library_functions/index.html index 51f587a4..aa44b2ed 100644 --- a/dev/fmi3_lowlevel_library_functions/index.html +++ b/dev/fmi3_lowlevel_library_functions/index.html @@ -1,5 +1,5 @@ -FMI Common Concepts for Model Exchange and Co-Simulation · FMI.jl

FMI Common Concepts for Model Exchange and Co-Simulation

In both cases, FMI defines an input/output block of a dynamic model where the distribution of the block, the platform dependent header file, several access functions, as well as the schema files are identical.

Creation, Destruction and Logging of FMU Instances

FMICore.fmi3InstantiateCoSimulationFunction

Source: FMISpec3.0, Version D5ef1c1:: 2.3.1. Super State: FMU State Setable

This function instantiates a Co-Simulation FMU (see Section 4). It is allowed to call this function only if modelDescription.xml includes a <CoSimulation> element.

source
FMIImport.fmi3InstantiateCoSimulation!Function
fmi3InstantiateCoSimulation!(fmu::FMU3; instanceName::String=fmu.modelName, type::fmi3Type=fmu.type, pushInstances::Bool = true, visible::Bool = false, loggingOn::Bool = fmu.executionConfig.loggingOn, externalCallbacks::Bool = fmu.executionConfig.externalCallbacks, 
+FMI Common Concepts for Model Exchange and Co-Simulation · FMI.jl

FMI Common Concepts for Model Exchange and Co-Simulation

In both cases, FMI defines an input/output block of a dynamic model where the distribution of the block, the platform dependent header file, several access functions, as well as the schema files are identical.

Creation, Destruction and Logging of FMU Instances

FMICore.fmi3InstantiateCoSimulationFunction

Source: FMISpec3.0, Version D5ef1c1:: 2.3.1. Super State: FMU State Setable

This function instantiates a Co-Simulation FMU (see Section 4). It is allowed to call this function only if modelDescription.xml includes a <CoSimulation> element.

source
FMIImport.fmi3InstantiateCoSimulation!Function
fmi3InstantiateCoSimulation!(fmu::FMU3; instanceName::String=fmu.modelName, type::fmi3Type=fmu.type, pushInstances::Bool = true, visible::Bool = false, loggingOn::Bool = fmu.executionConfig.loggingOn, externalCallbacks::Bool = fmu.executionConfig.externalCallbacks, 
     eventModeUsed::Bool = false, ptrIntermediateUpdate=nothing, logStatusOK::Bool=true, logStatusWarning::Bool=true, logStatusDiscard::Bool=true, logStatusError::Bool=true, logStatusFatal::Bool=true)

Create a new coSimulation instance of the given fmu, adds a logger if logginOn == true.

Arguments

  • fmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.

Keywords

  • instanceName::String=fmu.modelName: Name of the instance
  • type::fmi3Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present
  • pushInstances::Bool = true: Defines if the fmu instances should be pushed in the application.
  • visible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)
  • loggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)
  • externalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi3CallbackFunctions, this may improve readability of logging messages (default=false)
  • eventModeUsed::Bool = false: Defines if the FMU instance can use the event mode. (default=false)
  • ptrIntermediateUpdate=nothing: Points to a function handling intermediate Updates (defalut=nothing)
  • logStatusOK::Bool=true whether to log status of kind fmi3OK (default=true)
  • logStatusWarning::Bool=true whether to log status of kind fmi3Warning (default=true)
  • logStatusDiscard::Bool=true whether to log status of kind fmi3Discard (default=true)
  • logStatusError::Bool=true whether to log status of kind fmi3Error (default=true)
  • logStatusFatal::Bool=true whether to log status of kind fmi3Fatal (default=true)

Returns

  • Returns the instance of a new FMU coSimulation instance.

Source

See also fmi3InstantiateCoSimulation.

source
FMICore.fmi3InstantiateModelExchangeFunction

Source: FMISpec3.0, Version D5ef1c1:: 2.3.1. Super State: FMU State Setable

This function instantiates a Model Exchange FMU (see Section 3). It is allowed to call this function only if modelDescription.xml includes a <ModelExchange> element.

source
FMIImport.fmi3InstantiateModelExchange!Function
fmi3InstantiateModelExchange!(fmu::FMU3; instanceName::String=fmu.modelName, type::fmi3Type=fmu.type, pushInstances::Bool = true, visible::Bool = false, loggingOn::Bool = fmu.executionConfig.loggingOn, externalCallbacks::Bool = fmu.executionConfig.externalCallbacks,
     logStatusOK::Bool=true, logStatusWarning::Bool=true, logStatusDiscard::Bool=true, logStatusError::Bool=true, logStatusFatal::Bool=true)

Create a new modelExchange instance of the given fmu, adds a logger if logginOn == true.

Arguments

  • fmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.

Keywords

  • instanceName::String=fmu.modelName: Name of the instance
  • type::fmi3Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present
  • pushInstances::Bool = true: Defines if the fmu instances should be pushed in the application.
  • visible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)
  • loggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)
  • externalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi3CallbackFunctions, this may improve readability of logging messages (default=false)
  • logStatusOK::Bool=true whether to log status of kind fmi3OK (default=true)
  • logStatusWarning::Bool=true whether to log status of kind fmi3Warning (default=true)
  • logStatusDiscard::Bool=true whether to log status of kind fmi3Discard (default=true)
  • logStatusError::Bool=true whether to log status of kind fmi3Error (default=true)
  • logStatusFatal::Bool=true whether to log status of kind fmi3Fatal (default=true)

Returns

  • Returns the instance of a new FMU modelExchange instance.

Source

See also fmi3InstantiateModelExchange.

source
FMICore.fmi3InstantiateScheduledExecutionFunction

Source: FMISpec3.0, Version D5ef1c1:: 2.3.1. Super State: FMU State Setable

This function instantiates a Scheduled Execution FMU (see Section 4). It is allowed to call this function only if modelDescription.xml includes a <ScheduledExecution> element.

source
FMIImport.fmi3InstantiateScheduledExecution!Function
fmi3InstantiateScheduledExecution!(fmu::FMU3; ptrlockPreemption::Ptr{Cvoid}, ptrunlockPreemption::Ptr{Cvoid}, instanceName::String=fmu.modelName, type::fmi3Type=fmu.type, pushInstances::Bool = true, visible::Bool = false, loggingOn::Bool = fmu.executionConfig.loggingOn, externalCallbacks::Bool = fmu.executionConfig.externalCallbacks, 
     logStatusOK::Bool=true, logStatusWarning::Bool=true, logStatusDiscard::Bool=true, logStatusError::Bool=true, logStatusFatal::Bool=true)

Create a new ScheduledExecution instance of the given fmu, adds a logger if logginOn == true.

Arguments

  • fmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.

Keywords

  • ptrlockPreemption::Ptr{Cvoid}: Points to a function handling locking Preemption
  • ptrunlockPreemption::Ptr{Cvoid}: Points to a function handling unlocking Preemption
  • instanceName::String=fmu.modelName: Name of the instance
  • type::fmi3Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present
  • pushInstances::Bool = true: Defines if the fmu instances should be pushed in the application.
  • visible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)
  • loggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)
  • externalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi3CallbackFunctions, this may improve readability of logging messages (default=false)
  • logStatusOK::Bool=true whether to log status of kind fmi3OK (default=true)
  • logStatusWarning::Bool=true whether to log status of kind fmi3Warning (default=true)
  • logStatusDiscard::Bool=true whether to log status of kind fmi3Discard (default=true)
  • logStatusError::Bool=true whether to log status of kind fmi3Error (default=true)
  • logStatusFatal::Bool=true whether to log status of kind fmi3Fatal (default=true)

Returns

  • Returns the instance of a new FMU ScheduledExecution instance.

Source

See also fmi3InstantiateScheduledExecution.

source
FMICore.fmi3FreeInstanceFunction

Source: FMISpec3.0, Version D5ef1c1: 2.3.1. Super State: FMU State Setable

Disposes the given instance, unloads the loaded model, and frees all the allocated memory and other resources that have been allocated by the functions of the FMU interface. If a NULL pointer is provided for argument instance, the function call is ignored (does not have an effect).

source
FMIImport.fmi3FreeInstance!Function
fmi3FreeInstance!(c::FMU3Instance; popInstance::Bool = true)

Disposes the given instance, unloads the loaded model, and frees all the allocated memory and other resources that have been allocated by the functions of the FMU interface. If a null pointer is provided for “c”, the function call is ignored (does not have an effect).

Removes the component from the FMUs component list.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Keywords

  • popInstance::Bool=true: If the Keyword popInstance = true the freed instance is deleted

Returns

  • nothing

Source

source
FMICore.fmi3SetDebugLoggingFunction

Source: FMISpec3.0, Version D5ef1c1: 2.3.1. Super State: FMU State Setable

The function controls debug logging that is output via the logger function callback. If loggingOn = fmi3True, debug logging is enabled, otherwise it is switched off.

source
fmi3SetDebugLogging(c::FMU3Instance, logginOn::fmi3Boolean, nCategories::UInt, categories::Ptr{Nothing})

Control the use of the logging callback function, version independent.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • logginOn::fmi3Boolean: If loggingOn = fmi3True, debug logging is enabled for the log categories specified in categories, otherwise it is disabled. Type fmi3Boolean is defined as an alias Type for the C-Type Boolean and is to be used with fmi3True and fmi3False.
  • nCategories::UInt: Argument nCategories defines the length of the argument categories.
  • categories::Ptr{Nothing}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.1. Super State: FMU State Setable

See also fmi3SetDebugLogging.

source
fmi3SetDebugLogging(c::FMU3Instance)

Set the DebugLogger for the FMU.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • Returns a warning if str.state is not called in fmi3InstanceStateInstantiated.
  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.1. Super State: FMU State Setable

See also fmi3SetDebugLogging.

source

Initialization, Termination, and Resetting an FMU

This section documents functions that deal with initialization, termination, resetting of an FMU.

FMICore.fmi3EnterInitializationModeFunction

Source: FMISpec3.0, Version D5ef1c1: 2.3.2. State: Instantiated

Informs the FMU to enter Initialization Mode. Before calling this function, all variables with attribute <Datatype initial = "exact" or "approx"> can be set with the “fmi3SetXXX” functions (the ScalarVariable attributes are defined in the Model Description File, see section 2.4.7). Setting other variables is not allowed. Also sets the simulation start and stop time.

source
fmi3EnterInitializationMode(c::FMU3Instance, toleranceDefined::fmi3Boolean,
@@ -41,4 +41,4 @@
     knowns::AbstractArray{fmi3ValueReference},
     sensitivity::AbstractArray{fmi3Float64},
     seed::AbstractArray{fmi3Float64})

Wrapper Function call to compute the partial derivative with respect to the variables unknowns.

Computes the adjoint derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)

  • unknowns: vector of unknown Real variables computed in the actual Mode:
    • Initialization Mode: unkowns kisted under <ModelStructure><InitialUnknown> that have type Real.
    • Continuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under <ModelStructure><Output> with type Real and variability = continuous and the variables listed as state derivatives under <ModelStructure><ContinuousStateDerivative>).
    • Event Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under <ModelStructure><Output> with type Real and variability = discrete.
    • Step Mode (CoSimulation): The variables listed under <ModelStructure><Output> with type Real and variability = continuous or discrete. If <ModelStructure><ContinuousStateDerivative> is present, also the variables listed here as state derivatives.
  • knowns: Real input variables of function h that changes its value in the actual Mode.
  • rest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes

Computes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:

Δunknowns = (δh / δknowns) Δknowns

Arguments

  • c::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • unknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).
  • knowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).
  • sensitivity::AbstractArray{fmi3Float64}: Stores the directional derivative vector values.
  • seed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.11. Getting Partial Derivatives

See also fmi3GetAdjointDerivative!.

source
FMIImport.fmi3GetOutputDerivativesFunction

fmi3GetOutputDerivatives!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nValueReferences::Csizet, order::AbstractArray{fmi3Int32}, values::AbstractArray{fmi3Float64}, nValues::Csizet)

Retrieves the n-th derivative of output values.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::Array{fmi3ValueReference}: Argument vr is an array of nValueReferences value handels called "ValueReference" that t define the variables whose derivatives shall be set.
  • order::Array{fmi3Int32}: Argument order is an array of fmi3Int32 values witch specifys the corresponding order of derivative of the real input variable.

Returns

  • value::AbstactArray{fmi3Float64}: Return value is an array which represents a vector with the values of the derivatives.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.12. Getting Derivatives of Continuous Outputs

See also fmi3GetOutputDerivatives.

source
FMICore.fmi3GetOutputDerivatives!Function

Source: FMISpec3.0, Version D5ef1c1: 2.2.12. Getting Derivatives of Continuous Outputs

Retrieves the n-th derivative of output values.

valueReferences - is a vector of value references that define the variables whose derivatives shall be retrieved. If multiple derivatives of a variable shall be retrieved, list the value reference multiple times.

nValueReferences - is the dimension of the arguments valueReferences and orders.

orders - contains the orders of the respective derivative (1 means the first derivative, 2 means the second derivative, …, 0 is not allowed). If multiple derivatives of a variable shall be retrieved, provide a list of them in the orders array, corresponding to a multiply occurring value reference in the valueReferences array. The highest order of derivatives retrievable can be determined by the 'maxOutputDerivativeOrder' tag in the ModelDescription.

values - is a vector with the values of the derivatives. The order of the values elements is derived from a twofold serialization: the outer level corresponds to the combination of a value reference (e.g., valueReferences[k]) and order (e.g., orders[k]), and the inner level to the serialization of variables as defined in Section 2.2.6.1. The inner level does not exist for scalar variables.

nValues - is the size of the argument values. nValues only equals nValueReferences if all corresponding output variables are scalar variables.

source
fmi3GetOutputDerivatives!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nValueReferences::Csize_t, order::AbstractArray{fmi3Int32}, values::AbstractArray{fmi3Float64}, nValues::Csize_t)

Retrieves the n-th derivative of output values.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::Array{fmi3ValueReference}: Argument vr is an array of nValueReferences value handels called "ValueReference" that t define the variables whose derivatives shall be set.
  • nValueReferences::Csize_t: Argument nValueReferences defines the size of vr.
  • order::Array{fmi3Int32}: Argument order is an array of fmi3Int32 values witch specifys the corresponding order of derivative of the real input variable.
  • values::Array{fmi3Float64}: Argument values is an array with the actual values of these variables.
  • nValues::Csize_t: Argument nValues defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.12. Getting Derivatives of Continuous Outputs

See also fmi3GetOutputDerivatives!.

source

fmi3SampleDirectionalDerivative fmi3SampleDirectionalDerivative! fmi3GetJacobian fmi3GetJacobian! fmi3GetFullJacobian fmi3GetFullJacobian!

TODO: Clockstuff

FMICore.fmi3GetIntervalDecimal!Function
fmi3GetIntervalDecimal!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervals::AbstractArray{fmi3Float64}, qualifiers::fmi3IntervalQualifier)

fmi3GetIntervalDecimal retrieves the interval until the next clock tick.

For input Clocks it is allowed to call this function to query the next activation interval. For changing aperiodic Clock, this function must be called in every Event Mode where this clock was activated. For countdown aperiodic Clock, this function must be called in every Event Mode. Clock intervals are computed in fmi3UpdateDiscreteStates (at the latest), therefore, this function should be called after fmi3UpdateDiscreteStates. For information about fmi3IntervalQualifiers, call ?fmi3IntervalQualifier

TODO argmuents

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • intervals::AbstractArray{fmi3Float64}:
  • qualifiers::fmi3IntervalQualifier:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.9. Clocks

See also fmi3GetIntervalDecimal!.

source
FMICore.fmi3SetIntervalDecimalFunction
fmi3SetIntervalDecimal(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervals::AbstractArray{fmi3Float64})

Sets the interval until the next clock tick

TODO argmuents

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • intervals::AbstractArray{fmi3Float64}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.9. Clocks

See also fmi3SetIntervalDecimal.

source
FMICore.fmi3GetIntervalFraction!Function
fmi3GetIntervalFraction!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervalCounters::AbstractArray{fmi3UInt64}, resolutions::AbstractArray{fmi3UInt64}, qualifiers::fmi3IntervalQualifier)

fmi3GetIntervalFraction retrieves the interval until the next clock tick.

For input Clocks it is allowed to call this function to query the next activation interval. For changing aperiodic Clock, this function must be called in every Event Mode where this clock was activated. For countdown aperiodic Clock, this function must be called in every Event Mode. Clock intervals are computed in fmi3UpdateDiscreteStates (at the latest), therefore, this function should be called after fmi3UpdateDiscreteStates. For information about fmi3IntervalQualifiers, call ?fmi3IntervalQualifier

TODO argmuents

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • intervalCounters::AbstractArray{fmi3UInt64}:
  • resolutions::AbstractArray{fmi3UInt64}:
  • qualifiers::fmi3IntervalQualifier:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.9. Clocks

See also fmi3GetIntervalFraction!.

source
FMICore.fmi3SetIntervalFractionFunction
fmi3SetIntervalFraction(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervalCounters::AbstractArray{fmi3UInt64}, resolutions::AbstractArray{fmi3UInt64})

Sets the interval until the next clock tick. Only allowed if the attribute 'supportsFraction' is set.

TODO argmuents

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • intervalCounters::AbstractArray{fmi3UInt64}:
  • resolutions::AbstractArray{fmi3UInt64}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.9. Clocks

See also fmi3SetIntervalFraction.

source
FMICore.fmi3GetShiftDecimal!Function
fmi3GetShiftDecimal!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, shifts::AbstractArray{fmi3Float64})

fmi3GetShiftDecimal retrieves the delay to the first Clock tick from the FMU.

TODO argmuents

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • shifts::AbstractArray{fmi3Float64}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.9. Clocks

See also fmi3GetShiftDecimal!.

source
FMICore.fmi3GetShiftFraction!Function
fmi3GetShiftFraction!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, shiftCounters::AbstractArray{fmi3UInt64}, resolutions::AbstractArray{fmi3UInt64})

fmi3GetShiftFraction retrieves the delay to the first Clock tick from the FMU.

TODO argmuents

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • shiftCounters::AbstractArray{fmi3UInt64}:
  • resolutions::AbstractArray{fmi3UInt64}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.9. Clocks

See also fmi3GetShiftFraction!.

source
FMIImport.fmi3GetClockFunction
fmi3GetClock(c::FMU3Instance, vr::fmi3ValueReferenceFormat)

Get the values of an array of fmi3Clock variables.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • values::Array{fmi3Clock}: returns values of an array of fmi3Clock variables with the dimension of fmi3ValueReferenceFormat length.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetClock.

source
FMICore.fmi3GetClock!Function

Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values

Functions to get and set values of variables idetified by their valueReference.

nValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.

source
fmi3GetClock!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Clock}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • value::AbstractArray{fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetClock!.

source
fmi3GetClock!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Clock})

Writes the clock values of an array of variables in the given field

fmi3GetClock! is only possible for arrays of values, please use an array instead of a scalar.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::AbstractArray{fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3GetClock!.

source
FMICore.fmi3SetClockFunction

Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values

Functions to get and set values of variables idetified by their valueReference.

nValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.

source
fmi3SetClock(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Clock}, nvalue::Csize_t)

Functions to get and set values of variables idetified by their valueReference.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • value::AbstractArray{fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.
  • nvalue::Csize_t: Argument nvalue defines the size of values.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetClock.

source
fmi3SetClock(c::FMU3Instance, vr::fmi3ValueReferenceFormat, valueSizes::Union{AbstractArray{Csize_t}, Csize_t}, values::Union{AbstractArray{fmi3Clock}, fmi3Clock})

Set the values of an array of clock variables

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • values::Union{AbstractArray{fmi3Clock}, fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.6.2. Getting and Setting Variable Values

See also fmi3SetClock.

source
FMICore.fmi3ActivateModelPartitionFunction
fmi3ActivateModelPartition(c::FMU3Instance, vr::fmi3ValueReference, activationTime::AbstractArray{fmi3Float64})

During Clock Activation Mode (see 5.2.2.) after fmi3ActivateModelPartition has been called for a calculated, tunable or changing Clock the FMU provides the information on when the Clock will tick again, i.e. when the corresponding model partition has to be scheduled the next time.

Each fmi3ActivateModelPartition call is associated with the computation of an exposed model partition of the FMU and therefore to an input Clock.

TODO argmuents

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReference: Argument vr is the value handel called "ValueReference" that define the variable that shall be inquired.
  • activationTime::AbstractArray{fmi3Float64}:

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 5.2.2. State: Clock Activation Mode

See also fmi3ActivateModelPartition.

source

fmi3CallbackClockUpdate

Conversion functions

fmi3StringToCausality fmi3StatusToString fmi3StringToInitial

External/Additional functions

FMIImport.fmi3GetNumberOfVariableDependenciesFunction
fmi3GetNumberOfVariableDependencies(c::FMU3Instance, vr::fmi3ValueReference, nvr::Ref{Csize_t})

The number of dependencies of a given variable, which may change if structural parameters are changed, can be retrieved by calling fmi3GetNumberOfVariableDependencies.

This information can only be retrieved if the 'providesPerElementDependencies' tag in the ModelDescription is set.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::Union{fmi3ValueReference, String}: Argument vr is the value handel called "ValueReference" that define the variable that shall be inquired.

Returns

  • size::Integer: Return size is the number of variable dependencies for the given variable

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.10. Dependencies of Variables

See also fmi3GetNumberOfVariableDependencies.

source
FMICore.fmi3GetNumberOfVariableDependencies!Function
fmi3GetNumberOfVariableDependencies!(c::FMU3Instance, vr::fmi3ValueReference, nvr::Ref{Csize_t})

The number of dependencies of a given variable, which may change if structural parameters are changed, can be retrieved by calling fmi3GetNumberOfVariableDependencies.

This information can only be retrieved if the 'providesPerElementDependencies' tag in the ModelDescription is set.

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReference: Argument vr is the value handel called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.10. Dependencies of Variables

See also fmi3GetNumberOfVariableDependencies!.

source
FMIImport.fmi3GetVariableDependenciesFunction
fmi3GetVariableDependencies(c::FMU3Instance, vr::Union{fmi3ValueReference, String})

The actual dependencies (of type dependenciesKind) can be retrieved by calling the function fmi3GetVariableDependencies:

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::Union{fmi3ValueReference, String}: Argument vr is the value handel called "ValueReference" that define the variable that shall be inquired.

Returns

  • elementIndicesOfDependent::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the dependent variable that dependency information is provided for. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)
  • independents::AbstractArray{fmi3ValueReference}: must point to a buffer of fmi3ValueReference values of size nDependencies allocated by the calling environment. It is filled in by this function with the value reference of the independent variable that this dependency entry is dependent upon.
  • elementIndicesIndependents::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the independent variable that this dependency entry is dependent upon. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)
  • dependencyKinds::AbstractArray{fmi3DependencyKind}: must point to a buffer of dependenciesKind values of size nDependencies allocated by the calling environment. It is filled in by this function with the enumeration value describing the dependency of this dependency entry.

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.10. Dependencies of Variables

See also fmi3GetVariableDependencies!.

source
FMICore.fmi3GetVariableDependencies!Function
fmi3GetVariableDependencies!(c::FMU3Instance, vr::fmi3ValueReference, elementIndiceOfDependents::AbstractArray{Csize_t}, independents::AbstractArray{fmi3ValueReference},  
-    elementIndiceOfInpendents::AbstractArray{Csize_t}, dependencyKind::AbstractArray{fmi3DependencyKind}, ndependencies::Csize_t)

The actual dependencies (of type dependenciesKind) can be retrieved by calling the function fmi3GetVariableDependencies:

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReference: Argument vr is the value handel called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • elementIndiceOfDependents::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the dependent variable that dependency information is provided for. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)
  • independents::AbstractArray{fmi3ValueReference}: must point to a buffer of fmi3ValueReference values of size nDependencies allocated by the calling environment. It is filled in by this function with the value reference of the independent variable that this dependency entry is dependent upon.
  • elementIndiceOfInpendents::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the independent variable that this dependency entry is dependent upon. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)
  • dependencyKind::AbstractArray{fmi3DependencyKind}: must point to a buffer of dependenciesKind values of size nDependencies allocated by the calling environment. It is filled in by this function with the enumeration value describing the dependency of this dependency entry.
  • ndependencies::Csize_t: specifies the number of dependencies that the calling environment allocated space for in the result buffers, and should correspond to value obtained by calling fmi3GetNumberOfVariableDependencies.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.10. Dependencies of Variables

See also fmi3GetVariableDependencies!.

source
+ elementIndiceOfInpendents::AbstractArray{Csize_t}, dependencyKind::AbstractArray{fmi3DependencyKind}, ndependencies::Csize_t)

The actual dependencies (of type dependenciesKind) can be retrieved by calling the function fmi3GetVariableDependencies:

Arguments

  • c::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • vr::fmi3ValueReference: Argument vr is the value handel called "ValueReference" that define the variable that shall be inquired.
  • nvr::Csize_t: Argument nvr defines the size of vr.
  • elementIndiceOfDependents::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the dependent variable that dependency information is provided for. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)
  • independents::AbstractArray{fmi3ValueReference}: must point to a buffer of fmi3ValueReference values of size nDependencies allocated by the calling environment. It is filled in by this function with the value reference of the independent variable that this dependency entry is dependent upon.
  • elementIndiceOfInpendents::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the independent variable that this dependency entry is dependent upon. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)
  • dependencyKind::AbstractArray{fmi3DependencyKind}: must point to a buffer of dependenciesKind values of size nDependencies allocated by the calling environment. It is filled in by this function with the enumeration value describing the dependency of this dependency entry.
  • ndependencies::Csize_t: specifies the number of dependencies that the calling environment allocated space for in the result buffers, and should correspond to value obtained by calling fmi3GetNumberOfVariableDependencies.

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.2.10. Dependencies of Variables

See also fmi3GetVariableDependencies!.

source
diff --git a/dev/fmi3_lowlevel_modeldescription_functions/index.html b/dev/fmi3_lowlevel_modeldescription_functions/index.html index d75f1a29..69eca2ea 100644 --- a/dev/fmi3_lowlevel_modeldescription_functions/index.html +++ b/dev/fmi3_lowlevel_modeldescription_functions/index.html @@ -1,2 +1,2 @@ -Working with the FMI model description · FMI.jl

Working with the FMI model description

The FMI model description provides all human readable information on the model. The following functions can be used to obtain all information provided by the model description, which in turn can be extracted from the fmu.

Loading/Parsing

fmi3LoadModelDescription

general information about the FMU

fmi3GetGenerationTool fmi3GetGenerationDateAndTime

technical information about the FMU

FMICore.fmi3GetVersionFunction

Source: FMISpec3.0, Version D5ef1c1: 2.2.4. Inquire Version Number of Header Files

This function returns fmi3Version of the fmi3Functions.h header file which was used to compile the functions of the FMU. This function call is allowed always and in all interface types.

The standard header file as documented in this specification has version "3.0-beta.2", so this function returns "3.0-beta.2".

source
fmi3GetVersion(fmu::FMU3)

Arguments

  • fmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.

Returns

  • Returns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi3Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “3.0”

Source

source
function fmi3GetVersion(fmu::FMU3)

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • Returns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi3Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “3.0”

Source

source
FMIImport.fmi3GetNumberOfEventIndicatorsFunction
fmi3GetNumberOfEventIndicators(c::FMU3Instance)

This function returns the number of event indicators. This function can only be called in Model Exchange.

fmi3GetNumberOfEventIndicators must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • size::Integer: Return size is the number of event indicators of this instance

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3GetNumberOfEventIndicators.

source
FMICore.fmi3GetNumberOfEventIndicators!Function

Source: FMISpec3.0, Version D5ef1c1: 2.3.2. State: Instantiated

This function returns the number of event indicators. This function can only be called in Model Exchange.

fmi3GetNumberOfEventIndicators must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

source
fmi3GetNumberOfEventIndicators!(c::FMU3Instance, nEventIndicators::Ref{Csize_t})

This function returns the number of event indicators. This function can only be called in Model Exchange.

fmi3GetNumberOfEventIndicators must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • nEventIndicators::Ref{Csize_t}: Stores the number of continuous states returned by the function

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3GetNumberOfEventIndicators!.

source

FMU capabilities

fmi3CanGetSetState fmi3CanSerializeFMUState

+Working with the FMI model description · FMI.jl

Working with the FMI model description

The FMI model description provides all human readable information on the model. The following functions can be used to obtain all information provided by the model description, which in turn can be extracted from the fmu.

Loading/Parsing

fmi3LoadModelDescription

general information about the FMU

fmi3GetGenerationTool fmi3GetGenerationDateAndTime

technical information about the FMU

FMICore.fmi3GetVersionFunction

Source: FMISpec3.0, Version D5ef1c1: 2.2.4. Inquire Version Number of Header Files

This function returns fmi3Version of the fmi3Functions.h header file which was used to compile the functions of the FMU. This function call is allowed always and in all interface types.

The standard header file as documented in this specification has version "3.0-beta.2", so this function returns "3.0-beta.2".

source
fmi3GetVersion(fmu::FMU3)

Arguments

  • fmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.

Returns

  • Returns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi3Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “3.0”

Source

source
function fmi3GetVersion(fmu::FMU3)

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • Returns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi3Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “3.0”

Source

source
FMIImport.fmi3GetNumberOfEventIndicatorsFunction
fmi3GetNumberOfEventIndicators(c::FMU3Instance)

This function returns the number of event indicators. This function can only be called in Model Exchange.

fmi3GetNumberOfEventIndicators must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.

Returns

  • size::Integer: Return size is the number of event indicators of this instance

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3GetNumberOfEventIndicators.

source
FMICore.fmi3GetNumberOfEventIndicators!Function

Source: FMISpec3.0, Version D5ef1c1: 2.3.2. State: Instantiated

This function returns the number of event indicators. This function can only be called in Model Exchange.

fmi3GetNumberOfEventIndicators must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

source
fmi3GetNumberOfEventIndicators!(c::FMU3Instance, nEventIndicators::Ref{Csize_t})

This function returns the number of event indicators. This function can only be called in Model Exchange.

fmi3GetNumberOfEventIndicators must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.

Arguments

  • c::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.
  • nEventIndicators::Ref{Csize_t}: Stores the number of continuous states returned by the function

Returns

  • status::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.

More detailed:

  • fmi3OK: all well
  • fmi3Warning: things are not quite right, but the computation can continue
  • fmi3Discard: if the slave computed successfully only a subinterval of the communication step
  • fmi3Error: the communication step could not be carried out at all
  • fmi3Fatal: if an error occurred which corrupted the FMU irreparably

Source

  • FMISpec3.0 Link: https://fmi-standard.org/
  • FMISpec3.0: 2.2.3 Platform Dependent Definitions
  • FMISpec3.0: 2.2.4 Status Returned by Functions
  • FMISpec3.0: 2.3.2. State: Instantiated

See also fmi3GetNumberOfEventIndicators!.

source

FMU capabilities

fmi3CanGetSetState fmi3CanSerializeFMUState

diff --git a/dev/fmi_lowlevel_library_constants/index.html b/dev/fmi_lowlevel_library_constants/index.html index 96223182..bffc6fb7 100644 --- a/dev/fmi_lowlevel_library_constants/index.html +++ b/dev/fmi_lowlevel_library_constants/index.html @@ -1,2 +1,2 @@ -Types in FMI Import/Core .jl · FMI.jl

Types in FMI Import/Core .jl

FMIBase.FMUInstanceType
FMUInstance

An instance of a FMU. This was called component in FMI2, but was corrected to instance in FMI3.

source
FMIBase.FMUExecutionConfigurationType

A mutable struct representing the excution configuration of a FMU. For FMUs that have issues with calls like fmi2Reset or fmi2FreeInstance, this is pretty useful.

source
FMIBase.FMUInputFunctionType
FMUInputFunction(inputFunction, vrs)

Struct container for inplace input functions for FMUs.

Arguments

  • inputFunction: The input function (inplace) that gets called when new inputs are needed, must match one of the patterns described under Input function patterns.
  • vrs::AbstractVector: A vector of value refernces to be set by the input function

Input function patterns

Available input patterns are [c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:

  • inputFunction(t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})
  • inputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})
source

Constants in FMI Import/Core .jl

+Types in FMI Import/Core .jl · FMI.jl

Types in FMI Import/Core .jl

FMIBase.FMUInstanceType
FMUInstance

An instance of a FMU. This was called component in FMI2, but was corrected to instance in FMI3.

source
FMIBase.FMUExecutionConfigurationType

A mutable struct representing the excution configuration of a FMU. For FMUs that have issues with calls like fmi2Reset or fmi2FreeInstance, this is pretty useful.

source
FMIBase.FMUInputFunctionType
FMUInputFunction(inputFunction, vrs)

Struct container for inplace input functions for FMUs.

Arguments

  • inputFunction: The input function (inplace) that gets called when new inputs are needed, must match one of the patterns described under Input function patterns.
  • vrs::AbstractVector: A vector of value refernces to be set by the input function

Input function patterns

Available input patterns are [c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:

  • inputFunction(t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})
  • inputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})
source

Constants in FMI Import/Core .jl

diff --git a/dev/fmi_lowlevel_library_functions/index.html b/dev/fmi_lowlevel_library_functions/index.html index d2a21ecd..5e4f199e 100644 --- a/dev/fmi_lowlevel_library_functions/index.html +++ b/dev/fmi_lowlevel_library_functions/index.html @@ -1,5 +1,5 @@ -Functions in FMI Import/Core .jl · FMI.jl

Functions in FMI Import/Core .jl

loadBinary eval!

Conversion functions

FMIBase.statusToStringFunction
statusToString(::struct, status::Union{fmi2Status, Integer})

Converts fmi2Status status into a String ("OK", "Warning", "Discard", "Error", "Fatal", "Pending").

source
FMIBase.valueReferenceToStringFunction
valueReferenceToString(obj, reference)

where:

obj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3) reference ∈ (fmi2ValueReference, fmi3ValueReference, Integer

Returns the string identifier for a give value reference.

source
FMIBase.stringToDataTypeFunction
stringToDataType(modelDescription, typename)

Converts a typename to type, for example "Float64" (::String) to fmi3Float64 (::DataType).

source

fmi2StringToInitial

External/Additional functions

FMIBase.getInitialFunction
getInitial(mv::fmi2ScalarVariable)

Returns the inital entry of the corresponding model variable.

Arguments

  • fmi2GetStartValue(mv::fmi2ScalarVariable): The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.

Returns

  • mv.Real.unit: Returns the inital entry of the corresponding ScalarVariable representing a variable of the primitive type Real. Otherwise nothing is returned.

Source

source
FMIBase.getStartValueFunction
getStartValue(md::fmi2ModelDescription, vrs::fmi2ValueReferenceFormat = md.valueReferences)

Returns the start/default value for a given value reference.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.
  • vrs::fmi2ValueReferenceFormat = md.valueReferences: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • starts::Array{fmi2ValueReferenceFormat}: start/default value for a given value reference

Source

source
FMIBase.modelVariablesForValueReferenceFunction
modelVariablesForValueReference(obj, vr)

where:

obj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3) vr ∈ (fmi2ValueReference, fmi3ValueReference)

Returns the model variable(s) matching the value reference.

source
FMIBase.setValueFunction
setValue(component,
+Functions in FMI Import/Core .jl · FMI.jl

Functions in FMI Import/Core .jl

loadBinary eval!

Conversion functions

FMIBase.statusToStringFunction
statusToString(::struct, status::Union{fmi2Status, Integer})

Converts fmi2Status status into a String ("OK", "Warning", "Discard", "Error", "Fatal", "Pending").

source
FMIBase.valueReferenceToStringFunction
valueReferenceToString(obj, reference)

where:

obj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3) reference ∈ (fmi2ValueReference, fmi3ValueReference, Integer

Returns the string identifier for a give value reference.

source
FMIBase.stringToDataTypeFunction
stringToDataType(modelDescription, typename)

Converts a typename to type, for example "Float64" (::String) to fmi3Float64 (::DataType).

source

fmi2StringToInitial

External/Additional functions

FMIBase.getInitialFunction
getInitial(mv::fmi2ScalarVariable)

Returns the inital entry of the corresponding model variable.

Arguments

  • fmi2GetStartValue(mv::fmi2ScalarVariable): The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.

Returns

  • mv.Real.unit: Returns the inital entry of the corresponding ScalarVariable representing a variable of the primitive type Real. Otherwise nothing is returned.

Source

source
FMIBase.getStartValueFunction
getStartValue(md::fmi2ModelDescription, vrs::fmi2ValueReferenceFormat = md.valueReferences)

Returns the start/default value for a given value reference.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.
  • vrs::fmi2ValueReferenceFormat = md.valueReferences: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • starts::Array{fmi2ValueReferenceFormat}: start/default value for a given value reference

Source

source
FMIBase.modelVariablesForValueReferenceFunction
modelVariablesForValueReference(obj, vr)

where:

obj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3) vr ∈ (fmi2ValueReference, fmi3ValueReference)

Returns the model variable(s) matching the value reference.

source
FMIBase.setValueFunction
setValue(component,
             vrs::fmi2ValueReferenceFormat,
             srcArray::AbstractArray;
-            filter=nothing)

Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference and returns an array that indicates the Status.

Arguments

  • comp::FMUInstance (FMU2Component or FMU3Instance): Mutable struct represents an instantiated instance of an FMU in the FMI 2 or 3.
  • vrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference
  • srcArray::AbstractArray: Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference to the input variable vr (vr = vrs[i]). srcArray has the same length as vrs.

Keywords

  • filter=nothing: It is applied to each ModelVariable to determine if it should be updated.

Returns

  • retcodes::Array{fmi2Status}: Returns an array of length length(vrs) with Type fmi2Status. Type fmi2Status is an enumeration and indicates the success of the function call.
source
FMIBase.getValueFunction
getValue(comp::FMU2Component, vrs::fmi2ValueReferenceFormat)

Returns the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference in an array.

Arguments

  • comp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • dstArray::Array{Any,1}(undef, length(vrs)): Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference to the input variable vr (vr = vrs[i]). dstArray is a 1-Dimensional Array that has the same length as vrs.
source
getValue(solution::FMUSolution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)

Returns the Solution values.

Arguments

  • solution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.
  • vr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • isIndex::Bool=false: Argument isIndex exists to check if vr ist the specific solution element ("index") that equals the given fmi2ValueReferenceFormat

Return

  • If he length of the given references equals 1, each element u in the collection solution.values.saveval is selecting the element at the index represented by indices[1] and returns it.

Thus, the collect() function is taking the generator expression and returning an array of the selected elements.

  • If more than one reference is given, the same process takes place as before. The difference is that now more than one index is accessed.

Source

source
FMIBase.getValue!Function
getValue!(comp::FMU2Component, vrs::fmi2ValueReferenceFormat, dst::AbstractArray)

Retrieves values for the refernces vrs and stores them in dst

Arguments

  • comp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference
  • dst::AbstractArray: The array of destinations, must match the data types of the value references.

Returns

  • retcodes::Array{fmi2Status}: Returns an array of length length(vrs) with Type fmi2Status. Type fmi2Status is an enumeration and indicates the success of the function call.
source
FMIBase.getUnitFunction
getUnit(mv::fmi2ScalarVariable)

Returns the unit entry (a string) of the corresponding model variable.

Arguments

  • fmi2GetStartValue(mv::fmi2ScalarVariable): The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.

Returns

  • mv.Real.unit: Returns the unit entry of the corresponding ScalarVariable representing a variable of the primitive type Real. Otherwise nothing is returned.

Source

source

fmi2GetSolutionDerivative fmi2GetSolutionState fmi2GetSolutionValue fmi2GetSolutionTime fmi2GetJacobian fmi2GetJacobian! fmi2GetFullJacobian fmi2GetFullJacobian!

+ filter=nothing)

Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference and returns an array that indicates the Status.

Arguments

  • comp::FMUInstance (FMU2Component or FMU3Instance): Mutable struct represents an instantiated instance of an FMU in the FMI 2 or 3.
  • vrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference
  • srcArray::AbstractArray: Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference to the input variable vr (vr = vrs[i]). srcArray has the same length as vrs.

Keywords

  • filter=nothing: It is applied to each ModelVariable to determine if it should be updated.

Returns

  • retcodes::Array{fmi2Status}: Returns an array of length length(vrs) with Type fmi2Status. Type fmi2Status is an enumeration and indicates the success of the function call.
source
FMIBase.getValueFunction
getValue(comp::FMU2Component, vrs::fmi2ValueReferenceFormat)

Returns the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference in an array.

Arguments

  • comp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

Returns

  • dstArray::Array{Any,1}(undef, length(vrs)): Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference to the input variable vr (vr = vrs[i]). dstArray is a 1-Dimensional Array that has the same length as vrs.
source
getValue(solution::FMUSolution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)

Returns the Solution values.

Arguments

  • solution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.
  • vr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • isIndex::Bool=false: Argument isIndex exists to check if vr ist the specific solution element ("index") that equals the given fmi2ValueReferenceFormat

Return

  • If he length of the given references equals 1, each element u in the collection solution.values.saveval is selecting the element at the index represented by indices[1] and returns it.

Thus, the collect() function is taking the generator expression and returning an array of the selected elements.

  • If more than one reference is given, the same process takes place as before. The difference is that now more than one index is accessed.

Source

source
FMIBase.getValue!Function
getValue!(comp::FMU2Component, vrs::fmi2ValueReferenceFormat, dst::AbstractArray)

Retrieves values for the refernces vrs and stores them in dst

Arguments

  • comp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.
  • vrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference
  • dst::AbstractArray: The array of destinations, must match the data types of the value references.

Returns

  • retcodes::Array{fmi2Status}: Returns an array of length length(vrs) with Type fmi2Status. Type fmi2Status is an enumeration and indicates the success of the function call.
source
FMIBase.getUnitFunction
getUnit(mv::fmi2ScalarVariable)

Returns the unit entry (a string) of the corresponding model variable.

Arguments

  • fmi2GetStartValue(mv::fmi2ScalarVariable): The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.

Returns

  • mv.Real.unit: Returns the unit entry of the corresponding ScalarVariable representing a variable of the primitive type Real. Otherwise nothing is returned.

Source

source

fmi2GetSolutionDerivative fmi2GetSolutionState fmi2GetSolutionValue fmi2GetSolutionTime fmi2GetJacobian fmi2GetJacobian! fmi2GetFullJacobian fmi2GetFullJacobian!

diff --git a/dev/fmi_lowlevel_modeldescription_functions/index.html b/dev/fmi_lowlevel_modeldescription_functions/index.html index 9fdaadef..003479a0 100644 --- a/dev/fmi_lowlevel_modeldescription_functions/index.html +++ b/dev/fmi_lowlevel_modeldescription_functions/index.html @@ -1,2 +1,2 @@ -Working with the FMI model description · FMI.jl

Working with the FMI model description

The FMI model description provides all human readable information on the model. The following functions can be used to obtain all information provided by the model description, which in turn can be extracted from the fmu.

Loading/Parsing

fmi2LoadModelDescription

general information about the FMU

FMIImport.getGUIDFunction
getGUID(md::fmi2ModelDescription)

Returns the tag 'guid' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • guid::String: Returns the tag 'guid' from the model description.
source
FMIBase.getGenerationDateAndTimeFunction
getGenerationDateAndTime(md::fmi2ModelDescription)

Returns the tag 'generationdateandtime' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.generationDateAndTime::DateTime: Returns the tag 'generationdateandtime' from the model description.
source
FMIBase.getGenerationToolFunction
getGenerationTool(md::fmi2ModelDescription)

Returns the tag 'generationtool' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.generationTool::Union{String, Nothing}: Returns the tag 'generationtool' from the model description.
source

technical information about the FMU

FMIBase.getNumberOfEventIndicatorsFunction
getNumberOfEventIndicators(md::fmi2ModelDescription)

Returns the tag 'numberOfEventIndicators' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.numberOfEventIndicators::Union{UInt, Nothing}: Returns the tag 'numberOfEventIndicators' from the model description.
source
FMIBase.getModelIdentifierFunction
getModelIdentifier(md::fmiModelDescription; type=nothing)

Returns the tag 'modelIdentifier' from CS or ME section.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • type=nothing: Defines whether a Co-Simulation or Model Exchange is present. (default = nothing)

Returns

  • md.modelExchange.modelIdentifier::String: Returns the tag modelIdentifier from ModelExchange section.
  • md.coSimulation.modelIdentifier::String: Returns the tag modelIdentifier from CoSimulation section.
source
FMIBase.getVariableNamingConventionFunction
getVariableNamingConvention(md::fmi2ModelDescription)

Returns the tag 'varaiblenamingconvention' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.variableNamingConvention::Union{fmi2VariableNamingConvention, Nothing}: Returns the tag 'variableNamingConvention' from the model description.
source

fmi2GetVersion fmi2GetTypesPlatform

default experiment settings

FMIBase.getDefaultStartTimeFunction
getDefaultStartTime(md::fmi2ModelDescription)

Returns startTime from DefaultExperiment if defined else defaults to nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.defaultExperiment.startTime::Union{Real,Nothing}: Returns a real value startTime from the DefaultExperiment if defined else defaults to nothing.
source
FMIBase.getDefaultStepSizeFunction
getDefaultStepSize(md::fmi2ModelDescription)

Returns stepSize from DefaultExperiment if defined else defaults to nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.defaultExperiment.stepSize::Union{Real,Nothing}: Returns a real value setpSize from the DefaultExperiment if defined else defaults to nothing.
source
FMIBase.getDefaultStopTimeFunction
getDefaultStopTime(md::fmi2ModelDescription)

Returns stopTime from DefaultExperiment if defined else defaults to nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.defaultExperiment.stopTime::Union{Real,Nothing}: Returns a real value stopTime from the DefaultExperiment if defined else defaults to nothing.
source
FMIBase.getDefaultToleranceFunction
getDefaultTolerance(md::fmi2ModelDescription)

Returns tolerance from DefaultExperiment if defined else defaults to nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.defaultExperiment.tolerance::Union{Real,Nothing}: Returns a real value tolerance from the DefaultExperiment if defined else defaults to nothing.
source

FMU capabilities

FMIBase.canSerializeFMUStateFunction
canSerializeFMUState(md::fmi2ModelDescription)

Returns true, if the FMU state can be serialized

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU state can be serialized
source
FMIBase.providesDirectionalDerivativesFunction
providesDirectionalDerivative(md::fmi2ModelDescription)

Returns true, if the FMU provides directional derivatives

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU provides directional derivatives
source

canGetSetFMUState fmi2DependenciesSupported fmi2DerivativeDependenciesSupported fmi2ProvidesDirectionalDerivative

value references

FMIBase.getValueReferencesAndNamesFunction
getValueReferencesAndNames(obj; vrs=md.valueReferences)

with:

obj ∈ (fmi2ModelDescription, FMU2)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of value references and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}.
source
FMIBase.getNamesFunction
getNames(md::fmi2ModelDescription; vrs=md.valueReferences, mode=:first)

Returns a array of names corresponding to value references vrs.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to value references vrs
source
FMIBase.dataTypeForValueReferenceFunction
dataTypeForValueReference(obj, vr::fmi2ValueReference)

where:

obj ∈ (fmi2ModelDescription, FMU2)

Returns the fmi2DataType (fmi2Real, fmi2Integer, fmi2Boolean, fmi2String) for a given value reference vr.

source
FMIBase.prepareValueReferenceFunction
prepareValueReference(obj, vrs)

where:

obj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3, FMU2Component, FMU3Instance) vrs ∈ (fmi2ValueReference, AbstractVector{fmi2ValueReference}, fmi3ValueReference, AbstractVector{fmi3ValueReference}, String, AbstractVector{String}, Integer, AbstractVector{Integer}, :states, :derivatives, :inputs, :outputs, :all, :none, Nothing)

Receives one or an array of value references in an arbitrary format (see fmi2ValueReferenceFormat) and converts it into an Array{fmi2ValueReference} (if not already).

source
FMIBase.prepareValueFunction
prepareValue(value)

Prepares a value for a FMI ccall (they only accept arrays). Technically, the value is packed into an array - if not already.

source

In-/Outputs

FMIBase.getInputNamesFunction
getInputNames(md::fmi2ModelDescription; vrs=md.inputvalueReferences, mode=:first)

Returns names of inputs.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.inputvalueReferences: Additional attribute inputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to value references vrs
source
FMIBase.getInputValueReferencesAndNamesFunction
getInputValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dict with (vrs, names of inputs).

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.
  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of inputs)
source
FMIBase.getInputNamesAndStartsFunction
getInputNamesAndStarts(md::fmi2ModelDescription)

Returns a dictionary of input variables with their starting values.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{String, Array{fmi2ValueReferenceFormat}}: Returns a dictionary that constructs a hash table with keys of type String and values of type fmi2ValueReferenceFormat. So returns a dict with ( md.modelVariables[i].name::String, starts:: Array{fmi2ValueReferenceFormat} ). (Creates a tuple (name, starts) for each i in inputIndices)

See also getStartValue.

source
FMIBase.getOutputNamesFunction
fmi2GetOutputNames(md::fmi2ModelDescription; vrs=md.outputvalueReferences, mode=:first)

Returns names of outputs.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.outputvalueReferences: Additional attribute outputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.outputvalueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to value references vrs
source
FMIBase.getOutputValueReferencesAndNamesFunction
getOutputValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of value references and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.outputvalueReferences: Additional attribute outputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.outputvalueReferences::Array{fmi2ValueReference})

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}.So returns a dict with (vrs, names of outputs)
source

Parameters

FMIBase.getParameterValueReferencesAndNamesFunction
getParameterValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of parameterValueReferences and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of parameters).

See also getValueReferencesAndNames.

source
FMIBase.getParameterNamesFunction
fmi2GetParameterNames(md::fmi2ModelDescription; vrs=md.parameterValueReferences, mode=:first)

Returns names of parameters.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.parameterValueReferences: Additional attribute parameterValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.parameterValueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to parameter value references vrs
source

States

FMIBase.getStateNamesFunction
fmi2GetStateNames(fmu::FMU2; vrs=md.stateValueReferences, mode=:first)

Returns names of states.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.stateValueReferences: Additional attribute parameterValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.stateValueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to parameter value references vrs
source
FMIBase.getStateValueReferencesAndNamesFunction
fmi2GetStateValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of state value references and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of states)
source

Derivatives

FMIBase.getDerivateValueReferencesAndNamesFunction
fmi2GetDerivateValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of derivative value references and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of derivatives)

See also getValueReferencesAndNames

source
FMIBase.getDerivativeNamesFunction
fmi2GetDerivativeNames(md::fmi2ModelDescription; vrs=md.derivativeValueReferences, mode=:first)

Returns names of derivatives.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.derivativeValueReferences: Additional attribute derivativeValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.derivativeValueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to parameter value references vrs
source

Variables

FMIBase.getNamesAndInitialsFunction
getNamesAndInitials(md::fmi2ModelDescription)

Returns a dictionary of variables with their initials.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{String, Cuint}: Returns a dictionary that constructs a hash table with keys of type String and values of type Cuint. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i].inital::Union{fmi2Initial, Nothing}). (Creates a tuple (name,initial) for each i in 1:length(md.modelVariables))

See also getInitial.

source
FMIBase.getNamesAndDescriptionsFunction
getNamesAndDescriptions(md::fmi2ModelDescription)

Returns a dictionary of variables with their descriptions.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{String, String}: Returns a dictionary that constructs a hash table with keys of type String and values of type String. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i].description::Union{String, Nothing}). (Creates a tuple (name, description) for each i in 1:length(md.modelVariables))
source
FMIBase.getNamesAndUnitsFunction
getNamesAndUnits(md::fmi2ModelDescription)

Returns a dictionary of variables with their units.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{String, String}: Returns a dictionary that constructs a hash table with keys of type String and values of type String. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i]._Real.unit::Union{String, Nothing}). (Creates a tuple (name, unit) for each i in 1:length(md.modelVariables))

See also getUnit.

source
+Working with the FMI model description · FMI.jl

Working with the FMI model description

The FMI model description provides all human readable information on the model. The following functions can be used to obtain all information provided by the model description, which in turn can be extracted from the fmu.

Loading/Parsing

fmi2LoadModelDescription

general information about the FMU

FMIImport.getGUIDFunction
getGUID(md::fmi2ModelDescription)

Returns the tag 'guid' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • guid::String: Returns the tag 'guid' from the model description.
source
FMIBase.getGenerationDateAndTimeFunction
getGenerationDateAndTime(md::fmi2ModelDescription)

Returns the tag 'generationdateandtime' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.generationDateAndTime::DateTime: Returns the tag 'generationdateandtime' from the model description.
source
FMIBase.getGenerationToolFunction
getGenerationTool(md::fmi2ModelDescription)

Returns the tag 'generationtool' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.generationTool::Union{String, Nothing}: Returns the tag 'generationtool' from the model description.
source

technical information about the FMU

FMIBase.getNumberOfEventIndicatorsFunction
getNumberOfEventIndicators(md::fmi2ModelDescription)

Returns the tag 'numberOfEventIndicators' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.numberOfEventIndicators::Union{UInt, Nothing}: Returns the tag 'numberOfEventIndicators' from the model description.
source
FMIBase.getModelIdentifierFunction
getModelIdentifier(md::fmiModelDescription; type=nothing)

Returns the tag 'modelIdentifier' from CS or ME section.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • type=nothing: Defines whether a Co-Simulation or Model Exchange is present. (default = nothing)

Returns

  • md.modelExchange.modelIdentifier::String: Returns the tag modelIdentifier from ModelExchange section.
  • md.coSimulation.modelIdentifier::String: Returns the tag modelIdentifier from CoSimulation section.
source
FMIBase.getVariableNamingConventionFunction
getVariableNamingConvention(md::fmi2ModelDescription)

Returns the tag 'varaiblenamingconvention' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.variableNamingConvention::Union{fmi2VariableNamingConvention, Nothing}: Returns the tag 'variableNamingConvention' from the model description.
source

fmi2GetVersion fmi2GetTypesPlatform

default experiment settings

FMIBase.getDefaultStartTimeFunction
getDefaultStartTime(md::fmi2ModelDescription)

Returns startTime from DefaultExperiment if defined else defaults to nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.defaultExperiment.startTime::Union{Real,Nothing}: Returns a real value startTime from the DefaultExperiment if defined else defaults to nothing.
source
FMIBase.getDefaultStepSizeFunction
getDefaultStepSize(md::fmi2ModelDescription)

Returns stepSize from DefaultExperiment if defined else defaults to nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.defaultExperiment.stepSize::Union{Real,Nothing}: Returns a real value setpSize from the DefaultExperiment if defined else defaults to nothing.
source
FMIBase.getDefaultStopTimeFunction
getDefaultStopTime(md::fmi2ModelDescription)

Returns stopTime from DefaultExperiment if defined else defaults to nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.defaultExperiment.stopTime::Union{Real,Nothing}: Returns a real value stopTime from the DefaultExperiment if defined else defaults to nothing.
source
FMIBase.getDefaultToleranceFunction
getDefaultTolerance(md::fmi2ModelDescription)

Returns tolerance from DefaultExperiment if defined else defaults to nothing.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • md.defaultExperiment.tolerance::Union{Real,Nothing}: Returns a real value tolerance from the DefaultExperiment if defined else defaults to nothing.
source

FMU capabilities

FMIBase.canSerializeFMUStateFunction
canSerializeFMUState(md::fmi2ModelDescription)

Returns true, if the FMU state can be serialized

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU state can be serialized
source
FMIBase.providesDirectionalDerivativesFunction
providesDirectionalDerivative(md::fmi2ModelDescription)

Returns true, if the FMU provides directional derivatives

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU provides directional derivatives
source

canGetSetFMUState fmi2DependenciesSupported fmi2DerivativeDependenciesSupported fmi2ProvidesDirectionalDerivative

value references

FMIBase.getValueReferencesAndNamesFunction
getValueReferencesAndNames(obj; vrs=md.valueReferences)

with:

obj ∈ (fmi2ModelDescription, FMU2)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of value references and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}.
source
FMIBase.getNamesFunction
getNames(md::fmi2ModelDescription; vrs=md.valueReferences, mode=:first)

Returns a array of names corresponding to value references vrs.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to value references vrs
source
FMIBase.dataTypeForValueReferenceFunction
dataTypeForValueReference(obj, vr::fmi2ValueReference)

where:

obj ∈ (fmi2ModelDescription, FMU2)

Returns the fmi2DataType (fmi2Real, fmi2Integer, fmi2Boolean, fmi2String) for a given value reference vr.

source
FMIBase.prepareValueReferenceFunction
prepareValueReference(obj, vrs)

where:

obj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3, FMU2Component, FMU3Instance) vrs ∈ (fmi2ValueReference, AbstractVector{fmi2ValueReference}, fmi3ValueReference, AbstractVector{fmi3ValueReference}, String, AbstractVector{String}, Integer, AbstractVector{Integer}, :states, :derivatives, :inputs, :outputs, :all, :none, Nothing)

Receives one or an array of value references in an arbitrary format (see fmi2ValueReferenceFormat) and converts it into an Array{fmi2ValueReference} (if not already).

source
FMIBase.prepareValueFunction
prepareValue(value)

Prepares a value for a FMI ccall (they only accept arrays). Technically, the value is packed into an array - if not already.

source

In-/Outputs

FMIBase.getInputNamesFunction
getInputNames(md::fmi2ModelDescription; vrs=md.inputvalueReferences, mode=:first)

Returns names of inputs.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.inputvalueReferences: Additional attribute inputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to value references vrs
source
FMIBase.getInputValueReferencesAndNamesFunction
getInputValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dict with (vrs, names of inputs).

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.
  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of inputs)
source
FMIBase.getInputNamesAndStartsFunction
getInputNamesAndStarts(md::fmi2ModelDescription)

Returns a dictionary of input variables with their starting values.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{String, Array{fmi2ValueReferenceFormat}}: Returns a dictionary that constructs a hash table with keys of type String and values of type fmi2ValueReferenceFormat. So returns a dict with ( md.modelVariables[i].name::String, starts:: Array{fmi2ValueReferenceFormat} ). (Creates a tuple (name, starts) for each i in inputIndices)

See also getStartValue.

source
FMIBase.getOutputNamesFunction
fmi2GetOutputNames(md::fmi2ModelDescription; vrs=md.outputvalueReferences, mode=:first)

Returns names of outputs.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.outputvalueReferences: Additional attribute outputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.outputvalueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to value references vrs
source
FMIBase.getOutputValueReferencesAndNamesFunction
getOutputValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of value references and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.outputvalueReferences: Additional attribute outputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.outputvalueReferences::Array{fmi2ValueReference})

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}.So returns a dict with (vrs, names of outputs)
source

Parameters

FMIBase.getParameterValueReferencesAndNamesFunction
getParameterValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of parameterValueReferences and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of parameters).

See also getValueReferencesAndNames.

source
FMIBase.getParameterNamesFunction
fmi2GetParameterNames(md::fmi2ModelDescription; vrs=md.parameterValueReferences, mode=:first)

Returns names of parameters.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.parameterValueReferences: Additional attribute parameterValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.parameterValueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to parameter value references vrs
source

States

FMIBase.getStateNamesFunction
fmi2GetStateNames(fmu::FMU2; vrs=md.stateValueReferences, mode=:first)

Returns names of states.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.stateValueReferences: Additional attribute parameterValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.stateValueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to parameter value references vrs
source
FMIBase.getStateValueReferencesAndNamesFunction
fmi2GetStateValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of state value references and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of states)
source

Derivatives

FMIBase.getDerivateValueReferencesAndNamesFunction
fmi2GetDerivateValueReferencesAndNames(md::fmi2ModelDescription)

Returns a dictionary Dict(fmi2ValueReference, Array{String}) of derivative value references and their corresponding names.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of derivatives)

See also getValueReferencesAndNames

source
FMIBase.getDerivativeNamesFunction
fmi2GetDerivativeNames(md::fmi2ModelDescription; vrs=md.derivativeValueReferences, mode=:first)

Returns names of derivatives.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Keywords

  • vrs=md.derivativeValueReferences: Additional attribute derivativeValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.derivativeValueReferences::Array{fmi2ValueReference})
  • mode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)

Returns

  • names::Array{String}: Returns a array of names corresponding to parameter value references vrs
source

Variables

FMIBase.getNamesAndInitialsFunction
getNamesAndInitials(md::fmi2ModelDescription)

Returns a dictionary of variables with their initials.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{String, Cuint}: Returns a dictionary that constructs a hash table with keys of type String and values of type Cuint. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i].inital::Union{fmi2Initial, Nothing}). (Creates a tuple (name,initial) for each i in 1:length(md.modelVariables))

See also getInitial.

source
FMIBase.getNamesAndDescriptionsFunction
getNamesAndDescriptions(md::fmi2ModelDescription)

Returns a dictionary of variables with their descriptions.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{String, String}: Returns a dictionary that constructs a hash table with keys of type String and values of type String. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i].description::Union{String, Nothing}). (Creates a tuple (name, description) for each i in 1:length(md.modelVariables))
source
FMIBase.getNamesAndUnitsFunction
getNamesAndUnits(md::fmi2ModelDescription)

Returns a dictionary of variables with their units.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • dict::Dict{String, String}: Returns a dictionary that constructs a hash table with keys of type String and values of type String. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i]._Real.unit::Union{String, Nothing}). (Creates a tuple (name, unit) for each i in 1:length(md.modelVariables))

See also getUnit.

source
diff --git a/dev/index.html b/dev/index.html index 8c375ecc..3b319273 100644 --- a/dev/index.html +++ b/dev/index.html @@ -1,5 +1,5 @@ -Introduction · FMI.jl

FMI.jl Logo

FMI.jl

What is FMI.jl?

FMI.jl is a free-to-use software library for the Julia programming language which integrates the Functional Mock-Up Interface (fmi-standard.org): load or create, parameterize, differentiate, linearize, simulate and plot FMUs seamlessly inside the Julia programming language!

DocumentationBuild Docs Dev Docs
ExamplesExamples (latest)
TestsTest (latest) Test (LTS) Aqua QA
FMI cross checksFMI2 Cross Checks
Package evaluationRun PkgEval
Code coverageCoverage
CollaborationColPrac: Contributor's Guide on Collaborative Practices for Community Packages
FormattingSciML Code Style

Breaking Changes in FMI.jl (starting from v0.14.0 until release of v1.0.0)

If you want to migrate your project from FMI.jl < v1.0.0 to >= v1.0.0, you will face some breaking changes - but they are worth it as you will see! We decided to do multiple smaller breaking changes starting with v0.14.0, instead of one big one. Some of them are already implemented (checked), some are still on the todo (unchecked) but will be implemented before releasing v1.0.0.

  • [x] Many functions, that are not part of the FMI-standard, had the prefix fmi2... or fmi3.... This was corrected. Now, only functions that are defined by the standard itself, like e.g. fmi2Instantiate are allowed to keep the prefix. Other methods, like fmi2ValueReferenceToString, that where added to make this library more comfortable, are now cleaned to be more the Julia way: valueReferenceToString. If your code errors, the corresponding function might have lost it's prefix, so try this first.

  • [x] Wrapper functions where removed, because that is not the Julia way. In most cases, this will not affect your code.

  • [x] FMICore.jl and FMIImport.jl were divided into FMICore.jl, FMIImport.jl and FMIBase.jl. FMICore.jl now holds the pure standard definition (C-types and -functions), while FMIBase.jl holds everything that is needed on top of that in FMIImport.jl as well as in FMIExport.jl.

  • [ ] Updated all library examples.

  • [ ] Updated all library tests for a better code coverage.

  • [ ] We tried to document every function, if you find undocumented user-level functions, please open an issue or PR.

  • [ ] Allocations, type stability and code format where optimized and are monitored by CI now.

  • [ ] Dependencies are reduced a little, to make the libraries more light-weight.

  • [ ] RAM for allocated FMUs, their instances and states, is now auto-released. For maximum performance/safety you can use FMUs in blocks (like file reading/writing).

  • [ ] New low-level interfaces are introduced, that fit the SciML-ecosystem. For example, a FMU can still be simulated with simulate(fmu), but one can also decide to create a prob = FMUProblem(fmu) (like an ODEProblem) and use solve(prob) to obtain a solution. Keywords will be adapted to have a fully consistent interface with the remaining SciML-ecosystem.

  • [x] Optimization for new Julia LTS v1.10, removing code to keep downward compatibility with old LTS v1.6.

🎉 After all listed features are implemented, v1.0.0 will be released! 🎉

How can I use FMI.jl?

1. Open a Julia-REPL, switch to package mode using ], activate your preferred environment.

2. Install FMI.jl:

(@v1) pkg> add FMI

3. If you want to check that everything works correctly, you can run the tests bundled with FMI.jl:

(@v1) pkg> test FMI

4. Have a look inside the examples folder in the examples branch or the examples section of the documentation. All examples are available as Julia-Script (.jl), Jupyter-Notebook (.ipynb) and Markdown (.md).

How can I simulate a FMU and plot values?

using FMI, Plots
+Introduction · FMI.jl

FMI.jl Logo

FMI.jl

What is FMI.jl?

FMI.jl is a free-to-use software library for the Julia programming language which integrates the Functional Mock-Up Interface (fmi-standard.org): load or create, parameterize, differentiate, linearize, simulate and plot FMUs seamlessly inside the Julia programming language!

DocumentationBuild Docs Dev Docs
ExamplesExamples (latest)
TestsTest (latest) Test (LTS) Aqua QA
FMI cross checksFMI2 Cross Checks
Package evaluationRun PkgEval
Code coverageCoverage
CollaborationColPrac: Contributor's Guide on Collaborative Practices for Community Packages
FormattingSciML Code Style

Breaking Changes in FMI.jl (starting from v0.14.0 until release of v1.0.0)

If you want to migrate your project from FMI.jl < v1.0.0 to >= v1.0.0, you will face some breaking changes - but they are worth it as you will see! We decided to do multiple smaller breaking changes starting with v0.14.0, instead of one big one. Some of them are already implemented (checked), some are still on the todo (unchecked) but will be implemented before releasing v1.0.0.

  • [x] Many functions, that are not part of the FMI-standard, had the prefix fmi2... or fmi3.... This was corrected. Now, only functions that are defined by the standard itself, like e.g. fmi2Instantiate are allowed to keep the prefix. Other methods, like fmi2ValueReferenceToString, that where added to make this library more comfortable, are now cleaned to be more the Julia way: valueReferenceToString. If your code errors, the corresponding function might have lost it's prefix, so try this first.

  • [x] Wrapper functions where removed, because that is not the Julia way. In most cases, this will not affect your code.

  • [x] FMICore.jl and FMIImport.jl were divided into FMICore.jl, FMIImport.jl and FMIBase.jl. FMICore.jl now holds the pure standard definition (C-types and -functions), while FMIBase.jl holds everything that is needed on top of that in FMIImport.jl as well as in FMIExport.jl.

  • [ ] Updated all library examples.

  • [ ] Updated all library tests for a better code coverage.

  • [ ] We tried to document every function, if you find undocumented user-level functions, please open an issue or PR.

  • [ ] Allocations, type stability and code format where optimized and are monitored by CI now.

  • [ ] Dependencies are reduced a little, to make the libraries more light-weight.

  • [ ] RAM for allocated FMUs, their instances and states, is now auto-released. For maximum performance/safety you can use FMUs in blocks (like file reading/writing).

  • [ ] New low-level interfaces are introduced, that fit the SciML-ecosystem. For example, a FMU can still be simulated with simulate(fmu), but one can also decide to create a prob = FMUProblem(fmu) (like an ODEProblem) and use solve(prob) to obtain a solution. Keywords will be adapted to have a fully consistent interface with the remaining SciML-ecosystem.

  • [x] Optimization for new Julia LTS v1.10, removing code to keep downward compatibility with old LTS v1.6.

🎉 After all listed features are implemented, v1.0.0 will be released! 🎉

How can I use FMI.jl?

1. Open a Julia-REPL, switch to package mode using ], activate your preferred environment.

2. Install FMI.jl:

(@v1) pkg> add FMI

3. If you want to check that everything works correctly, you can run the tests bundled with FMI.jl:

(@v1) pkg> test FMI

4. Have a look inside the examples folder in the examples branch or the examples section of the documentation. All examples are available as Julia-Script (.jl), Jupyter-Notebook (.ipynb) and Markdown (.md).

How can I simulate a FMU and plot values?

using FMI, Plots
 
 # load and instantiate a FMU
 fmu = loadFMU(pathToFMU) 
@@ -11,4 +11,4 @@
 plot(simData)
 
 # free memory
-unloadFMU(myFMU)

What is currently supported in FMI.jl?

  • importing the full FMI 2.0.3 and FMI 3.0.0 command set, including optional specials like fmi2GetFMUstate, fmi2SetFMUstate and fmi2GetDirectionalDerivatives
  • parameterization, simulation & plotting of CS- and ME-FMUs
  • event-handling for imported discontinuous ME-FMUs
FMI2.0.3FMI3.0SSP1.0
ImportExportImportExportImportExport
CS✔️✔️🚧✔️✔️📅📅📅
ME (continuous)✔️✔️✔️✔️✔️✔️📅📅📅
ME (discontinuous)✔️✔️✔️✔️✔️✔️📅📅📅
SE🚫🚫🚧📅🚫🚫
Explicit solvers✔️✔️✔️✔️✔️✔️📅📅📅
Implicit solvers (autodiff=false)✔️✔️✔️✔️✔️✔️📅📅📅
Implicit solvers (autodiff=true)✔️✔️✔️✔️📅📅📅
get/setFMUstate✔️✔️📅✔️✔️📅🚫🚫
getDirectionalDerivatives✔️✔️📅✔️✔️📅🚫🚫
getAdjointDerivatives🚫🚫✔️✔️📅🚫🚫
FMI Cross Checks✔️✔️📅📅📅🚫🚫
64-bit binaries in FMUs✔️✔️✔️✔️✔️✔️📅🚫🚫
32-bit binaries in FMUs✔️📅📅📅🚫🚫

✔️✔️ supported & CI-tested

✔️ beta supported: implemented, but not CI-tested

🚧 work in progress

📅 planned

🚫 not supported by the corresponding FMI standard (not applicable)

❌ not planned

What FMI.jl-Library to use?

FMI.jl Logo To keep dependencies nice and clean, the original package FMI.jl had been split into new packages:

  • FMI.jl: High level loading, manipulating, saving or building entire FMUs from scratch
  • FMIImport.jl: Importing FMUs into Julia
  • FMIExport.jl: Exporting stand-alone FMUs from Julia Code
  • FMIBase.jl: Common concepts for import and export of FMUs
  • FMICore.jl: C-code wrapper for the FMI-standard
  • FMISensitivity.jl: Static and dynamic sensitivities over FMUs
  • FMIBuild.jl: Compiler/Compilation dependencies for FMIExport.jl
  • FMIFlux.jl: Machine Learning with FMUs
  • FMIZoo.jl: A collection of testing and example FMUs

What Platforms are supported?

FMI.jl is tested (and testing) under Julia Versions 1.6 LTS (64-bit) and latest (64-bit) on Windows latest (64-bit, 32-bit) and Ubuntu latest (64-bit). Mac (64-bit, 32-bit) and Ubuntu (32-bit) should work, but untested. For the best performance, we recommend using Julia >= 1.7, even if we support and test for the official LTS (1.6.7).

How to cite?

Tobias Thummerer, Lars Mikelsons and Josef Kircher. 2021. NeuralFMU: towards structural integration of FMUs into neural networks. Martin Sjölund, Lena Buffoni, Adrian Pop and Lennart Ochel (Ed.). Proceedings of 14th Modelica Conference 2021, Linköping, Sweden, September 20-24, 2021. Linköping University Electronic Press, Linköping (Linköping Electronic Conference Proceedings ; 181), 297-306. DOI: 10.3384/ecp21181297

Tobias Thummerer, Johannes Stoljar and Lars Mikelsons. 2022. NeuralFMU: presenting a workflow for integrating hybrid NeuralODEs into real-world applications. Electronics 11, 19, 3202. DOI: 10.3390/electronics11193202

Tobias Thummerer, Johannes Tintenherr, Lars Mikelsons. 2021 Hybrid modeling of the human cardiovascular system using NeuralFMUs Journal of Physics: Conference Series 2090, 1, 012155. DOI: 10.1088/1742-6596/2090/1/012155

Notes for contributors

Contributors are welcome. Before contributing, please read, understand and follow the Contributor's Guide on Collaborative Practices for Community Packages. During development of new implementations or optimizations on existing code, one will have to make design decisions that influence the library performance and usability. The following prioritization should be the basis for decision-making:

  • #1 Compliance with standard: It is the highest priority to be compliant with the FMI standard (fmi-standard.org). Identifiers described in the standard must be used. Topologies should follow the specification as far as the possibilities of the Julia programming language allows.
  • #2 Performance: Because FMI.jl is a simulation tool, performance is very important. This applies to the efficient use of CPU and GPU, but also the conscientious use of RAM and disc space.
  • #3 Usability: The library should be as usable as possible and feel "the Julia way" (e.g. by using multiple dispatch instead of the "C coding style"), as long as being fully compliant with the FMI standard.
+unloadFMU(myFMU)

What is currently supported in FMI.jl?

  • importing the full FMI 2.0.3 and FMI 3.0.0 command set, including optional specials like fmi2GetFMUstate, fmi2SetFMUstate and fmi2GetDirectionalDerivatives
  • parameterization, simulation & plotting of CS- and ME-FMUs
  • event-handling for imported discontinuous ME-FMUs
FMI2.0.3FMI3.0SSP1.0
ImportExportImportExportImportExport
CS✔️✔️🚧✔️✔️📅📅📅
ME (continuous)✔️✔️✔️✔️✔️✔️📅📅📅
ME (discontinuous)✔️✔️✔️✔️✔️✔️📅📅📅
SE🚫🚫🚧📅🚫🚫
Explicit solvers✔️✔️✔️✔️✔️✔️📅📅📅
Implicit solvers (autodiff=false)✔️✔️✔️✔️✔️✔️📅📅📅
Implicit solvers (autodiff=true)✔️✔️✔️✔️📅📅📅
get/setFMUstate✔️✔️📅✔️✔️📅🚫🚫
getDirectionalDerivatives✔️✔️📅✔️✔️📅🚫🚫
getAdjointDerivatives🚫🚫✔️✔️📅🚫🚫
FMI Cross Checks✔️✔️📅📅📅🚫🚫
64-bit binaries in FMUs✔️✔️✔️✔️✔️✔️📅🚫🚫
32-bit binaries in FMUs✔️📅📅📅🚫🚫

✔️✔️ supported & CI-tested

✔️ beta supported: implemented, but not CI-tested

🚧 work in progress

📅 planned

🚫 not supported by the corresponding FMI standard (not applicable)

❌ not planned

What FMI.jl-Library to use?

FMI.jl Logo To keep dependencies nice and clean, the original package FMI.jl had been split into new packages:

  • FMI.jl: High level loading, manipulating, saving or building entire FMUs from scratch
  • FMIImport.jl: Importing FMUs into Julia
  • FMIExport.jl: Exporting stand-alone FMUs from Julia Code
  • FMIBase.jl: Common concepts for import and export of FMUs
  • FMICore.jl: C-code wrapper for the FMI-standard
  • FMISensitivity.jl: Static and dynamic sensitivities over FMUs
  • FMIBuild.jl: Compiler/Compilation dependencies for FMIExport.jl
  • FMIFlux.jl: Machine Learning with FMUs
  • FMIZoo.jl: A collection of testing and example FMUs

What Platforms are supported?

FMI.jl is tested (and testing) under Julia Versions 1.6 LTS (64-bit) and latest (64-bit) on Windows latest (64-bit, 32-bit) and Ubuntu latest (64-bit). Mac (64-bit, 32-bit) and Ubuntu (32-bit) should work, but untested. For the best performance, we recommend using Julia >= 1.7, even if we support and test for the official LTS (1.6.7).

How to cite?

Tobias Thummerer, Lars Mikelsons and Josef Kircher. 2021. NeuralFMU: towards structural integration of FMUs into neural networks. Martin Sjölund, Lena Buffoni, Adrian Pop and Lennart Ochel (Ed.). Proceedings of 14th Modelica Conference 2021, Linköping, Sweden, September 20-24, 2021. Linköping University Electronic Press, Linköping (Linköping Electronic Conference Proceedings ; 181), 297-306. DOI: 10.3384/ecp21181297

Tobias Thummerer, Johannes Stoljar and Lars Mikelsons. 2022. NeuralFMU: presenting a workflow for integrating hybrid NeuralODEs into real-world applications. Electronics 11, 19, 3202. DOI: 10.3390/electronics11193202

Tobias Thummerer, Johannes Tintenherr, Lars Mikelsons. 2021 Hybrid modeling of the human cardiovascular system using NeuralFMUs Journal of Physics: Conference Series 2090, 1, 012155. DOI: 10.1088/1742-6596/2090/1/012155

Notes for contributors

Contributors are welcome. Before contributing, please read, understand and follow the Contributor's Guide on Collaborative Practices for Community Packages. During development of new implementations or optimizations on existing code, one will have to make design decisions that influence the library performance and usability. The following prioritization should be the basis for decision-making:

  • #1 Compliance with standard: It is the highest priority to be compliant with the FMI standard (fmi-standard.org). Identifiers described in the standard must be used. Topologies should follow the specification as far as the possibilities of the Julia programming language allows.
  • #2 Performance: Because FMI.jl is a simulation tool, performance is very important. This applies to the efficient use of CPU and GPU, but also the conscientious use of RAM and disc space.
  • #3 Usability: The library should be as usable as possible and feel "the Julia way" (e.g. by using multiple dispatch instead of the "C coding style"), as long as being fully compliant with the FMI standard.
diff --git a/dev/index_library/index.html b/dev/index_library/index.html index 3ae9de26..536cf6a5 100644 --- a/dev/index_library/index.html +++ b/dev/index_library/index.html @@ -1,2 +1,2 @@ -API Index · FMI.jl

All library elements of FMI, Import, Export, Core and Build

+API Index · FMI.jl

All library elements of FMI, Import, Export, Core and Build

diff --git a/dev/library/index.html b/dev/library/index.html index 15c14d8e..e0c7b3af 100644 --- a/dev/library/index.html +++ b/dev/library/index.html @@ -1,10 +1,10 @@ -User Level API - FMI.jl · FMI.jl

FMI.jl Library Functions

Many of the functions in this library are based on already defined functions of the FMIImport.jl library.

Simulate FMUs

FMIImport.loadFMUFunction
loadFMU(pathToFMU; unpackPath, cleanup, type)

Loads an FMU, independent of the used FMI-version (the version is checked during unpacking the archive).

Arguments

  • path::String the path pointing on the FMU file.

Keywords

  • unpackPath::Union{String, Nothing}=nothing the optional unpack path, if nothing a temporary directory depending on the OS is picked.
  • cleanup::Bool=true a boolean indicating whether the temporary directory should be cleaned automatically.
  • type::Union{Symbol, Nothing}=nothing the type of FMU (:CS, :ME, :SE), if multiple types are available. If nothing one of the available types is chosen automatically with the priority CS > ME > SE.
source
FMI.simulateFunction
simulate(fmu, instance=nothing, tspan=nothing; kwargs...)
+User Level API - FMI.jl · FMI.jl

FMI.jl Library Functions

Many of the functions in this library are based on already defined functions of the FMIImport.jl library.

Simulate FMUs

FMIImport.loadFMUFunction
loadFMU(pathToFMU; unpackPath, cleanup, type)

Loads an FMU, independent of the used FMI-version (the version is checked during unpacking the archive).

Arguments

  • path::String the path pointing on the FMU file.

Keywords

  • unpackPath::Union{String, Nothing}=nothing the optional unpack path, if nothing a temporary directory depending on the OS is picked.
  • cleanup::Bool=true a boolean indicating whether the temporary directory should be cleaned automatically.
  • type::Union{Symbol, Nothing}=nothing the type of FMU (:CS, :ME, :SE), if multiple types are available. If nothing one of the available types is chosen automatically with the priority CS > ME > SE.
source
FMI.simulateFunction
simulate(fmu, instance=nothing, tspan=nothing; kwargs...)
 simulate(fmu, tspan; kwargs...)
-simulate(instance, tspan; kwargs...)

Starts a simulation of the FMU2 for the instantiated type: CS, ME or SE (this is selected automatically or during loading of the FMU). You can force a specific simulation mode by calling simulateCS, simulateME or simulateSE directly.

Arguments

  • fmu::FMU: The FMU to be simulated.
  • c::Union{FMUInstance, Nothing}=nothing: The instance (FMI3) or component (FMI2) of the FMU, nothing if not available.
  • tspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)

Keyword arguments

  • recordValues::fmi2ValueReferenceFormat = nothing: Array of variables (Strings or variableIdentifiers) to record. Results are returned as DiffEqCallbacks.SavedValues
  • saveat = nothing: Time points to save (interpolated) values at (default = nothing: save at each solver timestep)
  • setup::Bool: call fmi2SetupExperiment, fmi2EnterInitializationMode and fmi2ExitInitializationMode before the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • reset::Bool: call fmi2Reset before each the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • instantiate::Bool: call fmi2Instantiate! simulate on a new created instance (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • freeInstance::Bool: call fmi2FreeInstance at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • terminate::Bool: call fmi2Terminate at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • inputValueReferences::fmi2ValueReferenceFormat = nothing: Input variables (Strings or variableIdentifiers) to set at each simulation step
  • inputFunction = nothing: Function to get values for the input variables at each simulation step.
  • parameters::Union{Dict{<:Any, <:Any}, Nothing} = nothing: Dict of parameter variables (strings or variableIdentifiers) and values (Real, Integer, Boolean, String) to set parameters during initialization
  • showProgress::Bool = true: print simulation progress meter in REPL

Input function pattern

[c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:

  • inputFunction(t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})
  • inputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})

Returns:

See also simulate, simulateME, simulateCS, simulateSE.

source
FMI.simulateCSFunction
simulateCS(fmu, instance=nothing, tspan=nothing; kwargs...)
+simulate(instance, tspan; kwargs...)

Starts a simulation of the FMU2 for the instantiated type: CS, ME or SE (this is selected automatically or during loading of the FMU). You can force a specific simulation mode by calling simulateCS, simulateME or simulateSE directly.

Arguments

  • fmu::FMU: The FMU to be simulated.
  • c::Union{FMUInstance, Nothing}=nothing: The instance (FMI3) or component (FMI2) of the FMU, nothing if not available.
  • tspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)

Keyword arguments

  • recordValues::fmi2ValueReferenceFormat = nothing: Array of variables (Strings or variableIdentifiers) to record. Results are returned as DiffEqCallbacks.SavedValues
  • saveat = nothing: Time points to save (interpolated) values at (default = nothing: save at each solver timestep)
  • setup::Bool: call fmi2SetupExperiment, fmi2EnterInitializationMode and fmi2ExitInitializationMode before the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • reset::Bool: call fmi2Reset before each the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • instantiate::Bool: call fmi2Instantiate! simulate on a new created instance (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • freeInstance::Bool: call fmi2FreeInstance at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • terminate::Bool: call fmi2Terminate at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • inputValueReferences::fmi2ValueReferenceFormat = nothing: Input variables (Strings or variableIdentifiers) to set at each simulation step
  • inputFunction = nothing: Function to get values for the input variables at each simulation step.
  • parameters::Union{Dict{<:Any, <:Any}, Nothing} = nothing: Dict of parameter variables (strings or variableIdentifiers) and values (Real, Integer, Boolean, String) to set parameters during initialization
  • showProgress::Bool = true: print simulation progress meter in REPL

Input function pattern

[c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:

  • inputFunction(t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})
  • inputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})

Returns:

See also simulate, simulateME, simulateCS, simulateSE.

source
FMI.simulateCSFunction
simulateCS(fmu, instance=nothing, tspan=nothing; kwargs...)
 simulateCS(fmu, tspan; kwargs...)
-simulateCS(instance, tspan; kwargs...)

Simulate CS-FMU for the given simulation time interval. State- and Time-Events are handled internally by the FMU.

Arguments

  • fmu::FMU: The FMU to be simulated.
  • c::Union{FMUInstance, Nothing}=nothing: The instance (FMI3) or component (FMI2) of the FMU, nothing if not available.
  • tspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)

Keyword arguments

  • tolerance::Union{Real, Nothing} = nothing: The tolerance for the internal FMU solver.
  • recordValues::fmi2ValueReferenceFormat = nothing: Array of variables (Strings or variableIdentifiers) to record. Results are returned as DiffEqCallbacks.SavedValues
  • saveat = nothing: Time points to save (interpolated) values at (default = nothing: save at each solver timestep)
  • setup::Bool: call fmi2SetupExperiment, fmi2EnterInitializationMode and fmi2ExitInitializationMode before the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • reset::Bool: call fmi2Reset before each the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • instantiate::Bool: call fmi2Instantiate! simulate on a new created instance (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • freeInstance::Bool: call fmi2FreeInstance at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • terminate::Bool: call fmi2Terminate at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • inputValueReferences::fmi2ValueReferenceFormat = nothing: Input variables (Strings or variableIdentifiers) to set at each simulation step
  • inputFunction = nothing: Function to get values for the input variables at each simulation step.
  • parameters::Union{Dict{<:Any, <:Any}, Nothing} = nothing: Dict of parameter variables (strings or variableIdentifiers) and values (Real, Integer, Boolean, String) to set parameters during initialization
  • showProgress::Bool = true: print simulation progress meter in REPL

Input function pattern

[c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:

  • inputFunction(t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})
  • inputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})

Returns:

See also simulate, simulateME, simulateSE.

source
FMI.simulateSEFunction
simulateSE(fmu, instance=nothing, tspan=nothing; kwargs...)
+simulateCS(instance, tspan; kwargs...)

Simulate CS-FMU for the given simulation time interval. State- and Time-Events are handled internally by the FMU.

Arguments

  • fmu::FMU: The FMU to be simulated.
  • c::Union{FMUInstance, Nothing}=nothing: The instance (FMI3) or component (FMI2) of the FMU, nothing if not available.
  • tspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)

Keyword arguments

  • tolerance::Union{Real, Nothing} = nothing: The tolerance for the internal FMU solver.
  • recordValues::fmi2ValueReferenceFormat = nothing: Array of variables (Strings or variableIdentifiers) to record. Results are returned as DiffEqCallbacks.SavedValues
  • saveat = nothing: Time points to save (interpolated) values at (default = nothing: save at each solver timestep)
  • setup::Bool: call fmi2SetupExperiment, fmi2EnterInitializationMode and fmi2ExitInitializationMode before the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • reset::Bool: call fmi2Reset before each the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • instantiate::Bool: call fmi2Instantiate! simulate on a new created instance (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • freeInstance::Bool: call fmi2FreeInstance at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • terminate::Bool: call fmi2Terminate at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • inputValueReferences::fmi2ValueReferenceFormat = nothing: Input variables (Strings or variableIdentifiers) to set at each simulation step
  • inputFunction = nothing: Function to get values for the input variables at each simulation step.
  • parameters::Union{Dict{<:Any, <:Any}, Nothing} = nothing: Dict of parameter variables (strings or variableIdentifiers) and values (Real, Integer, Boolean, String) to set parameters during initialization
  • showProgress::Bool = true: print simulation progress meter in REPL

Input function pattern

[c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:

  • inputFunction(t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})
  • inputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})

Returns:

See also simulate, simulateME, simulateSE.

source
FMI.simulateSEFunction
simulateSE(fmu, instance=nothing, tspan=nothing; kwargs...)
 simulateSE(fmu, tspan; kwargs...)
-simulateSE(instance, tspan; kwargs...)

To be implemented ...

Arguments

  • fmu::FMU3: The FMU to be simulated. Note: SE is only available in FMI3.
  • c::Union{FMU3Instance, Nothing}=nothing: The instance (FMI3) of the FMU, nothing if not available.
  • tspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)

Keyword arguments

  • To be implemented ...

Returns:

See also simulate, simulateME, simulateCS.

source
FMI.simulateMEFunction
simulateME(fmu, instance=nothing, tspan=nothing; kwargs...)
+simulateSE(instance, tspan; kwargs...)

To be implemented ...

Arguments

  • fmu::FMU3: The FMU to be simulated. Note: SE is only available in FMI3.
  • c::Union{FMU3Instance, Nothing}=nothing: The instance (FMI3) of the FMU, nothing if not available.
  • tspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)

Keyword arguments

  • To be implemented ...

Returns:

See also simulate, simulateME, simulateCS.

source
FMI.simulateMEFunction
simulateME(fmu, instance=nothing, tspan=nothing; kwargs...)
 simulateME(fmu, tspan; kwargs...)
-simulateME(instance, tspan; kwargs...)

Simulate ME-FMU for the given simulation time interval. State- and Time-Events are handled correctly.

Arguments

  • fmu::FMU: The FMU to be simulated.
  • c::Union{FMUInstance, Nothing}=nothing: The instance (FMI3) or component (FMI2) of the FMU, nothing if not available.
  • tspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)

Keyword arguments

  • solver = nothing: Any Julia-supported ODE-solver (default = nothing: use DifferentialEquations.jl default solver)
  • recordValues::fmi2ValueReferenceFormat = nothing: Array of variables (Strings or variableIdentifiers) to record. Results are returned as DiffEqCallbacks.SavedValues
  • recordEventIndicators::Union{AbstractArray{<:Integer, 1}, UnitRange{<:Integer}, Nothing} = nothing: Array or Range of event indicators to record
  • recordEigenvalues::Bool=false: compute and record eigenvalues
  • saveat = nothing: Time points to save (interpolated) values at (default = nothing: save at each solver timestep)
  • x0::Union{AbstractArray{<:Real}, Nothing} = nothing: initial fmu State (default = nothing: use current or default-initial fmu state)
  • setup::Bool: call fmi2SetupExperiment, fmi2EnterInitializationMode and fmi2ExitInitializationMode before the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • reset::Bool: call fmi2Reset before each the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • instantiate::Bool: call fmi2Instantiate! simulate on a new created instance (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • freeInstance::Bool: call fmi2FreeInstance at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • terminate::Bool: call fmi2Terminate at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • inputValueReferences::fmi2ValueReferenceFormat = nothing: Input variables (Strings or variableIdentifiers) to set at each simulation step
  • inputFunction = nothing: Function to get values for the input variables at each simulation step.
  • parameters::Union{Dict{<:Any, <:Any}, Nothing} = nothing: Dict of parameter variables (strings or variableIdentifiers) and values (Real, Integer, Boolean, String) to set parameters during initialization
  • callbacksBefore = []: callbacks to call before the internal callbacks for state- and time-events are called
  • callbacksAfter = []: callbacks to call after the internal callbacks for state- and time-events are called
  • showProgress::Bool = true: print simulation progress meter in REPL
  • solveKwargs...: keyword arguments that get passed onto the solvers solve call

Input function pattern

[c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:

  • inputFunction(t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})
  • inputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})

Returns:

See also simulate, simulateCS, simulateSE.

source
FMIImport.unloadFMUFunction
unloadFMU(fmu::FMU2, cleanUp::Bool=true; secure_pointers::Bool=true)

Unload a FMU. Free the allocated memory, close the binaries and remove temporary zip and unziped FMU model description.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • cleanUp::Bool= true: Defines if the file and directory should be deleted.

Keywords

  • secure_pointers=true whether pointers to C-functions should be overwritten with dummies with Julia assertions, instead of pointing to dead memory (slower, but more user safe)
source
FMIImport.reloadFunction
reload(fmu::FMU2)

Reloads the FMU-binary. This is useful, if the FMU does not support a clean reset implementation.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
source

Handling Value References

FMIBase.stringToValueReferenceFunction
stringToValueReference(obj, names)

Finds the value reference for a given name.

Arguments

  • obj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3) the FMI object
  • names ∈ (String, AbstractVector{String}) the value refernce name or multiple names

Return

Returns a single or an array of fmi2ValueReferences (FMI2) or fmi3ValueReferences (FMI3) corresponding to the variable name(s).

source

External/additional functions

FMIBase.getModelNameFunction
getModelName(md::fmi2ModelDescription)

Returns the tag 'modelName' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • modelName::String: Returns the tag 'modelName' from the model description.
source
FMIBase.getNumberOfStatesFunction
getNumberOfStates(md::fmi2ModelDescription)

Returns the number of states of the FMU.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • Returns the number of states of the FMU.
source
FMIBase.isModelExchangeFunction
isModelExchange(md::fmi2ModelDescription)

Returns true, if the FMU supports model exchange

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU supports model exchange
source
FMIBase.isCoSimulationFunction
isCoSimulation(md::fmi2ModelDescription)

Returns true, if the FMU supports co simulation

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU supports co simulation
source
FMIBase.getStateFunction
getState(solution::FMUSolution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)

Returns the solution state.

Arguments

  • solution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.
  • vr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • isIndex::Bool=false: Argument isIndex exists to check if vr ist the specific solution element ("index") that equals the given fmi2ValueReferenceFormat

Return

  • If he length of the given references equals 1, each element u in the collection solution.states.u, it is selecting the element at the index represented by indices[1] and returns it.

Thus, the collect() function is taking the generator expression and returning an array of the selected elements.

  • If more than one reference is given, the same process takes place as before. The difference is that now more than one index is accessed.

Source

source
FMIBase.getTimeFunction
getTime(solution::FMUSolution)

Returns the Solution time.

Arguments

  • solution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.

Return

  • solution.states.t::tType: solution.state is a struct ODESolution with attribute t. t is the time points corresponding to the saved values of the ODE solution.
  • solution.values.t::tType: solution.value is a struct ODESolution with attribute t.t the time points corresponding to the saved values of the ODE solution.
  • If no solution time is found nothing is returned.

#Source

source
FMIBase.getStateDerivativeFunction
getStateDerivative(solution::FMUSolution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)

Returns the solution state derivative.

Arguments

  • solution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.
  • vr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • isIndex::Bool=false: Argument isIndex exists to check if vr ist the specific solution element ("index") that equals the given fmi2ValueReferenceFormat

Return

  • If the length of the given references equals 1, each element myt in the collection solution.states.t is selecting the derivative of the solution states represented by indices[1] in respect to time, at time myt and returns its it.

Thus, the collect() function is taking the generator expression and returning an array of the selected derivatives.

  • If more than one reference is given, the same process takes place as before. The difference is that now more than one index is accessed.

Source

source

fmiSet fmiGet fmiGet! fmiCanGetSetState fmiSetState fmiFreeState! fmiGetDependencies fmiProvidesDirectionalDerivative

Visualize simulation results

fmiPlot fmiPlot! Plots.plot

Save/load simulation results

fmiSaveSolution fmiSaveSolutionJLD2 fmiSaveSolutionMAT fmiSaveSolutionCSV fmiLoadSolution fmiLoadSolutionJLD2

FMI2 specific

fmi2Info fmi2Simulate fmi2VariableDependsOnVariable fmi2GetDependencies fmi2PrintDependencies

FMI3 specific

fmi3Info fmi3Simulate fmi3VariableDependsOnVariable fmi3GetDependencies fmi3PrintDependencies

+simulateME(instance, tspan; kwargs...)

Simulate ME-FMU for the given simulation time interval. State- and Time-Events are handled correctly.

Arguments

  • fmu::FMU: The FMU to be simulated.
  • c::Union{FMUInstance, Nothing}=nothing: The instance (FMI3) or component (FMI2) of the FMU, nothing if not available.
  • tspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)

Keyword arguments

  • solver = nothing: Any Julia-supported ODE-solver (default = nothing: use DifferentialEquations.jl default solver)
  • recordValues::fmi2ValueReferenceFormat = nothing: Array of variables (Strings or variableIdentifiers) to record. Results are returned as DiffEqCallbacks.SavedValues
  • recordEventIndicators::Union{AbstractArray{<:Integer, 1}, UnitRange{<:Integer}, Nothing} = nothing: Array or Range of event indicators to record
  • recordEigenvalues::Bool=false: compute and record eigenvalues
  • saveat = nothing: Time points to save (interpolated) values at (default = nothing: save at each solver timestep)
  • x0::Union{AbstractArray{<:Real}, Nothing} = nothing: initial fmu State (default = nothing: use current or default-initial fmu state)
  • setup::Bool: call fmi2SetupExperiment, fmi2EnterInitializationMode and fmi2ExitInitializationMode before the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • reset::Bool: call fmi2Reset before each the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • instantiate::Bool: call fmi2Instantiate! simulate on a new created instance (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • freeInstance::Bool: call fmi2FreeInstance at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • terminate::Bool: call fmi2Terminate at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)
  • inputValueReferences::fmi2ValueReferenceFormat = nothing: Input variables (Strings or variableIdentifiers) to set at each simulation step
  • inputFunction = nothing: Function to get values for the input variables at each simulation step.
  • parameters::Union{Dict{<:Any, <:Any}, Nothing} = nothing: Dict of parameter variables (strings or variableIdentifiers) and values (Real, Integer, Boolean, String) to set parameters during initialization
  • callbacksBefore = []: callbacks to call before the internal callbacks for state- and time-events are called
  • callbacksAfter = []: callbacks to call after the internal callbacks for state- and time-events are called
  • showProgress::Bool = true: print simulation progress meter in REPL
  • solveKwargs...: keyword arguments that get passed onto the solvers solve call

Input function pattern

[c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:

  • inputFunction(t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})
  • inputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})
  • inputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})

Returns:

See also simulate, simulateCS, simulateSE.

source
FMIImport.unloadFMUFunction
unloadFMU(fmu::FMU2, cleanUp::Bool=true; secure_pointers::Bool=true)

Unload a FMU. Free the allocated memory, close the binaries and remove temporary zip and unziped FMU model description.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
  • cleanUp::Bool= true: Defines if the file and directory should be deleted.

Keywords

  • secure_pointers=true whether pointers to C-functions should be overwritten with dummies with Julia assertions, instead of pointing to dead memory (slower, but more user safe)
source
FMIImport.reloadFunction
reload(fmu::FMU2)

Reloads the FMU-binary. This is useful, if the FMU does not support a clean reset implementation.

Arguments

  • fmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.
source

Handling Value References

FMIBase.stringToValueReferenceFunction
stringToValueReference(obj, names)

Finds the value reference for a given name.

Arguments

  • obj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3) the FMI object
  • names ∈ (String, AbstractVector{String}) the value refernce name or multiple names

Return

Returns a single or an array of fmi2ValueReferences (FMI2) or fmi3ValueReferences (FMI3) corresponding to the variable name(s).

source

External/additional functions

FMIBase.getModelNameFunction
getModelName(md::fmi2ModelDescription)

Returns the tag 'modelName' from the model description.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • modelName::String: Returns the tag 'modelName' from the model description.
source
FMIBase.getNumberOfStatesFunction
getNumberOfStates(md::fmi2ModelDescription)

Returns the number of states of the FMU.

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • Returns the number of states of the FMU.
source
FMIBase.isModelExchangeFunction
isModelExchange(md::fmi2ModelDescription)

Returns true, if the FMU supports model exchange

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU supports model exchange
source
FMIBase.isCoSimulationFunction
isCoSimulation(md::fmi2ModelDescription)

Returns true, if the FMU supports co simulation

Arguments

  • md::fmi2ModelDescription: Struct which provides the static information of ModelVariables.

Returns

  • ::Bool: Returns true, if the FMU supports co simulation
source
FMIBase.getStateFunction
getState(solution::FMUSolution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)

Returns the solution state.

Arguments

  • solution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.
  • vr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • isIndex::Bool=false: Argument isIndex exists to check if vr ist the specific solution element ("index") that equals the given fmi2ValueReferenceFormat

Return

  • If he length of the given references equals 1, each element u in the collection solution.states.u, it is selecting the element at the index represented by indices[1] and returns it.

Thus, the collect() function is taking the generator expression and returning an array of the selected elements.

  • If more than one reference is given, the same process takes place as before. The difference is that now more than one index is accessed.

Source

source
FMIBase.getTimeFunction
getTime(solution::FMUSolution)

Returns the Solution time.

Arguments

  • solution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.

Return

  • solution.states.t::tType: solution.state is a struct ODESolution with attribute t. t is the time points corresponding to the saved values of the ODE solution.
  • solution.values.t::tType: solution.value is a struct ODESolution with attribute t.t the time points corresponding to the saved values of the ODE solution.
  • If no solution time is found nothing is returned.

#Source

source
FMIBase.getStateDerivativeFunction
getStateDerivative(solution::FMUSolution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)

Returns the solution state derivative.

Arguments

  • solution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.
  • vr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)

More detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}

  • isIndex::Bool=false: Argument isIndex exists to check if vr ist the specific solution element ("index") that equals the given fmi2ValueReferenceFormat

Return

  • If the length of the given references equals 1, each element myt in the collection solution.states.t is selecting the derivative of the solution states represented by indices[1] in respect to time, at time myt and returns its it.

Thus, the collect() function is taking the generator expression and returning an array of the selected derivatives.

  • If more than one reference is given, the same process takes place as before. The difference is that now more than one index is accessed.

Source

source

fmiSet fmiGet fmiGet! fmiCanGetSetState fmiSetState fmiFreeState! fmiGetDependencies fmiProvidesDirectionalDerivative

Visualize simulation results

fmiPlot fmiPlot! Plots.plot

Save/load simulation results

fmiSaveSolution fmiSaveSolutionJLD2 fmiSaveSolutionMAT fmiSaveSolutionCSV fmiLoadSolution fmiLoadSolutionJLD2

FMI2 specific

fmi2Info fmi2Simulate fmi2VariableDependsOnVariable fmi2GetDependencies fmi2PrintDependencies

FMI3 specific

fmi3Info fmi3Simulate fmi3VariableDependsOnVariable fmi3GetDependencies fmi3PrintDependencies

diff --git a/dev/objects.inv b/dev/objects.inv index cdb91584..6c14bdc6 100644 Binary files a/dev/objects.inv and b/dev/objects.inv differ diff --git a/dev/related/index.html b/dev/related/index.html index 91acfcad..2876cffa 100644 --- a/dev/related/index.html +++ b/dev/related/index.html @@ -1,2 +1,2 @@ -Related Publication · FMI.jl

Related Publications

Tobias Thummerer, Josef Kircher, Lars Mikelsons 2021 NeuralFMU: Towards Structural Integration of FMUs into Neural Networks (14th Modelica Conference, Preprint, Accepted) arXiv:2109.04351

Tobias Thummerer, Johannes Tintenherr, Lars Mikelsons 2021 Hybrid modeling of the human cardiovascular system using NeuralFMUs (10th International Conference on Mathematical Modeling in Physical Sciences, Preprint, Accepted) arXiv:2109.04880

+Related Publication · FMI.jl

Related Publications

Tobias Thummerer, Josef Kircher, Lars Mikelsons 2021 NeuralFMU: Towards Structural Integration of FMUs into Neural Networks (14th Modelica Conference, Preprint, Accepted) arXiv:2109.04351

Tobias Thummerer, Johannes Tintenherr, Lars Mikelsons 2021 Hybrid modeling of the human cardiovascular system using NeuralFMUs (10th International Conference on Mathematical Modeling in Physical Sciences, Preprint, Accepted) arXiv:2109.04880

diff --git a/dev/search_index.js b/dev/search_index.js index f79141bc..96e85278 100644 --- a/dev/search_index.js +++ b/dev/search_index.js @@ -1,3 +1,3 @@ var documenterSearchIndex = {"docs": -[{"location":"examples/multiprocessing/#Multiprocessing","page":"Multiprocessing","title":"Multiprocessing","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Tutorial by Jonas Wilfert, Tobias Thummerer","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/multiprocessing/#License","page":"Multiprocessing","title":"License","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar, Jonas Wilfert\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/multiprocessing/#Motivation","page":"Multiprocessing","title":"Motivation","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"This Julia Package FMI.jl is motivated by the use of simulation models in Julia. Here the FMI specification is implemented. FMI (Functional Mock-up Interface) is a free standard (fmi-standard.org) that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. The user can thus use simulation models in the form of an FMU (Functional Mock-up Units). Besides loading the FMU, the user can also set values for parameters and states and simulate the FMU both as co-simulation and model exchange simulation.","category":"page"},{"location":"examples/multiprocessing/#Introduction-to-the-example","page":"Multiprocessing","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"This example shows how to parallelize the computation of an FMU in FMI.jl. We can compute a batch of FMU-evaluations in parallel with different initial settings. Parallelization can be achieved using multithreading or using multiprocessing. This example shows multiprocessing, check multithreading.ipynb for multithreading. Advantage of multithreading is a lower communication overhead as well as lower RAM usage. However in some cases multiprocessing can be faster as the garbage collector is not shared.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"The model used is a one-dimensional spring pendulum with friction. The object-orientated structure of the SpringFrictionPendulum1D can be seen in the following graphic.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"(Image: svg) ","category":"page"},{"location":"examples/multiprocessing/#Target-group","page":"Multiprocessing","title":"Target group","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"The example is primarily intended for users who work in the field of simulations. The example wants to show how simple it is to use FMUs in Julia.","category":"page"},{"location":"examples/multiprocessing/#Other-formats","page":"Multiprocessing","title":"Other formats","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/multiprocessing/#Getting-started","page":"Multiprocessing","title":"Getting started","text":"","category":"section"},{"location":"examples/multiprocessing/#Installation-prerequisites","page":"Multiprocessing","title":"Installation prerequisites","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":" Description Command Alternative\n1. Enter Package Manager via ] \n2. Install FMI via add FMI add \" https://github.com/ThummeTo/FMI.jl \"\n3. Install FMIZoo via add FMIZoo add \" https://github.com/ThummeTo/FMIZoo.jl \"\n4. Install FMICore via add FMICore add \" https://github.com/ThummeTo/FMICore.jl \"\n5. Install BenchmarkTools via add BenchmarkTools ","category":"page"},{"location":"examples/multiprocessing/#Code-section","page":"Multiprocessing","title":"Code section","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Adding your desired amount of processes:","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"using Distributed\nn_procs = 2\naddprocs(n_procs; exeflags=`--project=$(Base.active_project()) --threads=auto`, restrict=false)","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"2-element Vector{Int64}:\n 2\n 3","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"# imports\n@everywhere using FMI\n@everywhere using FMIZoo\n@everywhere using DifferentialEquations\n@everywhere using BenchmarkTools","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00f849c2ce69 is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Checking that we workers have been correctly initialized:","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"workers()\n\n@everywhere println(\"Hello World!\")\n\n# The following lines can be uncommented for more advanced information about the subprocesses\n# @everywhere println(pwd())\n# @everywhere println(Base.active_project())\n# @everywhere println(gethostname())\n# @everywhere println(VERSION)\n# @everywhere println(Threads.nthreads())","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Hello World!\n\n\n From worker 2:\tHello World!","category":"page"},{"location":"examples/multiprocessing/#Simulation-setup","page":"Multiprocessing","title":"Simulation setup","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Next, the batch size and input values are defined.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"\n# Best if batchSize is a multiple of the threads/cores\nbatchSize = 16\n\n# Define an array of arrays randomly\ninput_values = collect(collect.(eachrow(rand(batchSize,2))))","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":" From worker 3:\tHello World!\n\n\n\n\n\n16-element Vector{Vector{Float64}}:\n [0.38805462912056066, 0.07510792586323556]\n [0.8807277170771226, 0.23234237033075067]\n [0.729550029465148, 0.26718619077730743]\n [0.5527796202540214, 0.48150351989895623]\n [0.11845533303718903, 0.22013115810219963]\n [0.9045023979305892, 0.789498914728158]\n [0.6101194236512227, 0.09311783704427434]\n [0.002347399092128555, 0.669429745665108]\n [0.34093546115734696, 0.625870454077811]\n [0.0065065586661340324, 0.45253584745662123]\n [0.27766097097526643, 0.9758541018715101]\n [0.3197413153136759, 0.595442191855064]\n [0.24453281727680343, 0.6693340106504039]\n [0.09500940727989071, 0.007854672663103579]\n [0.16854664007036724, 0.34109872635607064]\n [0.9740613617588455, 0.6529933214970527]","category":"page"},{"location":"examples/multiprocessing/#Shared-Module","page":"Multiprocessing","title":"Shared Module","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"For Distributed we need to embed the FMU into its own module. This prevents Distributed from trying to serialize and send the FMU over the network, as this can cause issues. This module needs to be made available on all processes using @everywhere.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"@everywhere module SharedModule\n using FMIZoo\n using FMI\n\n t_start = 0.0\n t_step = 0.1\n t_stop = 10.0\n tspan = (t_start, t_stop)\n tData = collect(t_start:t_step:t_stop)\n\n model_fmu = loadFMU(\"SpringPendulum1D\", \"Dymola\", \"2022x\"; type=:ME)\nend","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"We define a helper function to calculate the FMU and combine it into an Matrix.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"@everywhere function runCalcFormatted(fmu, x0, recordValues=[\"mass.s\", \"mass.v\"])\n data = simulateME(fmu, SharedModule.tspan; recordValues=recordValues, saveat=SharedModule.tData, x0=x0, showProgress=false, dtmax=1e-4)\n return reduce(hcat, data.states.u)\nend","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Running a single evaluation is pretty quick, therefore the speed can be better tested with BenchmarkTools.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"@benchmark data = runCalcFormatted(SharedModule.model_fmu, rand(2))","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"BenchmarkTools.Trial: 2 samples with 1 evaluation per sample.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m3.152 s\u001b[22m\u001b[39m … \u001b[35m 3.174 s\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.32% … 0.72%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m3.163 s \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.52%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m3.163 s\u001b[22m\u001b[39m ± \u001b[32m15.487 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m0.52% ± 0.28%\n\n \u001b[34m█\u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m█\u001b[39m \u001b[39m \n \u001b[34m█\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[32m▁\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m█\u001b[39m \u001b[39m▁\n 3.15 s\u001b[90m Histogram: frequency by time\u001b[39m 3.17 s \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m300.75 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m7602420\u001b[39m.","category":"page"},{"location":"examples/multiprocessing/#Single-Threaded-Batch-Execution","page":"Multiprocessing","title":"Single Threaded Batch Execution","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"To compute a batch we can collect multiple evaluations. In a single threaded context we can use the same FMU for every call.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"println(\"Single Threaded\")\n@benchmark collect(runCalcFormatted(SharedModule.model_fmu, i) for i in input_values)","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Single Threaded\n\n\n\n\n\nBenchmarkTools.Trial: 1 sample with 1 evaluation per sample.\n Single result which took \u001b[34m50.391 s\u001b[39m (0.38% GC) to evaluate,\n with a memory estimate of \u001b[33m4.70 GiB\u001b[39m, over \u001b[33m121638708\u001b[39m allocations.","category":"page"},{"location":"examples/multiprocessing/#Multithreaded-Batch-Execution","page":"Multiprocessing","title":"Multithreaded Batch Execution","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"In a multithreaded context we have to provide each thread it's own fmu, as they are not thread safe. To spread the execution of a function to multiple processes, the function pmap can be used.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"println(\"Multi Threaded\")\n@benchmark pmap(i -> runCalcFormatted(SharedModule.model_fmu, i), input_values)","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Multi Threaded\n\n\n\n\n\n\n\nBenchmarkTools.Trial: 1 sample with 1 evaluation per sample.\n Single result which took \u001b[34m30.101 s\u001b[39m (0.00% GC) to evaluate,\n with a memory estimate of \u001b[33m99.47 KiB\u001b[39m, over \u001b[33m1597\u001b[39m allocations.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"As you can see, there is a significant speed-up in the median execution time. But: The speed-up is often much smaller than n_procs (or the number of physical cores of your CPU), this has different reasons. For a rule of thumb, the speed-up should be around n/2 on a n-core-processor with n Julia processes.","category":"page"},{"location":"examples/multiprocessing/#Unload-FMU","page":"Multiprocessing","title":"Unload FMU","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"After calculating the data, the FMU is unloaded and all unpacked data on disc is removed.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"@everywhere unloadFMU(SharedModule.model_fmu)","category":"page"},{"location":"examples/multiprocessing/#Summary","page":"Multiprocessing","title":"Summary","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"In this tutorial it is shown how multi processing with Distributed.jl can be used to improve the performance for calculating a Batch of FMUs.","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#Working-with-the-FMI-model-description","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"section"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"The FMI model description provides all human readable information on the model. The following functions can be used to obtain all information provided by the model description, which in turn can be extracted from the fmu.","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#Loading/Parsing","page":"Working with the FMI model description","title":"Loading/Parsing","text":"","category":"section"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2LoadModelDescription","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#general-information-about-the-FMU","page":"Working with the FMI model description","title":"general information about the FMU","text":"","category":"section"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2GetGenerationTool fmi2GetGenerationDateAndTime","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#technical-information-about-the-FMU","page":"Working with the FMI model description","title":"technical information about the FMU","text":"","category":"section"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2GetVersion\nfmi2GetTypesPlatform\n","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#FMICore.fmi2GetVersion","page":"Working with the FMI model description","title":"FMICore.fmi2GetVersion","text":"Source: FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files\n\nReturns the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “2.0”\n\n\n\n\n\nfmi2GetVersion(fmu::FMU2)\n\nReturns the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU.\n\nArguments\n\nfmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\n\nReturns\n\nReturns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “2.0”\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_modeldescription_functions/#FMICore.fmi2GetTypesPlatform","page":"Working with the FMI model description","title":"FMICore.fmi2GetTypesPlatform","text":"Source: FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files\n\nReturns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU. The standard header file, as documented in this specification, has fmi2TypesPlatform set to “default” (so this function usually returns “default”).\n\n\n\n\n\nfmi2GetTypesPlatform(fmu::FMU2)\n\nReturns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU. The standard header file, as documented in this specification, has fmi2TypesPlatform set to “default” (so this function usually returns “default”).\n\nArguments\n\nfmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\n\nReturns\n\nReturns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_modeldescription_functions/#FMU-capabilities","page":"Working with the FMI model description","title":"FMU capabilities","text":"","category":"section"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"canGetSetFMUState\nisModelStructureAvailable\nisModelStructureDerivativesAvailable","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#FMIBase.canGetSetFMUState","page":"Working with the FMI model description","title":"FMIBase.canGetSetFMUState","text":"canGetSetFMUState(md::fmi2ModelDescription)\n\nReturns true, if the FMU supports the getting/setting of states\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\n::Bool: Returns true, if the FMU supports the getting/setting of states.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_modeldescription_functions/#FMIImport.isModelStructureAvailable","page":"Working with the FMI model description","title":"FMIImport.isModelStructureAvailable","text":"isModelStructureAvailable(md::fmi2ModelDescription)\n\nReturns true if the FMU model description contains dependency information.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\n::Bool: Returns true, if the FMU model description contains dependency information.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_modeldescription_functions/#FMIImport.isModelStructureDerivativesAvailable","page":"Working with the FMI model description","title":"FMIImport.isModelStructureDerivativesAvailable","text":"isModelStructureDerivativesAvailable(md::fmi2ModelDescription)\n\nReturns if the FMU model description contains dependency information for derivatives.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\n::Bool: Returns true, if the FMU model description contains dependency information for derivatives.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2DependenciesSupported fmi2DerivativeDependenciesSupported fmi2CanSerializeFMUstate fmi2ProvidesDirectionalDerivative","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#value-references","page":"Working with the FMI model description","title":"value references","text":"","category":"section"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getModelVariableIndices","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#FMIBase.getModelVariableIndices","page":"Working with the FMI model description","title":"FMIBase.getModelVariableIndices","text":"getModelVariableIndices(md::fmi2ModelDescription; vrs=md.valueReferences)\n\nReturns a array of indices corresponding to value references vrs\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})\n\nReturns\n\nnames::Array{Integer}: Returns a array of indices corresponding to value references vrs\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2GetValueReferencesAndNames fmi2GetNames","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#In-/Outputs","page":"Working with the FMI model description","title":"In-/Outputs","text":"","category":"section"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2GetOutputValueReferencesAndNames","category":"page"},{"location":"contents/","page":"Contents","title":"Contents","text":"Depth = 2","category":"page"},{"location":"fmi3_lowlevel_SE_functions/#FMI-for-Scheduled-Execution","page":"FMI for Scheduled Execution","title":"FMI for Scheduled Execution","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/#Working-with-the-FMI-model-description","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"The FMI model description provides all human readable information on the model. The following functions can be used to obtain all information provided by the model description, which in turn can be extracted from the fmu.","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#Loading/Parsing","page":"Working with the FMI model description","title":"Loading/Parsing","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2LoadModelDescription","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#general-information-about-the-FMU","page":"Working with the FMI model description","title":"general information about the FMU","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getGUID\ngetInstantiationToken\ngetGenerationDateAndTime\ngetGenerationTool","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIImport.getGUID","page":"Working with the FMI model description","title":"FMIImport.getGUID","text":"getGUID(md::fmi2ModelDescription)\n\nReturns the tag 'guid' from the model description.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nguid::String: Returns the tag 'guid' from the model description.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getInstantiationToken","page":"Working with the FMI model description","title":"FMIBase.getInstantiationToken","text":"Returns the tag 'instantionToken' from the model description.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getGenerationDateAndTime","page":"Working with the FMI model description","title":"FMIBase.getGenerationDateAndTime","text":"getGenerationDateAndTime(md::fmi2ModelDescription)\n\nReturns the tag 'generationdateandtime' from the model description.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.generationDateAndTime::DateTime: Returns the tag 'generationdateandtime' from the model description.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getGenerationTool","page":"Working with the FMI model description","title":"FMIBase.getGenerationTool","text":"getGenerationTool(md::fmi2ModelDescription)\n\nReturns the tag 'generationtool' from the model description.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.generationTool::Union{String, Nothing}: Returns the tag 'generationtool' from the model description.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#technical-information-about-the-FMU","page":"Working with the FMI model description","title":"technical information about the FMU","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getNumberOfEventIndicators\ngetModelIdentifier\ngetVariableNamingConvention","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getNumberOfEventIndicators","page":"Working with the FMI model description","title":"FMIBase.getNumberOfEventIndicators","text":"getNumberOfEventIndicators(md::fmi2ModelDescription)\n\nReturns the tag 'numberOfEventIndicators' from the model description.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.numberOfEventIndicators::Union{UInt, Nothing}: Returns the tag 'numberOfEventIndicators' from the model description.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getModelIdentifier","page":"Working with the FMI model description","title":"FMIBase.getModelIdentifier","text":"getModelIdentifier(md::fmiModelDescription; type=nothing)\n\nReturns the tag 'modelIdentifier' from CS or ME section.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\ntype=nothing: Defines whether a Co-Simulation or Model Exchange is present. (default = nothing)\n\nReturns\n\nmd.modelExchange.modelIdentifier::String: Returns the tag modelIdentifier from ModelExchange section.\nmd.coSimulation.modelIdentifier::String: Returns the tag modelIdentifier from CoSimulation section.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getVariableNamingConvention","page":"Working with the FMI model description","title":"FMIBase.getVariableNamingConvention","text":"getVariableNamingConvention(md::fmi2ModelDescription)\n\nReturns the tag 'varaiblenamingconvention' from the model description.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.variableNamingConvention::Union{fmi2VariableNamingConvention, Nothing}: Returns the tag 'variableNamingConvention' from the model description.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2GetVersion fmi2GetTypesPlatform","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#default-experiment-settings","page":"Working with the FMI model description","title":"default experiment settings","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getDefaultStartTime\ngetDefaultStepSize\ngetDefaultStopTime\ngetDefaultTolerance","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getDefaultStartTime","page":"Working with the FMI model description","title":"FMIBase.getDefaultStartTime","text":"getDefaultStartTime(md::fmi2ModelDescription)\n\nReturns startTime from DefaultExperiment if defined else defaults to nothing.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.defaultExperiment.startTime::Union{Real,Nothing}: Returns a real value startTime from the DefaultExperiment if defined else defaults to nothing.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getDefaultStepSize","page":"Working with the FMI model description","title":"FMIBase.getDefaultStepSize","text":"getDefaultStepSize(md::fmi2ModelDescription)\n\nReturns stepSize from DefaultExperiment if defined else defaults to nothing.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.defaultExperiment.stepSize::Union{Real,Nothing}: Returns a real value setpSize from the DefaultExperiment if defined else defaults to nothing.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getDefaultStopTime","page":"Working with the FMI model description","title":"FMIBase.getDefaultStopTime","text":"getDefaultStopTime(md::fmi2ModelDescription)\n\nReturns stopTime from DefaultExperiment if defined else defaults to nothing.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.defaultExperiment.stopTime::Union{Real,Nothing}: Returns a real value stopTime from the DefaultExperiment if defined else defaults to nothing.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getDefaultTolerance","page":"Working with the FMI model description","title":"FMIBase.getDefaultTolerance","text":"getDefaultTolerance(md::fmi2ModelDescription)\n\nReturns tolerance from DefaultExperiment if defined else defaults to nothing.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.defaultExperiment.tolerance::Union{Real,Nothing}: Returns a real value tolerance from the DefaultExperiment if defined else defaults to nothing.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMU-capabilities","page":"Working with the FMI model description","title":"FMU capabilities","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"canSerializeFMUState\nprovidesDirectionalDerivatives\nprovidesAdjointDerivatives","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.canSerializeFMUState","page":"Working with the FMI model description","title":"FMIBase.canSerializeFMUState","text":"canSerializeFMUState(md::fmi2ModelDescription)\n\nReturns true, if the FMU state can be serialized\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\n::Bool: Returns true, if the FMU state can be serialized\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.providesDirectionalDerivatives","page":"Working with the FMI model description","title":"FMIBase.providesDirectionalDerivatives","text":"providesDirectionalDerivative(md::fmi2ModelDescription)\n\nReturns true, if the FMU provides directional derivatives\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\n::Bool: Returns true, if the FMU provides directional derivatives\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.providesAdjointDerivatives","page":"Working with the FMI model description","title":"FMIBase.providesAdjointDerivatives","text":"Returns true, if the FMU provides adjoint derivatives\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"canGetSetFMUState fmi2DependenciesSupported fmi2DerivativeDependenciesSupported fmi2ProvidesDirectionalDerivative","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#value-references","page":"Working with the FMI model description","title":"value references","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getValueReferencesAndNames\ngetNames\ndataTypeForValueReference\nprepareValueReference\nprepareValue","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getValueReferencesAndNames","page":"Working with the FMI model description","title":"FMIBase.getValueReferencesAndNames","text":"getValueReferencesAndNames(obj; vrs=md.valueReferences)\n\nwith:\n\nobj ∈ (fmi2ModelDescription, FMU2)\n\nReturns a dictionary Dict(fmi2ValueReference, Array{String}) of value references and their corresponding names.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})\n\nReturns\n\ndict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getNames","page":"Working with the FMI model description","title":"FMIBase.getNames","text":"getNames(md::fmi2ModelDescription; vrs=md.valueReferences, mode=:first)\n\nReturns a array of names corresponding to value references vrs.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})\nmode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)\n\nReturns\n\nnames::Array{String}: Returns a array of names corresponding to value references vrs\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.dataTypeForValueReference","page":"Working with the FMI model description","title":"FMIBase.dataTypeForValueReference","text":"dataTypeForValueReference(obj, vr::fmi2ValueReference)\n\nwhere:\n\nobj ∈ (fmi2ModelDescription, FMU2)\n\nReturns the fmi2DataType (fmi2Real, fmi2Integer, fmi2Boolean, fmi2String) for a given value reference vr.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.prepareValueReference","page":"Working with the FMI model description","title":"FMIBase.prepareValueReference","text":"prepareValueReference(obj, vrs)\n\nwhere: \n\nobj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3, FMU2Component, FMU3Instance) vrs ∈ (fmi2ValueReference, AbstractVector{fmi2ValueReference}, fmi3ValueReference, AbstractVector{fmi3ValueReference}, String, AbstractVector{String}, Integer, AbstractVector{Integer}, :states, :derivatives, :inputs, :outputs, :all, :none, Nothing)\n\nReceives one or an array of value references in an arbitrary format (see fmi2ValueReferenceFormat) and converts it into an Array{fmi2ValueReference} (if not already).\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.prepareValue","page":"Working with the FMI model description","title":"FMIBase.prepareValue","text":"prepareValue(value)\n\nPrepares a value for a FMI ccall (they only accept arrays). Technically, the value is packed into an array - if not already.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#In-/Outputs","page":"Working with the FMI model description","title":"In-/Outputs","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getInputNames\ngetInputValueReferencesAndNames\ngetInputNamesAndStarts\ngetOutputNames\ngetOutputValueReferencesAndNames","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getInputNames","page":"Working with the FMI model description","title":"FMIBase.getInputNames","text":"getInputNames(md::fmi2ModelDescription; vrs=md.inputvalueReferences, mode=:first)\n\nReturns names of inputs.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.inputvalueReferences: Additional attribute inputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})\nmode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)\n\nReturns\n\nnames::Array{String}: Returns a array of names corresponding to value references vrs\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getInputValueReferencesAndNames","page":"Working with the FMI model description","title":"FMIBase.getInputValueReferencesAndNames","text":"getInputValueReferencesAndNames(md::fmi2ModelDescription)\n\nReturns a dict with (vrs, names of inputs).\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\nfmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\n\nReturns\n\ndict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of inputs)\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getInputNamesAndStarts","page":"Working with the FMI model description","title":"FMIBase.getInputNamesAndStarts","text":"getInputNamesAndStarts(md::fmi2ModelDescription)\n\nReturns a dictionary of input variables with their starting values.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\ndict::Dict{String, Array{fmi2ValueReferenceFormat}}: Returns a dictionary that constructs a hash table with keys of type String and values of type fmi2ValueReferenceFormat. So returns a dict with ( md.modelVariables[i].name::String, starts:: Array{fmi2ValueReferenceFormat} ). (Creates a tuple (name, starts) for each i in inputIndices)\n\nSee also getStartValue.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getOutputNames","page":"Working with the FMI model description","title":"FMIBase.getOutputNames","text":"fmi2GetOutputNames(md::fmi2ModelDescription; vrs=md.outputvalueReferences, mode=:first)\n\nReturns names of outputs.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.outputvalueReferences: Additional attribute outputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.outputvalueReferences::Array{fmi2ValueReference})\nmode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)\n\nReturns\n\nnames::Array{String}: Returns a array of names corresponding to value references vrs\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getOutputValueReferencesAndNames","page":"Working with the FMI model description","title":"FMIBase.getOutputValueReferencesAndNames","text":"getOutputValueReferencesAndNames(md::fmi2ModelDescription)\n\nReturns a dictionary Dict(fmi2ValueReference, Array{String}) of value references and their corresponding names.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.outputvalueReferences: Additional attribute outputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.outputvalueReferences::Array{fmi2ValueReference})\n\nReturns\n\ndict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}.So returns a dict with (vrs, names of outputs)\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#Parameters","page":"Working with the FMI model description","title":"Parameters","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getParameterValueReferencesAndNames\ngetParameterNames","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getParameterValueReferencesAndNames","page":"Working with the FMI model description","title":"FMIBase.getParameterValueReferencesAndNames","text":"getParameterValueReferencesAndNames(md::fmi2ModelDescription)\n\nReturns a dictionary Dict(fmi2ValueReference, Array{String}) of parameterValueReferences and their corresponding names.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\ndict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of parameters).\n\nSee also getValueReferencesAndNames.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getParameterNames","page":"Working with the FMI model description","title":"FMIBase.getParameterNames","text":"fmi2GetParameterNames(md::fmi2ModelDescription; vrs=md.parameterValueReferences, mode=:first)\n\nReturns names of parameters.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.parameterValueReferences: Additional attribute parameterValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.parameterValueReferences::Array{fmi2ValueReference})\nmode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)\n\nReturns\n\nnames::Array{String}: Returns a array of names corresponding to parameter value references vrs\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#States","page":"Working with the FMI model description","title":"States","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getStateNames\ngetStateValueReferencesAndNames","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getStateNames","page":"Working with the FMI model description","title":"FMIBase.getStateNames","text":"fmi2GetStateNames(fmu::FMU2; vrs=md.stateValueReferences, mode=:first)\n\nReturns names of states.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.stateValueReferences: Additional attribute parameterValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.stateValueReferences::Array{fmi2ValueReference})\nmode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)\n\nReturns\n\nnames::Array{String}: Returns a array of names corresponding to parameter value references vrs\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getStateValueReferencesAndNames","page":"Working with the FMI model description","title":"FMIBase.getStateValueReferencesAndNames","text":"fmi2GetStateValueReferencesAndNames(md::fmi2ModelDescription)\n\nReturns a dictionary Dict(fmi2ValueReference, Array{String}) of state value references and their corresponding names.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\ndict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of states)\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#Derivatives","page":"Working with the FMI model description","title":"Derivatives","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getDerivateValueReferencesAndNames\ngetDerivativeNames","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getDerivateValueReferencesAndNames","page":"Working with the FMI model description","title":"FMIBase.getDerivateValueReferencesAndNames","text":"fmi2GetDerivateValueReferencesAndNames(md::fmi2ModelDescription)\n\nReturns a dictionary Dict(fmi2ValueReference, Array{String}) of derivative value references and their corresponding names.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\ndict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of derivatives)\n\nSee also getValueReferencesAndNames\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getDerivativeNames","page":"Working with the FMI model description","title":"FMIBase.getDerivativeNames","text":"fmi2GetDerivativeNames(md::fmi2ModelDescription; vrs=md.derivativeValueReferences, mode=:first)\n\nReturns names of derivatives.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.derivativeValueReferences: Additional attribute derivativeValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.derivativeValueReferences::Array{fmi2ValueReference})\nmode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)\n\nReturns\n\nnames::Array{String}: Returns a array of names corresponding to parameter value references vrs\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#Variables","page":"Working with the FMI model description","title":"Variables","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getNamesAndInitials\ngetNamesAndDescriptions\ngetNamesAndUnits","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getNamesAndInitials","page":"Working with the FMI model description","title":"FMIBase.getNamesAndInitials","text":"getNamesAndInitials(md::fmi2ModelDescription)\n\nReturns a dictionary of variables with their initials.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\ndict::Dict{String, Cuint}: Returns a dictionary that constructs a hash table with keys of type String and values of type Cuint. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i].inital::Union{fmi2Initial, Nothing}). (Creates a tuple (name,initial) for each i in 1:length(md.modelVariables))\n\nSee also getInitial.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getNamesAndDescriptions","page":"Working with the FMI model description","title":"FMIBase.getNamesAndDescriptions","text":"getNamesAndDescriptions(md::fmi2ModelDescription)\n\nReturns a dictionary of variables with their descriptions.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\ndict::Dict{String, String}: Returns a dictionary that constructs a hash table with keys of type String and values of type String. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i].description::Union{String, Nothing}). (Creates a tuple (name, description) for each i in 1:length(md.modelVariables))\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getNamesAndUnits","page":"Working with the FMI model description","title":"FMIBase.getNamesAndUnits","text":"getNamesAndUnits(md::fmi2ModelDescription)\n\nReturns a dictionary of variables with their units.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\ndict::Dict{String, String}: Returns a dictionary that constructs a hash table with keys of type String and values of type String. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i]._Real.unit::Union{String, Nothing}). (Creates a tuple (name, unit) for each i in 1:length(md.modelVariables))\n\nSee also getUnit.\n\n\n\n\n\n","category":"function"},{"location":"examples/workshops/","page":"Pluto Workshops","title":"Pluto Workshops","text":"Pluto based notebooks, that can easyly be executed on your own Pluto-Setup.","category":"page"},{"location":"examples/workshops/","page":"Pluto Workshops","title":"Pluto Workshops","text":"","category":"page"},{"location":"fmi_lowlevel_library_constants/#Types-in-FMI-Import/Core-.jl","page":"Types in FMI Import/Core .jl","title":"Types in FMI Import/Core .jl","text":"","category":"section"},{"location":"fmi_lowlevel_library_constants/","page":"Types in FMI Import/Core .jl","title":"Types in FMI Import/Core .jl","text":"FMU\nFMUInstance\nFMUSolution\nFMUEvent\nFMUSnapshot\nFMUExecutionConfiguration\nFMULogLevel\nFMUInputFunction","category":"page"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMU","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMU","text":"FMU\n\nThe abstract type for FMUs (FMI 2 & 3).\n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMUInstance","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMUInstance","text":"FMUInstance\n\nAn instance of a FMU. This was called component in FMI2, but was corrected to instance in FMI3.\n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMUSolution","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMUSolution","text":"The mutable struct representing a specific Solution of a FMI2 FMU.\n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMUEvent","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMUEvent","text":"Container for event related information.\n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMUSnapshot","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMUSnapshot","text":"ToDo \n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMUExecutionConfiguration","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMUExecutionConfiguration","text":"A mutable struct representing the excution configuration of a FMU. For FMUs that have issues with calls like fmi2Reset or fmi2FreeInstance, this is pretty useful.\n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMULogLevel","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMULogLevel","text":"Log levels for non-standard printing of infos, warnings and errors.\n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMUInputFunction","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMUInputFunction","text":"FMUInputFunction(inputFunction, vrs)\n\nStruct container for inplace input functions for FMUs.\n\nArguments\n\ninputFunction: The input function (inplace) that gets called when new inputs are needed, must match one of the patterns described under Input function patterns.\nvrs::AbstractVector: A vector of value refernces to be set by the input function\n\nInput function patterns\n\nAvailable input patterns are [c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:\n\ninputFunction(t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})\ninputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#Constants-in-FMI-Import/Core-.jl","page":"Types in FMI Import/Core .jl","title":"Constants in FMI Import/Core .jl","text":"","category":"section"},{"location":"fmi_lowlevel_library_constants/","page":"Types in FMI Import/Core .jl","title":"Types in FMI Import/Core .jl","text":"","category":"page"},{"location":"fmi2_lowlevel_CS_functions/#FMI-for-Co-Simulation","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"","category":"section"},{"location":"fmi2_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"This chapter defines the Functional Mock-up Interface (FMI) for the coupling of two or more simulation models in a Co-Simulation environment (FMI for Co-Simulation). Co-Simulation is a rather general approach to the simulation of coupled technical systems and coupled physical phenomena in engineering with focus on instationary (time-dependent) problems.","category":"page"},{"location":"fmi2_lowlevel_CS_functions/#Transfer-of-Input-/-Output-Values-and-Parameters","page":"FMI for Co-Simulation","title":"Transfer of Input / Output Values and Parameters","text":"","category":"section"},{"location":"fmi2_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"In order to enable the slave to interpolate the continuous real inputs between communication steps, the derivatives of the inputs with respect to time can be provided. Also, higher derivatives can be set to allow higher order interpolation.","category":"page"},{"location":"fmi2_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"fmi2GetRealOutputDerivatives","category":"page"},{"location":"fmi2_lowlevel_CS_functions/#FMIImport.fmi2GetRealOutputDerivatives","page":"FMI for Co-Simulation","title":"FMIImport.fmi2GetRealOutputDerivatives","text":"fmi2GetRealOutputDerivatives(c::FMU2Component, vr::fmi2ValueReferenceFormat, order::AbstractArray{fmi2Integer})\n\nSets the n-th time derivative of real input variables.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that t define the variables whose derivatives shall be set.\norder::Array{fmi2Integer}: Argument order is an array of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.\n\nReturns\n\nvalue::AbstactArray{fmi2Integer}: Return value is an array which represents a vector with the values of the derivatives.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#Computation","page":"FMI for Co-Simulation","title":"Computation","text":"","category":"section"},{"location":"fmi2_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"The computation of time steps is controlled by the following function.","category":"page"},{"location":"fmi2_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"fmi2DoStep\nfmi2CancelStep","category":"page"},{"location":"fmi2_lowlevel_CS_functions/#FMICore.fmi2DoStep","page":"FMI for Co-Simulation","title":"FMICore.fmi2DoStep","text":"Source: FMISpec2.0.2[p.104]: 4.2.2 Computation\n\nThe computation of a time step is started.\n\n\n\n\n\nfmi2DoStep(c::FMU2Component, \n currentCommunicationPoint::fmi2Real, \n communicationStepSize::fmi2Real, \n noSetFMUStatePriorToCurrentPoint::fmi2Boolean)\n\nThe computation of a time step is started.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ncurrentCommunicationPoint::fmi2Real: Argument currentCommunicationPoint contains a value of type fmi2Real which is a identifier for a variable value . currentCommunicationPoint defines the current communication point of the master.\ncommunicationStepSize::fmi2Real: Argument communicationStepSize contains a value of type fmi2Real which is a identifier for a variable value. communicationStepSize defines the communiction step size.\n\nnoSetFMUStatePriorToCurrentPoint::Bool = true: Argument noSetFMUStatePriorToCurrentPoint contains a value of type Boolean. If no argument is passed the default value true is used. noSetFMUStatePriorToCurrentPoint indicates whether fmi2SetFMUState is no longer called for times before the currentCommunicationPoint in this simulation run Simulation run.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.104]: 4.2.2 Computation\n\nSee also fmi2DoStep.\n\n\n\n\n\nfmi2DoStep(c::FMU2Component, \n communicationStepSize::Union{Real, Nothing} = nothing; \n currentCommunicationPoint::Union{Real, Nothing} = nothing,\n noSetFMUStatePriorToCurrentPoint::Bool = true)\n\nDoes one step in the CoSimulation FMU\n\nArguments\n\nC::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ncommunicationStepSize::Union{Real, Nothing} = nothing: Argument communicationStepSize contains a value of type Real or Nothing , if no argument is passed the default value nothing is used. communicationStepSize defines the communiction step size.\n\nKeywords\n\ncurrentCommunicationPoint::Union{Real, Nothing} = nothing: Argument currentCommunicationPoint contains a value of type Real or type Nothing. If no argument is passed the default value nothing is used. currentCommunicationPoint defines the current communication point of the master.\nnoSetFMUStatePriorToCurrentPoint::Bool = true: Argument noSetFMUStatePriorToCurrentPoint contains a value of type Boolean. If no argument is passed the default value true is used. noSetFMUStatePriorToCurrentPoint indicates whether fmi2SetFMUState is no longer called for times before the currentCommunicationPoint in this simulation run Simulation run.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.104]: 4.2.2 Computation\n\nSee also fmi2DoStep.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#FMICore.fmi2CancelStep","page":"FMI for Co-Simulation","title":"FMICore.fmi2CancelStep","text":"Source: FMISpec2.0.2[p.105]: 4.2.2 Computation\n\nCan be called if fmi2DoStep returned fmi2Pending in order to stop the current asynchronous execution.\n\n\n\n\n\nfmi2CancelStep(c::FMU2Component)\n\nCan be called if fmi2DoStep returned fmi2Pending in order to stop the current asynchronous execution.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.104]: 4.2.2 Computation\n\nSee also fmi2DoStep.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#Retrieving-Status-Information-from-the-Slave","page":"FMI for Co-Simulation","title":"Retrieving Status Information from the Slave","text":"","category":"section"},{"location":"fmi2_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"Status information is retrieved from the slave by the following functions:","category":"page"},{"location":"fmi2_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"fmi2GetStatus\nfmi2GetStatus!\nfmi2GetRealStatus!\nfmi2GetIntegerStatus!\nfmi2GetBooleanStatus!\nfmi2GetStringStatus!","category":"page"},{"location":"fmi2_lowlevel_CS_functions/#FMIImport.fmi2GetStatus","page":"FMI for Co-Simulation","title":"FMIImport.fmi2GetStatus","text":"ToDo\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#FMICore.fmi2GetStatus!","page":"FMI for Co-Simulation","title":"FMICore.fmi2GetStatus!","text":"Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\n\n\n\n\nfmi2GetStatus!(c::FMU2Component, \n s::fmi2StatusKind, \n value::Ref{fmi2Status})\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ns::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.\n\nThe following status information can be retrieved from a slave:\n\nfmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.\nfmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation\nfmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.\nfmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.\nvalue::Ref{fmi2Status}: The value argument points to a status flag that was requested.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nSee also fmi2GetStatus!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#FMICore.fmi2GetRealStatus!","page":"FMI for Co-Simulation","title":"FMICore.fmi2GetRealStatus!","text":"Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\n\n\n\n\nfmi2GetRealStatus!(c::FMU2Component, \n s::fmi2StatusKind, \n value::Ref{fmi2Real})\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ns::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.\n\nThe following status information can be retrieved from a slave:\n\nfmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.\nfmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation\nfmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.\nfmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.\nvalue::Ref{fmi2Real}: Argument value points to the return value (fmi2Real) which was requested. fmi2Real is a alias type for Real data type.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nSee also fmi2GetRealStatus!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#FMICore.fmi2GetIntegerStatus!","page":"FMI for Co-Simulation","title":"FMICore.fmi2GetIntegerStatus!","text":"Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\n\n\n\n\nfmi2GetIntegerStatus!(c::FMU2Component, \n s::fmi2StatusKind, \n value::Ref{fmi2Integer})\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ns::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.\n\nThe following status information can be retrieved from a slave:\n\nfmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.\nfmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation\nfmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.\nfmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.\nvalue::Ref{fmi2Integer}: Argument value points to the return value (fmi2Integer) which was requested. fmi2Integer is a alias type for Integer data type.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nSee also fmi2GetIntegerStatus!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#FMICore.fmi2GetBooleanStatus!","page":"FMI for Co-Simulation","title":"FMICore.fmi2GetBooleanStatus!","text":"Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\n\n\n\n\nfmi2GetBooleanStatus!(c::FMU2Component, \n s::fmi2StatusKind, \n value::Ref{fmi2Boolean})\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ns::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.\n\nThe following status information can be retrieved from a slave:\n\nfmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.\nfmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation\nfmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.\nfmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.\nvalue::Ref{fmi2Boolean}: Argument value points to the return value (fmi2Boolean) which was requested. fmi2Boolean is a alias type for Boolean data type.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nSee also fmi2GetBooleanStatus!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#FMICore.fmi2GetStringStatus!","page":"FMI for Co-Simulation","title":"FMICore.fmi2GetStringStatus!","text":"Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\n\n\n\n\nfmi2GetStringStatus!(c::FMU2Component, \n s::fmi2StatusKind, \n value::Ref{fmi2String})\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ns::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.\n\nThe following status information can be retrieved from a slave:\n\nfmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.\nfmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation\nfmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.\nfmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.\nvalue:Ref{fmi2String}: Argument value points to the return value (fmi2String) which was requested. fmi2String is a alias type for String data type.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nSee also fmi2GetStringStatus!.\n\n\n\n\n\n","category":"function"},{"location":"examples/manipulation/#Manipulate-a-function","page":"Manipulation","title":"Manipulate a function","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"Tutorial by Tobias Thummerer, Johannes Stoljar","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/manipulation/#License","page":"Manipulation","title":"License","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/manipulation/#Introduction-to-the-example","page":"Manipulation","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"This example shows how to overwrite a FMI function with a custom C-function. For this the FMU model is simulated first without changes. Then the function fmi2GetReal() is overwritten and simulated again. Both simulations are displayed in a graph to show the change caused by overwriting the function. The model used is a one-dimensional spring pendulum with friction. The object-orientated structure of the SpringFrictionPendulum1D can be seen in the following graphic.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"(Image: svg) ","category":"page"},{"location":"examples/manipulation/#Other-formats","page":"Manipulation","title":"Other formats","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/manipulation/#Code-section","page":"Manipulation","title":"Code section","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"# imports\nusing FMI\nusing FMI: fmi2SetFctGetReal\nusing FMIZoo\nusing FMICore\nusing Plots\nusing DifferentialEquations # for auto solver detection","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00e3b5ac5669 is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]","category":"page"},{"location":"examples/manipulation/#Simulation-setup","page":"Manipulation","title":"Simulation setup","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"Next, the start time and end time of the simulation are set.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"tStart = 0.0\ntStop = 8.0","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"8.0","category":"page"},{"location":"examples/manipulation/#Import-FMU","page":"Manipulation","title":"Import FMU","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"Next, the FMU model from FMIZoo.jl is loaded.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"# we use an FMU from the FMIZoo.jl\nfmu = loadFMU(\"SpringFrictionPendulum1D\", \"Dymola\", \"2022x\"; type=:ME)","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"Model name:\tSpringFrictionPendulum1D\nType:\t\t0","category":"page"},{"location":"examples/manipulation/#Simulate-FMU","page":"Manipulation","title":"Simulate FMU","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"In the next steps the recorded value is defined. The recorded value is the position of the mass. In the function simulateME() the FMU is simulated in model-exchange mode (ME) with an adaptive step size. In addition, the start and end time and the recorded variables are specified.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"# an array of value references... or just one\nvrs = [\"mass.s\"]\n\nsimData = simulate(fmu, (tStart, tStop); recordValues=vrs)","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"\u001b[34mSimulating ME-FMU ... 0%|█ | ETA: N/A\u001b[39m\n\n\u001b[34mSimulating ME-FMU ... 100%|██████████████████████████████| Time: 0:00:19\u001b[39m\n\n\n\n\n\nModel name:\n\tSpringFrictionPendulum1D\nSuccess:\n\ttrue\nf(x)-Evaluations:\n\tIn-place: 687\n\tOut-of-place: 0\nJacobian-Evaluations:\n\t∂ẋ_∂p: 0\n\t∂ẋ_∂x: 0\n\t∂ẋ_∂u: 0\n\t∂y_∂p: 0\n\t∂y_∂x: 0\n\t∂y_∂u: 0\n\t∂e_∂p: 0\n\t∂e_∂x: 0\n\t∂e_∂u: 0\n\t∂xr_∂xl: 0\nGradient-Evaluations:\n\t∂ẋ_∂t: 0\n\t∂y_∂t: 0\n\t∂e_∂t: 0\nCallback-Evaluations:\n\tCondition (event-indicators): 1451\n\tTime-Choice (event-instances): 0\n\tAffect (event-handling): 6\n\tSave values: 108\n\tSteps completed: 108\nStates [108]:\n\t0.0\t[0.5, 0.0]\n\t2.352941176471972e-11\t[0.5, 1.0e-10]\n\t0.002306805098500577\t[0.50001131604032, 0.009814511243574901]\n\t0.017671223302467173\t[0.500666989145529, 0.07566472355097752]\n\t0.05336453040764681\t[0.5061289098366911, 0.23069249511360376]\n\t0.1184474059074749\t[0.5303427356080991, 0.5120833959919191]\n\t0.1848453912296851\t[0.5734637072149397, 0.782680751659161]\n\t0.2648453912296851\t[0.647777595593929, 1.0656550770578872]\n\t0.3448453912296851\t[0.7421945375653713, 1.282297047636647]\n\t...\n\t8.0\t[1.0668392065867367, -1.0000102440003257e-10]\nValues [108]:\n\t0.0\t(0.5,)\n\t2.352941176471972e-11\t(0.5,)\n\t0.002306805098500577\t(0.50001131604032,)\n\t0.017671223302467173\t(0.500666989145529,)\n\t0.05336453040764681\t(0.5061289098366911,)\n\t0.1184474059074749\t(0.5303427356080991,)\n\t0.1848453912296851\t(0.5734637072149397,)\n\t0.2648453912296851\t(0.647777595593929,)\n\t0.3448453912296851\t(0.7421945375653713,)\n\t...\n\t8.0\t(1.0668392065867367,)\nEvents [6]:\n\tState-Event #11 @ 2.352941176471972e-11s (state-change: false)\n\tState-Event #11 @ 0.9940420391273855s (state-change: false)\n\tState-Event #19 @ 1.9882755413329303s (state-change: false)\n\tState-Event #11 @ 2.983039300931689s (state-change: false)\n\tState-Event #19 @ 3.97882965888157s (state-change: false)\n\tState-Event #11 @ 4.976975955923361s (state-change: false)","category":"page"},{"location":"examples/manipulation/#Plotting-FMU","page":"Manipulation","title":"Plotting FMU","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"After the simulation is finished, the result of the FMU for the model-exchange mode can be plotted. In the plot for the FMU it can be seen that the oscillation continues to decrease due to the effect of the friction. If you simulate long enough, the oscillation comes to a standstill in a certain time.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"fig = plot(simData, states=false)","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"(Image: svg)","category":"page"},{"location":"examples/manipulation/#Override-Function","page":"Manipulation","title":"Override Function","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"After overwriting a function, the previous one is no longer accessible. The original function fmi2GetReal() is cached by storing the address of the pointer. The addresses of the pointers are kept in the FMU and are thus accessible.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"# save, where the original `fmi2GetReal` function was stored, so we can access it in our new function\noriginalGetReal = fmu.cGetReal","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"Ptr{Nothing} @0x000000018008da60","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"To overwrite the function fmi2GetReal!(), the function header of the new custom function must be identical to the previous one. The function header looks like fmi2GetReal!(cfunc::Ptr{Nothing}, c::fmi2Component, vr::Union{Array{fmi2ValueReference}, Ptr{fmi2ValueReference}}, nvr::Csize_t, value::Union{Array{fmi2Real}, Ptr{fmi2Real}})::fmi2Status. The information how the FMI2 function are structured can be seen from FMICore.jl, the api of fmi2GetReal! or the FMI2.0.3-specification.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"In the new implementation the original function is called by the previously stored pointer. Next there is a special handling if value is a pointer to an array. In this case the pointer is treated as an array, so that the entries are accessible. Otherwise, each value in value is multiplied by two. Finally, the original state of the original function is output.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"function myGetReal!(c::fmi2Component, vr::Union{Array{fmi2ValueReference}, Ptr{fmi2ValueReference}}, \n nvr::Csize_t, value::Union{Array{fmi2Real}, Ptr{fmi2Real}})\n # first, we do what the original function does\n status = fmi2GetReal!(originalGetReal, c, vr, nvr, value)\n\n # if we have a pointer to an array, we must interprete it as array to access elements\n if isa(value, Ptr{fmi2Real})\n value = unsafe_wrap(Array{fmi2Real}, value, nvr, own=false)\n end\n\n # now, we multiply every value by two (just for fun!)\n for i in 1:nvr \n value[i] *= 2.0 \n end \n\n # return the original status\n return status\nend","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"myGetReal! (generic function with 1 method)","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"In the next command the original function is overwritten with the new defined function, for which the command fmiSetFctGetReal() is called.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"# no we overwrite the original function\nfmi2SetFctGetReal(fmu, myGetReal!)","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"Ptr{Nothing} @0x0000018801a00fc0","category":"page"},{"location":"examples/manipulation/#Simulate-and-Plot-FMU-with-modified-function","page":"Manipulation","title":"Simulate and Plot FMU with modified function","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"As before, the identical command is called here for simulation. This is also a model exchange simulation. Immediately afterwards, the results are added to the previous graph as a dashed line.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"simData = simulate(fmu, (tStart, tStop); recordValues=vrs)\nplot!(fig, simData; states=false, style=:dash)","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"(Image: svg)","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"As expected by overwriting the function, all values are doubled.","category":"page"},{"location":"examples/manipulation/#Unload-FMU","page":"Manipulation","title":"Unload FMU","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"unloadFMU(fmu)","category":"page"},{"location":"examples/manipulation/#Summary","page":"Manipulation","title":"Summary","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"In this tutorial it is shown how an existing function of the library can be replaced by an own implementation.","category":"page"},{"location":"library/#FMI.jl-Library-Functions","page":"User Level API - FMI.jl","title":"FMI.jl Library Functions","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"Many of the functions in this library are based on already defined functions of the FMIImport.jl library. ","category":"page"},{"location":"library/#Simulate-FMUs","page":"User Level API - FMI.jl","title":"Simulate FMUs","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"loadFMU\nsimulate\nsimulateCS\nsimulateSE\nsimulateME\nunloadFMU\nreload","category":"page"},{"location":"library/#FMIImport.loadFMU","page":"User Level API - FMI.jl","title":"FMIImport.loadFMU","text":"loadFMU(pathToFMU; unpackPath, cleanup, type)\n\nLoads an FMU, independent of the used FMI-version (the version is checked during unpacking the archive).\n\nArguments\n\npath::String the path pointing on the FMU file.\n\nKeywords\n\nunpackPath::Union{String, Nothing}=nothing the optional unpack path, if nothing a temporary directory depending on the OS is picked.\ncleanup::Bool=true a boolean indicating whether the temporary directory should be cleaned automatically.\ntype::Union{Symbol, Nothing}=nothing the type of FMU (:CS, :ME, :SE), if multiple types are available. If nothing one of the available types is chosen automatically with the priority CS > ME > SE.\n\n\n\n\n\n","category":"function"},{"location":"library/#FMI.simulate","page":"User Level API - FMI.jl","title":"FMI.simulate","text":"simulate(fmu, instance=nothing, tspan=nothing; kwargs...)\nsimulate(fmu, tspan; kwargs...)\nsimulate(instance, tspan; kwargs...)\n\nStarts a simulation of the FMU2 for the instantiated type: CS, ME or SE (this is selected automatically or during loading of the FMU). You can force a specific simulation mode by calling simulateCS, simulateME or simulateSE directly.\n\nArguments\n\nfmu::FMU: The FMU to be simulated.\nc::Union{FMUInstance, Nothing}=nothing: The instance (FMI3) or component (FMI2) of the FMU, nothing if not available. \ntspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)\n\nKeyword arguments\n\nrecordValues::fmi2ValueReferenceFormat = nothing: Array of variables (Strings or variableIdentifiers) to record. Results are returned as DiffEqCallbacks.SavedValues\nsaveat = nothing: Time points to save (interpolated) values at (default = nothing: save at each solver timestep)\nsetup::Bool: call fmi2SetupExperiment, fmi2EnterInitializationMode and fmi2ExitInitializationMode before the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\nreset::Bool: call fmi2Reset before each the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\ninstantiate::Bool: call fmi2Instantiate! simulate on a new created instance (default = nothing: use value from fmu's FMUExecutionConfiguration)\nfreeInstance::Bool: call fmi2FreeInstance at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\nterminate::Bool: call fmi2Terminate at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\ninputValueReferences::fmi2ValueReferenceFormat = nothing: Input variables (Strings or variableIdentifiers) to set at each simulation step \ninputFunction = nothing: Function to get values for the input variables at each simulation step. \nparameters::Union{Dict{<:Any, <:Any}, Nothing} = nothing: Dict of parameter variables (strings or variableIdentifiers) and values (Real, Integer, Boolean, String) to set parameters during initialization\nshowProgress::Bool = true: print simulation progress meter in REPL\n\nInput function pattern\n\n[c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:\n\ninputFunction(t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})\ninputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\n\nReturns:\n\nA FMUSolution struct.\n\nSee also simulate, simulateME, simulateCS, simulateSE.\n\n\n\n\n\n","category":"function"},{"location":"library/#FMI.simulateCS","page":"User Level API - FMI.jl","title":"FMI.simulateCS","text":"simulateCS(fmu, instance=nothing, tspan=nothing; kwargs...)\nsimulateCS(fmu, tspan; kwargs...)\nsimulateCS(instance, tspan; kwargs...)\n\nSimulate CS-FMU for the given simulation time interval. State- and Time-Events are handled internally by the FMU.\n\nArguments\n\nfmu::FMU: The FMU to be simulated.\nc::Union{FMUInstance, Nothing}=nothing: The instance (FMI3) or component (FMI2) of the FMU, nothing if not available. \ntspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)\n\nKeyword arguments\n\ntolerance::Union{Real, Nothing} = nothing: The tolerance for the internal FMU solver.\nrecordValues::fmi2ValueReferenceFormat = nothing: Array of variables (Strings or variableIdentifiers) to record. Results are returned as DiffEqCallbacks.SavedValues\nsaveat = nothing: Time points to save (interpolated) values at (default = nothing: save at each solver timestep)\nsetup::Bool: call fmi2SetupExperiment, fmi2EnterInitializationMode and fmi2ExitInitializationMode before the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\nreset::Bool: call fmi2Reset before each the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\ninstantiate::Bool: call fmi2Instantiate! simulate on a new created instance (default = nothing: use value from fmu's FMUExecutionConfiguration)\nfreeInstance::Bool: call fmi2FreeInstance at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\nterminate::Bool: call fmi2Terminate at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\ninputValueReferences::fmi2ValueReferenceFormat = nothing: Input variables (Strings or variableIdentifiers) to set at each simulation step \ninputFunction = nothing: Function to get values for the input variables at each simulation step. \nparameters::Union{Dict{<:Any, <:Any}, Nothing} = nothing: Dict of parameter variables (strings or variableIdentifiers) and values (Real, Integer, Boolean, String) to set parameters during initialization\nshowProgress::Bool = true: print simulation progress meter in REPL\n\nInput function pattern\n\n[c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:\n\ninputFunction(t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})\ninputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\n\nReturns:\n\nA FMUSolution struct.\n\nSee also simulate, simulateME, simulateSE.\n\n\n\n\n\n","category":"function"},{"location":"library/#FMI.simulateSE","page":"User Level API - FMI.jl","title":"FMI.simulateSE","text":"simulateSE(fmu, instance=nothing, tspan=nothing; kwargs...)\nsimulateSE(fmu, tspan; kwargs...)\nsimulateSE(instance, tspan; kwargs...)\n\nTo be implemented ...\n\nArguments\n\nfmu::FMU3: The FMU to be simulated. Note: SE is only available in FMI3.\nc::Union{FMU3Instance, Nothing}=nothing: The instance (FMI3) of the FMU, nothing if not available. \ntspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)\n\nKeyword arguments\n\nTo be implemented ...\n\nReturns:\n\nA FMUSolution struct.\n\nSee also simulate, simulateME, simulateCS.\n\n\n\n\n\n","category":"function"},{"location":"library/#FMI.simulateME","page":"User Level API - FMI.jl","title":"FMI.simulateME","text":"simulateME(fmu, instance=nothing, tspan=nothing; kwargs...)\nsimulateME(fmu, tspan; kwargs...)\nsimulateME(instance, tspan; kwargs...)\n\nSimulate ME-FMU for the given simulation time interval. State- and Time-Events are handled correctly.\n\nArguments\n\nfmu::FMU: The FMU to be simulated.\nc::Union{FMUInstance, Nothing}=nothing: The instance (FMI3) or component (FMI2) of the FMU, nothing if not available. \ntspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)\n\nKeyword arguments\n\nsolver = nothing: Any Julia-supported ODE-solver (default = nothing: use DifferentialEquations.jl default solver)\nrecordValues::fmi2ValueReferenceFormat = nothing: Array of variables (Strings or variableIdentifiers) to record. Results are returned as DiffEqCallbacks.SavedValues\nrecordEventIndicators::Union{AbstractArray{<:Integer, 1}, UnitRange{<:Integer}, Nothing} = nothing: Array or Range of event indicators to record\nrecordEigenvalues::Bool=false: compute and record eigenvalues\nsaveat = nothing: Time points to save (interpolated) values at (default = nothing: save at each solver timestep)\nx0::Union{AbstractArray{<:Real}, Nothing} = nothing: initial fmu State (default = nothing: use current or default-initial fmu state)\nsetup::Bool: call fmi2SetupExperiment, fmi2EnterInitializationMode and fmi2ExitInitializationMode before the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\nreset::Bool: call fmi2Reset before each the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\ninstantiate::Bool: call fmi2Instantiate! simulate on a new created instance (default = nothing: use value from fmu's FMUExecutionConfiguration)\nfreeInstance::Bool: call fmi2FreeInstance at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\nterminate::Bool: call fmi2Terminate at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\ninputValueReferences::fmi2ValueReferenceFormat = nothing: Input variables (Strings or variableIdentifiers) to set at each simulation step \ninputFunction = nothing: Function to get values for the input variables at each simulation step. \nparameters::Union{Dict{<:Any, <:Any}, Nothing} = nothing: Dict of parameter variables (strings or variableIdentifiers) and values (Real, Integer, Boolean, String) to set parameters during initialization\ncallbacksBefore = []: callbacks to call before the internal callbacks for state- and time-events are called\ncallbacksAfter = []: callbacks to call after the internal callbacks for state- and time-events are called\nshowProgress::Bool = true: print simulation progress meter in REPL\nsolveKwargs...: keyword arguments that get passed onto the solvers solve call\n\nInput function pattern\n\n[c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:\n\ninputFunction(t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})\ninputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\n\nReturns:\n\nA FMUSolution struct.\n\nSee also simulate, simulateCS, simulateSE.\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIImport.unloadFMU","page":"User Level API - FMI.jl","title":"FMIImport.unloadFMU","text":"unloadFMU(fmu::FMU2, cleanUp::Bool=true; secure_pointers::Bool=true)\n\nUnload a FMU. Free the allocated memory, close the binaries and remove temporary zip and unziped FMU model description.\n\nArguments\n\nfmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\ncleanUp::Bool= true: Defines if the file and directory should be deleted.\n\nKeywords\n\nsecure_pointers=true whether pointers to C-functions should be overwritten with dummies with Julia assertions, instead of pointing to dead memory (slower, but more user safe)\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIImport.reload","page":"User Level API - FMI.jl","title":"FMIImport.reload","text":"reload(fmu::FMU2)\n\nReloads the FMU-binary. This is useful, if the FMU does not support a clean reset implementation.\n\nArguments\n\nfmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\n\n\n\n\n\n","category":"function"},{"location":"library/#Handling-Value-References","page":"User Level API - FMI.jl","title":"Handling Value References","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"stringToValueReference","category":"page"},{"location":"library/#FMIBase.stringToValueReference","page":"User Level API - FMI.jl","title":"FMIBase.stringToValueReference","text":"stringToValueReference(obj, names)\n\nFinds the value reference for a given name.\n\nArguments\n\nobj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3) the FMI object\nnames ∈ (String, AbstractVector{String}) the value refernce name or multiple names\n\nReturn\n\nReturns a single or an array of fmi2ValueReferences (FMI2) or fmi3ValueReferences (FMI3) corresponding to the variable name(s).\n\n\n\n\n\n","category":"function"},{"location":"library/#External/additional-functions","page":"User Level API - FMI.jl","title":"External/additional functions","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"info\ngetModelName\ngetNumberOfStates\nisModelExchange\nisScheduledExecution\nisCoSimulation\ngetState\ngetTime\ngetStateDerivative","category":"page"},{"location":"library/#FMIImport.info","page":"User Level API - FMI.jl","title":"FMIImport.info","text":" info(fmu)\n\nPrint information about the FMU.\n\nArguments\n\nfmu::FMU: The FMU you are interessted in.\n\nFurther reading\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.getModelName","page":"User Level API - FMI.jl","title":"FMIBase.getModelName","text":"getModelName(md::fmi2ModelDescription)\n\nReturns the tag 'modelName' from the model description.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmodelName::String: Returns the tag 'modelName' from the model description.\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.getNumberOfStates","page":"User Level API - FMI.jl","title":"FMIBase.getNumberOfStates","text":"getNumberOfStates(md::fmi2ModelDescription)\n\nReturns the number of states of the FMU.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nReturns the number of states of the FMU.\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.isModelExchange","page":"User Level API - FMI.jl","title":"FMIBase.isModelExchange","text":"isModelExchange(md::fmi2ModelDescription)\n\nReturns true, if the FMU supports model exchange\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\n::Bool: Returns true, if the FMU supports model exchange\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.isScheduledExecution","page":"User Level API - FMI.jl","title":"FMIBase.isScheduledExecution","text":"Returns true, if the FMU supports scheduled execution\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.isCoSimulation","page":"User Level API - FMI.jl","title":"FMIBase.isCoSimulation","text":"isCoSimulation(md::fmi2ModelDescription)\n\nReturns true, if the FMU supports co simulation\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\n::Bool: Returns true, if the FMU supports co simulation\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.getState","page":"User Level API - FMI.jl","title":"FMIBase.getState","text":"getState(solution::FMUSolution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)\n\nReturns the solution state.\n\nArguments\n\nsolution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.\nvr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nisIndex::Bool=false: Argument isIndex exists to check if vr ist the specific solution element (\"index\") that equals the given fmi2ValueReferenceFormat\n\nReturn\n\nIf he length of the given references equals 1, each element u in the collection solution.states.u, it is selecting the element at the index represented by indices[1] and returns it.\n\nThus, the collect() function is taking the generator expression and returning an array of the selected elements. \n\nIf more than one reference is given, the same process takes place as before. The difference is that now more than one index is accessed.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.getTime","page":"User Level API - FMI.jl","title":"FMIBase.getTime","text":"getTime(solution::FMUSolution)\n\nReturns the Solution time.\n\nArguments\n\nsolution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.\n\nReturn\n\nsolution.states.t::tType: solution.state is a struct ODESolution with attribute t. t is the time points corresponding to the saved values of the ODE solution.\nsolution.values.t::tType: solution.value is a struct ODESolution with attribute t.t the time points corresponding to the saved values of the ODE solution.\nIf no solution time is found nothing is returned.\n\n#Source\n\nusing OrdinaryDiffEq: ODESolution (SciML/SciMLBase.jl)\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.getStateDerivative","page":"User Level API - FMI.jl","title":"FMIBase.getStateDerivative","text":"getStateDerivative(solution::FMUSolution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)\n\nReturns the solution state derivative.\n\nArguments\n\nsolution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.\nvr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nisIndex::Bool=false: Argument isIndex exists to check if vr ist the specific solution element (\"index\") that equals the given fmi2ValueReferenceFormat\n\nReturn\n\nIf the length of the given references equals 1, each element myt in the collection solution.states.t is selecting the derivative of the solution states represented by indices[1] in respect to time, at time myt and returns its it.\n\nThus, the collect() function is taking the generator expression and returning an array of the selected derivatives. \n\nIf more than one reference is given, the same process takes place as before. The difference is that now more than one index is accessed.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\n\n\n\n\n\n","category":"function"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"fmiSet fmiGet fmiGet! fmiCanGetSetState fmiSetState fmiFreeState! fmiGetDependencies fmiProvidesDirectionalDerivative","category":"page"},{"location":"library/#Visualize-simulation-results","page":"User Level API - FMI.jl","title":"Visualize simulation results","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"","category":"page"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"fmiPlot fmiPlot! Plots.plot","category":"page"},{"location":"library/#Save/load-simulation-results","page":"User Level API - FMI.jl","title":"Save/load simulation results","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"","category":"page"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"fmiSaveSolution fmiSaveSolutionJLD2 fmiSaveSolutionMAT fmiSaveSolutionCSV fmiLoadSolution fmiLoadSolutionJLD2","category":"page"},{"location":"library/#FMI2-specific","page":"User Level API - FMI.jl","title":"FMI2 specific","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"","category":"page"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"fmi2Info fmi2Simulate fmi2VariableDependsOnVariable fmi2GetDependencies fmi2PrintDependencies","category":"page"},{"location":"library/#FMI3-specific","page":"User Level API - FMI.jl","title":"FMI3 specific","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"","category":"page"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"fmi3Info fmi3Simulate fmi3VariableDependsOnVariable fmi3GetDependencies fmi3PrintDependencies","category":"page"},{"location":"features/#Features","page":"Features","title":"Features","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"Please note, that this guide focuses also on users, that are not familiar with FMI. The following feature explanations are written in an easy-to-read-fashion, so there might be some points that are scientifically only 95% correct. For further information on FMI and FMUs, see fmi-standard.org. The term fmiX... refers to a value or function that is available along different versions of FMI, for example fmiXValueReference is a wildcard for fmi2ValueReference and fmi3ValueReference.","category":"page"},{"location":"features/#Execution-Configuration","page":"Features","title":"Execution Configuration","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"Not all FMUs support all features they should according to the FMI-standard, so FMI.jl provides a so called execution configuration. This configuration is also respected by FMIFlux.jl. The content of the execution configuration may change in future (together with new or deprecated features of linked libraries), but the most important core features will be kept over time. Because not all users need the full potential of this configuration tool, there are three presets given: ","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"myFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_NO_RESET is the default operation mode for FMUs. FMUs are not reset via fmi2Reset, but new instantiated for every simulation run (or training step). This is not the most efficient way, but many FMUs have problems with resetting.\nmyFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_RESET is faster for well-implemented FMUs, but needs a fully working fmi2Reset-function. So if you know you have a fully working fmi2Reset, you may be faster with that option.\nmyFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_NO_FREEING should only be the very last choice. If your FMU neither supports fmi2Reset nor a proper fmi2FreeInstance, you could use this configuration as a last way out. Keep in mind, that new FMU instances are allocated but not freed, as long as your Julia instance is running (memory leak). In general, the amount of leaked memory is small, but you need to know what you are doing, if you do thousands or ten-thousands of simulation runs with such a FMU.\nmyFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_NOTHING should be used if you want maximum control over what is done and what not. This means you need to take care of instantiating, initialization, setting up and releasing FMU instances by yourself.","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"For a more detailed overview, please see the ?FMUExecutionConfig.","category":"page"},{"location":"features/#Debugging-/-Logging","page":"Features","title":"Debugging / Logging","text":"","category":"section"},{"location":"features/#Logging-FMI-calls","page":"Features","title":"Logging FMI-calls","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"To log all FMI-calls that happen (including \"hidden\" calls e.g. if you are using simulate) you can enable debugging for FMICore.jl using ENV[\"JULIA_DEBUG\"] = \"FMICore\". This will log any fmi2xxx- and fmi3xxx-call, including the given parameters and return value. This can be a lot of calls, so you may want to redirect your REPL output to file.","category":"page"},{"location":"features/#Printing-internal-FMU-messages","page":"Features","title":"Printing internal FMU messages","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"Many FMUs support for printing debugging messages. To force message printing, you can use the keyword loggingOn=true either ...","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"in the call fmiInstantiate, for example fmiInstantiate(myFMU; loggingOn=true) or\nas part of the executionConfig, for example myFMU.executionConfig.loggingOn=true","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"You can further control which message types - like OK, Warning, Discard, Error, Fatal, Pending - should be logged by using the keywords logStatus{TYPE}=true as part of fmiInstantiate or (soon) the execution configuration. By default, all are activated. If your FMU (for FMI2 only, FMI3 changed this) uses a variadic callback function for messages (this is not supported by Julia at this time), you may need to activate external callbacks with the keyword externalCallbacks=true either ...","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"in the call fmiInstantiate!, for example fmiInstantiate!(myFMU; loggingOn=true, externalCallbacks=true) or\nas part of the executionConfig, for example myFMU.executionConfig.loggingOn=true; myFMU.executionConfig.externalCallbacks=true","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"External callbacks are currently only supported on Windows and Linux.","category":"page"},{"location":"features/#Model-variable-identification","page":"Features","title":"Model variable identification","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"FMI.jl offers multiple ways to retrieve your model variables. Any function that accepts a variable identifier can handle the following argument types:","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"UInt32 or fmiXValueReference for example 1610612742 or 0x16000001: This is the most performant way of passing a variable identifier, but you need to know the value reference (you can determine them by having a look in the modelDescription.xml).\nVector{UInt32} or Vector{fmiXValueReference} for example [1610612742, 1610612743] or [0x16000001, 0x16000002]: This is the most performant way of passing multiple variable identifiers, but you need to know the value references.\nString for example \"ball.s\": This is the most intuitive way, because you might already know the variable name from your modelling environment or model documentation.\nVector{String} for example [\"ball.s\", \"der(ball.s)\"]: This is the most intuitive way for multiple variable identifiers, because you might already know the variable names from your modelling environment or model documentation.\nSymbol for example :states: There are multiple symbol-wildcards for interesting variable groups like :all, :none, :states, :derivatives, :inputs and :outputs.\nnothing: If you don't want to record anything (same as :none)","category":"page"},{"location":"features/#Event-handling","page":"Features","title":"Event handling","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"In FMI, there are basically two types of events: state and time. State events are triggered, as soon as one or more event indicators - scalar values that describe the \"distance\" in state space to the next state event - crossing zero. Time events are triggered at known time points during the simulation. If your model has state and/or time events is detected automatically by FMI.jl and the event handling happens automatically in the background.","category":"page"},{"location":"features/#Model-exchange,-co-simulation-and-scheduled-execution","page":"Features","title":"Model exchange, co-simulation and scheduled execution","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"There are two different model types for FMUs in FMI2: Model exchange (ME) and co-simulation (CS). FMI3 further adds the mode scheduled execution (SE). If you have a FMU and are only interested in getting it simulated, use simulate so FMI.jl will automatically pick CS if available and otherwise ME. If you want to force a specific simulation mode, you can use simulateME (for ME), simulateCS (for CS) or simulateSE (for SE).","category":"page"},{"location":"features/#Simulate-arbitrary-time-intervals","page":"Features","title":"Simulate arbitrary time intervals","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"You can simply simulate arbitrary time intervals by passing a startTime unequal zero to fmi2SetupExperiment or [ToDo: corresponding FMI3 function]. Because some FMUs don't support startTime != 0.0 and will throw an error or warning, a time shifting feature inside FMI.jl can be used, that performs all necessary steps in the background - corresponding commands like e.g. fmi2SetTime or fmi2NewDiscreteStates act like the desired time interval is simulated. This feature is disabled by default, but can be activated in the execution configuration using myFMU.executionConfig.autoTimeShift=true while providing a startTime != 0.0.","category":"page"},{"location":"features/#Performance","page":"Features","title":"Performance","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"In- and Out-of-Place: Many commands in FMI.jl are available in in-place and out-of-place semantics. Of course, in-place-calls are faster, because they don't need to allocate new memory at every call (for the return values). So if you have an eye on performance (or must have), a good starting point is to substitute out-of-place- with in-place-calls. Typical improvements are:","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"valueArray = fmi2GetReal(args...) -> fmi2GetReal!(args..., valueArray)\nvalueArray = fmi2GetDerivatives(args...) -> fmi2GetDerivatives!(args..., valueArray)\nvalueArray = fmi2NewDiscreteStates(args...) -> fmi2NewDiscreteStates!(args..., valueArray)","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"Of course, you have to use the same piece of memory (to write your return values in) for multiple calls - otherwise there will be no improvement because the number of allocations stays the same.","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"Views: You can use array-views instead of array-slices as input for in-place-functions, which further reduces memory allocations.","category":"page"},{"location":"features/#AD-Ecosystem-(differentiation-over-FMUs)","page":"Features","title":"AD-Ecosystem (differentiation over FMUs)","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"Sensitivites over FMUs are fully integrated into FMI.jl, FMIImport.jl and FMIFlux.jl. Supported are ForwardDiff.jl together with all AD-frameworks, that use the interface of ChainRules.jl like e.g. Zygote.jl and ReverseDiff.jl. As a result, you can use implicit solvers or you can use FMUs as part of machine learning applications.","category":"page"},{"location":"features/#Watch-your-progress","page":"Features","title":"Watch your progress","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"When simulating FMUs with FMI.jl, a progress meter is shown per default. You can control the appearance via the keyword argument showProgress for simulate, simulateME, simulateCS and simulateSE. Progress meters are also available for FMIFlux.jl, but deactivated by default (during training, this can be a bit too much). When evaluating a NeuralFMU, you can use the same keyword with showProgress=true to show a progress bar during training, too. The simulation trajectory (also called the solution of your FMU's ODE system) can be plotted using plot(solution), all axis will be labeled automatically.","category":"page"},{"location":"features/#Parallelization","page":"Features","title":"Parallelization","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"A native integrated support for multi-threaded and multi-process FMU-simulation (for example for Monte Carlo experiments) will be deployed soon. ","category":"page"},{"location":"related/#Related-Publications","page":"Related Publication","title":"Related Publications","text":"","category":"section"},{"location":"related/","page":"Related Publication","title":"Related Publication","text":"Tobias Thummerer, Josef Kircher, Lars Mikelsons 2021 NeuralFMU: Towards Structural Integration of FMUs into Neural Networks (14th Modelica Conference, Preprint, Accepted) arXiv:2109.04351","category":"page"},{"location":"related/","page":"Related Publication","title":"Related Publication","text":"Tobias Thummerer, Johannes Tintenherr, Lars Mikelsons 2021 Hybrid modeling of the human cardiovascular system using NeuralFMUs (10th International Conference on Mathematical Modeling in Physical Sciences, Preprint, Accepted) arXiv:2109.04880","category":"page"},{"location":"examples/multiple_instances/#Multiple-Instances-of-an-FMU","page":"Multiple instances","title":"Multiple Instances of an FMU","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"Tutorial by Johannes Stoljar, Tobias Thummerer","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/multiple_instances/#License","page":"Multiple instances","title":"License","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/multiple_instances/#Motivation","page":"Multiple instances","title":"Motivation","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"This Julia Package FMI.jl is motivated by the use of simulation models in Julia. Here the FMI specification is implemented. FMI (Functional Mock-up Interface) is a free standard (fmi-standard.org) that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. The user can thus use simulation models in the form of an FMU (Functional Mock-up Units). Besides loading the FMU, the user can also set values for parameters and states and simulate the FMU both as co-simulation and model exchange simulation.","category":"page"},{"location":"examples/multiple_instances/#Introduction-to-the-example","page":"Multiple instances","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"In this example we want to show that it is possible to create different instances of an FMU. The different instances can then be used to run independent simulations. After the FMU has been simulated, the simulation results are displayed in a graph. The used model is a one-dimensional spring pendulum without friction. The object-orientated structure of the SpringPendulum1D can be seen in the following graphic.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"(Image: svg) ","category":"page"},{"location":"examples/multiple_instances/#Target-group","page":"Multiple instances","title":"Target group","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"The example is primarily intended for users who work in the field of simulations. The example wants to show how simple it is to use FMUs in Julia.","category":"page"},{"location":"examples/multiple_instances/#Other-formats","page":"Multiple instances","title":"Other formats","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/multiple_instances/#Getting-started","page":"Multiple instances","title":"Getting started","text":"","category":"section"},{"location":"examples/multiple_instances/#Installation-prerequisites","page":"Multiple instances","title":"Installation prerequisites","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":" Description Command Alternative\n1. Enter Package Manager via ] \n2. Install FMI via add FMI add \" https://github.com/ThummeTo/FMI.jl \"\n3. Install FMIZoo via add FMIZoo add \" https://github.com/ThummeTo/FMIZoo.jl \"\n4. Install Plots via add Plots ","category":"page"},{"location":"examples/multiple_instances/#Code-section","page":"Multiple instances","title":"Code section","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"# imports\nusing FMI\nusing FMIZoo\nusing Plots","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00ca4e361141 is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]","category":"page"},{"location":"examples/multiple_instances/#Simulation-setup","page":"Multiple instances","title":"Simulation setup","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"Next, the start time and end time of the simulation are set. Finally, the recorded values are specified to store the results of the simulation.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"tStart = 0.0\ntStop = 8.0\n\nvrs = [\"mass.s\"]","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"1-element Vector{String}:\n \"mass.s\"","category":"page"},{"location":"examples/multiple_instances/#Import-FMU","page":"Multiple instances","title":"Import FMU","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"In the next lines of code the FMU model from FMIZoo.jl is loaded and the information about the FMU is shown.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"# we use an FMU from the FMIZoo.jl\npathToFMU = get_model_filename(\"SpringPendulum1D\", \"Dymola\", \"2022x\")\n\nmyFMU = loadFMU(pathToFMU)\ninfo(myFMU)","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"#################### Begin information for FMU ####################\n\tModel name:\t\t\tSpringPendulum1D\n\tFMI-Version:\t\t\t2.0\n\tGUID:\t\t\t\t{fc15d8c4-758b-48e6-b00e-5bf47b8b14e5}\n\tGeneration tool:\t\tDymola Version 2022x (64-bit), 2021-10-08\n\tGeneration time:\t\t2022-05-19T06:54:23Z\n\tVar. naming conv.:\t\tstructured\n\tEvent indicators:\t\t0\n\tInputs:\t\t\t\t0\n\tOutputs:\t\t\t0\n\tStates:\t\t\t\t2\n\t\t33554432 [\"mass.s\"]\n\t\t33554433 [\"mass.v\"]\n\tParameters:\t\t\t7\n\t\t16777216 [\"mass_s0\"]\n\t\t16777217 [\"mass_v0\"]\n\t\t16777218 [\"fixed.s0\"]\n\t\t16777219 [\"spring.c\"]\n\t\t16777220 [\"spring.s_rel0\"]\n\t\t16777221 [\"mass.m\"]\n\t\t16777222 [\"mass.L\"]\n\tSupports Co-Simulation:\t\ttrue\n\t\tModel identifier:\tSpringPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n\t\tVar. com. steps:\ttrue\n\t\tInput interpol.:\ttrue\n\t\tMax order out. der.:\t1\n\tSupports Model-Exchange:\ttrue\n\n\n\t\tModel identifier:\tSpringPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n##################### End information for FMU #####################","category":"page"},{"location":"examples/multiple_instances/#First-Instance","page":"Multiple instances","title":"First Instance","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"To create an instance of the FMU it is necessary to call the command fmi2Instantiate!(). With the component address you now have a unique instance of the FMU.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"c1 = fmi2Instantiate!(myFMU; loggingOn=true)\ncomp1Address = c1.addr\nprintln(c1)","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"FMU: SpringPendulum1D\n InstanceName: SpringPendulum1D\n Address: Ptr{Nothing} @0x000002acf7dcae90\n State: 0\n Logging: true\n FMU time: -Inf\n FMU states: nothing","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"Next, a dictionary for the parameters is created. With this dictionary you can set the initial states of the variables of the FMU. For the spring constant spring.c a value of 100 fracNm and for the position of the mass mass.s a value of 10 m is set. The created dictionary with the specified variables for recording are passed to the command for simulation. In addition, other keywords are set. On the one hand the keyword instantiate=false is set, which prevents that in the simulation command a new instance is created. On the other hand the keyword freeInstance=false is set, this prevents that after the simulation command the instance is released. ","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"param1 = Dict(\"spring.c\"=>10.0, \"mass_s0\"=>1.0)\ndata1 = simulate(c1, (tStart, tStop); parameters=param1, recordValues=vrs, instantiate=false, freeInstance=false)\nfig = plot(data1)","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"(Image: svg)","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"For control, you can compare again the address of the instance to the previous address, and it should be the same address. As soon as this is not the case an error would be thrown by the macro @assert.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"@assert c1.addr === comp1Address","category":"page"},{"location":"examples/multiple_instances/#Second-Instance","page":"Multiple instances","title":"Second Instance","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"To create a second instance of the FMU it is necessary to call the command fmi2Instantiate!(). With the component address you now have a unique instance of the FMU.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"c2 = fmi2Instantiate!(myFMU; loggingOn=true)\ncomp2Address = c2.addr\nprintln(c2)","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"FMU: SpringPendulum1D\n InstanceName: SpringPendulum1D\n Address: Ptr{Nothing} @0x000002acf7dcc270\n State: 0\n Logging: true\n FMU time: -Inf\n FMU states: nothing","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"The addresses of the instantiated FMUs must differ, and you can see that in the comparison below.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"@assert comp1Address !== comp2Address","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"Again, a dictionary for the parameters is created. With this dictionary you can set the initial states of the variables of the FMU. For the spring constant spring.c a value of 10 fracNm and for the position of the mass mass.s a value of 20 m is set. The created dictionary with the specified variables for recording are passed to the command for simulation. As before, the two keywords instantiate=false and freeInstance=false are set.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"param2 = Dict(\"spring.c\"=>1.0, \"mass.s\"=>2.0)\ndata2 = simulateCS(c2, (tStart, tStop); parameters=param2, recordValues=vrs, instantiate=false, freeInstance=false)\nplot!(fig, data2)","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"(Image: svg)","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"For control, you can compare again the address of the instance comp2 to the previous address comp2Address and it should be the same address.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"@assert c2.addr === comp2Address","category":"page"},{"location":"examples/multiple_instances/#Unload-FMU","page":"Multiple instances","title":"Unload FMU","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"unloadFMU(myFMU)","category":"page"},{"location":"examples/multiple_instances/#Summary","page":"Multiple instances","title":"Summary","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"Based on the example it can be seen that it is possible to create different instances of an FMU. The different instances can then be used to perform different simulations.","category":"page"},{"location":"examples/overview/#Overview","page":"Overview","title":"Overview","text":"","category":"section"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"This section discusses the included examples of the FMI.jl library. If you require further information about the function calls, see the function sections of the library.","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Examples are subdevided into Basics, Advanced, Pluto workshops and Publication appendices.","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Basic examples:","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Simulate: Showing how you can simulate a CS-FMU and a ME-FMU.\nParameterize: A short example explaining how to parameterize a FMU before simulation.\nInputs: A short example explaining how to simulate a FMU with inputs.","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Advanced examples:","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Parameter Optimization: An introduction on how FMU parameters can be optimized to fit a specific behaviour.\nMultiple instances: Showing the use of multiple FMU instances.\nManipulation: Showing how to redefine a linked C-library function of FMU.\nMultithreading: Shows how to use multithreading to simulate multiple FMUs.\nMultiprocessing: Shows how to use multiprocessing to simulate multiple FMUs.","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Pluto workshops:","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Pluto workshops: Pluto based notebooks, that can easyly be executed on your own Pluto-Setup.","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Publication appendices:","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Modelica conference 2021: Showing the different variants of simulating an FMU.","category":"page"},{"location":"fmi-tool-info/#FMU-Import-Compatibility-information-(*FMIImport.jl*)","page":"FMI Tool Information","title":"FMU Import Compatibility information (FMIImport.jl)","text":"","category":"section"},{"location":"fmi-tool-info/","page":"FMI Tool Information","title":"FMI Tool Information","text":"This section contains information about how import and simulation of FMI.jl and FMIInmport.jl where tested.","category":"page"},{"location":"fmi-tool-info/#FMI-3.0","page":"FMI Tool Information","title":"FMI-3.0","text":"","category":"section"},{"location":"fmi-tool-info/","page":"FMI Tool Information","title":"FMI Tool Information","text":"FMI3 is for now only beta supported and information will be deployed together with the full support release.","category":"page"},{"location":"fmi-tool-info/#FMI-2.0","page":"FMI Tool Information","title":"FMI-2.0","text":"","category":"section"},{"location":"fmi-tool-info/","page":"FMI Tool Information","title":"FMI Tool Information","text":"FMI.jl and FMIImport.jl are validated by simulating all valid FMI2-FMUs from the official FMI-Cross-Check in ME- as well as in CS-Mode, excluding the tools AMESim, Test-FMUs, SimulationX and Silver. For more information see our automated GitHub-Action. The results files - as defined by the FMI Cross Check - can be found in the forked repository inside of the corresponding sub folders. There are different branches for different OS-configurations available.","category":"page"},{"location":"fmi-tool-info/#FMU-Export-Compatibility-information-(*FMIExport.jl*)","page":"FMI Tool Information","title":"FMU Export Compatibility information (FMIExport.jl)","text":"","category":"section"},{"location":"fmi-tool-info/","page":"FMI Tool Information","title":"FMI Tool Information","text":"Detailed export information and automatically generated FMUs will be deployed soon in the repository.","category":"page"},{"location":"fmi-tool-info/#FMI-3.0-2","page":"FMI Tool Information","title":"FMI-3.0","text":"","category":"section"},{"location":"fmi-tool-info/","page":"FMI Tool Information","title":"FMI Tool Information","text":"File name x86_64-windows x86_64-linux\nBouncingBall coming soon coming soon\nManipulation coming soon coming soon\nNeuralFMU coming soon coming soon","category":"page"},{"location":"fmi-tool-info/#FMI-2.0-2","page":"FMI Tool Information","title":"FMI-2.0","text":"","category":"section"},{"location":"fmi-tool-info/","page":"FMI Tool Information","title":"FMI Tool Information","text":"File name x86_64-windows x86_64-linux\nBouncingBall ME coming soon\nManipulation ME coming soon\nNeuralFMU ME coming soon","category":"page"},{"location":"fmi-tool-info/#Validation-tools","page":"FMI Tool Information","title":"Validation tools","text":"","category":"section"},{"location":"fmi-tool-info/","page":"FMI Tool Information","title":"FMI Tool Information","text":"Dassault Dymola 2022X\nFMU Check","category":"page"},{"location":"faq/#FAQ","page":"FAQ","title":"FAQ","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"This list some common - often numerical - errors, that can be fixed by better understanding the ODE-Problem inside your FMU.","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"","category":"page"},{"location":"faq/#Solving-non-linear-system-fails","page":"FAQ","title":"Solving non-linear system fails","text":"","category":"section"},{"location":"faq/#Description","page":"FAQ","title":"Description","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Error message or warning, that solving of a non-linear system failed, close to the simulation start time.","category":"page"},{"location":"faq/#Example","page":"FAQ","title":"Example","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Solving non-linear system 101 failed at time=3e-05.","category":"page"},{"location":"faq/#Reason","page":"FAQ","title":"Reason","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"This could be, because the first step of the integration is accepted by the solver's error estimation, but shouldn't. This is usually, if the first step is picked to large by the solver's start step size heuristics.","category":"page"},{"location":"faq/#Fix","page":"FAQ","title":"Fix","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Try a small start value for the integration with keyword dt.","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"","category":"page"},{"location":"faq/#Access-denied","page":"FAQ","title":"Access denied","text":"","category":"section"},{"location":"faq/#Description-2","page":"FAQ","title":"Description","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Error message, that the binary for callback functions can't be accessed/opened.","category":"page"},{"location":"faq/#Example-2","page":"FAQ","title":"Example","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"ERROR:\ncould not load library \"...\\src\\FMI2\\callbackFunctions\\binaries\\win64\\callbackFunctions.dll\"\nAccess denied","category":"page"},{"location":"faq/#Reason-2","page":"FAQ","title":"Reason","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"This is because your OS doesn't allow to interact with the binaries shipped with FMI.jl. ","category":"page"},{"location":"faq/#Fix-2","page":"FAQ","title":"Fix","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"This can easily be solved by fixing the binary's permission options or is automatically fixed if Julia runs with admin privileges.","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"","category":"page"},{"location":"faq/#Double-Callback-Crossing","page":"FAQ","title":"Double Callback Crossing","text":"","category":"section"},{"location":"faq/#Description-3","page":"FAQ","title":"Description","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Error message, that solving failed because of double callback crossing.","category":"page"},{"location":"faq/#Example-3","page":"FAQ","title":"Example","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"ERROR:\nDouble callback crossing floating pointer reducer errored. Report this issue.","category":"page"},{"location":"faq/#Reason-3","page":"FAQ","title":"Reason","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"This is because the event instant (time point) of an FMU event indicator can't be found precisely.","category":"page"},{"location":"faq/#Fix-3","page":"FAQ","title":"Fix","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"This can be solved by allowing for more interpolation points during searching of the zero crossing:","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"fmu.executionConfig.rootSearchInterpolationPoints = 1000 # default value is 10","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"This will have negative performance impact on systems with extreme amount of events (thousands per second). For systems with only a few events there won't be a noticeable slow down.","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/#Working-with-the-FMI-model-description","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"section"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"The FMI model description provides all human readable information on the model. The following functions can be used to obtain all information provided by the model description, which in turn can be extracted from the fmu.","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/#Loading/Parsing","page":"Working with the FMI model description","title":"Loading/Parsing","text":"","category":"section"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi3LoadModelDescription","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/#general-information-about-the-FMU","page":"Working with the FMI model description","title":"general information about the FMU","text":"","category":"section"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi3GetGenerationTool fmi3GetGenerationDateAndTime","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/#technical-information-about-the-FMU","page":"Working with the FMI model description","title":"technical information about the FMU","text":"","category":"section"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi3GetVersion\n\nfmi3GetNumberOfEventIndicators\nfmi3GetNumberOfEventIndicators!","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/#FMICore.fmi3GetVersion","page":"Working with the FMI model description","title":"FMICore.fmi3GetVersion","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.4. Inquire Version Number of Header Files\n\nThis function returns fmi3Version of the fmi3Functions.h header file which was used to compile the functions of the FMU. This function call is allowed always and in all interface types.\n\nThe standard header file as documented in this specification has version \"3.0-beta.2\", so this function returns \"3.0-beta.2\".\n\n\n\n\n\nfmi3GetVersion(fmu::FMU3)\n\nArguments\n\nfmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.\n\nReturns\n\nReturns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi3Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “3.0”\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4. Inquire Version Number of Header Files\n\n\n\n\n\nfunction fmi3GetVersion(fmu::FMU3)\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nReturns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi3Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “3.0”\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4. Inquire Version Number of Header Files\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_modeldescription_functions/#FMIImport.fmi3GetNumberOfEventIndicators","page":"Working with the FMI model description","title":"FMIImport.fmi3GetNumberOfEventIndicators","text":"fmi3GetNumberOfEventIndicators(c::FMU3Instance)\n\nThis function returns the number of event indicators. This function can only be called in Model Exchange. \n\nfmi3GetNumberOfEventIndicators must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nsize::Integer: Return size is the number of event indicators of this instance \n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.3.2. State: Instantiated\n\nSee also fmi3GetNumberOfEventIndicators.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_modeldescription_functions/#FMICore.fmi3GetNumberOfEventIndicators!","page":"Working with the FMI model description","title":"FMICore.fmi3GetNumberOfEventIndicators!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.2. State: Instantiated\n\nThis function returns the number of event indicators. This function can only be called in Model Exchange. \n\nfmi3GetNumberOfEventIndicators must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.\n\n\n\n\n\nfmi3GetNumberOfEventIndicators!(c::FMU3Instance, nEventIndicators::Ref{Csize_t})\n\nThis function returns the number of event indicators. This function can only be called in Model Exchange. \n\nfmi3GetNumberOfEventIndicators must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nnEventIndicators::Ref{Csize_t}: Stores the number of continuous states returned by the function\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.2. State: Instantiated\n\nSee also fmi3GetNumberOfEventIndicators!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_modeldescription_functions/#FMU-capabilities","page":"Working with the FMI model description","title":"FMU capabilities","text":"","category":"section"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi3CanGetSetState fmi3CanSerializeFMUState","category":"page"},{"location":"fmi3_lowlevel_ME_functions/#FMI-for-Model-Exchange","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"","category":"section"},{"location":"fmi3_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"This chapter contains the interface description to access the equations of a dynamic system from a C program.","category":"page"},{"location":"fmi3_lowlevel_ME_functions/#Providing-Independent-Variables-and-Re-initialization-of-Caching","page":"FMI for Model Exchange","title":"Providing Independent Variables and Re-initialization of Caching","text":"","category":"section"},{"location":"fmi3_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"Depending on the situation, different variables need to be computed. In order to be efficient, it is important that the interface requires only the computation of variables that are needed in the present context. The state derivatives shall be reused from the previous call. This feature is called “caching of variables” in the sequel. Caching requires that the model evaluation can detect when the input arguments, like time or states, have changed.","category":"page"},{"location":"fmi3_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"fmi3SetTime\nfmi3SetContinuousStates\nfmi3GetEventIndicators\nfmi3GetEventIndicators!","category":"page"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3SetTime","page":"FMI for Model Exchange","title":"FMICore.fmi3SetTime","text":"Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode\n\nSet a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).\n\n\n\n\n\nfmi3SetTime(c::FMU3Instance, time::fmi3Float64)\n\nSet a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\ntime::fmi3Float64: Argument time contains a value of type fmi3Float64 which is a alias type for Real data type. time sets the independent variable time t.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3SetTime.\n\n\n\n\n\nfmi3SetTime(c::FMU3Instance, time::Real)\n\nSet a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nt::Real: Argument t contains a value of type Real which is a alias type for Real data type. time sets the independent variable time t.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3SetTime.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3SetContinuousStates","page":"FMI for Model Exchange","title":"FMICore.fmi3SetContinuousStates","text":"Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode\n\nSet a new (continuous) state vector and re-initialize caching of variables that depend on the states. Argument nx is the length of vector x and is provided for checking purposes\n\n\n\n\n\nfmi3SetContinuousStates(c::FMU3Instance,\n x::AbstractArray{fmi3Float64},\n nx::Csize_t)\n\nSet a new (continuous) state vector and re-initialize caching of variables that depend on the states. Argument nx is the length of vector x and is provided for checking purposes\n\nIf fmi3UpdateDiscreteStates returned with nominalsOfContinuousStatesChanged == fmi3True, then at least one nominal value of the states has changed and can be inquired with fmi3GetNominalsOfContinuousStates. Not allowed in Co-Simulation and Scheduled Execution.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nx::AbstractArray{fmi3Float64}: Argument x contains values of type fmi3Float64 which is a alias type for Real data type. x is the AbstractArray which contains the Real values of the vector that represent the nominal values of the continuous states.\nnx::Csize_t: Argument nx defines the length of vector x and is provided for checking purposes\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3SetContinuousStates.\n\n\n\n\n\nfmi3SetContinuousStates(c::FMU3Instance, x::Union{AbstractArray{Float32}, AbstractArray{Float64}})\n\nSet a new (continuous) state vector and re-initialize caching of variables that depend on the states. Argument nx is the length of vector x and is provided for checking purposes\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nx::Union{AbstractArray{Float32},AbstractArray{Float64}}:Argument x is the AbstractArray of the vector values of Float64 or Float32.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3SetContinuousStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMIImport.fmi3GetEventIndicators","page":"FMI for Model Exchange","title":"FMIImport.fmi3GetEventIndicators","text":"fmi3GetEventIndicators(c::FMU3Instance)\n\nReturns the event indicators of the FMU\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\neventIndicators::Array{fmi3Float64}:The event indicators are returned as a vector represented by an array of \"fmi3Float64\" values.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3GetEventIndicators.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3GetEventIndicators!","page":"FMI for Model Exchange","title":"FMICore.fmi3GetEventIndicators!","text":"Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode\n\nCompute event indicators at the current time instant and for the current states. EventIndicators signal Events by their sign change.\n\n\n\n\n\nfmi3GetEventIndicators!(c::FMU3Instance, eventIndicators::AbstractArray{fmi3Float64}, ni::Csize_t)\n\nCompute event indicators at the current time instant and for the current states. EventIndicators signal Events by their sign change.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\neventIndicators::AbstractArray{fmi3Float64}: Argument eventIndicators contains values of type fmi3Float64 which is a alias type for Real data type.eventIndicators is the AbstractArray which contains the Real values of the vector that represent the event indicators.\nni::Csize_t: Argument ni defines the length of vector eventIndicators and is provided for checking purposes\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3GetEventIndicators!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#Evaluation-of-Model-Equations","page":"FMI for Model Exchange","title":"Evaluation of Model Equations","text":"","category":"section"},{"location":"fmi3_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"fmi3EnterEventMode\nfmi3EnterContinuousTimeMode\nfmi3CompletedIntegratorStep!\nfmi3GetContinuousStates\nfmi3GetContinuousStates!\nfmi3GetNominalsOfContinuousStates!\nfmi3GetNumberOfContinuousStates\nfmi3GetNumberOfContinuousStates!","category":"page"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3EnterEventMode","page":"FMI for Model Exchange","title":"FMICore.fmi3EnterEventMode","text":"Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode\n\nThe model enters Event Mode from the Continuous-Time Mode in ModelExchange oder Step Mode in CoSimulation and discrete-time equations may become active (and relations are not “frozen”).\n\n\n\n\n\nfmi3EnterEventMode(c::FMU3Instance, stepEvent::fmi3Boolean, stateEvent::fmi3Boolean, rootsFound::AbstractArray{fmi3Int32}, nEventIndicators::Csize_t, timeEvent::fmi3Boolean; soft::Bool=false)\n\nThe model enters Event Mode from the Continuous-Time Mode in ModelExchange oder Step Mode in CoSimulation and discrete-time equations may become active (and relations are not “frozen”).\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nstepEvent::fmi3Boolean: \nstateEvent::fmi3Boolean: \nrootsFound::AbstractArray{fmi3Int32}: \nnEventIndicators::Csize_t: \ntimeEvent::fmi3Boolean: \nsoft::Bool=false: \n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3EnterEventMode.\n\n\n\n\n\nfmi3EnterEventMode(c::FMU3Instance, stepEvent::Bool, stateEvent::Bool, rootsFound::AbstractArray{fmi3Int32}, nEventIndicators::Csize_t, timeEvent::Bool)\n\nThe model enters Event Mode from the Continuous-Time Mode in ModelExchange oder Step Mode in CoSimulation and discrete-time equations may become active (and relations are not “frozen”).\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nstepEvent::Bool: \nstateEvent::Bool: \nrootsFound::AbstractArray{fmi3Int32}: \nnEventIndicators::Csize_t: \ntimeEvent::Bool: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3EnterEventMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3EnterContinuousTimeMode","page":"FMI for Model Exchange","title":"FMICore.fmi3EnterContinuousTimeMode","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.5. State: Event Mode\n\nThe model enters Continuous-Time Mode and all discrete-time equations become inactive and all relations are “frozen”. This function has to be called when changing from Event Mode (after the global event iteration in Event Mode over all involved FMUs and other models has converged) into Continuous-Time Mode.\n\n\n\n\n\nfmi3EnterContinuousTimeMode(c::FMU3Instance; soft::Bool=false)\n\nThe model enters Continuous-Time Mode and all discrete-time equations become inactive and all relations are “frozen”. This function has to be called when changing from Event Mode (after the global event iteration in Event Mode over all involved FMUs and other models has converged) into Continuous-Time Mode.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.5. State: Event Mode\n\nSee also fmi3EnterContinuousTimeMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3CompletedIntegratorStep!","page":"FMI for Model Exchange","title":"FMICore.fmi3CompletedIntegratorStep!","text":"Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode\n\nThis function must be called by the environment after every completed step of the integrator provided the capability flag needsCompletedIntegratorStep = true. If enterEventMode == fmi3True, the event mode must be entered If terminateSimulation == fmi3True, the simulation shall be terminated\n\n\n\n\n\nfmi3CompletedIntegratorStep!(c::FMU3Instance,\n noSetFMUStatePriorToCurrentPoint::fmi3Boolean,\n enterEventMode::Ref{fmi3Boolean},\n terminateSimulation::Ref{fmi3Boolean})\n\nThis function must be called by the environment after every completed step of the integrator provided the capability flag needsCompletedIntegratorStep == true. If enterEventMode == fmi3True, the event mode must be entered If terminateSimulation == fmi3True, the simulation shall be terminated\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nnoSetFMUStatePriorToCurrentPoint::fmi3Boolean: Argument noSetFMUStatePriorToCurrentPoint = fmi3True if fmi3SetFMUState will no longer be called for time instants prior to current time in this simulation run.\nenterEventMode::Ref{fmi3Boolean}: Argument enterEventMode points to the return value (fmi3Boolean) which signals to the environment if the FMU shall call fmi3EnterEventMode. fmi3Boolean is an alias type for Boolean data type.\nterminateSimulation::Ref{fmi3Boolean}: Argument terminateSimulation points to the return value (fmi3Boolean) which signals signal if the simulation shall be terminated. fmi3Boolean is an alias type for Boolean data type.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3CompletedIntegratorStep!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMIImport.fmi3GetContinuousStates","page":"FMI for Model Exchange","title":"FMIImport.fmi3GetContinuousStates","text":"fmi3GetContinuousStates(c::FMU3Instance)\n\nReturn the new (continuous) state vector x\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nx::Array{fmi3Float64}: Returns an array of fmi3Float64 values representing the new continuous state vector x.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.3.3. State: Initialization Mode\n\nSee also fmi3GetContinuousStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3GetContinuousStates!","page":"FMI for Model Exchange","title":"FMICore.fmi3GetContinuousStates!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.3. State: Initialization Mode\n\nReturn the states at the current time instant.\n\nThis function must be called if fmi3UpdateDiscreteStates returned with valuesOfContinuousStatesChanged == fmi3True. Not allowed in Co-Simulation and Scheduled Execution.\n\n\n\n\n\nfmi3GetContinuousStates!(c::FMU3Instance, nominals::AbstractArray{fmi3Float64}, nContinuousStates::Csize_t)\n\nReturn the states at the current time instant.\n\nThis function must be called if fmi3UpdateDiscreteStates returned with valuesOfContinuousStatesChanged == fmi3True. Not allowed in Co-Simulation and Scheduled Execution.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nnominals::AbstractArray{fmi3Float64}: Argument nominals contains values of type fmi3Float64 which is a alias type for Real data type. nominals is the AbstractArray which contains the Real values of the vector that represent the new state vector.\nnContinuousStates::Csize_t: Argument nContinuousStates defines the length of vector nominals and is provided for checking purposes\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.3. State: Initialization Mode\n\nSee also fmi3GetContinuousStates!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3GetNominalsOfContinuousStates!","page":"FMI for Model Exchange","title":"FMICore.fmi3GetNominalsOfContinuousStates!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.3. State: Initialization Mode\n\nReturn the nominal values of the continuous states.\n\nIf fmi3UpdateDiscreteStates returned with nominalsOfContinuousStatesChanged == fmi3True, then at least one nominal value of the states has changed and can be inquired with fmi3GetNominalsOfContinuousStates. Not allowed in Co-Simulation and Scheduled Execution.\n\n\n\n\n\nfmi3GetNominalsOfContinuousStates!(c::FMU3Instance, x_nominal::AbstractArray{fmi3Float64}, nx::Csize_t)\n\nReturn the nominal values of the continuous states.\n\nIf fmi3UpdateDiscreteStates returned with nominalsOfContinuousStatesChanged == fmi3True, then at least one nominal value of the states has changed and can be inquired with fmi3GetNominalsOfContinuousStates. Not allowed in Co-Simulation and Scheduled Execution.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nx_nominal::AbstractArray{fmi3Float64}: Argument x_nominal contains values of type fmi3Float64 which is a alias type for Real data type. x_nominal is the AbstractArray which contains the Real values of the vector that represent the nominal values of the continuous states.\nnx::Csize_t: Argument nx defines the length of vector x_nominal and is provided for checking purposes\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.3. State: Initialization Mode\n\nSee also fmi3GetNominalsOfContinuousStates!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMIImport.fmi3GetNumberOfContinuousStates","page":"FMI for Model Exchange","title":"FMIImport.fmi3GetNumberOfContinuousStates","text":"fmi3GetNumberOfContinuousStates(c::FMU3Instance)\n\nThis function returns the number of continuous states. This function can only be called in Model Exchange. \n\nfmi3GetNumberOfContinuousStates must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nsize::Integer: Return size is the number of continuous states of this instance \n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.3.2. State: Instantiated\n\nSee also fmi3GetNumberOfContinuousStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3GetNumberOfContinuousStates!","page":"FMI for Model Exchange","title":"FMICore.fmi3GetNumberOfContinuousStates!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.2. State: Instantiated\n\nThis function returns the number of continuous states. This function can only be called in Model Exchange. \n\nfmi3GetNumberOfContinuousStates must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.\n\n\n\n\n\nfmi3GetNumberOfContinuousStates!(c::FMU3Instance, nContinuousStates::Ref{Csize_t})\n\nThis function returns the number of continuous states. This function can only be called in Model Exchange. \n\nfmi3GetNumberOfContinuousStates must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nnContinuousStates::Ref{Csize_t}: Stores the number of continuous states returned by the function\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.2. State: Instantiated\n\nSee also fmi3GetNumberOfContinuousStates!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"fmi3CompletedIntegratorStep","category":"page"},{"location":"examples/inputs/#Simulate-an-FMU-with-inputs","page":"Inputs","title":"Simulate an FMU with inputs","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"Tutorial by Tobias Thummerer","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/inputs/#License","page":"Inputs","title":"License","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/inputs/#Introduction-to-the-example","page":"Inputs","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"This example shows how to add custom inputs to a FMU, that are used during simulation.","category":"page"},{"location":"examples/inputs/#Other-formats","page":"Inputs","title":"Other formats","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/inputs/#Code-section","page":"Inputs","title":"Code section","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"# imports\nusing FMI\nusing FMIZoo\nusing Plots\nusing DifferentialEquations","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00c0f07be09d is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]","category":"page"},{"location":"examples/inputs/#Simulation-setup","page":"Inputs","title":"Simulation setup","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"Next, the start time and end time of the simulation are set. Finally, a step size is specified to store the results of the simulation at these time steps.","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"tStart = 0.0\ntStep = 0.01\ntStop = 8.0\ntSave = tStart:tStep:tStop","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"0.0:0.01:8.0","category":"page"},{"location":"examples/inputs/#Import-FMU","page":"Inputs","title":"Import FMU","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"Next, the FMU model from FMIZoo.jl is loaded.","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"# we use an FMU from the FMIZoo.jl\nfmu = loadFMU(\"SpringPendulumExtForce1D\", \"Dymola\", \"2022x\"; type=:ME) # load FMU in ME-Mode (\"Model Exchange\")","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"Model name:\tSpringPendulumExtForce1D\nType:\t\t0","category":"page"},{"location":"examples/inputs/#Simulate-as-Model-Exchange","page":"Inputs","title":"Simulate as Model-Exchange","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"In the function simulate() the FMU is simulated with an adaptive step size but with fixed save points tSave. In addition, the start and end time are specified. Note, that the dynamics of the input variables are not considered by the steps ize control of the solver, so it is highly recommended to limit the solver step size with the keyword argument dtmax if the input is more dynamic than the system.","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"# input function format \"t\", dependent on `t` (time)\nfunction extForce_t(t::Real, u::AbstractArray{<:Real})\n u[1] = sin(t)\nend \n\n# simulate while setting inputs\ndata_extForce_t = simulate(fmu, (tStart, tStop); # FMU, start and stop time\n solver = Tsit5(),\n saveat=tSave, # timepoints for the ODE solution to be saved\n inputValueReferences=[\"extForce\"], # the value references that should be set (inputs)\n inputFunction=extForce_t, # the input function to be used\n dtmax=1e-2, # limit max step size to capture inputs\n showProgress=false) # disable progress bar\nplot(data_extForce_t)","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"(Image: svg)","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"# input function format \"cxt\", dependent on `c` (component), `x` (state) and `t` (time)\nfunction extForce_cxt(c::Union{FMU2Component, Nothing}, x::Union{AbstractArray{<:Real}, Nothing}, t::Real, u::AbstractArray{<:Real})\n x1 = 0.0\n if x != nothing # this check is important, because inputs may be needed before the system state is known\n x1 = x[1] \n end\n u[1] = sin(t) * x1\n nothing\nend \n\n# simulate while setting inputs\ndata_extForce_cxt = simulate(fmu, (tStart, tStop); saveat=tSave, inputValueReferences=[\"extForce\"], inputFunction=extForce_cxt, dtmax=1e-2, showProgress=false)\nplot(data_extForce_cxt)","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"(Image: svg)","category":"page"},{"location":"examples/inputs/#Unload-FMU","page":"Inputs","title":"Unload FMU","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"unloadFMU(fmu)","category":"page"},{"location":"deprecated/#deprecated-Functions","page":"Deprecated","title":"deprecated Functions","text":"","category":"section"},{"location":"deprecated/","page":"Deprecated","title":"Deprecated","text":"this doc page is necessary as all exported functions must be documented in the manual with documenter configured to check for missing documentation, therefor this hidden page exists","category":"page"},{"location":"deprecated/#internal-functions:-remove-export?","page":"Deprecated","title":"internal functions: remove export?","text":"","category":"section"},{"location":"deprecated/","page":"Deprecated","title":"Deprecated","text":"fmi2CallbackFunctions","category":"page"},{"location":"deprecated/#FMICore.fmi2CallbackFunctions","page":"Deprecated","title":"FMICore.fmi2CallbackFunctions","text":"Source: FMISpec2.0.2[p.19-22]: 2.1.5 Creation, Destruction and Logging of FMU Instances\n\nThe struct contains pointers to functions provided by the environment to be used by the FMU. It is not allowed to change these functions between fmi2Instantiate(..) and fmi2Terminate(..) calls. Additionally, a pointer to the environment is provided (componentEnvironment) that needs to be passed to the “logger” function, in order that the logger function can utilize data from the environment, such as mapping a valueReference to a string. In the unlikely case that fmi2Component is also needed in the logger, it has to be passed via argument componentEnvironment. Argument componentEnvironment may be a null pointer. The componentEnvironment pointer is also passed to the stepFinished(..) function in order that the environment can provide an efficient way to identify the slave that called stepFinished(..).\n\n\n\n\n\n","category":"type"},{"location":"deprecated/#deprecated","page":"Deprecated","title":"deprecated","text":"","category":"section"},{"location":"deprecated/","page":"Deprecated","title":"Deprecated","text":"Mostly wrappers that are not supposed to be used (call specific wrapped functions instead)","category":"page"},{"location":"deprecated/","page":"Deprecated","title":"Deprecated","text":"all gone since 0.14.0 (nice)","category":"page"},{"location":"deprecated/","page":"Deprecated","title":"Deprecated","text":"","category":"page"},{"location":"examples/multithreading/#Multithreading","page":"Multithreading","title":"Multithreading","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"Tutorial by Jonas Wilfert, Tobias Thummerer","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/multithreading/#License","page":"Multithreading","title":"License","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar, Jonas Wilfert\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/multithreading/#Motivation","page":"Multithreading","title":"Motivation","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"This Julia Package FMI.jl is motivated by the use of simulation models in Julia. Here the FMI specification is implemented. FMI (Functional Mock-up Interface) is a free standard (fmi-standard.org) that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. The user can thus use simulation models in the form of an FMU (Functional Mock-up Units). Besides loading the FMU, the user can also set values for parameters and states and simulate the FMU both as co-simulation and model exchange simulation.","category":"page"},{"location":"examples/multithreading/#Introduction-to-the-example","page":"Multithreading","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"This example shows how to parallelize the computation of an FMU in FMI.jl. We can compute a batch of FMU-evaluations in parallel with different initial settings. Parallelization can be achieved using multithreading or using multiprocessing. This example shows multithreading, check multiprocessing.ipynb for multiprocessing. Advantage of multithreading is a lower communication overhead as well as lower RAM usage. However in some cases multiprocessing can be faster as the garbage collector is not shared.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"The model used is a one-dimensional spring pendulum with friction. The object-orientated structure of the SpringFrictionPendulum1D can be seen in the following graphic.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"(Image: svg) ","category":"page"},{"location":"examples/multithreading/#Target-group","page":"Multithreading","title":"Target group","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"The example is primarily intended for users who work in the field of simulations. The example wants to show how simple it is to use FMUs in Julia.","category":"page"},{"location":"examples/multithreading/#Other-formats","page":"Multithreading","title":"Other formats","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/multithreading/#Getting-started","page":"Multithreading","title":"Getting started","text":"","category":"section"},{"location":"examples/multithreading/#Installation-prerequisites","page":"Multithreading","title":"Installation prerequisites","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":" Description Command Alternative\n1. Enter Package Manager via ] \n2. Install FMI via add FMI add \" https://github.com/ThummeTo/FMI.jl \"\n3. Install FMIZoo via add FMIZoo add \" https://github.com/ThummeTo/FMIZoo.jl \"\n4. Install FMICore via add FMICore add \" https://github.com/ThummeTo/FMICore.jl \"\n5. Install Folds via add Folds \n6. Install BenchmarkTools via add BenchmarkTools ","category":"page"},{"location":"examples/multithreading/#Code-section","page":"Multithreading","title":"Code section","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"# imports\nusing FMI\nusing FMIZoo\nusing Folds\nusing BenchmarkTools\nusing DifferentialEquations","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00f398717ce5 is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"First, check the amount of available threads:","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"Threads.nthreads()","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"1","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"If the number of available threads doesn't match your expections, you can increase the number of threads available to the Julia process like described here.","category":"page"},{"location":"examples/multithreading/#Simulation-setup","page":"Multithreading","title":"Simulation setup","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"Next, the start time and end time of the simulation are set. Here we also decide the size of the batch.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"t_start = 0.0\nt_step = 0.1\nt_stop = 10.0\ntspan = (t_start, t_stop)\ntData = collect(t_start:t_step:t_stop)\n\n# Best if batchSize is a multiple of the threads/cores\nbatchSize = Threads.nthreads()\n\n# Define an array of arrays randomly\ninput_values = collect(collect.(eachrow(rand(batchSize,2))))\n","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"1-element Vector{Vector{Float64}}:\n [0.28142814679649286, 0.8081805263090995]","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"We need to instantiate one FMU for each parallel execution, as they cannot be easily shared among different threads.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"# a single FMU to compare the performance\nrealFMU = loadFMU(\"SpringPendulum1D\", \"Dymola\", \"2022x\")\n\n# the FMU batch\nrealFMUBatch = [loadFMU(\"SpringPendulum1D\", \"Dymola\", \"2022x\") for _ in 1:batchSize]","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"1-element Vector{FMU2}:\n Model name:\tSpringPendulum1D\nType:\t\t1","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"We define a helper function to calculate the FMU solution and combine it into an Matrix.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"function runCalcFormatted(fmu::FMU2, x0::Vector{Float64}, recordValues::Vector{String}=[\"mass.s\", \"mass.v\"])\n data = simulateME(fmu, tspan; recordValues=recordValues, saveat=tData, x0=x0, showProgress=false, dtmax=1e-4)\n return reduce(hcat, data.states.u)\nend","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"runCalcFormatted (generic function with 2 methods)","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"Running a single evaluation is pretty quick, therefore the speed can be better tested with BenchmarkTools.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"@benchmark data = runCalcFormatted(realFMU, rand(2))","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"BenchmarkTools.Trial: 2 samples with 1 evaluation per sample.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m3.083 s\u001b[22m\u001b[39m … \u001b[35m 3.096 s\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.35% … 0.75%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m3.090 s \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.55%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m3.090 s\u001b[22m\u001b[39m ± \u001b[32m9.213 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m0.55% ± 0.28%\n\n \u001b[34m█\u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m█\u001b[39m \u001b[39m \n \u001b[34m█\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[32m▁\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m█\u001b[39m \u001b[39m▁\n 3.08 s\u001b[90m Histogram: frequency by time\u001b[39m 3.1 s \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m300.75 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m7602420\u001b[39m.","category":"page"},{"location":"examples/multithreading/#Single-Threaded-Batch-Execution","page":"Multithreading","title":"Single Threaded Batch Execution","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"To compute a batch we can collect multiple evaluations. In a single threaded context we can use the same FMU for every call.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"println(\"Single Threaded\")\n@benchmark collect(runCalcFormatted(realFMU, i) for i in input_values)","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"Single Threaded\n\n\n\n\n\nBenchmarkTools.Trial: 2 samples with 1 evaluation per sample.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m3.075 s\u001b[22m\u001b[39m … \u001b[35m 3.117 s\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.43% … 0.36%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m3.096 s \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.39%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m3.096 s\u001b[22m\u001b[39m ± \u001b[32m29.520 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m0.39% ± 0.05%\n\n \u001b[34m█\u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m█\u001b[39m \u001b[39m \n \u001b[34m█\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[32m▁\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m█\u001b[39m \u001b[39m▁\n 3.08 s\u001b[90m Histogram: frequency by time\u001b[39m 3.12 s \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m300.75 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m7602423\u001b[39m.","category":"page"},{"location":"examples/multithreading/#Multithreaded-Batch-Execution","page":"Multithreading","title":"Multithreaded Batch Execution","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"In a multithreaded context we have to provide each thread it's own fmu, as they are not thread safe. To spread the execution of a function to multiple threads, the library Folds can be used.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"println(\"Multi Threaded\")\n@benchmark Folds.collect(runCalcFormatted(fmu, i) for (fmu, i) in zip(realFMUBatch, input_values))","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"Multi Threaded\n\n\n\n\n\nBenchmarkTools.Trial: 2 samples with 1 evaluation per sample.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m3.063 s\u001b[22m\u001b[39m … \u001b[35m 3.072 s\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.44% … 0.36%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m3.067 s \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.40%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m3.067 s\u001b[22m\u001b[39m ± \u001b[32m5.954 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m0.40% ± 0.06%\n\n \u001b[34m█\u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m█\u001b[39m \u001b[39m \n \u001b[34m█\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[32m▁\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m█\u001b[39m \u001b[39m▁\n 3.06 s\u001b[90m Histogram: frequency by time\u001b[39m 3.07 s \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m300.75 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m7602438\u001b[39m.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"As you can see, there is a significant speed-up in the median execution time. But: The speed-up is often much smaller than Threads.nthreads(), this has different reasons. For a rule of thumb, the speed-up should be around n/2 on a n-core-processor with n threads for the Julia process.","category":"page"},{"location":"examples/multithreading/#Unload-FMU","page":"Multithreading","title":"Unload FMU","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"After calculating the data, the FMU is unloaded and all unpacked data on disc is removed.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"unloadFMU(realFMU)\nunloadFMU.(realFMUBatch)","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"1-element Vector{Nothing}:\n nothing","category":"page"},{"location":"examples/multithreading/#Summary","page":"Multithreading","title":"Summary","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"In this tutorial it is shown how multi threading with Folds.jl can be used to improve the performance for calculating a Batch of FMUs.","category":"page"},{"location":"fmi2_lowlevel_library_constants/#FMI2-Types-in-FMI-Import/Core-.jl","page":"FMI2 Types in FMI Import/Core .jl","title":"FMI2 Types in FMI Import/Core .jl","text":"","category":"section"},{"location":"fmi2_lowlevel_library_constants/","page":"FMI2 Types in FMI Import/Core .jl","title":"FMI2 Types in FMI Import/Core .jl","text":"FMU2\nFMU2Component\nFMU2ComponentEnvironment\nFMI2Struct\nfmi2Initial\nfmi2ScalarVariable\nfmi2SimpleType\nfmi2Type\nfmi2BaseUnit\nfmi2Unit\nfmi2DisplayUnit\nfmi2Char\nfmi2Variability\nfmi2VariableDependency\nfmi2DependencyKind\nfmi2EventInfo\nfmi2Status\nfmi2Annotation\nfmi2ModelDescription\nfmi2FMUstate\nfmi2StatusKind\nfmi2VariableNamingConvention\nfmi2Causality\nfmi2ComponentState","category":"page"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.FMU2","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.FMU2","text":"The mutable struct representing a FMU (and a container for all its instances) in the FMI 2.0.2 Standard. Also contains the paths to the FMU and ZIP folder as well als all the FMI 2.0.2 function pointers.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.FMU2Component","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.FMU2Component","text":"The mutable struct represents an allocated instance of an FMU in the FMI 2.0.2 Standard.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.FMU2ComponentEnvironment","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.FMU2ComponentEnvironment","text":"Source: FMISpec 2.0.3 [p.16f]\n\nThis is a pointer to a data structure in the simulation environment that calls the FMU. Using this pointer, data from the modelDescription.xml file [(for example, mapping of valueReferences to variable names)] can be transferred between the simulation environment and the logger function (see [FMISpec 2.0.3] section 2.1.5).\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.FMI2Struct","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.FMI2Struct","text":"FMI2Struct\n\nA wildcard for FMI2 related structs, namely Union{FMU2, fmi2ModelDescription, FMU2Component}.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Initial","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Initial","text":"Source: FMISpec2.0.2[p.48]: 2.2.7 Definition of Model Variables (ModelVariables)\n\nEnumeration that defines how the variable is initialized. It is not allowed to provide a value for initial if causality = \"input\" or \"independent\":\n\n\"exact\": The variable is initialized with the start value (provided under Real, Integer, Boolean, String or Enumeration). \"approx\": The variable is an iteration variable of an algebraic loop and the iteration at initialization starts with the start value. \"calculated\": The variable is calculated from other variables during initialization. It is not allowed to provide a “start” value. If initial is not present, it is defined by the table below based on causality and variability. If initial = exact or approx, or causality = ″input″, a start value must be provided. If initial = calculated, or causality = ″independent″, it is not allowed to provide a start value. If fmiSetXXX is not called on a variable with causality = ″input″, then the FMU must use the start value as value of this input. Added prefix \"fmi2\" to help with redefinition of constans in enums.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2ScalarVariable","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2ScalarVariable","text":"Source: FMISpec2.0.2[p.46]: 2.2.7 Definition of Model Variables (ModelVariables)\n\nThe fmi2ScalarVariable specifies the type and argument of every exposed variable in the fmu\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2SimpleType","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2SimpleType","text":"Source: FMISpec2.0.3[p.40]: 2.2.3 Definition of Types (TypeDefinitions)\n\nThe fmi2SimpleType describes the attributes of a type definition.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Type","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Type","text":"Source: FMISpec2.0.2[p.19]: 2.1.5 Creation, Destruction and Logging of FMU Instances\n\nArgument fmuType defines the type of the FMU:\n\nfmi2ModelExchange: FMU with initialization and events; between events simulation of continuous systems is performed with external integrators from the environment.\nfmi2CoSimulation: Black box interface for co-simulation.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2BaseUnit","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2BaseUnit","text":"Source: FMISpec2.0.3[p.35]: 2.2.2 Definition of Units (UnitDefinitions)\n\nfmi2BaseUnit(\n kg=0, m=0, s=0, A=0, K=0, mol=0, cd=0, rad=0, factor=1.0, offset=0.0)\n\nType for the optional “BaseUnit” field of an fmi2Unit.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Unit","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Unit","text":"Source: FMISpec2.0.3[p.35]: 2.2.2 Definition of Units (UnitDefinitions)\n\nElement “UnitDefinitions ” of fmiModelDescription.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2DisplayUnit","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2DisplayUnit","text":"Source: FMISpec2.0.3[p.35]: 2.2.2 Definition of Units (UnitDefinitions)\n\nfmi2DisplayUnit(name, factor=1.0, offset=0.0)\n\nType for the optional “DisplayUnit” field(s) of an fmi2Unit.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Char","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Char","text":"Source: FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\n\nFMI2 Data Types To simplify porting, no C types are used in the function interfaces, but the alias types are defined in this section. All definitions in this section are provided in the header file “fmi2TypesPlatform.h”.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Variability","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Variability","text":"Source: FMISpec2.0.2[p.49]: 2.2.7 Definition of Model Variables (ModelVariables)\n\nEnumeration that defines the time dependency of the variable, in other words, it defines the time instants when a variable can change its value.\n\n\"constant\": The value of the variable never changes. \"fixed\": The value of the variable is fixed after initialization, in other words, after fmi2ExitInitializationMode was called the variable value does not change anymore. \"tunable\": The value of the variable is constant between external events (ModelExchange) and between Communication Points (Co-Simulation) due to changing variables with causality = \"parameter\" or \"input\" and variability = \"tunable\". Whenever a parameter or input signal with variability = \"tunable\" changes, an event is triggered externally (ModelExchange), or the change is performed at the next Communication Point (Co-Simulation) and the variables with variability = \"tunable\" and causality = \"calculatedParameter\" or \"output\" must be newly computed. \"discrete\": ModelExchange: The value of the variable is constant between external and internal events (= time, state, step events defined implicitly in the FMU). Co-Simulation: By convention, the variable is from a “real” sampled data system and its value is only changed at Communication Points (also inside the slave). \"continuous\": Only a variable of type = “Real” can be “continuous”. ModelExchange: No restrictions on value changes. Co-Simulation: By convention, the variable is from a differential The default is “continuous”. Added prefix \"fmi2\" to help with redefinition of constans in enums.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2VariableDependency","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2VariableDependency","text":"Mutable Struct representing existance and kind of dependencies of an Unknown on Known Variables in Continuous-Time and Event Mode (ME) and at Communication Points (CS)\n\nSee also FMI2.0.3 Spec fmi2VariableDependency [p.60]\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2DependencyKind","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2DependencyKind","text":"Types of dependency:\n\nfmi2DependencyKindDependent: no particular structure, f(v)\nfmi2DependencyKindConstant: constant factor, c*v (for Real valued variables only)\nfmi2DependencyKindFixed: tunable factor, p*v (for Real valued variables only)\nfmi2DependencyKindTunable [ToDo]\nfmi2DependencyKindDiscrete [ToDo]\n\nSource: FMI2.0.3 Spec for fmi2VariableDependency [p.60] \n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2EventInfo","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2EventInfo","text":"Source: FMISpec2.0.2[p.84]: 3.2.2 Evaluation of Model Equations\n\nIf return argument fmi2eventInfo.newDiscreteStatesNeeded = fmi2True, the FMU should stay in Event Mode, and the FMU requires to set new inputs to the FMU (fmi2SetXXX on inputs) to compute and get the outputs (fmi2GetXXX on outputs) and to call fmi2NewDiscreteStates again. Depending on the connection with other FMUs, the environment shall\n\ncall fmi2Terminate, if terminateSimulation = fmi2True is returned by at least one FMU.\ncall fmi2EnterContinuousTimeMode if all FMUs return newDiscreteStatesNeeded = fmi2False.\nstay in Event Mode otherwise.\n\nWhen the FMU is terminated, it is assumed that an appropriate message is printed by the logger function (see section 2.1.5) to explain the reason for the termination. If nominalsOfContinuousStatesChanged = fmi2True, then the nominal values of the states have changed due to the function call and can be inquired with fmi2GetNominalsOfContinuousStates. If valuesOfContinuousStatesChanged = fmi2True. then at least one element of the continuous state vector has changed its value due to the function call. The new values of the states can be retrieved with fmi2GetContinuousStates or individually for each state for which reinit = \"true\" by calling getReal. If no element of the continuous state vector has changed its value, valuesOfContinuousStatesChanged must return fmi2False. [If fmi2True would be returned in this case, an infinite event loop may occur.] If nextEventTimeDefined = fmi2True, then the simulation shall integrate at most until time = nextEventTime, and shall call fmi2EnterEventMode at this time instant. If integration is stopped before nextEventTime, for example, due to a state event, the definition of nextEventTime becomes obsolete.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Status","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Status","text":"Source: FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nStatus returned by functions. The status has the following meaning:\n\nfmi2OK – all well\nfmi2Warning – things are not quite right, but the computation can continue. Function “logger” was called in the model (see below), and it is expected that this function has shown the prepared information message to the user.\nfmi2Discard – this return status is only possible if explicitly defined for the corresponding function\n\n(ModelExchange: fmi2SetReal, fmi2SetInteger, fmi2SetBoolean, fmi2SetString, fmi2SetContinuousStates, fmi2GetReal, fmi2GetDerivatives, fmi2GetContinuousStates, fmi2GetEventIndicators; CoSimulation: fmi2SetReal, fmi2SetInteger, fmi2SetBoolean, fmi2SetString, fmi2DoStep, fmiGetXXXStatus): For “model exchange”: It is recommended to perform a smaller step size and evaluate the model equations again, for example because an iterative solver in the model did not converge or because a function is outside of its domain (for example sqrt()). If this is not possible, the simulation has to be terminated. For “co-simulation”: fmi2Discard is returned also if the slave is not able to return the required status information. The master has to decide if the simulation run can be continued. In both cases, function “logger” was called in the FMU (see below) and it is expected that this function has shown the prepared information message to the user if the FMU was called in debug mode (loggingOn = fmi2True). Otherwise, “logger” should not show a message.\n\nfmi2Error – the FMU encountered an error. The simulation cannot be continued with this FMU instance. If one of the functions returns fmi2Error, it can be tried to restart the simulation from a formerly stored FMU state by calling fmi2SetFMUstate.\n\nThis can be done if the capability flag canGetAndSetFMUstate is true and fmi2GetFMUstate was called before in non-erroneous state. If not, the simulation cannot be continued and fmi2FreeInstance or fmi2Reset must be called afterwards.4 Further processing is possible after this call; especially other FMU instances are not affected. Function “logger” was called in the FMU (see below), and it is expected that this function has shown the prepared information message to the user.\n\nfmi2Fatal – the model computations are irreparably corrupted for all FMU instances. [For example, due to a run-time exception such as access violation or integer division by zero during the execution of an fmi function]. Function “logger” was called in the FMU (see below), and it is expected that this function has shown the prepared information message to the user. It is not possible to call any other function for any of the FMU instances.\nfmi2Pending – this status is returned only from the co-simulation interface, if the slave executes the function in an asynchronous way. That means the slave starts to compute but returns immediately. The master has to call fmi2GetStatus(..., fmi2DoStepStatus) to determine if the slave has finished the computation. Can be returned only by fmi2DoStep and by fmi2GetStatus (see section 4.2.3).\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Annotation","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Annotation","text":"A not further specified annotation struct.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2ModelDescription","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2ModelDescription","text":"Source: FMISpec2.0.2[p.34]: 2.2.1 Definition of an FMU (fmiModelDescription)\n\nThe “ModelVariables” element of fmiModelDescription is the central part of the model description. It provides the static information of all exposed variables.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2FMUstate","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2FMUstate","text":"fmi2FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant. This allows to restart a simulation from a previous FMU state.\n\nSource: FMI2.0.3 Spec [p.17]; See also section 2.1.8\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2StatusKind","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2StatusKind","text":"Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nCoSimulation specific Enum representing state of FMU after fmi2DoStep returned fmi2Pending.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2VariableNamingConvention","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2VariableNamingConvention","text":"ToDo \n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Causality","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Causality","text":"Source: FMISpec2.0.2[p.48]: 2.2.7 Definition of Model Variables (ModelVariables)\n\nEnumeration that defines the causality of the variable. Allowed values of this enumeration:\n\n\"parameter\": Independent parameter (a data value that is constant during the simulation and is provided by the environment and cannot be used in connections). variability must be \"fixed\" or \"tunable\". initial must be exact or not present (meaning exact). \"calculatedParameter\": A data value that is constant during the simulation and is computed during initialization or when tunable parameters change. variability must be \"fixed\" or \"tunable\". initial must be \"approx\", \"calculated\" or not present (meaning calculated). \"input\": The variable value can be provided from another model or slave. It is not allowed to define initial. \"output\": The variable value can be used by another model or slave. The algebraic relationship to the inputs is defined via the dependencies attribute of . \"local\": Local variable that is calculated from other variables or is a continuous-time state (see section 2.2.8). It is not allowed to use the variable value in another model or slave. \"independent\": The independent variable (usually “time”). All variables are a function of this independent variable. variability must be \"continuous\". At most one ScalarVariable of an FMU can be defined as \"independent\". If no variable is defined as \"independent\", it is implicitly present with name = \"time\" and unit = \"s\". If one variable is defined as \"independent\", it must be defined as \"Real\" without a \"start\" attribute. It is not allowed to call function fmi2SetReal on an \"independent\" variable. Instead, its value is initialized with fmi2SetupExperiment and after initialization set by fmi2SetTime for ModelExchange and by arguments currentCommunicationPoint and communicationStepSize of fmi2DoStep for CoSimulation. [The actual value can be inquired with fmi2GetReal.] The default of causality is “local”. A continuous-time state must have causality = \"local\" or \"output\", see also section 2.2.8. [causality = \"calculatedParameter\" and causality = \"local\" with variability = \"fixed\" or \"tunable\" are similar. The difference is that a calculatedParameter can be used in another model or slave, whereas a local variable cannot. For example, when importing an FMU in a Modelica environment, a \"calculatedParameter\" should be imported in a public section as final parameter, whereas a \"local\" variable should be imported in a protected section of the model.] Added prefix \"fmi2\" to help with redefinition of constans in enums.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentState","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentState","text":"ToDo \n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/","page":"FMI2 Types in FMI Import/Core .jl","title":"FMI2 Types in FMI Import/Core .jl","text":"fmi2StructMD FMU2Solution FMIImport.fmi2ValueReferenceFormat FMU2Event FMU2ExecutionConfiguration","category":"page"},{"location":"fmi2_lowlevel_library_constants/#FMI2-Constants-in-FMI-Import/Core-.jl","page":"FMI2 Types in FMI Import/Core .jl","title":"FMI2 Constants in FMI Import/Core .jl","text":"","category":"section"},{"location":"fmi2_lowlevel_library_constants/","page":"FMI2 Types in FMI Import/Core .jl","title":"FMI2 Types in FMI Import/Core .jl","text":"fmi2True\nfmi2ComponentStateInstantiated\nfmi2ComponentStateInitializationMode\nfmi2ComponentStateEventMode\nfmi2ComponentStateContinuousTimeMode\nfmi2ComponentStateTerminated\nfmi2ComponentStateError\nfmi2ComponentStateFatal","category":"page"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2True","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2True","text":"Source: FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\n\nTo simplify porting, no C types are used in the function interfaces, but the alias types are defined in this section. All definitions in this section are provided in the header file “fmi2TypesPlatform.h”.\n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentStateInstantiated","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentStateInstantiated","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentStateInitializationMode","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentStateInitializationMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentStateEventMode","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentStateEventMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentStateContinuousTimeMode","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentStateContinuousTimeMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentStateTerminated","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentStateTerminated","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentStateError","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentStateError","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentStateFatal","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentStateFatal","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/","page":"FMI2 Types in FMI Import/Core .jl","title":"FMI2 Types in FMI Import/Core .jl","text":"fmi2False fmi2StatusOK fmi2StatusWarning fmi2StatusPending fmi2StatusError fmi2StatusDiscard fmi2StatusFatal","category":"page"},{"location":"fmi2_lowlevel_ME_functions/#FMI-for-Model-Exchange","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"","category":"section"},{"location":"fmi2_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"This chapter contains the interface description to access the equations of a dynamic system from a C program.","category":"page"},{"location":"fmi2_lowlevel_ME_functions/#Providing-Independent-Variables-and-Re-initialization-of-Caching","page":"FMI for Model Exchange","title":"Providing Independent Variables and Re-initialization of Caching","text":"","category":"section"},{"location":"fmi2_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"Depending on the situation, different variables need to be computed. In order to be efficient, it is important that the interface requires only the computation of variables that are needed in the present context. The state derivatives shall be reused from the previous call. This feature is called “caching of variables” in the sequel. Caching requires that the model evaluation can detect when the input arguments, like time or states, have changed.","category":"page"},{"location":"fmi2_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"fmi2SetTime\nfmi2SetContinuousStates","category":"page"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2SetTime","page":"FMI for Model Exchange","title":"FMICore.fmi2SetTime","text":"Source: FMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching\n\nSet a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).\n\n\n\n\n\nfmi2SetTime(c::FMU2Component, \n time::fmi2Real; \n soft::Bool=false,\n track::Bool=true,\n force::Bool=c.fmu.executionConfig.force,\n time_shift::Bool=c.fmu.executionConfig.autoTimeShift)\n\nSet a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ntime::fmi2Real: Argument time contains a value of type fmi2Real which is a alias type for Real data type. time sets the independent variable time t.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.\n\n-track::Bool=true: If the Keyword track = true\n\ntime_shift::Bool=c.fmu.executionConfig.autoTimeShift:\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching\n\nSee also fmi2SetTime.\n\n\n\n\n\nfmiSetTime(c::FMU2Component, t::Real)\n\nSet a new time instant and re-initialize caching of variables that depend on time.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nt::Real: Argument t contains a value of type Real. t sets the independent variable time t.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching\n\nSee also fmi2SetTime\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2SetContinuousStates","page":"FMI for Model Exchange","title":"FMICore.fmi2SetContinuousStates","text":"Source: FMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching\n\nSet a new (continuous) state vector and re-initialize caching of variables that depend on the states. Argument nx is the length of vector x and is provided for checking purposes\n\n\n\n\n\nfmiSetContinuousStates(c::FMU2Component,\n x::Union{AbstractArray{Float32},AbstractArray{Float64}})\n\nSet a new (continuous) state vector and reinitialize chaching of variables that depend on states.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nx::Union{AbstractArray{Float32},AbstractArray{Float64}}:Argument x is the AbstractArray of the vector values of Float64 or Float32.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching\n\nSee also fmi2SetContinuousStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#Evaluation-of-Model-Equations","page":"FMI for Model Exchange","title":"Evaluation of Model Equations","text":"","category":"section"},{"location":"fmi2_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"fmi2EnterEventMode\nfmi2NewDiscreteStates\nfmi2NewDiscreteStates!\nfmi2EnterContinuousTimeMode\nfmi2CompletedIntegratorStep\nfmi2CompletedIntegratorStep!\nfmi2GetDerivatives\nfmi2GetDerivatives!\nfmi2GetEventIndicators\nfmi2GetEventIndicators!\nfmi2GetContinuousStates\nfmi2GetContinuousStates!\nfmi2GetNominalsOfContinuousStates\nfmi2GetNominalsOfContinuousStates!","category":"page"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2EnterEventMode","page":"FMI for Model Exchange","title":"FMICore.fmi2EnterEventMode","text":"Source: FMISpec2.0.2[p.84]: 3.2.2 Evaluation of Model Equations\n\nThe model enters Event Mode from the Continuous-Time Mode and discrete-time equations may become active (and relations are not “frozen”).\n\n\n\n\n\nfmi2EnterEventMode(c::FMU2Component; soft::Bool=false)\n\nThe model enters Event Mode from the Continuous-Time Mode and discrete-time equations may become active (and relations are not “frozen”).\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2EnterEventMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMIImport.fmi2NewDiscreteStates","page":"FMI for Model Exchange","title":"FMIImport.fmi2NewDiscreteStates","text":"fmi2NewDiscreteStates(c::FMU2Component)\n\nReturns the next discrete states\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\neventInfo::fmi2EventInfo*: Strut with fmi2Boolean Variables\n\nMore detailed:\n\nnewDiscreteStatesNeeded::fmi2Boolean: If newDiscreteStatesNeeded = fmi2True the FMU should stay in Event Mode, and the FMU requires to set new inputs to the FMU to compute and get the outputs and to call\n\nfmi2NewDiscreteStates again. If all FMUs return newDiscreteStatesNeeded = fmi2False call fmi2EnterContinuousTimeMode.\n\nterminateSimulation::fmi2Boolean: If terminateSimulation = fmi2True call fmi2Terminate\nnominalsOfContinuousStatesChanged::fmi2Boolean: If nominalsOfContinuousStatesChanged = fmi2True then the nominal values of the states have changed due to the function call and can be inquired with fmi2GetNominalsOfContinuousStates.\nvaluesOfContinuousStatesChanged::fmi2Boolean: If valuesOfContinuousStatesChanged = fmi2True, then at least one element of the continuous state vector has changed its value due to the function call. The new values of the states can be retrieved with fmi2GetContinuousStates. If no element of the continuous state vector has changed its value, valuesOfContinuousStatesChanged must return fmi2False.\nnextEventTimeDefined::fmi2Boolean: If nextEventTimeDefined = fmi2True, then the simulation shall integrate at most until time = nextEventTime, and shall call fmi2EnterEventMode at this time instant. If integration is stopped before nextEventTime, the definition of nextEventTime becomes obsolete.\nnextEventTime::fmi2Real: next event if nextEventTimeDefined=fmi2True\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2NewDiscreteStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2NewDiscreteStates!","page":"FMI for Model Exchange","title":"FMICore.fmi2NewDiscreteStates!","text":"Source: FMISpec2.0.2[p.84]: 3.2.2 Evaluation of Model Equations\n\nThe FMU is in Event Mode and the super dense time is incremented by this call.\n\n\n\n\n\nfmi2NewDiscreteStates!(c::FMU2Component, eventInfo::fmi2EventInfo)\n\nThe FMU is in Event Mode and the super dense time is incremented by this call.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\neventInfo::fmi2EventInfo*: Strut with fmi2Boolean Variables that\n\nMore detailed:\n\nnewDiscreteStatesNeeded::fmi2Boolean: If newDiscreteStatesNeeded = fmi2True the FMU should stay in Event Mode, and the FMU requires to set new inputs to the FMU to compute and get the outputs and to call\n\nfmi2NewDiscreteStates again. If all FMUs return newDiscreteStatesNeeded = fmi2False call fmi2EnterContinuousTimeMode.\n\nterminateSimulation::fmi2Boolean: If terminateSimulation = fmi2True call fmi2Terminate\nnominalsOfContinuousStatesChanged::fmi2Boolean: If nominalsOfContinuousStatesChanged = fmi2True then the nominal values of the states have changed due to the function call and can be inquired with fmi2GetNominalsOfContinuousStates.\nvaluesOfContinuousStatesChanged::fmi2Boolean: If valuesOfContinuousStatesChanged = fmi2True, then at least one element of the continuous state vector has changed its value due to the function call. The new values of the states can be retrieved with fmi2GetContinuousStates. If no element of the continuous state vector has changed its value, valuesOfContinuousStatesChanged must return fmi2False.\nnextEventTimeDefined::fmi2Boolean: If nextEventTimeDefined = fmi2True, then the simulation shall integrate at most until time = nextEventTime, and shall call fmi2EnterEventMode at this time instant. If integration is stopped before nextEventTime, the definition of nextEventTime becomes obsolete.\nnextEventTime::fmi2Real: next event if nextEventTimeDefined=fmi2True\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2NewDiscreteStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2EnterContinuousTimeMode","page":"FMI for Model Exchange","title":"FMICore.fmi2EnterContinuousTimeMode","text":"Source: FMISpec2.0.2[p.85]: 3.2.2 Evaluation of Model Equations\n\nThe model enters Continuous-Time Mode and all discrete-time equations become inactive and all relations are “frozen”. This function has to be called when changing from Event Mode (after the global event iteration in Event Mode over all involved FMUs and other models has converged) into Continuous-Time Mode.\n\n\n\n\n\nfmi2EnterContinuousTimeMode(c::FMU2Component; soft::Bool=false)\n\nThe model enters Continuous-Time Mode and all discrete-time equations become inactive and all relations are “frozen”. This function has to be called when changing from Event Mode (after the global event iteration in Event Mode over all involved FMUs and other models has converged) into Continuous-Time Mode.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2EnterContinuousTimeMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMIImport.fmi2CompletedIntegratorStep","page":"FMI for Model Exchange","title":"FMIImport.fmi2CompletedIntegratorStep","text":"fmiCompletedIntegratorStep(c::FMU2Component, noSetFMUStatePriorToCurrentPoint::fmi2Boolean)\n\nThis function must be called by the environment after every completed step\n\nArguments\n\nC::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nnoSetFMUStatePriorToCurrentPoint::fmi2Boolean: Argument noSetFMUStatePriorToCurrentPoint = fmi2True if fmi2SetFMUState will no longer be called for time instants prior to current time in this simulation run.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\nenterEventMode::Array{fmi2Boolean, 1}: Returns enterEventMode[1] to signal to the environment if the FMU shall call fmi2EnterEventMode\nterminateSimulation::Array{fmi2Boolean, 1}: Returns terminateSimulation[1] to signal if the simulation shall be terminated.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2CompletedIntegratorStep.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2CompletedIntegratorStep!","page":"FMI for Model Exchange","title":"FMICore.fmi2CompletedIntegratorStep!","text":"Source: FMISpec2.0.2[p.85]: 3.2.2 Evaluation of Model Equations\n\nThis function must be called by the environment after every completed step of the integrator provided the capability flag completedIntegratorStepNotNeeded = false. If enterEventMode == fmi2True, the event mode must be entered If terminateSimulation == fmi2True, the simulation shall be terminated\n\n\n\n\n\nfmi2CompletedIntegratorStep!(c::FMU2Component,\n noSetFMUStatePriorToCurrentPoint::fmi2Boolean,\n enterEventMode::Ptr{fmi2Boolean},\n terminateSimulation::Ptr{fmi2Boolean})\n\nThis function must be called by the environment after every completed step of the integrator provided the capability flag completedIntegratorStepNotNeeded = false.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nnoSetFMUStatePriorToCurrentPoint::fmi2Boolean: Argument noSetFMUStatePriorToCurrentPoint = fmi2True if fmi2SetFMUState will no longer be called for time instants prior to current time in this simulation run.\nenterEventMode::Ref{fmi2Boolean}: Argument enterEventMode points to the return value (fmi2Boolean) which signals to the environment if the FMU shall call fmi2EnterEventMode. fmi2Boolean is an alias type for Boolean data type.\nterminateSimulation::Ref{fmi2Boolean}: Argument terminateSimulation points to the return value (fmi2Boolean) which signals signal if the simulation shall be terminated. fmi2Boolean is an alias type for Boolean data type.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2CompletedIntegratorStep!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMIImport.fmi2GetDerivatives","page":"FMI for Model Exchange","title":"FMIImport.fmi2GetDerivatives","text":"fmi2GetDerivatives(c::FMU2Component)\n\nCompute state derivatives at the current time instant and for the current states.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nderivatives::Array{fmi2Real}: Returns an array of fmi2Real values representing the derivatives for the current states. The ordering of the elements of the derivatives vector is identical to the ordering of the state\n\nvector.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetDerivatives!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2GetDerivatives!","page":"FMI for Model Exchange","title":"FMICore.fmi2GetDerivatives!","text":"Source: FMISpec2.0.2[p.86]: 3.2.2 Evaluation of Model Equations\n\nCompute state derivatives at the current time instant and for the current states.\n\n\n\n\n\nfmi2GetDerivatives!(c::FMU2Component,\n derivatives::AbstractArray{fmi2Real},\n nx::Csize_t)\n\nCompute state derivatives at the current time instant and for the current states.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nderivatives::AbstractArray{fmi2Real}: Argument derivatives contains values of type fmi2Real which is a alias type for Real data type.derivatives is the AbstractArray which contains the Real values of the vector that represent the derivatives. The ordering of the elements of the derivatives vector is identical to the ordering of the state vector.\nnx::Csize_t: Argument nx defines the length of vector derivatives and is provided for checking purposes\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetDerivatives!.\n\n\n\n\n\nfmi2GetDerivatives!(c::FMU2Component, derivatives::AbstractArray{fmi2Real})\n\nCompute state derivatives at the current time instant and for the current states.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nderivatives::Array{fmi2Real}: Stores fmi2Real values representing the derivatives for the current states. The ordering of the elements of the derivatives vector is identical to the ordering of the state vector.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetDerivatives!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMIImport.fmi2GetEventIndicators","page":"FMI for Model Exchange","title":"FMIImport.fmi2GetEventIndicators","text":"fmi2GetEventIndicators(c::FMU2Component)\n\nReturns the event indicators of the FMU\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\neventIndicators::Array{fmi2Real}:The event indicators are returned as a vector represented by an array of \"fmi2Real\" values.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetEventIndicators!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2GetEventIndicators!","page":"FMI for Model Exchange","title":"FMICore.fmi2GetEventIndicators!","text":"Source: FMISpec2.0.2[p.86]: 3.2.2 Evaluation of Model Equations\n\nCompute event indicators at the current time instant and for the current states.\n\n\n\n\n\nfmi2GetEventIndicators!(c::FMU2Component, eventIndicators::AbstractArray{fmi2Real}, ni::Csize_t)\n\nCompute event indicators at the current time instant and for the current states.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\neventIndicators::AbstractArray{fmi2Real}: Argument eventIndicators contains values of type fmi2Real which is a alias type for Real data type.eventIndicators is the AbstractArray which contains the Real values of the vector that represent the event indicators.\nni::Csize_t: Argument ni defines the length of vector eventIndicators and is provided for checking purposes\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetEventIndicators!.\n\n\n\n\n\nfmi2GetEventIndicators!(c::FMU2Component, eventIndicators::AbstractArray{fmi2Real})\n\nReturns the event indicators of the FMU.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\neventIndicators::AbstractArray{fmi2Real}:The event indicators are in an AbstractArray represented by an array of \"fmi2Real\" values.\n\nReturns\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMIImport.fmi2GetContinuousStates","page":"FMI for Model Exchange","title":"FMIImport.fmi2GetContinuousStates","text":"fmi2GetContinuousStates(c::FMU2Component)\n\nReturn the new (continuous) state vector x\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nx::Array{fmi2Real}: Returns an array of fmi2Real values representing the new continuous state vector x.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetEventIndicators!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2GetContinuousStates!","page":"FMI for Model Exchange","title":"FMICore.fmi2GetContinuousStates!","text":"Source: FMISpec2.0.2[p.86]: 3.2.2 Evaluation of Model Equations\n\nReturn the new (continuous) state vector x.\n\n\n\n\n\nfmi2GetContinuousStates!(c::FMU2Component,\n x::AbstractArray{fmi2Real},\n nx::Csize_t)\n\nStores the new (continuous) state vector in x.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nx::AbstractArray{fmi2Real}: Argument x contains values of type fmi2Real which is a alias type for Real data type.x is the AbstractArray which contains the Real values of the vector that represent the new state vector.\nnx::Csize_t: Argument nx defines the length of vector x and is provided for checking purposes\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetEventIndicators!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMIImport.fmi2GetNominalsOfContinuousStates","page":"FMI for Model Exchange","title":"FMIImport.fmi2GetNominalsOfContinuousStates","text":"fmi2GetNominalsOfContinuousStates(c::FMU2Component)\n\nReturn the new (continuous) state vector x\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nx::Array{fmi2Real}: Returns an array of fmi2Real values representing the new continuous state vector x.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetNominalsOfContinuousStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2GetNominalsOfContinuousStates!","page":"FMI for Model Exchange","title":"FMICore.fmi2GetNominalsOfContinuousStates!","text":"Source: FMISpec2.0.2[p.86]: 3.2.2 Evaluation of Model Equations\n\nReturn the nominal values of the continuous states.\n\n\n\n\n\nfmi2GetNominalsOfContinuousStates!(c::FMU2Component, x_nominal::AbstractArray{fmi2Real}, nx::Csize_t)\n\nStores the nominal values of the continuous states in x_nominal.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nx_nominal::AbstractArray{fmi2Real}: Argument x_nominal contains values of type fmi2Real which is a alias type for Real data type.x_nominal is the AbstractArray which contains the Real values of the vector that represent the nominal values of the continuous states.\nnx::Csize_t: Argument nx defines the length of vector x and is provided for checking purposes\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetEventIndicators!.\n\n\n\n\n\n","category":"function"},{"location":"examples/simulate/#Simulate-an-FMU-in-different-modes","page":"Simulate","title":"Simulate an FMU in different modes","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"Tutorial by Johannes Stoljar, Tobias Thummerer","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/simulate/#License","page":"Simulate","title":"License","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/simulate/#Motivation","page":"Simulate","title":"Motivation","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"This Julia Package FMI.jl is motivated by the use of simulation models in Julia. Here the FMI specification is implemented. FMI (Functional Mock-up Interface) is a free standard (fmi-standard.org) that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. The user can thus use simulation models in the form of an FMU (Functional Mock-up Units). Besides loading the FMU, the user can also set values for parameters and states and simulate the FMU both as co-simulation and model exchange simulation.","category":"page"},{"location":"examples/simulate/#Introduction-to-the-example","page":"Simulate","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"In this example we want to show how fast and easy the simulation for an FMU is. For this purpose, the FMU is simulated in co-simulation mode and in model-exchange mode. After the FMU has been simulated, the simulation results are displayed in a graph. The graphs of the different modes are compared with each other. The used model is a one-dimensional spring pendulum with friction. The object-orientated structure of the SpringFrictionPendulum1D can be seen in the following graphic.","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"(Image: svg) ","category":"page"},{"location":"examples/simulate/#Target-group","page":"Simulate","title":"Target group","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"The example is primarily intended for users who work in the field of simulations. The example wants to show how simple it is to use FMUs in Julia.","category":"page"},{"location":"examples/simulate/#Other-formats","page":"Simulate","title":"Other formats","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/simulate/#Getting-started","page":"Simulate","title":"Getting started","text":"","category":"section"},{"location":"examples/simulate/#Installation-prerequisites","page":"Simulate","title":"Installation prerequisites","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":" Description Command Alternative\n1. Enter Package Manager via ] \n2. Install FMI via add FMI add \" https://github.com/ThummeTo/FMI.jl \"\n3. Install FMIZoo via add FMIZoo add \" https://github.com/ThummeTo/FMIZoo.jl \"\n4. Install Plots via add Plots ","category":"page"},{"location":"examples/simulate/#Code-section","page":"Simulate","title":"Code section","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"# imports\nusing FMI\nusing FMIZoo\nusing Plots\nusing DifferentialEquations","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-013022a8647d is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]","category":"page"},{"location":"examples/simulate/#Simulation-setup","page":"Simulate","title":"Simulation setup","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"Next, the start time and end time of the simulation are set. Finally, a step size is specified to store the results of the simulation at these time steps.","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"tStart = 0.0\ntStep = 0.01\ntStop = 8.0\ntSave = tStart:tStep:tStop","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"0.0:0.01:8.0","category":"page"},{"location":"examples/simulate/#Import-FMU","page":"Simulate","title":"Import FMU","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"In the next lines of code the FMU model from FMIZoo.jl is loaded and the information about the FMU is shown.","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"# we use an FMU from the FMIZoo.jl\npathToFMU = get_model_filename(\"SpringFrictionPendulum1D\", \"Dymola\", \"2022x\")\n\nmyFMU = loadFMU(pathToFMU)\n# loadFMU(\"path/to/myFMU.fmu\"; unpackPath = \"path/to/unpacked/fmu/\")\n\ninfo(myFMU)","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"#################### Begin information for FMU ####################\n\tModel name:\t\t\tSpringFrictionPendulum1D\n\tFMI-Version:\t\t\t2.0\n\tGUID:\t\t\t\t{2e178ad3-5e9b-48ec-a7b2-baa5669efc0c}\n\tGeneration tool:\t\tDymola Version 2022x (64-bit), 2021-10-08\n\tGeneration time:\t\t2022-05-19T06:54:12Z\n\tVar. naming conv.:\t\tstructured\n\tEvent indicators:\t\t24\n\tInputs:\t\t\t\t0\n\tOutputs:\t\t\t0\n\tStates:\t\t\t\t2\n\n\n\t\t33554432 [\"mass.s\"]\n\t\t33554433 [\"mass.v\", \"mass.v_relfric\"]\n\tParameters:\t\t\t12\n\t\t16777216 [\"fricScale\"]\n\t\t16777217 [\"s0\"]\n\t\t16777218 [\"v0\"]\n\t\t16777219 [\"fixed.s0\"]\n\t\t...\n\t\t16777223 [\"mass.smin\"]\n\t\t16777224 [\"mass.v_small\"]\n\t\t16777225 [\"mass.L\"]\n\t\t16777226 [\"mass.m\"]\n\t\t16777227 [\"mass.fexp\"]\n\tSupports Co-Simulation:\t\ttrue\n\t\tModel identifier:\tSpringFrictionPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n\t\tVar. com. steps:\ttrue\n\t\tInput interpol.:\ttrue\n\t\tMax order out. der.:\t1\n\tSupports Model-Exchange:\ttrue\n\t\tModel identifier:\tSpringFrictionPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n##################### End information for FMU #####################","category":"page"},{"location":"examples/simulate/#Simulate-FMU","page":"Simulate","title":"Simulate FMU","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"In the following, the FMU is simulated in the two different simulation modes.","category":"page"},{"location":"examples/simulate/#Simulate-as-Co-Simulation","page":"Simulate","title":"Simulate as Co-Simulation","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"In the next steps the recorded values are defined. The first state is the position of the mass and the second state is the velocity. In the function simulateCS() the FMU is simulated in co-simulation mode (CS) with an adaptive step size but with fixed save points tSave. In addition, the start and end time and the recorded variables are specified.","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"vrs = [\"mass.s\", \"mass.v\"]\n\ndataCS = simulateCS(myFMU, (tStart, tStop); recordValues=vrs, saveat=tSave)","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"Model name:\n\tSpringFrictionPendulum1D\nSuccess:\n\ttrue\nf(x)-Evaluations:\n\tIn-place: 0\n\tOut-of-place: 0\nJacobian-Evaluations:\n\t∂ẋ_∂p: 0\n\t∂ẋ_∂x: 0\n\t∂ẋ_∂u: 0\n\t∂y_∂p: 0\n\t∂y_∂x: 0\n\t∂y_∂u: 0\n\t∂e_∂p: 0\n\t∂e_∂x: 0\n\t∂e_∂u: 0\n\t∂xr_∂xl: 0\nGradient-Evaluations:\n\t∂ẋ_∂t: 0\n\t∂y_∂t: 0\n\t∂e_∂t: 0\nCallback-Evaluations:\n\tCondition (event-indicators): 0\n\tTime-Choice (event-instances): 0\n\tAffect (event-handling): 0\n\tSave values: 0\n\tSteps completed: 0\nValues [801]:\n\t0.0\t(0.5, 0.0)\n\t0.01\t(0.5002235448486548, 0.042692491939260585)\n\t0.02\t(0.5008715291319449, 0.08568000508550636)\n\t0.03\t(0.5019478597521578, 0.12892136998736314)\n\t0.04\t(0.5034570452098334, 0.17232325681284336)\n\t0.05\t(0.5053993458877354, 0.2158440857658765)\n\t0.06\t(0.5077764240578201, 0.259420181133082)\n\t0.07\t(0.5105886522837868, 0.30295578207463486)\n\t0.08\t(0.5138351439717114, 0.3464184707972189)\n\t...\n\t8.0\t(1.0713672543616686, -1.0008145180651074e-10)\nEvents [0]:","category":"page"},{"location":"examples/simulate/#Simulate-as-Model-Exchange","page":"Simulate","title":"Simulate as Model-Exchange","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"In the function simulateME() the FMU is simulated in model-exchange mode (ME) with an adaptive step size but with fixed save points tSave. In addition, the start and end time are specified. In contrast to the co-simulation, the values to be stored are not specified here, since the states and events of the FMU are always output as well. The identifiers given above just correspond to the states of the FMU.","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"dataME = simulateME(myFMU, (tStart, tStop); saveat=tSave)","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"\u001b[34mSimulating ME-FMU ... 0%|█ | ETA: N/A\u001b[39m\n\n\u001b[34mSimulating ME-FMU ... 100%|██████████████████████████████| Time: 0:00:15\u001b[39m\n\n\n\n\n\nModel name:\n\tSpringFrictionPendulum1D\nSuccess:\n\ttrue\nf(x)-Evaluations:\n\tIn-place: 687\n\tOut-of-place: 0\nJacobian-Evaluations:\n\t∂ẋ_∂p: 0\n\t∂ẋ_∂x: 0\n\t∂ẋ_∂u: 0\n\t∂y_∂p: 0\n\t∂y_∂x: 0\n\t∂y_∂u: 0\n\t∂e_∂p: 0\n\t∂e_∂x: 0\n\t∂e_∂u: 0\n\t∂xr_∂xl: 0\nGradient-Evaluations:\n\t∂ẋ_∂t: 0\n\t∂y_∂t: 0\n\t∂e_∂t: 0\nCallback-Evaluations:\n\tCondition (event-indicators): 1451\n\tTime-Choice (event-instances): 0\n\tAffect (event-handling): 6\n\tSave values: 0\n\tSteps completed: 108\nStates [801]:\n\t0.0\t[0.5, 0.0]\n\t0.01\t[0.5002131418271644, 0.042689450728413396]\n\t0.02\t[0.500854887495059, 0.08570846016824456]\n\t0.03\t[0.5019281657516875, 0.12898390148079517]\n\t0.04\t[0.5034351795370763, 0.1724439361472896]\n\t0.05\t[0.5053774247453302, 0.21601821086567022]\n\t0.06\t[0.5077556992635474, 0.25963791323182644]\n\t0.07\t[0.510570115246666, 0.30323585206399734]\n\t0.08\t[0.5138201143130435, 0.34674645493266887]\n\t...\n\t8.0\t[1.0668392065867367, -1.0000102440003257e-10]\nEvents [6]:\n\tState-Event #11 @ 2.352941176471972e-11s (state-change: false)\n\tState-Event #11 @ 0.9940420391273855s (state-change: false)\n\tState-Event #19 @ 1.9882755413329303s (state-change: false)\n\tState-Event #11 @ 2.983039300931689s (state-change: false)\n\tState-Event #19 @ 3.97882965888157s (state-change: false)\n\tState-Event #11 @ 4.976975955923361s (state-change: false)","category":"page"},{"location":"examples/simulate/#Plotting-FMU","page":"Simulate","title":"Plotting FMU","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"After the simulation is finished the results of the FMU for the co-simulation and model-exchange mode can be plotted. In the plot for the FMU it can be seen that the oscillation continues to decrease due to the effect of the friction. If you simulate long enough, the oscillation comes to a standstill in a certain time.","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"plot(dataCS)","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"(Image: svg)","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"plot(dataME)","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"(Image: svg)","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"From both graphs it can be seen that the simulation calculates exactly the same results.","category":"page"},{"location":"examples/simulate/#Unload-FMU","page":"Simulate","title":"Unload FMU","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"unloadFMU(myFMU)","category":"page"},{"location":"examples/simulate/#Summary","page":"Simulate","title":"Summary","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"Based on this tutorial it can be seen that simulating in the different mode is very easy, and it only takes a few commands to simulate the FMU. ","category":"page"},{"location":"fmi3_lowlevel_library_constants/#FMI3-Types-in-FMI-Import/Core-.jl","page":"FMI3 Types in FMI Import/Core .jl","title":"FMI3 Types in FMI Import/Core .jl","text":"","category":"section"},{"location":"fmi3_lowlevel_library_constants/","page":"FMI3 Types in FMI Import/Core .jl","title":"FMI3 Types in FMI Import/Core .jl","text":"FMU3\nFMU3Instance\nFMU3InstanceEnvironment\nFMI3Struct\nfmi3Instance\nfmi3InstanceEnvironment\nfmi3InstanceState\nfmi3FMUState\nfmi3Initial\nfmi3ValueReference\nfmi3Variable\nfmi3VariableDependency\nfmi3Binary\nfmi3SimpleType\nfmi3Type\nfmi3Unit\nfmi3Boolean\nfmi3Byte\nfmi3Char\nfmi3Float32\nfmi3Float64\nfmi3Int8\nfmi3Int16\nfmi3Int32\nfmi3Int64\nfmi3UInt8\nfmi3UInt16\nfmi3UInt32\nfmi3UInt64\nfmi3String\nfmi3Clock\nfmi3IntervalQualifier\nfmi3Variability\nfmi3DependencyKind\nfmi3Status\nfmi3Annotation\nfmi3ModelDescription\nfmi3VariableNamingConvention\nfmi3Causality","category":"page"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.FMU3","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.FMU3","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.1. Header Files and Naming of Functions\n\nThe mutable struct representing an FMU in the FMI 3.0 Standard. Also contains the paths to the FMU and ZIP folder as well als all the FMI 3.0 function pointers\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.FMU3Instance","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.FMU3Instance","text":"Source: FMISpec3.0, Version D5ef1c1:: 2.2.1. Header Files and Naming of Functions\n\nThe mutable struct represents a pointer to an FMU specific data structure that contains the information needed to process the model equations or to process the co-simulation of the model/subsystem represented by the FMU.\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.FMU3InstanceEnvironment","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.FMU3InstanceEnvironment","text":"This is a pointer to a data structure in the importer. Using this pointer, data may be transferred between the importer and callback functions the importer provides with the instantiation functions.\n\nSource: FMISpec 3.0.1 [2.2.3. Platform Dependent Definitions]\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.FMI3Struct","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.FMI3Struct","text":"FMI3Struct\n\nA wildcard for FMI3 related structs, namely Union{FMU3, fmi3ModelDescription, FMU3Instance}.\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Instance","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Instance","text":"fmi3Instance (alias for Ptr{Cvoid})\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3InstanceEnvironment","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3InstanceEnvironment","text":"fmi3InstanceEnvironment (alias for Ptr{Cvoid})\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceState","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceState","text":"ToDo \n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3FMUState","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3FMUState","text":"fmi3FMUState (alias for Ptr{Cvoid})\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Initial","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Initial","text":"Source: FMISpec3.0, Version D5ef1c1:2.4.7.5. Type specific properties Enumeration that defines how the variable is initialized, i.e. if a fmi3Set{VariableType} is allowed and how the FMU internally treats this value in Instantiated and Initialization Mode. For the variable with causality = independent, the attribute initial must not be provided, because its start value is set with the startTime parameter of fmi3EnterInitializationMode.\n\nThe attribute initial for other variables can have the following values and meanings:\n\nexact - The variable is initialized with the start value (provided under the variable type element).\n\napprox - The start value provides an approximation that may be modified during initialization, e.g., if the FMU is part of an algebraic loop where the variable might be an iteration variable and start value is taken as initial value for an iterative solution process.\n\ncalculated - The variable is calculated from other variables during initialization. It is not allowed to provide a start value.\n\nIf initial is not present, it is defined by Table 22 based on causality and variability. If initial = exact or approx, or causality = input, a start value must be provided. If initial = calculated, or causality = independent, it is not allowed to provide a start value.\n\n[The environment decides when to use the start value of a variable with causality = input. Examples: * Automatic tests of FMUs are performed, and the FMU is tested by providing the start value as constant input. * For a Model Exchange FMU, the FMU might be part of an algebraic loop. If the input variable is iteration variable of this algebraic loop, then initialization starts with its start value.]\n\nIf fmi3Set{VariableType} is not called on a variable with causality = input, then the FMU must use the start value as value of this input.\n\nAdded prefix \"fmi3\" to help with redefinition of constans in enums.\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3ValueReference","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3ValueReference","text":"fmi3ValueReference (alias for Cuint)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Variable","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Variable","text":"Source: FMISpec3.0, Version D5ef1c1: 2.4.7. Definition of Model Variables\n\nA fmi3Variable describes the the type, name, valueRefence and optional information for every variable in the Modeldescription.\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3VariableDependency","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3VariableDependency","text":"Mutable Struct representing existance and kind of dependencies of an Unknown on Known Variables.\n\nSee also FMI3.0.1 Spec [fig 30]\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Binary","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Binary","text":"fmi3Binary (alias for Ptr{fmi3Byte})\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3SimpleType","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3SimpleType","text":"ToDo: Not implemented\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Type","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Type","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.1. Super State: FMU State Setable\n\nArgument fmuType defines the type of the FMU:\n\nfmi3ModelExchange: FMU with initialization and events; between events simulation of continuous systems is performed with external integrators from the environment.\nfmi3CoSimulation: Black box interface for co-simulation.\nfmi3ScheduledExecution: Concurrent computation of model partitions on a single computational resource (e.g. CPU-core)\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Unit","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Unit","text":"ToDo: Not implemented\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Boolean","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Boolean","text":"fmi3Boolean (alias for Cuchar)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Byte","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Byte","text":"fmi3Byte (alias for Cuchar)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Char","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Char","text":"fmi3Char (alias for Cuchar)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Float32","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Float32","text":"fmi3Float32 (alias for Cfloat)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Float64","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Float64","text":"fmi3Float64 (alias for Cdouble)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Int8","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Int8","text":"fmi3Int8 (alias for Cchar)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Int16","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Int16","text":"fmi3Int16 (alias for Cshort)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Int32","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Int32","text":"fmi3Int32 (alias for Cint)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Int64","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Int64","text":"fmi3Int64 (alias for Clonglong)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3UInt8","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3UInt8","text":"fmi3UInt8 (alias for Cuchar)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3UInt16","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3UInt16","text":"fmi3UInt16 (alias for Cushort)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3UInt32","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3UInt32","text":"fmi3UInt32 (alias for Cuint)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3UInt64","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3UInt64","text":"fmi3UInt64 (alias for Culonglong)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3String","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3String","text":"fmi3String (alias for Ptr{fmi3Char})\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Clock","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Clock","text":"fmi3Clock (alias for Cint)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3IntervalQualifier","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3IntervalQualifier","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.9.4. Scheduled Execution Enumeration that defines the IntervalQualifiers which describe how to treat the intervals and intervalCounters arguments. They have the following meaning: fmi3IntervalNotYetKnown - is returned for a countdown aperiodic Clock for which the next interval is not yet known. This qualifier value can only be returned directly after the Clock was active and previous calls to fmi3GetInterval never returned fmi3IntervalChanged (nor fmi3IntervalUnchanged). In Scheduled Execution this return value means that the corresponding model partition cannot be scheduled yet.\n\nfmi3IntervalUnchanged - is returned if a previous call to fmi3GetInterval already returned a value qualified with fmi3IntervalChanged which has not changed since. In Scheduled Execution this means the corresponding model partition has already been scheduled.\n\nfmi3IntervalChanged - is returned to indicate that the value for the interval has changed for this Clock. Any previously returned intervals (if any) are overwritten with the current value. The new Clock interval is relative to the time of the current Event Mode or Clock Update Mode in contrast to the interval of a periodic Clock, where the interval is defined as the time between consecutive Clock ticks. In Scheduled Execution this means that the corresponding model partition has to be scheduled or re-scheduled (if a previous call to fmi3GetInterval returned fmi3IntervalChanged).\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Variability","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Variability","text":"Source: FMISpec3.0, Version D5ef1c1: 2.4.7.4. Variable Attributes Enumeration that defines the time dependency of the variable, in other words, it defines the time instants when a variable can change its value. [The purpose of this attribute is to define when a result value needs to be inquired and to be stored. For example, discrete variables change their values only at event instants (ME) or at a communication point (CS and SE) and it is therefore only necessary to inquire them with fmi3Get{VariableType} and store them at event times.] Allowed values of this enumeration: constant - The value of the variable never changes.\n\nfixed - The value of the variable is fixed after initialization, in other words, after fmi3ExitInitializationMode was called the variable value does not change anymore.\n\ntunable - The value of the variable is constant between events (ME) and between communication points (CS and SE) due to changing variables with causality = parameter and variability = tunable. Whenever a parameter with variability = tunable changes, an event is triggered externally (ME or CS if events are supported), or the change is performed at the next communication point (CS and SE) and the variables with variability = tunable and causality = calculatedParameter or output must be newly computed. [tunable inputs are not allowed, see Table 18.]\n\ndiscrete - Model Exchange: The value of the variable is constant between external and internal events (= time, state, step events defined implicitly in the FMU). Co-Simulation: By convention, the variable is from a real sampled data system and its value is only changed at communication points (including event handling). During intermediateUpdate, discrete variables are not allowed to change. [If the simulation algorithm notices a change in a discrete variable during intermediateUpdate, the simulation algorithm will delay the change, raise an event with earlyReturnRequested == fmi3True and during the communication point it can change the discrete variable, followed by event handling.]\n\ncontinuous - Only a variable of type == fmi3GetFloat32 or type == fmi3GetFloat64 can be continuous. Model Exchange: No restrictions on value changes (see Section 4.1.1).\n\nThe default is continuous for variables of type and , and discrete for all other types.\n\nFor variables of type Clock and clocked variables the variability is always discrete or tunable.\n\n[Note that the information about continuous states is defined with elements in .]\n\nAdded prefix \"fmi3\" to help with redefinition of constans in enums.\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3DependencyKind","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3DependencyKind","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.10. Dependencies of Variables\n\nEnumeration that defines the dependencies a single unknown variable vunknown can have in relation to a known variable vknown. They have the following meaning: dependent - no particular structure, f(.., v_{known,i}, ..)\n\nOnly for floating point type unknowns v_{unknown}:\n\nconstant - constant factor, c ⋅ v_{known,i} where c is an expression that is evaluated before fmi3EnterInitializationMode is called.\n\nOnly for floating point type unknowns v_{unknown} in Event and Continuous-Time Mode (ME) and at communication points (CS and SE), and not for for Initialization Mode:\n\nfixed - fixed factor, p⋅v_{known,i} where p is an expression that is evaluated before fmi3ExitInitializationMode is called.\n\ntunable - tunable factor, p⋅v_{known,i} where p is an expression that is evaluated before fmi3ExitInitializationMode is called and in Event Mode due to event handling (ME) or at a communication point (CS and SE)\n\ndiscrete - discrete factor, d⋅v_{known,i} where d is an expression that is evaluated before fmi3ExitInitializationMode is called and in Event Mode due to an external or internal event or at a communication point (CS and SE).\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Status","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Status","text":"Defines the status flag (an enumeration of type fmi3Status defined in file fmi3FunctionTypes.h) that is returned by functions to indicate the success of the function call: The status has the following meaning:\n\nfmi3OK: The call was successful. The output argument values are defined.\nfmi3Warning: A non-critical problem was detected, but the computation can continue. The output argument values are defined. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings.\n\n[In certain applications, e.g. in a prototyping environment, warnings may be acceptable. For production environments warnings should be treated like errors unless they can be safely ignored.]\n\nfmi3Discard: The call was not successful and the FMU is in the same state as before the call. The output argument values are not defined, but the computation can continue. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. Advanced simulation algorithms can try alternative approaches to drive the simulation by calling the function with different arguments or calling another function. Otherwise the simulation algorithm has to treat this return code like fmi3Error and has to terminate the simulation.\n\n[Examples for usage of fmi3Discard are handling of min/max violation, or signal numerical problems during model evaluation forcing smaller step sizes.]\n\nfmi3Error: The call failed. The output argument values are undefined and the simulation cannot be continued. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. If a function returns fmi3Error, it is possible to restore a previously retrieved FMU state by calling fmi3SetFMUState. Otherwise fmi3FreeInstance or fmi3Reset must be called. When detecting illegal arguments or a function call not allowed in the current state according to the respective state machine, the FMU must return fmi3Error. Other instances of this FMU are not affected by the error.\nfmi3Fatal: The state of all instances of the model is irreparably corrupted. [For example, due to a runtime exception such as access violation or integer division by zero during the execution of an FMI function.] Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings, if still possible. It is not allowed to call any other function for any instance of the FMU.\n\nSource: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Annotation","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Annotation","text":"A not further specified annotation struct.\n\nSource: [ToDo]\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3ModelDescription","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3ModelDescription","text":"Source: FMISpec3.0, Version D5ef1c1: 2.4.1. Definition of an FMU\n\nThe central FMU data structure defining all variables of the FMU that are visible/accessible via the FMU functions.\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3VariableNamingConvention","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3VariableNamingConvention","text":"[TODO]\n\nSource: FMISpec3.0, Version D5ef1c1: 2.4.7.5.1. Variable Naming Conventions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Causality","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Causality","text":"Source: FMISpec3.0, Version D5ef1c1: 2.4.7.4. Variable Attributes Enumeration that defines the causality of the variable. Allowed values of this enumeration:\n\nparameter - A data value that is constant during the simulation (except for tunable parameters, see there) and is provided by the environment and cannot be used in connections, except for parameter propagation in terminals as described in Section 2.4.9.2.6. variability must be fixed or tunable. These parameters can be changed independently, unlike calculated parameters. initial must be exact or not present (meaning exact).\n\ncalculatedParameter - A data value that is constant during the simulation and is computed during initialization or when tunable parameters change. variability must be fixed or tunable. initial must be approx, calculated or not present (meaning calculated).\n\ninput - The variable value can be provided by the importer. [For example, the importer could forward the output of another FMU into this input.]\n\noutput - The variable value can be used by the importer. [For example, this value can be forwarded to an input of another FMU.] The algebraic relationship to the inputs can be defined via the dependencies attribute of .\n\nlocal - Local variables are:\n\ncontinuous states and their ContinuousStateDerivatives, ClockedStates, EventIndicators or InitialUnknowns. These variables are listed in the .\ninternal, intermediate variables or local clocks which can be read for debugging purposes and are not listed in the .\n\nSetting of local variables:\n\nIn Initialization Mode and before, local variables need to be set if they do have start values or are listed as .\nIn super state Initialized, fmi3Set{VariableType} must not be called on any of the local variables. Only in Model Exchange, continuous states can be set with fmi3SetContinuousStates. Local variable values must not be used as input to another model or FMU.\n\nindependent - The independent variable (usually time [but could also be, for example, angle]). All variables are a function of this independent variable. variability must be continuous. Exactly one variable of an FMU must be defined as independent. For Model Exchange the value is the last value set by fmi3SetTime. For Co-Simulation the value of the independent variable is lastSuccessfulTime return by the last call to fmi3DoStep or the value of argument intermediateUpdateTime of fmi3CallbackIntermediateUpdate. For Scheduled Execution the value of the independent variable is not defined. [The main purpose of this variable in Scheduled Execution is to define a quantity and unit for the independent variable.] The initial value of the independent variable is the value of the argument startTime of fmi3EnterInitializationMode for both Co-Simulation and Model Exchange. If the unit for the independent variable is not defined, it is implicitly s (seconds). If one variable is defined as independent, it must be defined with a floating point type without a start attribute. It is not allowed to call function fmi3Set{VariableType} on an independent variable. Instead, its value is initialized with fmi3EnterInitializationMode and after initialization set by fmi3SetTime for Model Exchange and by arguments currentCommunicationPoint and communicationStepSize of fmi3DoStep for Co-Simulation FMUs. [The actual value can be inquired with fmi3Get{VariableType}.]\n\nstructuralParameter - The variable value can only be changed in Configuration Mode or Reconfiguration Mode. The variability attribute must be fixed or tunable. The initial attribute must be exact or not present (meaning exact). The start attribute is mandatory. A structural parameter must not have a element. A structural parameter may be referenced in elements. If a structural parameters is referenced in elements, it must be of type and its start attribute must be larger than 0. The min attribute might still be 0.\n\nThe default of causality is local. A continuous-time state or an event indicator must have causality = local or output, see also Section 2.4.8.\n\n[causality = calculatedParameter and causality = local with variability = fixed or tunable are similar. The difference is that a calculatedParameter can be used in another model or FMU, whereas a local variable cannot. For example, when importing an FMU in a Modelica environment, a calculatedParameter should be imported in a public section as final parameter, whereas a local variable should be imported in a protected section of the model.]\n\nThe causality of variables of type Clock must be either input or output.\n\nAdded prefix \"fmi3\" to help with redefinition of constans in enums.\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMI3-Constants-in-FMI-Import/Core-.jl","page":"FMI3 Types in FMI Import/Core .jl","title":"FMI3 Constants in FMI Import/Core .jl","text":"","category":"section"},{"location":"fmi3_lowlevel_library_constants/","page":"FMI3 Types in FMI Import/Core .jl","title":"FMI3 Types in FMI Import/Core .jl","text":"fmi3True\nfmi3False\nfmi3StatusOK\nfmi3StatusWarning\nfmi3StatusDiscard\nfmi3StatusError\nfmi3StatusFatal\nfmi3InstanceStateInstantiated\nfmi3InstanceStateInitializationMode\nfmi3InstanceStateEventMode\nfmi3InstanceStateStepMode\nfmi3InstanceStateClockActivationMode\nfmi3InstanceStateContinuousTimeMode\nfmi3InstanceStateConfigurationMode\nfmi3InstanceStateReconfigurationMode\nfmi3InstanceStateTerminated\nfmi3InstanceStateError\nfmi3InstanceStateFatal\nfmi3VariableNamingConventionFlat\nfmi3VariableNamingConventionStructured\nfmi3CausalityParameter\nfmi3CausalityCalculatedParameter\nfmi3CausalityInput\nfmi3CausalityOutput\nfmi3CausalityLocal\nfmi3CausalityIndependent\nfmi3CausalityStructuralParameter","category":"page"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3True","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3True","text":"fmi2True\n\nEquals a binary true in FMI3.\n\nSource: [TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3False","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3False","text":"fmi2False\n\nEquals a binary false in FMI3.\n\nSource: [TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3StatusOK","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3StatusOK","text":"fmi3OK: The call was successful. The output argument values are defined.\n\nSource: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3StatusWarning","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3StatusWarning","text":"fmi3Warning: A non-critical problem was detected, but the computation can continue. The output argument values are defined. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. [In certain applications, e.g. in a prototyping environment, warnings may be acceptable. For production environments warnings should be treated like errors unless they can be safely ignored.]\n\nSource: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3StatusDiscard","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3StatusDiscard","text":"fmi3Discard: The call was not successful and the FMU is in the same state as before the call. The output argument values are not defined, but the computation can continue. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. Advanced simulation algorithms can try alternative approaches to drive the simulation by calling the function with different arguments or calling another function. Otherwise the simulation algorithm has to treat this return code like fmi3Error and has to terminate the simulation. [Examples for usage of fmi3Discard are handling of min/max violation, or signal numerical problems during model evaluation forcing smaller step sizes.]\n\nSource: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3StatusError","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3StatusError","text":"fmi3Error: The call failed. The output argument values are undefined and the simulation cannot be continued. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. If a function returns fmi3Error, it is possible to restore a previously retrieved FMU state by calling fmi3SetFMUState. Otherwise fmi3FreeInstance or fmi3Reset must be called. When detecting illegal arguments or a function call not allowed in the current state according to the respective state machine, the FMU must return fmi3Error. Other instances of this FMU are not affected by the error.\n\nSource: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3StatusFatal","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3StatusFatal","text":"fmi3Fatal: The state of all instances of the model is irreparably corrupted. [For example, due to a runtime exception such as access violation or integer division by zero during the execution of an FMI function.] Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings, if still possible. It is not allowed to call any other function for any instance of the FMU.\n\nSource: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateInstantiated","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateInstantiated","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateInitializationMode","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateInitializationMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateEventMode","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateEventMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateStepMode","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateStepMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateClockActivationMode","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateClockActivationMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateContinuousTimeMode","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateContinuousTimeMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateConfigurationMode","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateConfigurationMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateReconfigurationMode","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateReconfigurationMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateTerminated","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateTerminated","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateError","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateError","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateFatal","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateFatal","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3VariableNamingConventionFlat","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3VariableNamingConventionFlat","text":"[TODO]\n\nSource: FMISpec3.0, Version D5ef1c1: 2.4.7.5.1. Variable Naming Conventions\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3VariableNamingConventionStructured","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3VariableNamingConventionStructured","text":"[TODO]\n\nSource: FMISpec3.0, Version D5ef1c1: 2.4.7.5.1. Variable Naming Conventions\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3CausalityParameter","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3CausalityParameter","text":"[TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3CausalityCalculatedParameter","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3CausalityCalculatedParameter","text":"[TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3CausalityInput","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3CausalityInput","text":"[TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3CausalityOutput","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3CausalityOutput","text":"[TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3CausalityLocal","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3CausalityLocal","text":"[TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3CausalityIndependent","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3CausalityIndependent","text":"[TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3CausalityStructuralParameter","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3CausalityStructuralParameter","text":"[TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_functions/#FMI-Common-Concepts-for-Model-Exchange-and-Co-Simulation","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"In both cases, FMI defines an input/output block of a dynamic model where the distribution of the block, the platform dependent header file, several access functions, as well as the schema files are identical.","category":"page"},{"location":"fmi3_lowlevel_library_functions/#Creation,-Destruction-and-Logging-of-FMU-Instances","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Creation, Destruction and Logging of FMU Instances","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3InstantiateCoSimulation\nfmi3InstantiateCoSimulation!\nfmi3InstantiateModelExchange\nfmi3InstantiateModelExchange!\nfmi3InstantiateScheduledExecution\nfmi3InstantiateScheduledExecution!\nfmi3FreeInstance\nfmi3FreeInstance!\nfmi3SetDebugLogging","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3InstantiateCoSimulation","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3InstantiateCoSimulation","text":"Source: FMISpec3.0, Version D5ef1c1:: 2.3.1. Super State: FMU State Setable\n\nThis function instantiates a Co-Simulation FMU (see Section 4). It is allowed to call this function only if modelDescription.xml includes a element.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3InstantiateCoSimulation!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3InstantiateCoSimulation!","text":"fmi3InstantiateCoSimulation!(fmu::FMU3; instanceName::String=fmu.modelName, type::fmi3Type=fmu.type, pushInstances::Bool = true, visible::Bool = false, loggingOn::Bool = fmu.executionConfig.loggingOn, externalCallbacks::Bool = fmu.executionConfig.externalCallbacks, \n eventModeUsed::Bool = false, ptrIntermediateUpdate=nothing, logStatusOK::Bool=true, logStatusWarning::Bool=true, logStatusDiscard::Bool=true, logStatusError::Bool=true, logStatusFatal::Bool=true)\n\nCreate a new coSimulation instance of the given fmu, adds a logger if logginOn == true.\n\nArguments\n\nfmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.\n\nKeywords\n\ninstanceName::String=fmu.modelName: Name of the instance\ntype::fmi3Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present\npushInstances::Bool = true: Defines if the fmu instances should be pushed in the application.\nvisible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)\nloggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)\nexternalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi3CallbackFunctions, this may improve readability of logging messages (default=false)\neventModeUsed::Bool = false: Defines if the FMU instance can use the event mode. (default=false)\nptrIntermediateUpdate=nothing: Points to a function handling intermediate Updates (defalut=nothing) \nlogStatusOK::Bool=true whether to log status of kind fmi3OK (default=true)\nlogStatusWarning::Bool=true whether to log status of kind fmi3Warning (default=true)\nlogStatusDiscard::Bool=true whether to log status of kind fmi3Discard (default=true)\nlogStatusError::Bool=true whether to log status of kind fmi3Error (default=true)\nlogStatusFatal::Bool=true whether to log status of kind fmi3Fatal (default=true)\n\nReturns\n\nReturns the instance of a new FMU coSimulation instance.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.4.7 Model variables\nFMISpec3.0: 2.3.1. Super State: FMU State Setable\n\nSee also fmi3InstantiateCoSimulation.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3InstantiateModelExchange","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3InstantiateModelExchange","text":"Source: FMISpec3.0, Version D5ef1c1:: 2.3.1. Super State: FMU State Setable\n\nThis function instantiates a Model Exchange FMU (see Section 3). It is allowed to call this function only if modelDescription.xml includes a element.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3InstantiateModelExchange!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3InstantiateModelExchange!","text":"fmi3InstantiateModelExchange!(fmu::FMU3; instanceName::String=fmu.modelName, type::fmi3Type=fmu.type, pushInstances::Bool = true, visible::Bool = false, loggingOn::Bool = fmu.executionConfig.loggingOn, externalCallbacks::Bool = fmu.executionConfig.externalCallbacks,\n logStatusOK::Bool=true, logStatusWarning::Bool=true, logStatusDiscard::Bool=true, logStatusError::Bool=true, logStatusFatal::Bool=true)\n\nCreate a new modelExchange instance of the given fmu, adds a logger if logginOn == true.\n\nArguments\n\nfmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.\n\nKeywords\n\ninstanceName::String=fmu.modelName: Name of the instance\ntype::fmi3Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present\npushInstances::Bool = true: Defines if the fmu instances should be pushed in the application.\nvisible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)\nloggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)\nexternalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi3CallbackFunctions, this may improve readability of logging messages (default=false)\nlogStatusOK::Bool=true whether to log status of kind fmi3OK (default=true)\nlogStatusWarning::Bool=true whether to log status of kind fmi3Warning (default=true)\nlogStatusDiscard::Bool=true whether to log status of kind fmi3Discard (default=true)\nlogStatusError::Bool=true whether to log status of kind fmi3Error (default=true)\nlogStatusFatal::Bool=true whether to log status of kind fmi3Fatal (default=true)\n\nReturns\n\nReturns the instance of a new FMU modelExchange instance.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.4.7 Model variables\nFMISpec3.0: 2.3.1. Super State: FMU State Setable\n\nSee also fmi3InstantiateModelExchange.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3InstantiateScheduledExecution","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3InstantiateScheduledExecution","text":"Source: FMISpec3.0, Version D5ef1c1:: 2.3.1. Super State: FMU State Setable\n\nThis function instantiates a Scheduled Execution FMU (see Section 4). It is allowed to call this function only if modelDescription.xml includes a element.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3InstantiateScheduledExecution!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3InstantiateScheduledExecution!","text":"fmi3InstantiateScheduledExecution!(fmu::FMU3; ptrlockPreemption::Ptr{Cvoid}, ptrunlockPreemption::Ptr{Cvoid}, instanceName::String=fmu.modelName, type::fmi3Type=fmu.type, pushInstances::Bool = true, visible::Bool = false, loggingOn::Bool = fmu.executionConfig.loggingOn, externalCallbacks::Bool = fmu.executionConfig.externalCallbacks, \n logStatusOK::Bool=true, logStatusWarning::Bool=true, logStatusDiscard::Bool=true, logStatusError::Bool=true, logStatusFatal::Bool=true)\n\nCreate a new ScheduledExecution instance of the given fmu, adds a logger if logginOn == true.\n\nArguments\n\nfmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.\n\nKeywords\n\nptrlockPreemption::Ptr{Cvoid}: Points to a function handling locking Preemption\nptrunlockPreemption::Ptr{Cvoid}: Points to a function handling unlocking Preemption\ninstanceName::String=fmu.modelName: Name of the instance\ntype::fmi3Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present\npushInstances::Bool = true: Defines if the fmu instances should be pushed in the application.\nvisible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)\nloggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)\nexternalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi3CallbackFunctions, this may improve readability of logging messages (default=false)\nlogStatusOK::Bool=true whether to log status of kind fmi3OK (default=true)\nlogStatusWarning::Bool=true whether to log status of kind fmi3Warning (default=true)\nlogStatusDiscard::Bool=true whether to log status of kind fmi3Discard (default=true)\nlogStatusError::Bool=true whether to log status of kind fmi3Error (default=true)\nlogStatusFatal::Bool=true whether to log status of kind fmi3Fatal (default=true)\n\nReturns\n\nReturns the instance of a new FMU ScheduledExecution instance.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.4.7 Model variables\nFMISpec3.0: 2.3.1. Super State: FMU State Setable\n\nSee also fmi3InstantiateScheduledExecution.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3FreeInstance","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3FreeInstance","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.1. Super State: FMU State Setable\n\nDisposes the given instance, unloads the loaded model, and frees all the allocated memory and other resources that have been allocated by the functions of the FMU interface. If a NULL pointer is provided for argument instance, the function call is ignored (does not have an effect).\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3FreeInstance!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3FreeInstance!","text":"fmi3FreeInstance!(c::FMU3Instance; popInstance::Bool = true)\n\nDisposes the given instance, unloads the loaded model, and frees all the allocated memory and other resources that have been allocated by the functions of the FMU interface. If a null pointer is provided for “c”, the function call is ignored (does not have an effect).\n\nRemoves the component from the FMUs component list.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nKeywords\n\npopInstance::Bool=true: If the Keyword popInstance = true the freed instance is deleted\n\nReturns\n\nnothing\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0, Version D5ef1c1: 2.3.1. Super State: FMU State Setable\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetDebugLogging","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetDebugLogging","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.1. Super State: FMU State Setable\n\nThe function controls debug logging that is output via the logger function callback. If loggingOn = fmi3True, debug logging is enabled, otherwise it is switched off.\n\n\n\n\n\nfmi3SetDebugLogging(c::FMU3Instance, logginOn::fmi3Boolean, nCategories::UInt, categories::Ptr{Nothing})\n\nControl the use of the logging callback function, version independent.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nlogginOn::fmi3Boolean: If loggingOn = fmi3True, debug logging is enabled for the log categories specified in categories, otherwise it is disabled. Type fmi3Boolean is defined as an alias Type for the C-Type Boolean and is to be used with fmi3True and fmi3False.\nnCategories::UInt: Argument nCategories defines the length of the argument categories.\ncategories::Ptr{Nothing}:\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.1. Super State: FMU State Setable\n\nSee also fmi3SetDebugLogging.\n\n\n\n\n\nfmi3SetDebugLogging(c::FMU3Instance)\n\nSet the DebugLogger for the FMU.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nReturns a warning if str.state is not called in fmi3InstanceStateInstantiated.\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.1. Super State: FMU State Setable\n\nSee also fmi3SetDebugLogging.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#Initialization,-Termination,-and-Resetting-an-FMU","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Initialization, Termination, and Resetting an FMU","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"This section documents functions that deal with initialization, termination, resetting of an FMU.","category":"page"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3EnterInitializationMode\nfmi3ExitInitializationMode\nfmi3EnterConfigurationMode\nfmi3ExitConfigurationMode\nfmi3Terminate\nfmi3Reset","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3EnterInitializationMode","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3EnterInitializationMode","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.2. State: Instantiated\n\nInforms the FMU to enter Initialization Mode. Before calling this function, all variables with attribute can be set with the “fmi3SetXXX” functions (the ScalarVariable attributes are defined in the Model Description File, see section 2.4.7). Setting other variables is not allowed. Also sets the simulation start and stop time.\n\n\n\n\n\nfmi3EnterInitializationMode(c::FMU3Instance, toleranceDefined::fmi3Boolean,\n tolerance::fmi3Float64,\n startTime::fmi3Float64,\n stopTimeDefined::fmi3Boolean,\n stopTime::fmi3Float64)\n\nInforms the FMU to enter Initialization Mode. Before calling this function, all variables with attribute can be set with the “fmi3SetXXX” functions (the ScalarVariable attributes are defined in the Model Description File, see section 2.4.7). Setting other variables is not allowed. Also sets the simulation start and stop time.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\ntoleranceDefined::fmi3Boolean: Arguments toleranceDefined depend on the FMU type:\nfmuType = fmi3ModelExchange: If toleranceDefined = fmi3True, then the model is called with a numerical integration scheme where the step size is controlled by using tolerance for error estimation. In such a case, all numerical algorithms used inside the model (for example, to solve non-linear algebraic equations) should also operate with an error estimation of an appropriate smaller relative tolerance.\nfmuType = fmi3CoSimulation: If toleranceDefined = fmi3True, then the communication interval of the slave is controlled by error estimation. In case the slave utilizes a numerical integrator with variable step size and error estimation, it is suggested to use “tolerance” for the error estimation of the internal integrator (usually as relative tolerance). An FMU for Co-Simulation might ignore this argument.\ntolerance::fmi3Float64: Argument tolerance is the desired tolerance\nstartTime::fmi3Float64: Argument startTime can be used to check whether the model is valid within the given boundaries or to allocate memory which is necessary for storing results. It is the fixed initial value of the independent variable and if the independent variable is time, startTime is the starting time of initializaton.\nstopTimeDefined::fmi3Boolean: If stopTimeDefined = fmi3True, then stopTime is the defined final value of the independent variable and if stopTimeDefined = fmi3False, then no final value\n\nof the independent variable is defined and argument stopTime is meaningless.\n\nstopTime::fmi3Float64: Argument stopTime can be used to check whether the model is valid within the given boundaries or to allocate memory which is necessary for storing results. It is the fixed final value of the independent variable and if the independent variable is “time”, stopTime is the stop time of the simulation.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.2. State: Instantiated\n\nSee also fmi3EnterInitializationMode.\n\n\n\n\n\nfmi3EnterInitializationMode(c::FMU3Instance, startTime::Union{Real, Nothing} = nothing, stopTime::Union{Real, Nothing} = nothing; tolerance::Union{Real, Nothing} = nothing)\n\nFMU enters Initialization mode.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nstartTime::Union{Real, Nothing} = nothing: startTime is a real number which sets the value of starting time of the experiment. The default value is set automatically if doing nothing (default = nothing).\nstopTime::Union{Real, Nothing} = nothing: stopTime is a real number which sets the value of ending time of the experiment. The default value is set automatically if doing nothing (default = nothing).\n\nKeywords\n\ntolerance::Union{Real, Nothing} = nothing: tolerance is a real number which sets the value of tolerance range. The default value is set automatically if doing nothing (default = nothing).\n\nReturns\n\nReturns a warning if str.state is not called in fmi3InstanceStateInstantiated.\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.2. State: Instantiated\n\nSee also fmi3EnterInitializationMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3ExitInitializationMode","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3ExitInitializationMode","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.3. State: Initialization Mode\n\nInforms the FMU to exit Initialization Mode.\n\n\n\n\n\nfmi3ExitInitializationMode(c::FMU3Instance)\n\nInforms the FMU to exit Initialization Mode.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.3. State: Initialization Mode\n\nSee also fmi3ExitInitializationMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3EnterConfigurationMode","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3EnterConfigurationMode","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.2. State: Instantiated\n\nIf the importer needs to change structural parameters, it must move the FMU into Configuration Mode using fmi3EnterConfigurationMode.\n\n\n\n\n\nfmi3EnterConfigurationMode(c::FMU3Instance; soft::Bool=false)\n\nIf the importer needs to change structural parameters, it must move the FMU into Configuration Mode using fmi3EnterConfigurationMode.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.2. State: Instantiated\n\nSee also fmi3EnterConfigurationMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3ExitConfigurationMode","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3ExitConfigurationMode","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.6. State: Configuration Mode\n\nExits the Configuration Mode and returns to state Instantiated.\n\n\n\n\n\nfmi3ExitConfigurationMode(c::FMU3Instance; soft::Bool=false)\n\nExits the Configuration Mode and returns to state Instantiated.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.6. State: Configuration Mode\n\nSee also fmi3ExitConfigurationMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3Terminate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3Terminate","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.4. Super State: Initialized\n\nInforms the FMU that the simulation run is terminated.\n\n\n\n\n\nfmi3Terminate(c::FMU3Instance; soft::Bool=false)\n\nInforms the FMU that the simulation run is terminated.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.4. Super State: Initialized\n\nSee also fmi3Terminate.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3Reset","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3Reset","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.1. Super State: FMU State Setable\n\nIs called by the environment to reset the FMU after a simulation run. The FMU goes into the same state as if fmi3InstantiateXXX would have been called.\n\n\n\n\n\nfmi3Reset(c::FMU3Instance; soft::Bool = false)\n\nIs called by the environment to reset the FMU after a simulation run. The FMU goes into the same state as if fmi3InstantiateXXX would have been called.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.1. Super State: FMU State Setable\n\nSee also fmi3Reset.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#Getting-and-Setting-Variable-Values","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Getting and Setting Variable Values","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"All variable values of an FMU are identified with a variable handle called “value reference”. The handle is defined in the modelDescription.xml file (as attribute “valueReference” in element “ScalarVariable”). Element “valueReference” might not be unique for all variables. If two or more variables of the same base data type (such as fmi3Float64) have the same valueReference, then they have identical values but other parts of the variable definition might be different (for example, min/max attributes).","category":"page"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3GetFloat32\nfmi3GetFloat32!\nfmi3GetFloat64\nfmi3GetFloat64!\nfmi3GetInt8\nfmi3GetInt8!\nfmi3GetInt16\nfmi3GetInt16!\nfmi3GetInt32\nfmi3GetInt32!\nfmi3GetInt64\nfmi3GetInt64!\nfmi3GetUInt8\nfmi3GetUInt8!\nfmi3GetUInt16\nfmi3GetUInt16!\nfmi3GetUInt32\nfmi3GetUInt32!\nfmi3GetUInt64\nfmi3GetUInt64!\nfmi3GetBoolean\nfmi3GetBoolean!\nfmi3GetString\nfmi3GetString!\nfmi3GetBinary\nfmi3GetBinary!\nfmi3SetFloat32\nfmi3SetFloat64\nfmi3SetInt8\nfmi3SetInt16\nfmi3SetInt32\nfmi3SetInt64\nfmi3SetUInt8\nfmi3SetUInt16\nfmi3SetUInt32\nfmi3SetUInt64\nfmi3SetBoolean\nfmi3SetString\nfmi3SetBinary","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetFloat32","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetFloat32","text":"fmi3GetFloat32(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Float32 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Float32}: returns values of an array of fmi3Float32 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetFloat32.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetFloat32!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetFloat32!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetFloat32!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Float32}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Float32}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetFloat32!.\n\n\n\n\n\nfmi3GetFloat32!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Float32})\n\nWrites the real values of an array of variables in the given field\n\nfmi3GetFloat32! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Float32}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetFloat32!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetFloat64","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetFloat64","text":"fmi3GetFloat64(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Float64 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Float64}: returns values of an array of fmi3Float64 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetFloat64.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetFloat64!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetFloat64!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetFloat64!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Float64}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Float64}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetFloat64!.\n\n\n\n\n\nfmi3GetFloat64!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Float64})\n\nWrites the real values of an array of variables in the given field\n\nfmi3GetFloat64! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Float64}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetFloat64!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetInt8","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetInt8","text":"fmi3GetInt8(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Int8 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Int8}: returns values of an array of fmi3Int8 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt8.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetInt8!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetInt8!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetInt8!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int8}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int8}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt8!.\n\n\n\n\n\nfmi3GetInt8!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Int8})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetInt8! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Int8}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt8!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetInt16","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetInt16","text":"fmi3GetInt16(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Int16 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Int16}: returns values of an array of fmi3Int16 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt16.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetInt16!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetInt16!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetInt16!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int16}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int16}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt16!.\n\n\n\n\n\nfmi3GetInt16!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Int16})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetInt16! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Int16}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt16!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetInt32","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetInt32","text":"fmi3GetInt32(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Int32 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Int32}: returns values of an array of fmi3Int32 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt32.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetInt32!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetInt32!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetInt32!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int32}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int32}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt32!.\n\n\n\n\n\nfmi3GetInt32!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Int32})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetInt32! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Int32}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt32!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetInt64","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetInt64","text":"fmi3GetInt64(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Int64 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Int64}: returns values of an array of fmi3Int64 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt64.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetInt64!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetInt64!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetInt64!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int64}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int64}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt64!.\n\n\n\n\n\nfmi3GetInt64!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Int64})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetInt64! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Int64}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt64!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetUInt8","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetUInt8","text":"fmi3GetUInt8(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3UInt8 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3UInt8}: returns values of an array of fmi3UInt8 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt8.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetUInt8!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetUInt8!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetUInt8!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt8}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt8}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt8!.\n\n\n\n\n\nfmi3GetUInt8!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3UInt8})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetUInt8! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3UInt8}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt8!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetUInt16","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetUInt16","text":"fmi3GetUInt16(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3UInt16 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3UInt16}: returns values of an array of fmi3UInt16 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt16.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetUInt16!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetUInt16!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetUInt16(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt16}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt16}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt16!.\n\n\n\n\n\nfmi3GetUInt16!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3UInt16})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetUInt16! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3UInt16}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt16!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetUInt32","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetUInt32","text":"fmi3GetUInt32(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3UInt32 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3UInt32}: returns values of an array of fmi3UInt32 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt32.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetUInt32!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetUInt32!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetUInt32!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt32}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt32}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt32!.\n\n\n\n\n\nfmi3GetUInt32!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3UInt32})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetUInt32! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3UInt32}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt32!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetUInt64","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetUInt64","text":"fmi3GetUInt64(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3UInt64 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3UInt64}: returns values of an array of fmi3UInt64 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt64.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetUInt64!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetUInt64!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetUInt64!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt64}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt64}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt64!.\n\n\n\n\n\nfmi3GetUInt64!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3UInt64})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetUInt64! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3UInt64}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt64!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetBoolean","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetBoolean","text":"fmi3GetBoolean(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Boolean variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Boolean}: returns values of an array of fmi3Boolean variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetBoolean.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetBoolean!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetBoolean!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetBoolean!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Boolean}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Boolean}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetBoolean!.\n\n\n\n\n\nfmi3GetBoolean!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Boolean})\n\nWrites the boolean values of an array of variables in the given field\n\nfmi3GetBoolean! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Boolean}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetBoolean!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetString","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetString","text":"fmi3GetString(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3String variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3String}: returns values of an array of fmi3String variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetString.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetString!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetString!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetString!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3String}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3String}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetString!.\n\n\n\n\n\nfmi3GetString!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3String})\n\nWrites the string values of an array of variables in the given field\n\nfmi3GetString! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3String}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetString!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetBinary","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetBinary","text":"fmi3GetBinary(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Binary variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Binary}: returns values of an array of fmi3Binary variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetBinary.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetBinary!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetBinary!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValues - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetBinary!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, valueSizes::AbstractArray{Csize_t}, value::AbstractArray{fmi3Binary}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalueSizes::AbstractArray{Csize_t}: Argument valueSizes defines the size of a binary element of each variable.\nvalue::AbstractArray{fmi3Binary}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetBinary!.\n\n\n\n\n\nfmi3GetBinary!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Binary})\n\nWrites the binary values of an array of variables in the given field\n\nfmi3GetBinary! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Binary}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetBinary!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetFloat32","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetFloat32","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetFloat32(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Float32}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Float32}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetFloat32.\n\n\n\n\n\nfmi3SetFloat32(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Float32}, fmi3Float32})\n\nSet the values of an array of real variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3Float32}, fmi3Float32}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetFloat32.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetFloat64","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetFloat64","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetFloat64(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Float64}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Float64}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetFloat64.\n\n\n\n\n\nfmi3SetFloat64(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Float64}, fmi3Float64})\n\nSet the values of an array of real variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3Float64}, fmi3Float64}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetFloat64.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetInt8","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetInt8","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetInt8(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int8}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int8}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\n\n\n\n\nfmi3SetInt8(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Int8}, fmi3Int8})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3Int8}, fmi3Int8}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetInt8.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetInt16","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetInt16","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetInt16(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int16}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int16}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetInt16.\n\n\n\n\n\nfmi3SetInt16(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Int16}, fmi3Int16})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3Int16}, fmi3Int16}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetInt16.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetInt32","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetInt32","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetInt32(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int32}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int32}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetInt32.\n\n\n\n\n\nfmi3SetInt32(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Int32}, fmi3Int32})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3Int32}, fmi3Int32}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetInt32.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetInt64","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetInt64","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetInt64(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int64}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int64}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetInt64.\n\n\n\n\n\nfmi3SetInt64(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Int64}, fmi3Int64})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3Int64}, fmi3Int64}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetInt64.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetUInt8","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetUInt8","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetUInt8(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt8}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt8}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetUInt8.\n\n\n\n\n\nfmi3SetUInt8(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3UInt8}, fmi3UInt8})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3UInt8}, fmi3UInt8}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetUInt8.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetUInt16","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetUInt16","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetUInt16(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt16}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt16}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\n\n\n\n\nfmi3SetUInt16(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3UInt16}, fmi3UInt16})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3UInt16}, fmi3UInt16}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetUInt16.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetUInt32","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetUInt32","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetInt32(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt32}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt32}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetUInt32.\n\n\n\n\n\nfmi3SetUInt32(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3UInt32}, fmi3UInt32})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3UInt32}, fmi3UInt32}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetUInt32.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetUInt64","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetUInt64","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetUInt64(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt64}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt64}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetUInt64.\n\n\n\n\n\nfmi3SetUInt64(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3UInt64}, fmi3UInt64})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3UInt64}, fmi3UInt64}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetUInt64.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetBoolean","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetBoolean","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetBoolean(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Boolean}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Boolean}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetBoolean.\n\n\n\n\n\nfmi3SetBoolean(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{Bool}, Bool})\n\nSet the values of an array of boolean variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{Bool}, Bool}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetBoolean.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetString","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetString","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetString(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3String}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3String}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetString.\n\n\n\n\n\nfmi3SetString(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{String}, String})\n\nSet the values of an array of string variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{String}, String}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetString.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetBinary","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetBinary","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetBinary(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, valueSizes::AbstractArray{Csize_t}, value::AbstractArray{fmi3Binary}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalueSizes::AbstractArray{Csize_t}: Argument valueSizes defines the size of a binary element of each variable.\nvalue::AbstractArray{fmi3Binary}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetBinary.\n\n\n\n\n\nfmi3SetBinary(c::FMU3Instance, vr::fmi3ValueReferenceFormat, valueSizes::Union{AbstractArray{Csize_t}, Csize_t}, values::Union{AbstractArray{fmi3Binary}, fmi3Binary})\n\nSet the values of an array of binary variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalueSizes::Union{AbstractArray{Csize_t}, Csize_t}: Argument valueSizes defines the size of a binary element of each variable.\nvalues::Union{AbstractArray{fmi3Binary}, fmi3Binary}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetBinary.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3Get fmi3Get! fmi3Set","category":"page"},{"location":"fmi3_lowlevel_library_functions/#Getting-and-Setting-the-Complete-FMU-State","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Getting and Setting the Complete FMU State","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"The FMU has an internal state consisting of all values that are needed to continue a simulation. This internal state consists especially of the values of the continuous-time states, iteration variables, parameter values, input values, delay buffers, file identifiers, and FMU internal status information. With the functions of this section, the internal FMU state can be copied and the pointer to this copy is returned to the environment. The FMU state copy can be set as actual FMU state, in order to continue the simulation from it.","category":"page"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3GetFMUState\nfmi3GetFMUState!\nfmi3SetFMUState\nfmi3FreeFMUState\nfmi3SerializeFMUState\nfmi3SerializeFMUState!\nfmi3SerializedFMUStateSize\nfmi3SerializedFMUStateSize!\nfmi3DeSerializeFMUState\nfmi3DeSerializeFMUState!\nfmi3UpdateDiscreteStates\nfmi3EvaluateDiscreteStates\nfmi3GetNominalsOfContinuousStates","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetFMUState","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetFMUState","text":"fmi3GetFMUState(c::FMU3Instance)\n\nMakes a copy of the internal FMU state and returns a pointer to this copy.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nReturn state is a pointer to a copy of the internal FMU state.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3GetFMUState.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetFMUState!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetFMUState!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.4. Getting and Setting the Complete FMU State\n\nfmi3GetFMUstate makes a copy of the internal FMU state and returns a pointer to this copy\n\n\n\n\n\nfmi3GetFMUState!(c::FMU3Instance, FMUstate::Ref{fmi3FMUState})\n\nMakes a copy of the internal FMU state and returns a pointer to this copy\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nFMUstate::Ref{fmi3FMUstate}:If on entry FMUstate == NULL, a new allocation is required. If FMUstate != NULL, then FMUstate points to a previously returned FMUstate that has not been modified since.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3GetFMUState!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetFMUState","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetFMUState","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.4. Getting and Setting the Complete FMU State\n\nfmi3SetFMUstate copies the content of the previously copied FMUstate back and uses it as actual new FMU state.\n\n\n\n\n\nfmi3SetFMUState(c::FMU3Instance, FMUstate::fmi3FMUState)\n\nCopies the content of the previously copied FMUstate back and uses it as actual new FMU state.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nFMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3SetFMUState.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3FreeFMUState","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3FreeFMUState","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.4. Getting and Setting the Complete FMU State\n\nfmi3FreeFMUstate frees all memory and other resources allocated with the fmi3GetFMUstate call for this FMUstate.\n\n\n\n\n\nfmi3FreeFMUState(c::FMU3Instance, FMUstate::Ref{fmi3FMUState})\n\nFrees all memory and other resources allocated with the fmi3GetFMUstate call for this FMUstate.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nFMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\n\n\n\n\nfmi3FreeFMUState!(c::FMU3Instance, state::fmi3FMUState)\n\nFree the allocated memory for the FMU state.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nstate::fmi3FMUState: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nReturn singleton instance of type Nothing, if there is no value to return (as in a C void function) or when a variable or field holds no value.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3SerializeFMUState","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3SerializeFMUState","text":"fmi3SerializeFMUState(c::FMU3Instance, state::fmi3FMUState)\n\nSerializes the data referenced by the pointer FMUstate and copies this data into the byte vector serializedState of length size to be provided by the environment.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nstate::fmi3FMUState: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nserializedState:: Array{fmi3Byte}: Return serializedState contains the copy of the serialized data referenced by the pointer FMUstate\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3SerializeFMUState.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SerializeFMUState!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SerializeFMUState!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.4. Getting and Setting the Complete FMU State\n\nfmi3SerializeFMUstate serializes the data which is referenced by pointer FMUstate and copies this data in to the byte vector serializedState of length size\n\n\n\n\n\nfmi3SerializeFMUState!(c::FMU3Instance, FMUstate::fmi3FMUState, serialzedState::AbstractArray{fmi3Byte}, size::Csize_t)\n\nSerializes the data which is referenced by pointer FMUState and copies this data in to the byte vector serializedState of length size, that must be provided by the environment.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nFMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\nserialzedState::AbstractArray{fmi3Byte}: Argument serializedState contains the copy of the serialized data referenced by the pointer FMUstate.\nsize::Ref{Csize_t}: Argument size is an object that safely references a value of type Csize_t and defines the size of the byte vector in which the FMUstate can be stored.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3SerializeFMUState!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3SerializedFMUStateSize","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3SerializedFMUStateSize","text":"fmi3SerializedFMUStateSize(c::FMU3Instance, state::fmi3FMUState)\n\nReturns the size of the byte vector in which the FMUstate can be stored.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nstate::fmi3FMUState: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nReturn size is an object that safely references a value of type Csize_t.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3SerializedFMUStateSize.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SerializedFMUStateSize!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SerializedFMUStateSize!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.4. Getting and Setting the Complete FMU State\n\nfmi3SerializedFMUstateSize returns the size of the byte vector which is needed to store FMUstate in it.\n\n\n\n\n\nfmi3SerializedFMUStateSize!(c::FMU3Instance, FMUstate::fmi3FMUState, size::Ref{Csize_t})\n\nFrees all memory and other resources allocated with the fmi3GetFMUstate call for this FMUstate.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nFMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\nsize::Ref{Csize_t}: Argument size is an object that safely references a value of type Csize_t and defines the size of the byte vector in which the FMUstate can be stored.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3SerializedFMUStateSize!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3DeSerializeFMUState","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3DeSerializeFMUState","text":"fmi3SerializeFMUState(c::FMU3Instance, state::fmi3FMUState)\n\nSerializes the data referenced by the pointer FMUstate and copies this data into the byte vector serializedState of length size to be provided by the environment.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nserializedState::Array{fmi3Byte}: Argument serializedState contains the fmi3Byte field to be deserialized.\n\nReturns\n\nReturn state is a pointer to a copy of the internal FMU state.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3DeSerializeFMUState.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3DeSerializeFMUState!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3DeSerializeFMUState!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.4. Getting and Setting the Complete FMU State\n\nfmi3DeSerializeFMUstate deserializes the byte vector serializedState of length size, constructs a copy of the FMU state and returns FMUstate, the pointer to this copy.\n\n\n\n\n\nfmi3DeSerializeFMUState!(c::FMU3Instance, serialzedState::AbstractArray{fmi3Byte}, size::Csize_t, FMUstate::Ref{fmi3FMUState})\n\nDeserializes the byte vector serializedState of length size, constructs a copy of the FMU state and stores the FMU state in the given address of the reference FMUstate, the pointer to this copy.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nFMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\nserialzedState::AbstractArray{fmi3Byte}: Argument serializedState contains the copy of the serialized data referenced by the pointer FMUstate.\nsize::Ref{Csize_t}: Argument size is an object that safely references a value of type Csize_t and defines the size of the byte vector in which the FMUstate can be stored.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3DeSerializeFMUState!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3UpdateDiscreteStates","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3UpdateDiscreteStates","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.5. State: Event Mode\n\nThis function is called to signal a converged solution at the current super-dense time instant. fmi3UpdateDiscreteStates must be called at least once per super-dense time instant.\n\n\n\n\n\nfmi3UpdateDiscreteStates(c::FMU3Instance, discreteStatesNeedUpdate::Ref{fmi3Boolean}, terminateSimulation::Ref{fmi3Boolean}, \n nominalsOfContinuousStatesChanged::Ref{fmi3Boolean}, valuesOfContinuousStatesChanged::Ref{fmi3Boolean},\n nextEventTimeDefined::Ref{fmi3Boolean}, nextEventTime::Ref{fmi3Float64})\n\nThis function is called to signal a converged solution at the current super-dense time instant. fmi3UpdateDiscreteStates must be called at least once per super-dense time instant.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\ndiscreteStatesNeedUpdate::Ref{fmi3Boolean}: \nterminateSimulation::Ref{fmi3Boolean}: \nnominalsOfContinuousStatesChanged::Ref{fmi3Boolean}: \nvaluesOfContinuousStatesChanged::Ref{fmi3Boolean}: \nnextEventTimeDefined::Ref{fmi3Boolean}: \nnextEventTime::Ref{fmi3Float64}: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.5. State: Event Mode\n\n\n\n\n\nfmi3UpdateDiscreteStates(c::FMU3Instance)\n\nThis function is called to signal a converged solution at the current super-dense time instant. fmi3UpdateDiscreteStates must be called at least once per super-dense time instant. Results are returned, use fmi3UpdateDiscreteStates! for the inplace variant.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\ndiscreteStatesNeedUpdate\nterminateSimulation\nnominalsOfContinuousStatesChanged\nvaluesOfContinuousStatesChanged\nnextEventTimeDefined\nnextEventTime\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.3.5. State: Event Mode\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3EvaluateDiscreteStates","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3EvaluateDiscreteStates","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.3. State: Initialization Mode\n\nThis function is called to trigger the evaluation of fdisc to compute the current values of discrete states from previous values. The FMU signals the support of fmi3EvaluateDiscreteStates via the capability flag providesEvaluateDiscreteStates.\n\n\n\n\n\nfmi3EvaluateDiscreteStates(c::FMU3Instance)\n\nThis function is called to trigger the evaluation of fdisc to compute the current values of discrete states from previous values. The FMU signals the support of fmi3EvaluateDiscreteStates via the capability flag providesEvaluateDiscreteStates.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.3. State: Initialization Mode\n\nSee also fmi3EvaluateDiscreteStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetNominalsOfContinuousStates","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetNominalsOfContinuousStates","text":"fmi3GetNominalsOfContinuousStates(c::FMU3Instance)\n\nReturn the nominal values of the continuous states.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nx::Array{fmi3Float64}: Returns an array of fmi3Float64 values representing the new nominals of continuous state vector x.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.3.3. State: Initialization Mode\n\nSee also fmi3GetNominalsOfContinuousStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#Getting-Partial-Dervatives","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Getting Partial Dervatives","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"It is optionally possible to provide evaluation of partial derivatives for an FMU. For Model Exchange, this means computing the partial derivatives at a particular time instant. For Co-Simulation, this means to compute the partial derivatives at a particular communication point. One function is provided to compute directional derivatives. This function can be used to construct the desired partial derivative matrices.","category":"page"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3GetDirectionalDerivative\nfmi3GetDirectionalDerivative!\nfmi3GetContinuousStateDerivatives\nfmi3GetContinuousStateDerivatives!\nfmi3GetAdjointDerivative\nfmi3GetAdjointDerivative!\nfmi3GetOutputDerivatives\nfmi3GetOutputDerivatives!","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetDirectionalDerivative","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetDirectionalDerivative","text":"fmi3GetDirectionalDerivative(c::FMU3Instance,\n unknowns::AbstractArray{fmi3ValueReference},\n knowns::AbstractArray{fmi3ValueReference},\n seed::AbstractArray{fmi3Float64})\n\nWrapper Function call to compute the partial derivative with respect to the variables unknowns.\n\nComputes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)\n\nunknowns: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nknowns: Real input variables of function h that changes its value in the actual Mode.\nrest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔunknowns = (δh / δknowns) Δknowns\n\nArguments\n\nc::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nunknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).\nknowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).\nseed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.\n\nReturns\n\nsensitivity::Array{fmi3Float64}: Return sensitivity contains the directional derivative vector values.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.11. Getting Partial Derivatives\n\nSee also fmi3GetDirectionalDerivative.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetDirectionalDerivative!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetDirectionalDerivative!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.11. Getting Partial Derivatives\n\nThis function computes the directional derivatives v{sensitivity} = J ⋅ v{seed} of an FMU.\n\nunknowns - contains value references to the unknowns.\n\nnUnknowns - contains the length of argument unknowns.\n\nknowns - contains value references of the knowns.\n\nnKnowns - contains the length of argument knowns.\n\nseed - contains the components of the seed vector.\n\nnSeed - contains the length of seed.\n\nsensitivity - contains the components of the sensitivity vector.\n\nnSensitivity - contains the length of sensitivity.\n\nThis function can only be called if the 'ProvidesDirectionalDerivatives' tag in the ModelDescription is set.\n\n\n\n\n\nfmi3GetDirectionalDerivative!(c::FMU3Instance,\n unknowns::AbstractArray{fmi3ValueReference},\n nUnknowns::Csize_t,\n knowns::AbstractArray{fmi3ValueReference},\n nKnowns::Csize_t,\n seed::AbstractArray{fmi3Float64},\n nSeed::Csize_t,\n sensitivity::AbstractArray{fmi3Float64},\n nSensitivity::Csize_t)\n\nWrapper Function call to compute the partial derivative with respect to the variables unknowns.\n\nComputes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)\n\nunknowns: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nknowns: Real input variables of function h that changes its value in the actual Mode.\nrest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔunknowns = (δh / δknowns) Δknowns\n\nArguments\n\nc::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nunknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).\nnUnknowns::Csize_t:\nknowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).\nnKnowns::Csize_t:\nseed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.\nnKnowns::Csize_t:\nsensitivity::AbstractArray{fmi3Float64}: Stores the directional derivative vector values.\nnKnowns::Csize_t:\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.11. Getting Partial Derivatives\n\nSee also fmi3GetDirectionalDerivative.\n\n\n\n\n\nfmi3GetDirectionalDerivative!(c::FMU3Instance,\n unknowns::AbstractArray{fmi3ValueReference},\n knowns::AbstractArray{fmi3ValueReference},\n sensitivity::AbstractArray{fmi3Float64},\n seed::AbstractArray{fmi3Float64})\n\nWrapper Function call to compute the partial derivative with respect to the variables unknowns.\n\nComputes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)\n\nunknowns: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nknowns: Real input variables of function h that changes its value in the actual Mode.\nrest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔunknowns = (δh / δknowns) Δknowns\n\nArguments\n\nc::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nunknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).\nknowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).\nsensitivity::AbstractArray{fmi3Float64}: Stores the directional derivative vector values.\nseed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.11. Getting Partial Derivatives\n\nSee also fmi3GetDirectionalDerivative!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetContinuousStateDerivatives","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetContinuousStateDerivatives","text":"fmi3GetContinuousStateDerivatives(c::FMU3Instance)\n\nCompute state derivatives at the current time instant and for the current states.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nderivatives::Array{fmi3Float64}: Returns an array of fmi3Float64 values representing the derivatives for the current states. The ordering of the elements of the derivatives vector is identical to the ordering of the state\n\nvector.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3GetContinuousStateDerivatives.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetContinuousStateDerivatives!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetContinuousStateDerivatives!","text":"Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode\n\nCompute first-oder state derivatives at the current time instant and for the current states.\n\n\n\n\n\nfmi3GetContinuousStateDerivatives!(c::FMU3Instance,\n derivatives::AbstractArray{fmi3Float64},\n nx::Csize_t)\n\nCompute state derivatives at the current time instant and for the current states.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nderivatives::AbstractArray{fmi3Float64}: Argument derivatives contains values of type fmi3Float64 which is a alias type for Real data type.derivatives is the AbstractArray which contains the Real values of the vector that represent the derivatives. The ordering of the elements of the derivatives vector is identical to the ordering of the state vector.\nnx::Csize_t: Argument nx defines the length of vector derivatives and is provided for checking purposes\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3GetContinuousStateDerivatives!.\n\n\n\n\n\nfmi3GetContinuousStateDerivatives!(c::FMU3Instance, derivatives::Array{fmi3Float64})\n\nCompute state derivatives at the current time instant and for the current states.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nderivatives::AbstractArray{fmi3Float64}: Argument derivatives contains values of type fmi3Float64 which is a alias type for Real data type.derivatives is the AbstractArray which contains the Real values of the vector that represent the derivatives. The ordering of the elements of the derivatives vector is identical to the ordering of the state vector.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3GetContinuousStateDerivatives!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetAdjointDerivative","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetAdjointDerivative","text":"fmi3GetAdjointDerivative(c::FMU3Instance,\n unknowns::AbstractArray{fmi3ValueReference},\n knowns::AbstractArray{fmi3ValueReference},\n seed::AbstractArray{fmi3Float64})\n\nWrapper Function call to compute the partial derivative with respect to the variables unknowns.\n\nComputes the adjoint derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)\n\nunknowns: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nknowns: Real input variables of function h that changes its value in the actual Mode.\nrest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔunknowns = (δh / δknowns) Δknowns\n\nArguments\n\nc::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nunknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).\nknowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).\nseed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.\n\nReturns\n\nsensitivity::Array{fmi3Float64}: Return sensitivity contains the directional derivative vector values.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.11. Getting Partial Derivatives\n\nSee also fmi3GetAdjointDerivative.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetAdjointDerivative!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetAdjointDerivative!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.11. Getting Partial Derivatives\n\nThis function computes the adjoint derivatives v^T{sensitivity}= v^T{seed} ⋅ J of an FMU.\n\nunknowns - contains value references to the unknowns.\n\nnUnknowns - contains the length of argument unknowns.\n\nknowns - contains value references of the knowns.\n\nnKnowns - contains the length of argument knowns.\n\nseed - contains the components of the seed vector.\n\nnSeed - contains the length of seed.\n\nsensitivity - contains the components of the sensitivity vector.\n\nnSensitivity - contains the length of sensitivity.\n\nThis function can only be called if the 'ProvidesAdjointDerivatives' tag in the ModelDescription is set.\n\n\n\n\n\nfmi3GetAdjointDerivative!(c::FMU3Instance,\n unknowns::AbstractArray{fmi3ValueReference},\n nUnknowns::Csize_t,\n knowns::AbstractArray{fmi3ValueReference},\n nKnowns::Csize_t,\n seed::AbstractArray{fmi3Float64},\n nSeed::Csize_t,\n sensitivity::AbstractArray{fmi3Float64},\n nSensitivity::Csize_t)\n\nWrapper Function call to compute the partial derivative with respect to the variables unknowns.\n\nComputes the adjoint derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)\n\nunknowns: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nknowns: Real input variables of function h that changes its value in the actual Mode.\nrest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔunknowns = (δh / δknowns) Δknowns\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nunknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).\nnUnknowns::Csize_t:\nknowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).\nnKnowns::Csize_t:\nseed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.\nnKnowns::Csize_t:\nsensitivity::AbstractArray{fmi3Float64}: Stores the adjoint derivative vector values.\nnKnowns::Csize_t:\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.11. Getting Partial Derivatives\n\nSee also fmi3GetAdjointDerivative!.\n\n\n\n\n\nfmi3GetAdjointDerivative!(c::FMU3Instance,\n unknowns::AbstractArray{fmi3ValueReference},\n knowns::AbstractArray{fmi3ValueReference},\n sensitivity::AbstractArray{fmi3Float64},\n seed::AbstractArray{fmi3Float64})\n\nWrapper Function call to compute the partial derivative with respect to the variables unknowns.\n\nComputes the adjoint derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)\n\nunknowns: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nknowns: Real input variables of function h that changes its value in the actual Mode.\nrest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔunknowns = (δh / δknowns) Δknowns\n\nArguments\n\nc::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nunknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).\nknowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).\nsensitivity::AbstractArray{fmi3Float64}: Stores the directional derivative vector values.\nseed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.11. Getting Partial Derivatives\n\nSee also fmi3GetAdjointDerivative!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetOutputDerivatives","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetOutputDerivatives","text":"fmi3GetOutputDerivatives!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nValueReferences::Csizet, order::AbstractArray{fmi3Int32}, values::AbstractArray{fmi3Float64}, nValues::Csizet)\n\nRetrieves the n-th derivative of output values.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::Array{fmi3ValueReference}: Argument vr is an array of nValueReferences value handels called \"ValueReference\" that t define the variables whose derivatives shall be set.\norder::Array{fmi3Int32}: Argument order is an array of fmi3Int32 values witch specifys the corresponding order of derivative of the real input variable.\n\nReturns\n\nvalue::AbstactArray{fmi3Float64}: Return value is an array which represents a vector with the values of the derivatives.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.12. Getting Derivatives of Continuous Outputs\n\nSee also fmi3GetOutputDerivatives.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetOutputDerivatives!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetOutputDerivatives!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.12. Getting Derivatives of Continuous Outputs\n\nRetrieves the n-th derivative of output values.\n\nvalueReferences - is a vector of value references that define the variables whose derivatives shall be retrieved. If multiple derivatives of a variable shall be retrieved, list the value reference multiple times.\n\nnValueReferences - is the dimension of the arguments valueReferences and orders.\n\norders - contains the orders of the respective derivative (1 means the first derivative, 2 means the second derivative, …, 0 is not allowed). If multiple derivatives of a variable shall be retrieved, provide a list of them in the orders array, corresponding to a multiply occurring value reference in the valueReferences array. The highest order of derivatives retrievable can be determined by the 'maxOutputDerivativeOrder' tag in the ModelDescription.\n\nvalues - is a vector with the values of the derivatives. The order of the values elements is derived from a twofold serialization: the outer level corresponds to the combination of a value reference (e.g., valueReferences[k]) and order (e.g., orders[k]), and the inner level to the serialization of variables as defined in Section 2.2.6.1. The inner level does not exist for scalar variables.\n\nnValues - is the size of the argument values. nValues only equals nValueReferences if all corresponding output variables are scalar variables.\n\n\n\n\n\nfmi3GetOutputDerivatives!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nValueReferences::Csize_t, order::AbstractArray{fmi3Int32}, values::AbstractArray{fmi3Float64}, nValues::Csize_t)\n\nRetrieves the n-th derivative of output values.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::Array{fmi3ValueReference}: Argument vr is an array of nValueReferences value handels called \"ValueReference\" that t define the variables whose derivatives shall be set.\nnValueReferences::Csize_t: Argument nValueReferences defines the size of vr.\norder::Array{fmi3Int32}: Argument order is an array of fmi3Int32 values witch specifys the corresponding order of derivative of the real input variable.\nvalues::Array{fmi3Float64}: Argument values is an array with the actual values of these variables.\nnValues::Csize_t: Argument nValues defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.12. Getting Derivatives of Continuous Outputs\n\nSee also fmi3GetOutputDerivatives!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3SampleDirectionalDerivative fmi3SampleDirectionalDerivative! fmi3GetJacobian fmi3GetJacobian! fmi3GetFullJacobian fmi3GetFullJacobian!","category":"page"},{"location":"fmi3_lowlevel_library_functions/#TODO:-Clockstuff","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"TODO: Clockstuff","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3GetIntervalDecimal!\nfmi3SetIntervalDecimal\nfmi3GetIntervalFraction!\nfmi3SetIntervalFraction\nfmi3GetShiftDecimal!\nfmi3GetShiftFraction!\nfmi3GetClock\nfmi3GetClock!\nfmi3SetClock\nfmi3ActivateModelPartition","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetIntervalDecimal!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetIntervalDecimal!","text":"fmi3GetIntervalDecimal!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervals::AbstractArray{fmi3Float64}, qualifiers::fmi3IntervalQualifier)\n\nfmi3GetIntervalDecimal retrieves the interval until the next clock tick.\n\nFor input Clocks it is allowed to call this function to query the next activation interval. For changing aperiodic Clock, this function must be called in every Event Mode where this clock was activated. For countdown aperiodic Clock, this function must be called in every Event Mode. Clock intervals are computed in fmi3UpdateDiscreteStates (at the latest), therefore, this function should be called after fmi3UpdateDiscreteStates. For information about fmi3IntervalQualifiers, call ?fmi3IntervalQualifier\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nintervals::AbstractArray{fmi3Float64}: \nqualifiers::fmi3IntervalQualifier: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.9. Clocks\n\nSee also fmi3GetIntervalDecimal!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetIntervalDecimal","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetIntervalDecimal","text":"fmi3SetIntervalDecimal(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervals::AbstractArray{fmi3Float64})\n\nSets the interval until the next clock tick\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nintervals::AbstractArray{fmi3Float64}: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.9. Clocks\n\nSee also fmi3SetIntervalDecimal.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetIntervalFraction!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetIntervalFraction!","text":"fmi3GetIntervalFraction!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervalCounters::AbstractArray{fmi3UInt64}, resolutions::AbstractArray{fmi3UInt64}, qualifiers::fmi3IntervalQualifier)\n\nfmi3GetIntervalFraction retrieves the interval until the next clock tick.\n\nFor input Clocks it is allowed to call this function to query the next activation interval. For changing aperiodic Clock, this function must be called in every Event Mode where this clock was activated. For countdown aperiodic Clock, this function must be called in every Event Mode. Clock intervals are computed in fmi3UpdateDiscreteStates (at the latest), therefore, this function should be called after fmi3UpdateDiscreteStates. For information about fmi3IntervalQualifiers, call ?fmi3IntervalQualifier\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nintervalCounters::AbstractArray{fmi3UInt64}: \nresolutions::AbstractArray{fmi3UInt64}: \nqualifiers::fmi3IntervalQualifier: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.9. Clocks\n\nSee also fmi3GetIntervalFraction!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetIntervalFraction","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetIntervalFraction","text":"fmi3SetIntervalFraction(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervalCounters::AbstractArray{fmi3UInt64}, resolutions::AbstractArray{fmi3UInt64})\n\nSets the interval until the next clock tick. Only allowed if the attribute 'supportsFraction' is set.\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nintervalCounters::AbstractArray{fmi3UInt64}: \nresolutions::AbstractArray{fmi3UInt64}: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.9. Clocks\n\nSee also fmi3SetIntervalFraction.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetShiftDecimal!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetShiftDecimal!","text":"fmi3GetShiftDecimal!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, shifts::AbstractArray{fmi3Float64})\n\nfmi3GetShiftDecimal retrieves the delay to the first Clock tick from the FMU.\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nshifts::AbstractArray{fmi3Float64}:\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.9. Clocks\n\nSee also fmi3GetShiftDecimal!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetShiftFraction!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetShiftFraction!","text":"fmi3GetShiftFraction!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, shiftCounters::AbstractArray{fmi3UInt64}, resolutions::AbstractArray{fmi3UInt64})\n\nfmi3GetShiftFraction retrieves the delay to the first Clock tick from the FMU.\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nshiftCounters::AbstractArray{fmi3UInt64}:\nresolutions::AbstractArray{fmi3UInt64}:\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.9. Clocks\n\nSee also fmi3GetShiftFraction!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetClock","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetClock","text":"fmi3GetClock(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Clock variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Clock}: returns values of an array of fmi3Clock variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetClock.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetClock!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetClock!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetClock!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Clock}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalue::AbstractArray{fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetClock!.\n\n\n\n\n\nfmi3GetClock!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Clock})\n\nWrites the clock values of an array of variables in the given field\n\nfmi3GetClock! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetClock!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetClock","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetClock","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetClock(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Clock}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalue::AbstractArray{fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetClock.\n\n\n\n\n\nfmi3SetClock(c::FMU3Instance, vr::fmi3ValueReferenceFormat, valueSizes::Union{AbstractArray{Csize_t}, Csize_t}, values::Union{AbstractArray{fmi3Clock}, fmi3Clock})\n\nSet the values of an array of clock variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3Clock}, fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetClock.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3ActivateModelPartition","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3ActivateModelPartition","text":"fmi3ActivateModelPartition(c::FMU3Instance, vr::fmi3ValueReference, activationTime::AbstractArray{fmi3Float64})\n\nDuring Clock Activation Mode (see 5.2.2.) after fmi3ActivateModelPartition has been called for a calculated, tunable or changing Clock the FMU provides the information on when the Clock will tick again, i.e. when the corresponding model partition has to be scheduled the next time.\n\nEach fmi3ActivateModelPartition call is associated with the computation of an exposed model partition of the FMU and therefore to an input Clock.\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReference: Argument vr is the value handel called \"ValueReference\" that define the variable that shall be inquired.\nactivationTime::AbstractArray{fmi3Float64}: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 5.2.2. State: Clock Activation Mode\n\nSee also fmi3ActivateModelPartition.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3CallbackClockUpdate","category":"page"},{"location":"fmi3_lowlevel_library_functions/#Conversion-functions","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Conversion functions","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"stringToType\ntypeToString\nstringToVariableNamingConvention\nvariableNamingConventionToString\nintervalQualifierToString","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMIBase.stringToType","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.stringToType","text":"stringToType(s::AbstractString)\n\nConvert s (\"coSimulation\", \"modelExchange\", \"scheduledExecution\") to the corresponding fmi3Type.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIBase.typeToString","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.typeToString","text":"typeToString(c::fmi3Type)\n\nConvert fmi3Type c to the corresponding String (\"coSimulation\", \"modelExchange\", \"scheduledExecution\").\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIBase.stringToVariableNamingConvention","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.stringToVariableNamingConvention","text":"stringToVariableNamingConvention(s::AbstractString)\n\nConvert s (\"flat\", \"structured\") to the corresponding fmi3VariableNamingConvention.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIBase.variableNamingConventionToString","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.variableNamingConventionToString","text":"variableNamingConventionToString(c::fmi3VariableNamingConvention)\n\nConvert fmi3VariableNamingConvention c to the corresponding String (\"flat\", \"structured\").\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIBase.intervalQualifierToString","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.intervalQualifierToString","text":"intervalQualifierToString(c::fmi3IntervalQualifier)\n\nConvert fmi3IntervalQualifier c to the corresponding String (\"intervalNotYetKnown\", \"intervalUnchanged\", \"intervalChanged\").\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3StringToCausality fmi3StatusToString fmi3StringToInitial","category":"page"},{"location":"fmi3_lowlevel_library_functions/#External/Additional-functions","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"External/Additional functions","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3GetNumberOfVariableDependencies\nfmi3GetNumberOfVariableDependencies!\nfmi3GetVariableDependencies\nfmi3GetVariableDependencies!","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetNumberOfVariableDependencies","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetNumberOfVariableDependencies","text":"fmi3GetNumberOfVariableDependencies(c::FMU3Instance, vr::fmi3ValueReference, nvr::Ref{Csize_t})\n\nThe number of dependencies of a given variable, which may change if structural parameters are changed, can be retrieved by calling fmi3GetNumberOfVariableDependencies.\n\nThis information can only be retrieved if the 'providesPerElementDependencies' tag in the ModelDescription is set.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::Union{fmi3ValueReference, String}: Argument vr is the value handel called \"ValueReference\" that define the variable that shall be inquired.\n\nReturns\n\nsize::Integer: Return size is the number of variable dependencies for the given variable \n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.10. Dependencies of Variables\n\nSee also fmi3GetNumberOfVariableDependencies.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetNumberOfVariableDependencies!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetNumberOfVariableDependencies!","text":"fmi3GetNumberOfVariableDependencies!(c::FMU3Instance, vr::fmi3ValueReference, nvr::Ref{Csize_t})\n\nThe number of dependencies of a given variable, which may change if structural parameters are changed, can be retrieved by calling fmi3GetNumberOfVariableDependencies.\n\nThis information can only be retrieved if the 'providesPerElementDependencies' tag in the ModelDescription is set.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReference: Argument vr is the value handel called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.10. Dependencies of Variables\n\nSee also fmi3GetNumberOfVariableDependencies!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetVariableDependencies","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetVariableDependencies","text":"fmi3GetVariableDependencies(c::FMU3Instance, vr::Union{fmi3ValueReference, String})\n\nThe actual dependencies (of type dependenciesKind) can be retrieved by calling the function fmi3GetVariableDependencies:\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::Union{fmi3ValueReference, String}: Argument vr is the value handel called \"ValueReference\" that define the variable that shall be inquired.\n\nReturns\n\nelementIndicesOfDependent::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the dependent variable that dependency information is provided for. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)\nindependents::AbstractArray{fmi3ValueReference}: must point to a buffer of fmi3ValueReference values of size nDependencies allocated by the calling environment. It is filled in by this function with the value reference of the independent variable that this dependency entry is dependent upon.\nelementIndicesIndependents::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the independent variable that this dependency entry is dependent upon. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)\ndependencyKinds::AbstractArray{fmi3DependencyKind}: must point to a buffer of dependenciesKind values of size nDependencies allocated by the calling environment. It is filled in by this function with the enumeration value describing the dependency of this dependency entry.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.10. Dependencies of Variables\n\nSee also fmi3GetVariableDependencies!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetVariableDependencies!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetVariableDependencies!","text":"fmi3GetVariableDependencies!(c::FMU3Instance, vr::fmi3ValueReference, elementIndiceOfDependents::AbstractArray{Csize_t}, independents::AbstractArray{fmi3ValueReference}, \n elementIndiceOfInpendents::AbstractArray{Csize_t}, dependencyKind::AbstractArray{fmi3DependencyKind}, ndependencies::Csize_t)\n\nThe actual dependencies (of type dependenciesKind) can be retrieved by calling the function fmi3GetVariableDependencies:\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReference: Argument vr is the value handel called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nelementIndiceOfDependents::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the dependent variable that dependency information is provided for. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)\nindependents::AbstractArray{fmi3ValueReference}: must point to a buffer of fmi3ValueReference values of size nDependencies allocated by the calling environment. It is filled in by this function with the value reference of the independent variable that this dependency entry is dependent upon.\nelementIndiceOfInpendents::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the independent variable that this dependency entry is dependent upon. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)\ndependencyKind::AbstractArray{fmi3DependencyKind}: must point to a buffer of dependenciesKind values of size nDependencies allocated by the calling environment. It is filled in by this function with the enumeration value describing the dependency of this dependency entry.\nndependencies::Csize_t: specifies the number of dependencies that the calling environment allocated space for in the result buffers, and should correspond to value obtained by calling fmi3GetNumberOfVariableDependencies.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.10. Dependencies of Variables\n\nSee also fmi3GetVariableDependencies!.\n\n\n\n\n\n","category":"function"},{"location":"examples/parameter_optimization/#FMU-Parameter-Optimization","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Tutorial by Tobias Thummerer","category":"page"},{"location":"examples/parameter_optimization/#License","page":"FMU Parameter Optimization","title":"License","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/parameter_optimization/#Introduction-to-the-example","page":"FMU Parameter Optimization","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"This example shows how a parameter optimization can be set up for a FMU. The goal is to fit FMU parameters (and initial states), so that a reference trajectory is fit as good as possible.","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Note, that this tutorial covers optimization without gradient information. Basically, FMI.jl supports gradient based optimization, too.","category":"page"},{"location":"examples/parameter_optimization/#Other-formats","page":"FMU Parameter Optimization","title":"Other formats","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/parameter_optimization/#Getting-started","page":"FMU Parameter Optimization","title":"Getting started","text":"","category":"section"},{"location":"examples/parameter_optimization/#Installation-prerequisites","page":"FMU Parameter Optimization","title":"Installation prerequisites","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":" Description Command\n1. Enter Package Manager via ]\n2. Install FMI via add FMI\n3. Install FMIZoo via add FMIZoo\n4. Install Optim via add Optim\n5. Install Plots via add Plots","category":"page"},{"location":"examples/parameter_optimization/#Code-section","page":"FMU Parameter Optimization","title":"Code section","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"# imports\nusing FMI\nusing FMIZoo\nusing Optim\nusing Plots\nusing DifferentialEquations","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00c1821a7a7d is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]","category":"page"},{"location":"examples/parameter_optimization/#Simulation-setup","page":"FMU Parameter Optimization","title":"Simulation setup","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Next, the start time and end time of the simulation are set.","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"tStart = 0.0\ntStop = 5.0\ntStep = 0.1\ntSave = tStart:tStep:tStop","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"0.0:0.1:5.0","category":"page"},{"location":"examples/parameter_optimization/#Import-FMU","page":"FMU Parameter Optimization","title":"Import FMU","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"In the next lines of code the FMU model from FMIZoo.jl is loaded and the information about the FMU is shown.","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"# we use an FMU from the FMIZoo.jl\nfmu = loadFMU(\"SpringPendulum1D\", \"Dymola\", \"2022x\"; type=:ME)\ninfo(fmu)","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"#################### Begin information for FMU ####################\n\tModel name:\t\t\tSpringPendulum1D\n\tFMI-Version:\t\t\t2.0\n\tGUID:\t\t\t\t{fc15d8c4-758b-48e6-b00e-5bf47b8b14e5}\n\tGeneration tool:\t\tDymola Version 2022x (64-bit), 2021-10-08\n\tGeneration time:\t\t2022-05-19T06:54:23Z\n\tVar. naming conv.:\t\tstructured\n\tEvent indicators:\t\t0\n\tInputs:\t\t\t\t0\n\tOutputs:\t\t\t0\n\tStates:\t\t\t\t2\n\t\t33554432 [\"mass.s\"]\n\t\t33554433 [\"mass.v\"]\n\tParameters:\t\t\t7\n\t\t16777216 [\"mass_s0\"]\n\t\t16777217 [\"mass_v0\"]\n\t\t16777218 [\"fixed.s0\"]\n\t\t16777219 [\"spring.c\"]\n\t\t16777220 [\"spring.s_rel0\"]\n\t\t16777221 [\"mass.m\"]\n\t\t16777222 [\"mass.L\"]\n\tSupports Co-Simulation:\t\ttrue\n\t\tModel identifier:\tSpringPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n\t\tVar. com. steps:\ttrue\n\t\tInput interpol.:\ttrue\n\t\tMax order out. der.:\t1\n\tSupports Model-Exchange:\ttrue\n\t\tModel identifier:\tSpringPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n##################### End information for FMU #####################","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Now, the optimization objective (the function to minimize) needs to be defined. In this case, we just want to do a simulation and compare it to a regular sin wave.","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"s_tar = 1.0 .+ sin.(tSave)\n\n# a function to simulate the FMU for given parameters\nfunction simulateFMU(p)\n s0, v0, c, m = p # unpack parameters: s0 (start position), v0 (start velocity), c (spring constant) and m (pendulum mass)\n\n # pack the parameters into a dictionary\n paramDict = Dict{String, Any}()\n paramDict[\"spring.c\"] = c \n paramDict[\"mass.m\"] = m\n\n # pack the start state\n x0 = [s0, v0]\n\n # simulate with given start stae and parameters\n sol = simulate(fmu, (tStart, tStop); x0=x0, parameters=paramDict, saveat=tSave)\n\n # get state with index 1 (the position) from the solution\n s_res = getState(sol, 1; isIndex=true) \n\n return s_res\nend\n\n# the optimization objective\nfunction objective(p)\n s_res = simulateFMU(p)\n\n # return the position error sum between FMU simulation (s_res) and target (s_tar)\n return sum(abs.(s_tar .- s_res)) \nend","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"objective (generic function with 1 method)","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Now let's see how far we are away for our guess parameters:","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"s0 = 0.0 \nv0 = 0.0\nc = 1.0\nm = 1.0 \np = [s0, v0, c, m]\n\nobj_before = objective(p) # not really good!","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"54.43219974960283","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Let's have a look on the differences:","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"s_fmu = simulateFMU(p); # simulate the position\n\nplot(tSave, s_fmu; label=\"FMU\")\nplot!(tSave, s_tar; label=\"Optimization target\")","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"(Image: svg)","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Not that good. So let's do a bit of optimization!","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"opt = Optim.optimize(objective, p; iterations=250) # do max. 250 iterations\nobj_after = opt.minimum # much better!\np_res = opt.minimizer # the optimized parameters","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"4-element Vector{Float64}:\n 1.0005495669203626\n 0.9770845942654273\n 0.1639122205807238\n 0.14283995779131217","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Looks promising, let's have a look on the results plot:","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"s_fmu = simulateFMU(p_res); # simulate the position\n\nplot(tSave, s_fmu; label=\"FMU\")\nplot!(tSave, s_tar; label=\"Optimization target\")","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"(Image: svg)","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Actually a pretty fit! If you have higher requirements, check out the Optim.jl library.","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"unloadFMU(fmu)","category":"page"},{"location":"examples/parameter_optimization/#Summary","page":"FMU Parameter Optimization","title":"Summary","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"This tutorial showed how a parameter (and start value) optimization can be performed on a FMU with a gradient free optimizer. This tutorial will be extended soon to further show how convergence for large parameter spaces can be improoved!","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMI-Common-Concepts-for-Model-Exchange-and-Co-Simulation","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"In both cases, FMI defines an input/output block of a dynamic model where the distribution of the block, the platform dependent header file, several access functions, as well as the schema files are identical.","category":"page"},{"location":"fmi2_lowlevel_library_functions/#Opening-and-closing-FMUs","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Opening and closing FMUs","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"","category":"page"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2Unzip fmi2Load fmi2Reload fmi2Unload","category":"page"},{"location":"fmi2_lowlevel_library_functions/#Creation,-Destruction-and-Logging-of-FMU-Instances","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Creation, Destruction and Logging of FMU Instances","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2Instantiate!\nfmi2Instantiate\nfmi2FreeInstance\nfmi2SetDebugLogging","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2Instantiate!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2Instantiate!","text":"fmi2Instantiate!(fmu::FMU2;\n instanceName::String=fmu.modelName,\n type::fmi2Type=fmu.type,\n pushComponents::Bool = true,\n visible::Bool = false,\n loggingOn::Bool = fmu.executionConfig.loggingOn,\n externalCallbacks::Bool = fmu.executionConfig.externalCallbacks,\n logStatusOK::Bool=true,\n logStatusWarning::Bool=true,\n logStatusDiscard::Bool=true,\n logStatusError::Bool=true,\n logStatusFatal::Bool=true,\n logStatusPending::Bool=true)\n\nCreate a new instance of the given fmu, adds a logger if logginOn == true.\n\nArguments\n\nfmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\n\nKeywords\n\ninstanceName::String=fmu.modelName: Name of the instance\ntype::fmi2Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present\npushComponents::Bool = true: Defines if the fmu components should be pushed in the application.\nvisible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)\nloggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)\nexternalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi2CallbackFunctions, this may improve readability of logging messages (default=false)\nlogStatusOK::Bool=true whether to log status of kind fmi2OK (default=true)\nlogStatusWarning::Bool=true whether to log status of kind fmi2Warning (default=true)\nlogStatusDiscard::Bool=true whether to log status of kind fmi2Discard (default=true)\nlogStatusError::Bool=true whether to log status of kind fmi2Error (default=true)\nlogStatusFatal::Bool=true whether to log status of kind fmi2Fatal (default=true)\nlogStatusPending::Bool=true whether to log status of kind fmi2Pending (default=true)\n\nReturns\n\nReturns the instance of a new FMU component.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2: 2.2.7 Definition of Model Variables (ModelVariables)\n\nSee also fmi2Instantiate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2Instantiate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2Instantiate","text":"Source: FMISpec2.0.2[p.19]: 2.1.5 Creation, Destruction and Logging of FMU Instances\n\nThe function returns a new instance of an FMU.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2FreeInstance","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2FreeInstance","text":"Source: FMISpec2.0.2[p.22]: 2.1.5 Creation, Destruction and Logging of FMU Instances\n\nDisposes the given instance, unloads the loaded model, and frees all the allocated memory and other resources that have been allocated by the functions of the FMU interface. If a null pointer is provided for “c”, the function call is ignored (does not have an effect).\n\nRemoves the component from the FMUs component list.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetDebugLogging","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetDebugLogging","text":"Source: FMISpec2.0.2[p.22]: 2.1.5 Creation, Destruction and Logging of FMU Instances\n\nThe function controls debug logging that is output via the logger function callback. If loggingOn = fmi2True, debug logging is enabled, otherwise it is switched off.\n\n\n\n\n\nfmi2SetDebugLogging(c::FMU2Component, loggingOn::fmi2Boolean, nCategories::Unsigned, categories::Ptr{Nothing})\n\nControl the use of the logging callback function, version independent.\n\nArguments\n\nc::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nloggingOn::fmi2Boolean: If loggingOn = fmi2True, debug logging is enabled for the log categories specified in categories, otherwise it is disabled. Type fmi2Boolean is defined as an alias Type for the C-Type Boolean and is to be used with fmi2True and fmi2False.\nnCategories::Unsigned: Argument nCategories defines the length of the argument categories.\ncategories::Ptr{Nothing}:\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.22]: 2.1.5 Creation, Destruction and Logging of FMU Instances\n\nSee also fmi2SetDebugLogging.\n\n\n\n\n\nfmi2SetDebugLogging(c::FMU2Component)\n\nControl the use of the logging callback function, version independent.\n\nArguments\n\nc::FMU2Component: Argument c is a mutable struct representing an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.22]: 2.1.5 Creation, Destruction and Logging of FMU Instances\n\nSee also fmi2SetDebugLogging.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#Initialization,-Termination,-and-Resetting-an-FMU","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Initialization, Termination, and Resetting an FMU","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2SetupExperiment\nfmi2EnterInitializationMode\nfmi2ExitInitializationMode\nfmi2Terminate\nfmi2Reset","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetupExperiment","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetupExperiment","text":"Source: FMISpec2.0.2[p.23]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nInforms the FMU to setup the experiment. This function must be called after fmi2Instantiate and before fmi2EnterInitializationMode is called.The function controls debug logging that is output via the logger function callback. If loggingOn = fmi2True, debug logging is enabled, otherwise it is switched off.\n\n\n\n\n\nfmi2SetupExperiment(c::FMU2Component, toleranceDefined::fmi2Boolean, tolerance::fmi2Real, startTime::fmi2Real, stopTimeDefined::fmi2Boolean, stopTime::fmi2Real)\n\nInforms the FMU to setup the experiment. This function must be called after fmi2Instantiate and before fmi2EnterInitializationMode is called.\n\nArguments\n\nc::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ntoleranceDefined::fmi2Boolean: Arguments toleranceDefined depend on the FMU type:\nfmuType = fmi2ModelExchange: If toleranceDefined = fmi2True, then the model is called with a numerical integration scheme where the step size is controlled by using tolerance for error estimation. In such a case, all numerical algorithms used inside the model (for example, to solve non-linear algebraic equations) should also operate with an error estimation of an appropriate smaller relative tolerance.\nfmuType = fmi2CoSimulation: If toleranceDefined = fmi2True, then the communication interval of the slave is controlled by error estimation. In case the slave utilizes a numerical integrator with variable step size and error estimation, it is suggested to use “tolerance” for the error estimation of the internal integrator (usually as relative tolerance). An FMU for Co-Simulation might ignore this argument.\nstartTime::fmi2Real: Argument startTime can be used to check whether the model is valid within the given boundaries or to allocate memory which is necessary for storing results. It is the fixed initial value of the independent variable and if the independent variable is time, startTime is the starting time of initializaton.\nstopTimeDefined::fmi2Boolean: If stopTimeDefined = fmi2True, then stopTime is the defined final value of the independent variable and if stopTimeDefined = fmi2False, then no final value\n\nof the independent variable is defined and argument stopTime is meaningless.\n\nstopTime::fmi2Real: Argument stopTime can be used to check whether the model is valid within the given boundaries or to allocate memory which is necessary for storing results. It is the fixed final value of the independent variable and if the independent variable is “time”, stopTime is the stop time of the simulation.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nSee also fmi2SetupExperiment.\n\n\n\n\n\nfmi2SetupExperiment(c::FMU2Component, \n startTime::Union{Real, Nothing} = nothing, \n stopTime::Union{Real, Nothing} = nothing; \n tolerance::Union{Real, Nothing} = nothing)\n\nSetup the simulation but without defining all of the parameters.\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct representing an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nstartTime::Union{Real, Nothing} = nothing: startTime is a real number which sets the value of starting time of the experiment. The default value is set automatically if doing nothing (default = nothing).\nstopTime::Union{Real, Nothing} = nothing: stopTime is a real number which sets the value of ending time of the experiment. The default value is set automatically if doing nothing (default = nothing).\n\nKeywords\n\ntolerance::Union{Real, Nothing} = nothing: tolerance is a real number which sets the value of tolerance range. The default value is set automatically if doing nothing (default = nothing).\n\nReturns\n\nReturns a warning if str.state is not called in fmi2ComponentStateInstantiated.\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.23]: 2.1.6 Initialization, Termination, and Resetting an FMU\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2SetupExperiment.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2EnterInitializationMode","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2EnterInitializationMode","text":"Source: FMISpec2.0.2[p.23]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nInforms the FMU to enter Initialization Mode. Before calling this function, all variables with attribute can be set with the “fmi2SetXXX” functions (the ScalarVariable attributes are defined in the Model Description File, see section 2.2.7). Setting other variables is not allowed. Furthermore, fmi2SetupExperiment must be called at least once before calling fmi2EnterInitializationMode, in order that startTime is defined.\n\n\n\n\n\nfmi2EnterInitializationMode(c::FMU2Component)\n\nInforms the FMU to enter Initialization Mode. Before calling this function, all variables with attribute can be set with the “fmi2SetXXX” functions (the ScalarVariable attributes are defined in the Model Description File, see section 2.2.7). Setting other variables is not allowed. Furthermore, fmi2SetupExperiment must be called at least once before calling fmi2EnterInitializationMode, in order that startTime is defined.\n\nArguments\n\nc::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nSee also fmi2EnterInitializationMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2ExitInitializationMode","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2ExitInitializationMode","text":"Source: FMISpec2.0.2[p.23]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nInforms the FMU to exit Initialization Mode.\n\n\n\n\n\nfmi2ExitInitializationMode(c::FMU2Component)\n\nInforms the FMU to exit Initialization Mode.\n\nArguments\n\nc::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nSee also fmi2EnterInitializationMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2Terminate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2Terminate","text":"Source: FMISpec2.0.2[p.24]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nInforms the FMU that the simulation run is terminated.\n\n\n\n\n\nfmi2Terminate(c::FMU2Component; soft::Bool=false)\n\nInforms the FMU that the simulation run is terminated.\n\nArguments\n\nc::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nSee also fmi2Terminate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2Reset","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2Reset","text":"Source: FMISpec2.0.2[p.24]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nIs called by the environment to reset the FMU after a simulation run. The FMU goes into the same state as if fmi2Instantiate would have been called.\n\n\n\n\n\nfmi2Reset(c::FMU2Component; soft::Bool=false)\n\nIs called by the environment to reset the FMU after a simulation run. The FMU goes into the same state as if fmi2Instantiate would have been called.All variables have their default values. Before starting a new run, fmi2SetupExperiment and fmi2EnterInitializationMode have to be called.\n\nArguments\n\nc::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.3 Link: https://fmi-standard.org/\nFMISpec2.0.3[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.3[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.3[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nSee also fmi2Terminate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#Getting-and-Setting-Variable-Values","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Getting and Setting Variable Values","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"All variable values of an FMU are identified with a variable handle called “value reference”. The handle is defined in the modelDescription.xml file (as attribute “valueReference” in element “ScalarVariable”). Element “valueReference” might not be unique for all variables. If two or more variables of the same base data type (such as fmi2Real) have the same valueReference, then they have identical values but other parts of the variable definition might be different (for example, min/max attributes).","category":"page"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2GetReal\nfmi2GetReal!\nfmi2GetInteger\nfmi2GetInteger!\nfmi2GetBoolean\nfmi2GetBoolean!\nfmi2GetString\nfmi2GetString!\nfmi2SetReal\nfmi2SetInteger\nfmi2SetBoolean\nfmi2SetString","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2GetReal","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2GetReal","text":"fmi2GetReal(c::FMU2Component, vr::fmi2ValueReferenceFormat)\n\nGet the values of an array of fmi2Real variables.\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fm2Real}: Returns values of an array of fmi2Real variables with the dimension of fmi2ValueReferenceFormat length.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetReal.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2GetReal!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2GetReal!","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2GetReal!(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Real})\n\nFunctions to get and set values of variables idetified by their valueReference\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fm2Real}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nSee also fmi2GetReal!.\n\n\n\n\n\nfmi2GetReal!(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::AbstractArray{fmi2Real})\n\nGet the values of an array of fmi2Real variables.\n\nrites the real values of an array of variables in the given field\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fm2Real}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetReal!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2GetInteger","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2GetInteger","text":"fmi2GetInteger(c::FMU2Component, vr::fmi2ValueReferenceFormat)\n\nReturns the integer values of an array of variables\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi2Integer}: Return values is an array with the actual values of these variables.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetInteger!\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2GetInteger!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2GetInteger!","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2GetInteger!(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Integer})\n\nWrites the integer values of an array of variables in the given field\n\nfmi2GetInteger! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels, called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi2Integer}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetInteger!.\n\n\n\n\n\nfmi2GetInteger!(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::AbstractArray{fmi2Integer})\n\nWrites the integer values of an array of variables in the given field\n\nfmi2GetInteger! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::Array{fmi2Integer}: Argument values is an array with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetInteger!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2GetBoolean","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2GetBoolean","text":"fmi2GetBoolean(c::FMU2Component, vr::fmi2ValueReferenceFormat)\n\nGet the values of an array of fmi2Boolean variables.\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi2Boolean}: Return values is an array with the actual values of these variables.\n\nSee also fmi2GetBoolean!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2GetBoolean!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2GetBoolean!","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2GetBoolean!(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Boolean})\n\nWrites the boolean values of an array of variables in the given field\n\nfmi2GetBoolean! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalue::AbstractArray{fmi2Boolean}: Argument values is an array with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetBoolean!.\n\n\n\n\n\nfmi2GetBoolean!(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::AbstractArray{fmi2Boolean})\n\nWrites the boolean values of an array of variables in the given field\n\nfmi2GetBoolean! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nstr::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nstr::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi2Boolean}: Argument value is an array with the actual values of these variables\n\nReturns\n\nReturn singleton instance of type Nothing, if there is no value to return (as in a C void function) or when a variable or field holds no value.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetBoolean!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2GetString","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2GetString","text":"fmi2GetString(c::FMU2Component, vr::fmi2ValueReferenceFormat)\n\nGet the values of an array of fmi2String variables.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi2String}: Return values is an array with the actual values of these variables.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetString!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2GetString!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2GetString!","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2GetString!(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::Union{AbstractArray{Ptr{Cchar}}, AbstractArray{Ptr{UInt8}}})\n\nFunctions to get and set values of variables idetified by their valueReference\n\nThese functions are especially used to get the actual values of output variables if a model is connected with other models.\n\nArguments\n\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalue::Union{AbstractArray{Ptr{Cchar}, AbstractArray{Ptr{UInt8}}}: The value argument is an AbstractArray of values whose memory address refers to data of type Cchar or UInt8and describes a vector with the actual values of these. variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nSee also fmi2GetString!.\n\n\n\n\n\nfmi2GetString!(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::AbstractArray{fmi2String})\n\nWrites the string values of an array of variables in the given field\n\nThese functions are especially used to get the actual values of output variables if a model is connected with other models.\n\nArguments\n\nstr::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nstr::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi2String}: Argument values is an AbstractArray with the actual values of these variables\n\nReturns\n\nReturn singleton instance of type Nothing, if there is no value to return (as in a C void function) or when a variable or field holds no value.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetString!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetReal","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetReal","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2SetReal(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Real})\n\nFunctions to get and set values of variables idetified by their valueReference\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels, called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fm2Real}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nSee also fmi2GetReal.\n\n\n\n\n\nfmi2SetReal(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::Union{AbstractArray{<:Real}, <:Real})\n\nSet the values of an array of real variables\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{Array{<:Real}, <:Real}: Argument values is an array with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2SetReal.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetInteger","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetInteger","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2SetInteger(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Integer})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels, called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi2Integer}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetInteger!.\n\n\n\n\n\nfmi2SetInteger(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::Union{AbstractArray{<:Integer}, <:Integer})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nvalues::Union{Array{<:Integer}, <:Integer}: Argument values is an array or a single value with type Integer or any subtyp\n\nReturns\n\nstatus::fmi2Status: Return status indicates the success of the function call.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2SetInteger.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetBoolean","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetBoolean","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2SetBoolean(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Boolean})\n\nFunctions to get and set values of variables idetified by their valueReference\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalue::AbstractArray{fmi2Boolean}: Argument values is an array with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetBoolean.\n\n\n\n\n\nfmi2SetBoolean(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::Union{AbstractArray{Bool}, Bool})\n\nSet the values of an array of boolean variables\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{Array{Bool}, Bool}: Argument values is an array or a single value with type Boolean or any subtyp\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetBoolean!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetString","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetString","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2SetString(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::Union{AbstractArray{Ptr{Cchar}}, AbstractArray{Ptr{UInt8}}})\n\nSet the values of an array of string variables\n\nFor the exact rules on which type of variables fmi2SetXXX can be called see FMISpec2.0.2 section 2.2.7 , as well as FMISpec2.0.2 section 3.2.3 in case of ModelExchange and FMISpec2.0.2 section 4.2.4 in case ofCoSimulation.\n\nArguments\n\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalue::Union{AbstractArray{Ptr{Cchar}, AbstractArray{Ptr{UInt8}}}: The value argument is an AbstractArray of values whose memory address refers to data of type Cchar or UInt8and describes a vector with the actual values of these. variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nSee also fmi2GetString!.\n\n\n\n\n\nfmi2SetString(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::Union{AbstractArray{String}, String})\n\nSet the values of an array of string variables\n\nFor the exact rules on which type of variables fmi2SetXXX can be called see FMISpec2.0.2 section 2.2.7 , as well as FMISpec2.0.2 section 3.2.3 in case of ModelExchange and FMISpec2.0.2 section 4.2.4 in case of CoSimulation.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{Array{String}, String}: Argument values is an array or a single value with type String.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.46]: 2.2.7 Definition of Model Variables\nFMISpec2.0.2[p.46]: 3.2.3 State Machine of Calling Sequence\nFMISpec2.0.2[p.108]: 4.2.4 State Machine of Calling Sequence from Master to Slave\n\nSee also fmi2SetString.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2Get fmi2Get! fmi2Set","category":"page"},{"location":"fmi2_lowlevel_library_functions/#Getting-and-Setting-the-Complete-FMU-State","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Getting and Setting the Complete FMU State","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"The FMU has an internal state consisting of all values that are needed to continue a simulation. This internal state consists especially of the values of the continuous-time states, iteration variables, parameter values, input values, delay buffers, file identifiers, and FMU internal status information. With the functions of this section, the internal FMU state can be copied and the pointer to this copy is returned to the environment. The FMU state copy can be set as actual FMU state, in order to continue the simulation from it.","category":"page"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2GetFMUstate\nfmi2GetFMUstate!\nfmi2SetFMUstate\nfmi2FreeFMUstate\nfmi2SerializedFMUstateSize\nfmi2SerializedFMUstateSize!\nfmi2SerializeFMUstate\nfmi2SerializeFMUstate!\nfmi2DeSerializeFMUstate\nfmi2DeSerializeFMUstate!","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2GetFMUstate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2GetFMUstate","text":"fmi2GetFMUstate(c::FMU2Component)\n\nMakes a copy of the internal FMU state and returns a pointer to this copy.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nReturn state is a pointer to a copy of the internal FMU state.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2GetFMUstate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2GetFMUstate!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2GetFMUstate!","text":"Source: FMISpec2.0.2[p.26]: 2.1.8 Getting and Setting the Complete FMU State\n\nfmi2GetFMUstate makes a copy of the internal FMU state and returns a pointer to this copy\n\n\n\n\n\nfmi2GetFMUstate!(c::FMU2Component, FMUstate::Ref{fmi2FMUstate})\n\nMakes a copy of the internal FMU state and returns a pointer to this copy.\n\nArguments\n\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nFMUstate::Ref{fmi2FMUstate}:If on entry FMUstate == NULL, a new allocation is required. If FMUstate != NULL, then FMUstate points to a previously returned FMUstate that has not been modified since.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nSee also fmi2GetFMUstate!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetFMUstate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetFMUstate","text":"Source: FMISpec2.0.2[p.26]: 2.1.8 Getting and Setting the Complete FMU State\n\nfmi2SetFMUstate copies the content of the previously copied FMUstate back and uses it as actual new FMU state.\n\n\n\n\n\nfmi2SetFMUstate(c::FMU2Component, FMUstate::fmi2FMUstate)\n\nCopies the content of the previously copied FMUstate back and uses it as actual new FMU state.\n\nArguments\n\nstr::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nstr::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nFMUstate::fmi2FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2GetFMUstate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2FreeFMUstate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2FreeFMUstate","text":"Source: FMISpec2.0.2[p.26]: 2.1.8 Getting and setting the complete FMU state\n\nfmi2FreeFMUstate frees all memory and other resources allocated with the fmi2GetFMUstate call for this FMUstate.\n\n\n\n\n\nfmi2FreeFMUstate(c::FMU2Component, FMUstate::Ref{fmi2FMUstate})\n\nFrees all memory and other resources allocated with the fmi2GetFMUstate call for this FMUstate.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nFMUstate::Ref{fmi2FMUstate}: Argument FMUstate is an object that safely references data of type fmi3FMUstate which is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2FreeFMUstate.\n\n\n\n\n\nfmi2FreeFMUstate!(c::FMU2Component, state::fmi2FMUstate)\n\nFree the memory for the allocated FMU state\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nstate::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nReturn singleton instance of type Nothing, if there is no value to return (as in a C void function) or when a variable or field holds no value.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2FreeFMUstate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2SerializedFMUstateSize","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2SerializedFMUstateSize","text":"fmi2SerializedFMUstateSize(c::FMU2Component, state::fmi2FMUstate)\n\nReturns the size of the byte vector in which the FMUstate can be stored.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nstate::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nReturn size is an object that safely references a value of type Csize_t.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2SerializedFMUstateSize.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SerializedFMUstateSize!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SerializedFMUstateSize!","text":"Source: FMISpec2.0.2[p.26]: 2.1.8 Getting and Setting the Complete FMU State\n\nfmi2SerializedFMUstateSize returns the size of the byte vector, in order that FMUstate can be stored in it.\n\n\n\n\n\nfmi2SerializedFMUstateSize!(c::FMU2Component, FMUstate::fmi2FMUstate, size::Ref{Csize_t})\n\nStores the size of the byte vector in the given referenced Address, in order that FMUstate can be stored in it.\n\nArgument\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nFMUstate::fmi2FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\nsize::Ref{Csize_t}: Argument size is an object that safely references a value of type Csize_t and defines the size of the byte vector in which the FMUstate can be stored.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2SerializedFMUstateSize!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2SerializeFMUstate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2SerializeFMUstate","text":"fmi2SerializeFMUstate(c::FMU2Component, state::fmi2FMUstate)\n\nSerializes the data referenced by the pointer FMUstate and copies this data into the byte vector serializedState of length size to be provided by the environment.\n\nArguments\n\nstr::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nstr::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nstate::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nserializedState:: Array{fmi2Byte}: Return serializedState contains the copy of the serialized data referenced by the pointer FMUstate\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2SerializeFMUstate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SerializeFMUstate!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SerializeFMUstate!","text":"Source: FMISpec2.0.2[p.26]: 2.1.8 Getting and Setting the Complete FMU State\n\nfmi2SerializeFMUstate serializes the data which is referenced by pointer FMUstate and copies this data in to the byte vector serializedState of length size\n\n\n\n\n\nfmi2SerializeFMUstate!(c::FMU2Component, FMUstate::fmi2FMUstate, serialzedState::AbstractArray{fmi2Byte}, size::Csize_t)\n\nSerializes the data which is referenced by pointer FMUstate and copies this data in to the byte vector serializedState of length size, that must be provided by the environment.\n\nArguments\n\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nstate::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\nserialzedState::AbstractArray{fmi2Byte}: Argument serializedState contains the copy of the serialized data referenced by the pointer FMUstate.\nsize::Csize_t: Argument size defines the length of the serialized vector.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2SerializeFMUstate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2DeSerializeFMUstate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2DeSerializeFMUstate","text":"fmi2DeSerializeFMUstate(c::FMU2Component, serializedState::AbstractArray{fmi2Byte})\n\nDeserialize the data in the serializedState fmi2Byte field\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nserializedState::Array{fmi2Byte}: Argument serializedState contains the fmi2Byte field to be deserialized.\n\nReturns\n\nReturn state is a pointer to a copy of the internal FMU state.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2DeSerializeFMUstate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2DeSerializeFMUstate!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2DeSerializeFMUstate!","text":"Source: FMISpec2.0.2[p.26]: 2.1.8 Getting and Setting the Complete FMU State\n\nfmi2DeSerializeFMUstate deserializes the byte vector serializedState of length size, constructs a copy of the FMU state and returns FMUstate, the pointer to this copy.\n\n\n\n\n\nfmi2DeSerializeFMUstate!(c::FMU2Component, serializedState::AbstractArray{fmi2Byte}, size::Csize_t, FMUstate::Ref{fmi2FMUstate})\n\nDeserializes the byte vector serializedState of length size, constructs a copy of the FMU state and stores the FMU state in the given address of the reference FMUstate, the pointer to this copy.\n\nArguments\n\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nstate::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\nserialzedState::AbstractArray{fmi2Byte}: Argument serializedState contains the copy of the serialized data referenced by the pointer FMUstate.\nsize::Csize_t: Argument size defines the length of the serialized vector.\nFMUstate::Ref{fmi2FMUstate}: Argument FMUstate is an object that safely references data of type fmi3FMUstate which is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2DeSerializeFMUstate!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#Getting-Partial-Dervatives","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Getting Partial Dervatives","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"It is optionally possible to provide evaluation of partial derivatives for an FMU. For Model Exchange, this means computing the partial derivatives at a particular time instant. For Co-Simulation, this means to compute the partial derivatives at a particular communication point. One function is provided to compute directional derivatives. This function can be used to construct the desired partial derivative matrices.","category":"page"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2GetDirectionalDerivative\nfmi2GetDirectionalDerivative!\nfmi2SetRealInputDerivatives\nfmi2GetRealOutputDerivatives!","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2GetDirectionalDerivative","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2GetDirectionalDerivative","text":"fmi2GetDirectionalDerivative(c::FMU2Component,\n vUnknown_ref::AbstractArray{fmi2ValueReference},\n vKnown_ref::AbstractArray{fmi2ValueReference},\n dvKnown::Union{AbstractArray{fmi2Real}, Nothing} = nothing)\n\nWrapper Function call to compute the partial derivative with respect to the variables vKnown_ref.\n\nComputes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns.The precise definitions are given in the mathematical descriptions of Model Exchange (section 3.1) and Co-Simulation (section 4.1). In every Mode, the general form of the FMU equations are: 𝐯unknown = 𝐡(𝐯known, 𝐯_rest)\n\nv_unknown: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nv_known: Real input variables of function h that changes its value in the actual Mode.\nv_rest:Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔv_unknown = (δh / δv_known) Δv_known\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvUnknown_ref::AbstractArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(variable described above).\nvKnown_ref::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref can be equated with v_known(variable described above).\ndvKnown::Union{AbstractArray{fmi2Real}, Nothing} = nothing: If no seed vector is passed the value nothing is used. The vector values Compute the partial derivative with respect to the given entries in vector vKnown_ref with the matching evaluate of dvKnown. # gehört das zu den v_rest values\n\nReturns\n\ndvUnknown::Array{fmi2Real}: Return dvUnknown contains the directional derivative vector values.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.9 Getting Partial Derivatives\n\nSee also fmi2GetDirectionalDerivative!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2GetDirectionalDerivative!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2GetDirectionalDerivative!","text":"Source: FMISpec2.0.2[p.26]: 2.1.9 Getting Partial Derivatives\n\nThis function computes the directional derivatives of an FMU.\n\nΔvUnknown = ∂h / ∂vKnown ⋅ ΔvKnown\n\n\n\n\n\nfmi2GetDirectionalDerivative!(c::FMU2Component,\n vUnknown_ref::AbstractArray{fmi2ValueReference},\n nUnknown::Csize_t,\n vKnown_ref::AbstractArray{fmi2ValueReference},\n nKnown::Csize_t,\n dvKnown::AbstractArray{fmi2Real},\n dvUnknown::AbstractArray{fmi2Real})\n\nWrapper Function call to compute the partial derivative with respect to the variables vKnown_ref.\n\nComputes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3.1) and Co-Simulation (section 4.1). In every Mode, the general form of the FMU equations are: 𝐯unknown = 𝐡(𝐯known, 𝐯_rest)\n\nv_unknown: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nv_known: Real input variables of function h that changes its value in the actual Mode.\nv_rest:Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔvunknown = (δh / δvknown) Δv_known\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvUnknown_ref::AbstracArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(variable described above).\nnUnknown::Csize_t: Length of the Unknown Array.\nvKnown_ref::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref can be equated with v_known(variable described above).\nnKnown::Csize_t: Length of the Known Array.\ndvKnown::AbstractArray{fmi2Real}:The vector values Compute the partial derivative with respect to the given entries in vector vKnown_ref with the matching evaluate of dvKnown.\ndvUnknown::AbstractArray{fmi2Real}: Stores the directional derivative vector values.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.9 Getting Partial Derivatives\n\nSee also fmi2GetDirectionalDerivative!.\n\n\n\n\n\nfmiGetDirectionalDerivative!(c::FMU2Component,\n vUnknown_ref::AbstractArray{fmi2ValueReference},\n vKnown_ref::AbstractArray{fmi2ValueReference},\n dvKnown::Array{fmi2Real},\n dvUnknown::AbstractArray)\n\nWrapper Function call to compute the partial derivative with respect to the variables vKnown_ref.\n\nComputes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns.The precise definitions are given in the mathematical descriptions of Model Exchange (section 3.1) and Co-Simulation (section 4.1). In every Mode, the general form of the FMU equations are: 𝐯unknown = 𝐡(𝐯known, 𝐯_rest)\n\nv_unknown: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nv_known: Real input variables of function h that changes its value in the actual Mode.\nv_rest:Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔv_unknown = (δh / δv_known) Δv_known\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvUnknown_ref::AbstracArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(variable described above).\nvKnown_ref::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref can be equated with v_known(variable described above).\ndvUnknown::AbstractArray{fmi2Real}: Stores the directional derivative vector values.\ndvKnown::Union{AbstractArray{fmi2Real}, Nothing} = nothing: If no seed vector is passed the value nothing is used. The vector values Compute the partial derivative with respect to the given entries in vector vKnown_ref with the matching evaluate of dvKnown.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.9 Getting Partial Derivatives\n\nSee also fmi2GetDirectionalDerivative!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetRealInputDerivatives","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetRealInputDerivatives","text":"Source: FMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters\n\nSets the n-th time derivative of real input variables. vr defines the value references of the variables the array order specifies the corresponding order of derivation of the variables\n\n\n\n\n\nfmi2SetRealInputDerivatives(c::FMU2Component,\n vr::AbstractArray{fmi2ValueReference},\n nvr::Csize_t,\n order::AbstractArray{fmi2Integer}, \n value::AbstractArray{fmi2Real})\n\nSets the n-th time derivative of real input variables.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that t define the variables whose derivatives shall be set.\nnvr::Csize_t: Argument nvr defines the size of vr.\norder::AbstractArray{fmi2Integer}: Argument order is an AbstractArray of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.\nvalues::AbstractArray{fmi2Real}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters\n\nSee also fmi2SetRealInputDerivatives.\n\n\n\n\n\nfmi2SetRealInputDerivatives(c::FMU2Component, \n vr::AbstractArray{fmi2ValueReference}, \n order::AbstractArray{fmi2Integer}, \n values::AbstractArray{fmi2Real})\n\nSets the n-th time derivative of real input variables.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that define the variables whose derivatives shall be set.\norder::AbstractArray{fmi2Integer}: Argument order is an AbstractArray of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.\nvalues::AbstractArray{fmi2Real}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters\n\nSee also fmi2SetRealInputDerivatives.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2GetRealOutputDerivatives!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2GetRealOutputDerivatives!","text":"Source: FMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters\n\nRetrieves the n-th derivative of output values. vr defines the value references of the variables the array order specifies the corresponding order of derivation of the variables\n\n\n\n\n\nfmi2GetRealOutputDerivatives!(c::FMU2Component, \n vr::AbstractArray{fmi2ValueReference}, \n nvr::Csize_t, order::AbstractArray{fmi2Integer}, \n value::AbstractArray{fmi2Real})\n\nSets the n-th time derivative of real input variables.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that t define the variables whose derivatives shall be set.\nnvr::Csize_t: Argument nvr defines the size of vr.\norder::Array{fmi2Integer}: Argument order is an array of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.\nvalues::Array{fmi2Real}: Argument values is an array with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2SampleJacobian fmi2SampleJacobian!","category":"page"},{"location":"fmi2_lowlevel_library_functions/#External/Additional-functions","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"External/Additional functions","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"setDiscreteStates\ngetDiscreteStates\ngetDiscreteStates!\ngetSimpleTypeAttributeStruct\ngetDeclaredType","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMIBase.setDiscreteStates","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.setDiscreteStates","text":"ToDo\n\n\n\n\n\nsetDiscreteStates(c::FMU2Component,\n x::Union{AbstractArray{Float32},AbstractArray{Float64}})\n\nSet a new (discrete) state vector and reinitialize chaching of variables that depend on states.\n\nArguments\n\n[ToDo]\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIBase.getDiscreteStates","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.getDiscreteStates","text":"getDiscreteStates(c)\n\nSets a new (discrete) state vector (out-of-place).\n\nArguments\n\nc::FMU2Component\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIBase.getDiscreteStates!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.getDiscreteStates!","text":"getDiscreteStates!(c, xd)\n\nSets a new (discrete) state vector (in-place).\n\nArguments\n\nc::FMU2Component\nxd::AbstractArray{Union{fmi2Real, fmi2Integer, fmi2Boolean}}\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIBase.getSimpleTypeAttributeStruct","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.getSimpleTypeAttributeStruct","text":"getSimpleTypeAttributeStruct(st::fmi2SimpleType)\n\nReturns the attribute structure for the simple type st. Depending on definition, this is either st.Real, st.Integer, st.String, st.Boolean or st.Enumeration.\n\nArguments\n\nst::fmi2SimpleType: Struct which provides the information on custom SimpleTypes.\n\nSource\n\nFMISpec2.0.3 Link: https://fmi-standard.org/\nFMISpec2.0.3[p.40]: 2.2.3 Definition of Types (TypeDefinitions)\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIBase.getDeclaredType","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.getDeclaredType","text":"getDeclaredType(md::fmi2ModelDescription, mv::fmi2ScalarVariable)\n\nReturns the fmi2SimpleType of the corresponding model variable mv as defined in md.typeDefinitions. If mv does not have a declared type, return nothing. If mv has a declared type, but it is not found, issue a warning and return nothing.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\nmv::fmi2ScalarVariable: The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.\n\nSource\n\nFMISpec2.0.3 Link: https://fmi-standard.org/\nFMISpec2.0.3: 2.2.7 Definition of Model Variables (ModelVariables)\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2GetSolutionDerivative fmi2GetSolutionState fmi2GetSolutionValue fmi2GetSolutionTime fmi2GetJacobian fmi2GetJacobian! fmi2GetFullJacobian fmi2GetFullJacobian!","category":"page"},{"location":"fmi3_lowlevel_CS_functions/#FMI-for-Co-Simulation","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"","category":"section"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"This chapter defines the Functional Mock-up Interface (FMI) for the coupling of two or more simulation models in a Co-Simulation environment (FMI for Co-Simulation). Co-Simulation is a rather general approach to the simulation of coupled technical systems and coupled physical phenomena in engineering with focus on instationary (time-dependent) problems.","category":"page"},{"location":"fmi3_lowlevel_CS_functions/#Transfer-of-Input-/-Output-Values-and-Parameters","page":"FMI for Co-Simulation","title":"Transfer of Input / Output Values and Parameters","text":"","category":"section"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"In order to enable the slave to interpolate the continuous real inputs between communication steps, the derivatives of the inputs with respect to time can be provided. Also, higher derivatives can be set to allow higher order interpolation.","category":"page"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"","category":"page"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"fmi3CallbackIntermediateUpdate","category":"page"},{"location":"fmi3_lowlevel_CS_functions/#Computation","page":"FMI for Co-Simulation","title":"Computation","text":"","category":"section"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"The computation of time steps is controlled by the following function.","category":"page"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"fmi3EnterStepMode\nfmi3DoStep!","category":"page"},{"location":"fmi3_lowlevel_CS_functions/#FMICore.fmi3EnterStepMode","page":"FMI for Co-Simulation","title":"FMICore.fmi3EnterStepMode","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.5. State: Event Mode\n\nThis function must be called to change from Event Mode into Step Mode in Co-Simulation (see 4.2.).\n\n\n\n\n\nfmi3EnterStepMode(c::FMU3Instance; soft::Bool=false)\n\nThis function must be called to change from Event Mode into Step Mode in Co-Simulation (see 4.2.).\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.5. State: Event Mode\n\nSee also fmi3EnterStepMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_CS_functions/#FMICore.fmi3DoStep!","page":"FMI for Co-Simulation","title":"FMICore.fmi3DoStep!","text":"Source: FMISpec3.0, Version D5ef1c1: 4.2.1. State: Step Mode\n\nThe computation of a time step is started.\n\n\n\n\n\nfmi3DoStep!(c::FMU3Instance, currentCommunicationPoint::fmi3Float64, communicationStepSize::fmi3Float64, noSetFMUStatePriorToCurrentPoint::fmi3Boolean,\n eventEncountered::Ref{fmi3Boolean}, terminateSimulation::Ref{fmi3Boolean}, earlyReturn::Ref{fmi3Boolean}, lastSuccessfulTime::Ref{fmi3Float64})\n\nThe computation of a time step is started.\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\ncurrentCommunicationPoint::fmi3Float64: \ncommunicationStepSize::fmi3Float64: \nnoSetFMUStatePriorToCurrentPoint::fmi3Boolean: \neventEncountered::Ref{fmi3Boolean}: \nterminateSimulation::Ref{fmi3Boolean}: \nearlyReturn::Ref{fmi3Boolean}: \nlastSuccessfulTime::Ref{fmi3Float64}: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 4.2.1. State: Step Mode\n\nSee also fmi3DoStep!.\n\n\n\n\n\nfmi3DoStep!(c::FMU3Instance, currentCommunicationPoint::Union{Real, Nothing} = nothing, communicationStepSize::Union{Real, Nothing} = nothing, noSetFMUStatePriorToCurrentPoint::Bool = true,\n eventEncountered::fmi3Boolean = fmi3False, terminateSimulation::fmi3Boolean = fmi3False, earlyReturn::fmi3Boolean = fmi3False, lastSuccessfulTime::fmi3Float64 = 0.0)\n\nThe computation of a time step is started.\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\ncurrentCommunicationPoint::Union{Real, Nothing} = nothing\ncommunicationStepSize::Union{Real, Nothing} = nothing\nnoSetFMUStatePriorToCurrentPoint::Bool = true\neventEncountered::fmi3Boolean = fmi3False\nterminateSimulation::fmi3Boolean = fmi3False\nearlyReturn::fmi3Boolean = fmi3False\nlastSuccessfulTime::fmi3Float64 = 0.0\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 4.2.1. State: Step Mode\n\nSee also fmi3DoStep!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_CS_functions/#Retrieving-Status-Information-from-the-Slave","page":"FMI for Co-Simulation","title":"Retrieving Status Information from the Slave","text":"","category":"section"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"Status information is retrieved from the slave by the following functions:","category":"page"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"","category":"page"},{"location":"fmi_lowlevel_library_functions/#Functions-in-FMI-Import/Core-.jl","page":"Functions in FMI Import/Core .jl","title":"Functions in FMI Import/Core .jl","text":"","category":"section"},{"location":"fmi_lowlevel_library_functions/","page":"Functions in FMI Import/Core .jl","title":"Functions in FMI Import/Core .jl","text":"logInfo\nlogWarning\nlogError","category":"page"},{"location":"fmi_lowlevel_library_functions/#FMIBase.logInfo","page":"Functions in FMI Import/Core .jl","title":"FMIBase.logInfo","text":"Prints a message with level info if the log level allows it.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.logWarning","page":"Functions in FMI Import/Core .jl","title":"FMIBase.logWarning","text":"Prints a message with level warn if the log level allows it.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.logError","page":"Functions in FMI Import/Core .jl","title":"FMIBase.logError","text":"Prints a message with level error if the log level allows it.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/","page":"Functions in FMI Import/Core .jl","title":"Functions in FMI Import/Core .jl","text":"loadBinary eval!","category":"page"},{"location":"fmi_lowlevel_library_functions/#Conversion-functions","page":"Functions in FMI Import/Core .jl","title":"Conversion functions","text":"","category":"section"},{"location":"fmi_lowlevel_library_functions/","page":"Functions in FMI Import/Core .jl","title":"Functions in FMI Import/Core .jl","text":"stringToStatus\nstatusToString\nstringToDependencyKind\ndependencyKindToString\nvalueReferenceToString\nstringToInitial\ninitialToString\nstringToIntervalQualifier\nstringToDataType\nstringToCausality\ncausalityToString\nstringToVariability\nvariabilityToString","category":"page"},{"location":"fmi_lowlevel_library_functions/#FMIBase.stringToStatus","page":"Functions in FMI Import/Core .jl","title":"FMIBase.stringToStatus","text":"stringToStatus(s)\n\nConverts a String s to fmi2Status.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.statusToString","page":"Functions in FMI Import/Core .jl","title":"FMIBase.statusToString","text":"statusToString(::struct, status::Union{fmi2Status, Integer})\n\nConverts fmi2Status status into a String (\"OK\", \"Warning\", \"Discard\", \"Error\", \"Fatal\", \"Pending\").\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.stringToDependencyKind","page":"Functions in FMI Import/Core .jl","title":"FMIBase.stringToDependencyKind","text":"stringToDependencyKind(s::AbstractString)\n\nConverts s (\"dependent\", \"constant\", \"fixed\", \"tunable\", \"discrete\") to the corresponding fmi2DependencyKind\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.dependencyKindToString","page":"Functions in FMI Import/Core .jl","title":"FMIBase.dependencyKindToString","text":"dependencyKindToString(c::fmi2DependencyKind)\n\nConverts fmi2DependencyKind c to the corresponding String (\"dependent\", \"constant\", \"fixed\", \"tunable\", \"discrete\")\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.valueReferenceToString","page":"Functions in FMI Import/Core .jl","title":"FMIBase.valueReferenceToString","text":"valueReferenceToString(obj, reference)\n\nwhere: \n\nobj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3) reference ∈ (fmi2ValueReference, fmi3ValueReference, Integer\n\nReturns the string identifier for a give value reference.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.stringToInitial","page":"Functions in FMI Import/Core .jl","title":"FMIBase.stringToInitial","text":"stringToInitial(s::AbstractString)\n\nConverts s (\"approx\", \"exact\", \"calculated\") to the corresponding fmi2Initial.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.initialToString","page":"Functions in FMI Import/Core .jl","title":"FMIBase.initialToString","text":"fmi2InitialToString(c::fmi2Initial)\n\nConverts fmi2Initial c to the corresponding String (\"approx\", \"exact\", \"calculated\").\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.stringToIntervalQualifier","page":"Functions in FMI Import/Core .jl","title":"FMIBase.stringToIntervalQualifier","text":"stringToIntervalQualifier(::FMI3Struct, s::AbstractString)\n\nConvert s (\"intervalNotYetKnown\", \"intervalUnchanged\", \"intervalChanged\") to the corresponding fmi3IntervalQualifier.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.stringToDataType","page":"Functions in FMI Import/Core .jl","title":"FMIBase.stringToDataType","text":"stringToDataType(modelDescription, typename)\n\nConverts a typename to type, for example \"Float64\" (::String) to fmi3Float64 (::DataType).\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.stringToCausality","page":"Functions in FMI Import/Core .jl","title":"FMIBase.stringToCausality","text":"stringToCausality(s::AbstractString)\n\nConverts s (\"parameter\", \"calculatedParameter\", \"input\", \"output\", \"local\", \"independent\") to the corresponding fmi2Causality.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.causalityToString","page":"Functions in FMI Import/Core .jl","title":"FMIBase.causalityToString","text":"causalityToString(c::fmi2Causality)\n\nConverts fmi2Causality c to the corresponding String (\"parameter\", \"calculatedParameter\", \"input\", \"output\", \"local\", \"independent\").\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.stringToVariability","page":"Functions in FMI Import/Core .jl","title":"FMIBase.stringToVariability","text":"stringToVariability(s::AbstractString)\n\nConverts s (\"constant\", \"fixed\", \"tunable\", \"discrete\", \"continuous\") to the corresponding fmi2Variability.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.variabilityToString","page":"Functions in FMI Import/Core .jl","title":"FMIBase.variabilityToString","text":"variabilityToString(c::fmi2Variability)\n\nConverts fmi2Variability c to the corresponding String (\"constant\", \"fixed\", \"tunable\", \"discrete\", \"continuous\").\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/","page":"Functions in FMI Import/Core .jl","title":"Functions in FMI Import/Core .jl","text":"fmi2StringToInitial","category":"page"},{"location":"fmi_lowlevel_library_functions/#External/Additional-functions","page":"Functions in FMI Import/Core .jl","title":"External/Additional functions","text":"","category":"section"},{"location":"fmi_lowlevel_library_functions/","page":"Functions in FMI Import/Core .jl","title":"Functions in FMI Import/Core .jl","text":"getInitial\ngetStartValue\nhasCurrentInstance\ngetCurrentInstance\nmodelVariablesForValueReference\nsetValue\ngetValue\ngetValue!\ngetUnit","category":"page"},{"location":"fmi_lowlevel_library_functions/#FMIBase.getInitial","page":"Functions in FMI Import/Core .jl","title":"FMIBase.getInitial","text":"getInitial(mv::fmi2ScalarVariable)\n\nReturns the inital entry of the corresponding model variable.\n\nArguments\n\nfmi2GetStartValue(mv::fmi2ScalarVariable): The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.\n\nReturns\n\nmv.Real.unit: Returns the inital entry of the corresponding ScalarVariable representing a variable of the primitive type Real. Otherwise nothing is returned.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2: 2.2.7 Definition of Model Variables (ModelVariables)\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.getStartValue","page":"Functions in FMI Import/Core .jl","title":"FMIBase.getStartValue","text":"getStartValue(md::fmi2ModelDescription, vrs::fmi2ValueReferenceFormat = md.valueReferences)\n\nReturns the start/default value for a given value reference.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\nvrs::fmi2ValueReferenceFormat = md.valueReferences: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nstarts::Array{fmi2ValueReferenceFormat}: start/default value for a given value reference\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2: 2.2.7 Definition of Model Variables (ModelVariables)\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.hasCurrentInstance","page":"Functions in FMI Import/Core .jl","title":"FMIBase.hasCurrentInstance","text":"ToDo: Doc String\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.getCurrentInstance","page":"Functions in FMI Import/Core .jl","title":"FMIBase.getCurrentInstance","text":"ToDo: Doc String\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.modelVariablesForValueReference","page":"Functions in FMI Import/Core .jl","title":"FMIBase.modelVariablesForValueReference","text":"modelVariablesForValueReference(obj, vr)\n\nwhere:\n\nobj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3) vr ∈ (fmi2ValueReference, fmi3ValueReference)\n\nReturns the model variable(s) matching the value reference.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.setValue","page":"Functions in FMI Import/Core .jl","title":"FMIBase.setValue","text":"setValue(component,\n vrs::fmi2ValueReferenceFormat,\n srcArray::AbstractArray;\n filter=nothing)\n\nStores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference and returns an array that indicates the Status.\n\nArguments\n\ncomp::FMUInstance (FMU2Component or FMU3Instance): Mutable struct represents an instantiated instance of an FMU in the FMI 2 or 3.\nvrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\nsrcArray::AbstractArray: Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference to the input variable vr (vr = vrs[i]). srcArray has the same length as vrs.\n\nKeywords\n\nfilter=nothing: It is applied to each ModelVariable to determine if it should be updated.\n\nReturns\n\nretcodes::Array{fmi2Status}: Returns an array of length length(vrs) with Type fmi2Status. Type fmi2Status is an enumeration and indicates the success of the function call.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.getValue","page":"Functions in FMI Import/Core .jl","title":"FMIBase.getValue","text":"getValue(comp::FMU2Component, vrs::fmi2ValueReferenceFormat)\n\nReturns the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference in an array.\n\nArguments\n\ncomp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\ndstArray::Array{Any,1}(undef, length(vrs)): Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference to the input variable vr (vr = vrs[i]). dstArray is a 1-Dimensional Array that has the same length as vrs.\n\n\n\n\n\ngetValue(solution::FMUSolution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)\n\nReturns the Solution values.\n\nArguments\n\nsolution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.\nvr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nisIndex::Bool=false: Argument isIndex exists to check if vr ist the specific solution element (\"index\") that equals the given fmi2ValueReferenceFormat\n\nReturn\n\nIf he length of the given references equals 1, each element u in the collection solution.values.saveval is selecting the element at the index represented by indices[1] and returns it.\n\nThus, the collect() function is taking the generator expression and returning an array of the selected elements. \n\nIf more than one reference is given, the same process takes place as before. The difference is that now more than one index is accessed.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.getValue!","page":"Functions in FMI Import/Core .jl","title":"FMIBase.getValue!","text":"getValue!(comp::FMU2Component, vrs::fmi2ValueReferenceFormat, dst::AbstractArray)\n\nRetrieves values for the refernces vrs and stores them in dst\n\nArguments\n\ncomp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\ndst::AbstractArray: The array of destinations, must match the data types of the value references.\n\nReturns\n\nretcodes::Array{fmi2Status}: Returns an array of length length(vrs) with Type fmi2Status. Type fmi2Status is an enumeration and indicates the success of the function call.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.getUnit","page":"Functions in FMI Import/Core .jl","title":"FMIBase.getUnit","text":"getUnit(mv::fmi2ScalarVariable)\n\nReturns the unit entry (a string) of the corresponding model variable.\n\nArguments\n\nfmi2GetStartValue(mv::fmi2ScalarVariable): The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.\n\nReturns\n\nmv.Real.unit: Returns the unit entry of the corresponding ScalarVariable representing a variable of the primitive type Real. Otherwise nothing is returned.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2: 2.2.7 Definition of Model Variables (ModelVariables)\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/","page":"Functions in FMI Import/Core .jl","title":"Functions in FMI Import/Core .jl","text":"fmi2GetSolutionDerivative fmi2GetSolutionState fmi2GetSolutionValue fmi2GetSolutionTime fmi2GetJacobian fmi2GetJacobian! fmi2GetFullJacobian fmi2GetFullJacobian!","category":"page"},{"location":"index_library/#All-library-elements-of-FMI,-Import,-Export,-Core-and-Build","page":"API Index","title":"All library elements of FMI, Import, Export, Core and Build","text":"","category":"section"},{"location":"index_library/","page":"API Index","title":"API Index","text":"","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"(Image: FMI.jl Logo)","category":"page"},{"location":"#FMI.jl","page":"Introduction","title":"FMI.jl","text":"","category":"section"},{"location":"#What-is-FMI.jl?","page":"Introduction","title":"What is FMI.jl?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"FMI.jl is a free-to-use software library for the Julia programming language which integrates the Functional Mock-Up Interface (fmi-standard.org): load or create, parameterize, differentiate, linearize, simulate and plot FMUs seamlessly inside the Julia programming language!","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":" \nDocumentation (Image: Build Docs) (Image: Dev Docs)\nExamples (Image: Examples (latest))\nTests (Image: Test (latest)) (Image: Test (LTS)) (Image: Aqua QA)\nFMI cross checks (Image: FMI2 Cross Checks)\nPackage evaluation (Image: Run PkgEval)\nCode coverage (Image: Coverage)\nCollaboration (Image: ColPrac: Contributor's Guide on Collaborative Practices for Community Packages)\nFormatting (Image: SciML Code Style)","category":"page"},{"location":"#Breaking-Changes-in-FMI.jl-(starting-from-v0.14.0-until-release-of-v1.0.0)","page":"Introduction","title":"Breaking Changes in FMI.jl (starting from v0.14.0 until release of v1.0.0)","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"If you want to migrate your project from FMI.jl < v1.0.0 to >= v1.0.0, you will face some breaking changes - but they are worth it as you will see! We decided to do multiple smaller breaking changes starting with v0.14.0, instead of one big one. Some of them are already implemented (checked), some are still on the todo (unchecked) but will be implemented before releasing v1.0.0.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"[x] Many functions, that are not part of the FMI-standard, had the prefix fmi2... or fmi3.... This was corrected. Now, only functions that are defined by the standard itself, like e.g. fmi2Instantiate are allowed to keep the prefix. Other methods, like fmi2ValueReferenceToString, that where added to make this library more comfortable, are now cleaned to be more the Julia way: valueReferenceToString. If your code errors, the corresponding function might have lost it's prefix, so try this first.\n[x] Wrapper functions where removed, because that is not the Julia way. In most cases, this will not affect your code.\n[x] FMICore.jl and FMIImport.jl were divided into FMICore.jl, FMIImport.jl and FMIBase.jl. FMICore.jl now holds the pure standard definition (C-types and -functions), while FMIBase.jl holds everything that is needed on top of that in FMIImport.jl as well as in FMIExport.jl.\n[ ] Updated all library examples.\n[ ] Updated all library tests for a better code coverage.\n[ ] We tried to document every function, if you find undocumented user-level functions, please open an issue or PR.\n[ ] Allocations, type stability and code format where optimized and are monitored by CI now.\n[ ] Dependencies are reduced a little, to make the libraries more light-weight.\n[ ] RAM for allocated FMUs, their instances and states, is now auto-released. For maximum performance/safety you can use FMUs in blocks (like file reading/writing).\n[ ] New low-level interfaces are introduced, that fit the SciML-ecosystem. For example, a FMU can still be simulated with simulate(fmu), but one can also decide to create a prob = FMUProblem(fmu) (like an ODEProblem) and use solve(prob) to obtain a solution. Keywords will be adapted to have a fully consistent interface with the remaining SciML-ecosystem.\n[x] Optimization for new Julia LTS v1.10, removing code to keep downward compatibility with old LTS v1.6.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"🎉 After all listed features are implemented, v1.0.0 will be released! 🎉 ","category":"page"},{"location":"#How-can-I-use-FMI.jl?","page":"Introduction","title":"How can I use FMI.jl?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"1. Open a Julia-REPL, switch to package mode using ], activate your preferred environment.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"2. Install FMI.jl:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"(@v1) pkg> add FMI","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"3. If you want to check that everything works correctly, you can run the tests bundled with FMI.jl:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"(@v1) pkg> test FMI","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"4. Have a look inside the examples folder in the examples branch or the examples section of the documentation. All examples are available as Julia-Script (.jl), Jupyter-Notebook (.ipynb) and Markdown (.md).","category":"page"},{"location":"#How-can-I-simulate-a-FMU-and-plot-values?","page":"Introduction","title":"How can I simulate a FMU and plot values?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"using FMI, Plots\n\n# load and instantiate a FMU\nfmu = loadFMU(pathToFMU) \n\n# simulate from t=0.0s until t=10.0s and record the FMU variable named \"mass.s\"\nsimData = simulate(fmu, (0.0, 10.0); recordValues=[\"mass.s\"])\n\n# plot it!\nplot(simData)\n\n# free memory\nunloadFMU(myFMU)","category":"page"},{"location":"#What-is-currently-supported-in-FMI.jl?","page":"Introduction","title":"What is currently supported in FMI.jl?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"importing the full FMI 2.0.3 and FMI 3.0.0 command set, including optional specials like fmi2GetFMUstate, fmi2SetFMUstate and fmi2GetDirectionalDerivatives\nparameterization, simulation & plotting of CS- and ME-FMUs\nevent-handling for imported discontinuous ME-FMUs","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":" FMI2.0.3 FMI3.0 SSP1.0 \n Import Export Import Export Import Export\nCS ✔️✔️ 🚧 ✔️✔️ 📅 📅 📅\nME (continuous) ✔️✔️ ✔️✔️ ✔️✔️ 📅 📅 📅\nME (discontinuous) ✔️✔️ ✔️✔️ ✔️✔️ 📅 📅 📅\nSE 🚫 🚫 🚧 📅 🚫 🚫\nExplicit solvers ✔️✔️ ✔️✔️ ✔️✔️ 📅 📅 📅\nImplicit solvers (autodiff=false) ✔️✔️ ✔️✔️ ✔️✔️ 📅 📅 📅\nImplicit solvers (autodiff=true) ✔️ ✔️✔️ ✔️ 📅 📅 📅\nget/setFMUstate ✔️✔️ 📅 ✔️✔️ 📅 🚫 🚫\ngetDirectionalDerivatives ✔️✔️ 📅 ✔️✔️ 📅 🚫 🚫\ngetAdjointDerivatives 🚫 🚫 ✔️✔️ 📅 🚫 🚫\nFMI Cross Checks ✔️✔️ 📅 📅 📅 🚫 🚫\n64-bit binaries in FMUs ✔️✔️ ✔️✔️ ✔️✔️ 📅 🚫 🚫\n32-bit binaries in FMUs ✔️ 📅 📅 📅 🚫 🚫","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"✔️✔️ supported & CI-tested","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"✔️ beta supported: implemented, but not CI-tested","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"🚧 work in progress","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"📅 planned","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"🚫 not supported by the corresponding FMI standard (not applicable)","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"❌ not planned","category":"page"},{"location":"#What-FMI.jl-Library-to-use?","page":"Introduction","title":"What FMI.jl-Library to use?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"(Image: FMI.jl Logo) To keep dependencies nice and clean, the original package FMI.jl had been split into new packages:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"FMI.jl: High level loading, manipulating, saving or building entire FMUs from scratch\nFMIImport.jl: Importing FMUs into Julia\nFMIExport.jl: Exporting stand-alone FMUs from Julia Code\nFMIBase.jl: Common concepts for import and export of FMUs\nFMICore.jl: C-code wrapper for the FMI-standard\nFMISensitivity.jl: Static and dynamic sensitivities over FMUs\nFMIBuild.jl: Compiler/Compilation dependencies for FMIExport.jl\nFMIFlux.jl: Machine Learning with FMUs\nFMIZoo.jl: A collection of testing and example FMUs","category":"page"},{"location":"#What-Platforms-are-supported?","page":"Introduction","title":"What Platforms are supported?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"FMI.jl is tested (and testing) under Julia Versions 1.6 LTS (64-bit) and latest (64-bit) on Windows latest (64-bit, 32-bit) and Ubuntu latest (64-bit). Mac (64-bit, 32-bit) and Ubuntu (32-bit) should work, but untested. For the best performance, we recommend using Julia >= 1.7, even if we support and test for the official LTS (1.6.7).","category":"page"},{"location":"#How-to-cite?","page":"Introduction","title":"How to cite?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Tobias Thummerer, Lars Mikelsons and Josef Kircher. 2021. NeuralFMU: towards structural integration of FMUs into neural networks. Martin Sjölund, Lena Buffoni, Adrian Pop and Lennart Ochel (Ed.). Proceedings of 14th Modelica Conference 2021, Linköping, Sweden, September 20-24, 2021. Linköping University Electronic Press, Linköping (Linköping Electronic Conference Proceedings ; 181), 297-306. DOI: 10.3384/ecp21181297","category":"page"},{"location":"#Related-publications?","page":"Introduction","title":"Related publications?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Tobias Thummerer, Johannes Stoljar and Lars Mikelsons. 2022. NeuralFMU: presenting a workflow for integrating hybrid NeuralODEs into real-world applications. Electronics 11, 19, 3202. DOI: 10.3390/electronics11193202","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Tobias Thummerer, Johannes Tintenherr, Lars Mikelsons. 2021 Hybrid modeling of the human cardiovascular system using NeuralFMUs Journal of Physics: Conference Series 2090, 1, 012155. DOI: 10.1088/1742-6596/2090/1/012155","category":"page"},{"location":"#Notes-for-contributors","page":"Introduction","title":"Notes for contributors","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Contributors are welcome. Before contributing, please read, understand and follow the Contributor's Guide on Collaborative Practices for Community Packages. During development of new implementations or optimizations on existing code, one will have to make design decisions that influence the library performance and usability. The following prioritization should be the basis for decision-making:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"#1 Compliance with standard: It is the highest priority to be compliant with the FMI standard (fmi-standard.org). Identifiers described in the standard must be used. Topologies should follow the specification as far as the possibilities of the Julia programming language allows.\n#2 Performance: Because FMI.jl is a simulation tool, performance is very important. This applies to the efficient use of CPU and GPU, but also the conscientious use of RAM and disc space.\n#3 Usability: The library should be as usable as possible and feel \"the Julia way\" (e.g. by using multiple dispatch instead of the \"C coding style\"), as long as being fully compliant with the FMI standard.","category":"page"},{"location":"examples/modelica_conference_2021/#Example-from-the-Modelica-Conference-2021","page":"Modelica conference 2021","title":"Example from the Modelica Conference 2021","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"Tutorial by Tobias Thummerer, Johannes Stoljar","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"This example was updated over time to keep track with developments and changes in FMI.jl.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/modelica_conference_2021/#License","page":"Modelica conference 2021","title":"License","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/modelica_conference_2021/#Introduction-to-the-example","page":"Modelica conference 2021","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"FMUs can be simulated in multiple ways using FMI.jl. You can use a very simple interface, that offers possibilities that satisfy almost any user requirement. However, if you need to build a custom simulation loop for your use case using the core FMI functions, we show that too.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"(Image: svg) ","category":"page"},{"location":"examples/modelica_conference_2021/#Other-formats","page":"Modelica conference 2021","title":"Other formats","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/modelica_conference_2021/#Code-section","page":"Modelica conference 2021","title":"Code section","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"# imports\nusing FMI\nusing FMIZoo\nusing Plots","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00c0eb4e878d is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]","category":"page"},{"location":"examples/modelica_conference_2021/#Simulation-setup","page":"Modelica conference 2021","title":"Simulation setup","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"Next, the start time and end time of the simulation are set. Finally, a step size is specified to store the results of the simulation at these time steps.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"tStart = 0.0\ntStep = 0.1\ntStop = 8.0\ntSave = tStart:tStep:tStop","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"0.0:0.1:8.0","category":"page"},{"location":"examples/modelica_conference_2021/#Simple-FMU-Simulation","page":"Modelica conference 2021","title":"Simple FMU Simulation","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"Next, the FMU model from FMIZoo.jl is loaded and the information about the FMU is shown.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"# we use an FMU from the FMIZoo.jl\nfmu = loadFMU(\"SpringFrictionPendulum1D\", \"Dymola\", \"2022x\")\ninfo(fmu)","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"#################### Begin information for FMU ####################\n\tModel name:\t\t\tSpringFrictionPendulum1D\n\tFMI-Version:\t\t\t2.0\n\tGUID:\t\t\t\t{2e178ad3-5e9b-48ec-a7b2-baa5669efc0c}\n\tGeneration tool:\t\tDymola Version 2022x (64-bit), 2021-10-08\n\tGeneration time:\t\t2022-05-19T06:54:12Z\n\tVar. naming conv.:\t\tstructured\n\tEvent indicators:\t\t24\n\tInputs:\t\t\t\t0\n\tOutputs:\t\t\t0\n\tStates:\t\t\t\t2\n\t\t33554432 [\"mass.s\"]\n\t\t33554433 [\"mass.v\", \"mass.v_relfric\"]\n\tParameters:\t\t\t12\n\t\t16777216 [\"fricScale\"]\n\t\t16777217 [\"s0\"]\n\t\t16777218 [\"v0\"]\n\t\t16777219 [\"fixed.s0\"]\n\t\t...\n\t\t16777223 [\"mass.smin\"]\n\t\t16777224 [\"mass.v_small\"]\n\t\t16777225 [\"mass.L\"]\n\t\t16777226 [\"mass.m\"]\n\t\t16777227 [\"mass.fexp\"]\n\tSupports Co-Simulation:\t\ttrue\n\t\tModel identifier:\tSpringFrictionPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\n\n\t\tDir. Derivatives:\ttrue\n\t\tVar. com. steps:\ttrue\n\t\tInput interpol.:\ttrue\n\t\tMax order out. der.:\t1\n\tSupports Model-Exchange:\ttrue\n\t\tModel identifier:\tSpringFrictionPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n##################### End information for FMU #####################","category":"page"},{"location":"examples/modelica_conference_2021/#Easy-Simulation","page":"Modelica conference 2021","title":"Easy Simulation","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"In the next commands the FMU is simulated, for which the start and end time and recorded variables are declared. Afterwards the simulation result is plotted. In the plot for the FMU, it can be seen that the oscillation keeps decreasing due to the effect of friction. If one simulates long enough, the oscillation comes to a standstill after a certain time.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"simData = simulate(fmu, (tStart, tStop); recordValues=[\"mass.s\"], saveat=tSave)\nplot(simData)","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"(Image: svg)","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"unloadFMU(fmu)","category":"page"},{"location":"examples/modelica_conference_2021/#Custom-Simulation","page":"Modelica conference 2021","title":"Custom Simulation","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"In the following type of simulation a more advanced variant is presented, which allows intervening more in the simulation process. Analogous to the simple variant, an FMU model must be loaded.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"fmu = loadFMU(\"SpringFrictionPendulum1D\", \"Dymola\", \"2022x\")","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"Model name:\tSpringFrictionPendulum1D\nType:\t\t1","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"Next, it is necessary to create an instance of the FMU, this is achieved by the command fmi2Instantiate!(). ","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"instanceFMU = fmi2Instantiate!(fmu)","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"FMU: SpringFrictionPendulum1D\n InstanceName: SpringFrictionPendulum1D\n Address: Ptr{Nothing} @0x000002ec71a38230\n State: 0\n Logging: false\n FMU time: -Inf\n FMU states: nothing","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"In the following code block, start and end time for the simulation is set by the fmi2SetupExperiment() command. Next, the FMU is initialized by the calls of fmi2EnterInitializationMode() and fmi2ExitInitializationMode(). It would also be possible to set initial states, parameters or inputs at this place in code.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"fmi2SetupExperiment(instanceFMU, tStart, tStop)\n# set initial model states\nfmi2EnterInitializationMode(instanceFMU)\n# get initial model states\nfmi2ExitInitializationMode(instanceFMU)","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"0x00000000","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"The actual simulation loop is shown in the following block. Here a simulation step fmi2DoStep() with the fixed step size tStep is executed. As indicated in the code by the comments, the input values and output values of the FMU could be changed in the simulation loop as desired, whereby the higher possibility of adjustments arises.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"values = []\n\nfor t in tSave\n # set model inputs if any\n # ...\n\n fmi2DoStep(instanceFMU, tStep)\n \n # get model outputs\n value = fmi2GetReal(instanceFMU, \"mass.s\")\n push!(values, value)\nend\n\nplot(tSave, values)","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"(Image: svg)","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"The instantiated FMU must be terminated and then the memory area for the instance can also be deallocated. The last step is to unload the FMU to remove all unpacked data on disc. ","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"fmi2Terminate(instanceFMU)\nfmi2FreeInstance!(instanceFMU)\nunloadFMU(fmu)","category":"page"},{"location":"examples/modelica_conference_2021/#Summary","page":"Modelica conference 2021","title":"Summary","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"The tutorial has shown how to use the default simulation command and how to deploy a custom simulation loop.","category":"page"},{"location":"examples/parameterize/#Parameterize-a-FMU","page":"Parameterize","title":"Parameterize a FMU","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Tutorial by Tobias Thummerer, Johannes Stoljar","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Last update: 09.08.2023","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/parameterize/#License","page":"Parameterize","title":"License","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/parameterize/#Introduction","page":"Parameterize","title":"Introduction","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"This example shows how to parameterize a FMU. We will show to possible ways to parameterize: The default option using the parameterization feature of fmiSimulate, fmiSimulateME or fmiSimulateCS. Second, a custom parameterization routine for advanced users. ","category":"page"},{"location":"examples/parameterize/#Other-formats","page":"Parameterize","title":"Other formats","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/parameterize/#Code-section","page":"Parameterize","title":"Code section","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"# imports\nusing FMI\nusing FMIZoo","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00eb96972459 is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]","category":"page"},{"location":"examples/parameterize/#Simulation-setup","page":"Parameterize","title":"Simulation setup","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Next, the start time and end time of the simulation are set.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"tStart = 0.0\ntStop = 1.0\ntSave = collect(tStart:tStop)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"2-element Vector{Float64}:\n 0.0\n 1.0","category":"page"},{"location":"examples/parameterize/#Import-FMU","page":"Parameterize","title":"Import FMU","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"In the next lines of code the FMU model from FMIZoo.jl is loaded and the information about the FMU is shown.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"# we use an FMU from the FMIZoo.jl\n# just replace this line with a local path if you want to use your own FMU\npathToFMU = get_model_filename(\"IO\", \"Dymola\", \"2022x\")\n\nfmu = loadFMU(pathToFMU)\ninfo(fmu)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"#################### Begin information for FMU ####################\n\tModel name:\t\t\tIO\n\tFMI-Version:\t\t\t2.0\n\tGUID:\t\t\t\t{889089a6-481b-41a6-a282-f6ce02a33aa6}\n\tGeneration tool:\t\tDymola Version 2022x (64-bit), 2021-10-08\n\tGeneration time:\t\t2022-05-19T06:53:52Z\n\tVar. naming conv.:\t\tstructured\n\tEvent indicators:\t\t4\n\tInputs:\t\t\t\t3\n\n\n\t\t352321536 [\"u_real\"]\n\t\t352321537 [\"u_boolean\"]\n\t\t352321538 [\"u_integer\"]\n\tOutputs:\t\t\t3\n\t\t335544320 [\"y_real\"]\n\t\t335544321 [\"y_boolean\"]\n\t\t335544322 [\"y_integer\"]\n\tStates:\t\t\t\t0\n\tParameters:\t\t\t5\n\t\t16777216 [\"p_real\"]\n\t\t16777217 [\"p_integer\"]\n\t\t16777218 [\"p_boolean\"]\n\t\t16777219 [\"p_enumeration\"]\n\t\t134217728 [\"p_string\"]\n\tSupports Co-Simulation:\t\ttrue\n\t\tModel identifier:\tIO\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n\t\tVar. com. steps:\ttrue\n\t\tInput interpol.:\ttrue\n\t\tMax order out. der.:\t1\n\tSupports Model-Exchange:\ttrue\n\t\tModel identifier:\tIO\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n##################### End information for FMU #####################","category":"page"},{"location":"examples/parameterize/#Option-A:-Integrated-parameterization-feature-of-*FMI.jl*","page":"Parameterize","title":"Option A: Integrated parameterization feature of FMI.jl","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"If you are using the commands for simulation integrated in FMI.jl, the parameters and initial conditions are set at the correct locations during the initialization process of your FMU. This is the recommended way of parameterizing your model, if you don't have very uncommon requirements regarding initialization.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"dict = Dict{String, Any}()\ndict","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Dict{String, Any}()","category":"page"},{"location":"examples/parameterize/#Option-B:-Custom-parameterization-routine","page":"Parameterize","title":"Option B: Custom parameterization routine","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"If you have special requirements for initialization and parameterization, you can write your very own parameterization routine.","category":"page"},{"location":"examples/parameterize/#Instantiate-and-Setup-FMU","page":"Parameterize","title":"Instantiate and Setup FMU","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Next it is necessary to create an instance of the FMU. This is achieved by the command fmiInstantiate!().","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"c = fmi2Instantiate!(fmu; loggingOn=true)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"FMU: IO\n InstanceName: IO\n Address: Ptr{Nothing} @0x000001db0c96c420\n State: 0\n Logging: true\n FMU time: -Inf\n FMU states: nothing","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"In the following code block, start and end time for the simulation is set by the fmiSetupExperiment() command.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2SetupExperiment(c, tStart, tStop)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/#Parameterize-FMU","page":"Parameterize","title":"Parameterize FMU","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"In this example, for each data type (real, boolean, integer and string) a corresponding input or parameter is selected. From here on, the inputs and parameters will be referred to as parameters for simplicity.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"params = [\"p_real\", \"p_boolean\", \"p_integer\", \"p_string\"]","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"4-element Vector{String}:\n \"p_real\"\n \"p_boolean\"\n \"p_integer\"\n \"p_string\"","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"At the beginning we want to display the initial state of these parameters, for which the FMU must be in initialization mode. The next function fmiEnterInitializationMode() informs the FMU to enter the initialization mode. Before calling this function, the variables can be set. Furthermore, fmiSetupExperiment() must be called at least once before calling fmiEnterInitializationMode(), in order that the start time is defined.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2EnterInitializationMode(c)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"The initial state of these parameters are displayed with the function getValue().","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"getValue(c, params)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"4-element Vector{Any}:\n 0.0\n 0\n 0\n \"Hello World!\"","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"The initialization mode is terminated with the function fmi2ExitInitializationMode(). (For the model exchange FMU type, this function switches off all initialization equations, and enters the event mode implicitly.)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2ExitInitializationMode(c)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"In the next step, a function is defined that generates a random value for each parameter. For the parameter p_string a random number is inserted into the string. All parameters are combined to a tuple and output.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"function generateRandomNumbers()\n rndReal = 100 * rand()\n rndBoolean = rand() > 0.5\n rndInteger = round(Integer, 100 * rand())\n rndString = \"Random number $(100 * rand())!\"\n\n return rndReal, rndBoolean, rndInteger, rndString\nend","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"generateRandomNumbers (generic function with 1 method)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"The previously defined function is called and the results are displayed in the console.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"paramsVal = generateRandomNumbers()","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"(99.71195395748381, true, 49, \"Random number 27.25374833040084!\")","category":"page"},{"location":"examples/parameterize/#First-variant","page":"Parameterize","title":"First variant","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"To show the first variant, it is necessary to terminate and reset the FMU instance. Then, as before, the setup command must be called for the FMU. ","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2Terminate(c)\nfmi2Reset(c)\nfmi2SetupExperiment(c, tStart, tStop)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"In the next step it is possible to set the parameters for the FMU. With the first variant it is quickly possible to set all parameters at once. Even different data types can be set with only one command. The command setValue() selects itself which function is chosen for which data type. As long as the output of the function gives the status code 0, setting the parameters has worked.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"setValue(c, params, collect(paramsVal))","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"4-element Vector{UInt32}:\n 0x00000000\n 0x00000000\n 0x00000000\n 0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"After setting the parameters, it can be checked whether the corresponding parameters were set correctly. For this the function getValue() can be used as above. To be able to call the function getValue() the FMU must be in initialization mode.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2EnterInitializationMode(c)\n# getValue(c, params)\nfmi2ExitInitializationMode(c)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Now the FMU has been initialized correctly, the FMU can be simulated. The simulate() command is used for this purpose. It must be pointed out that the keywords instantiate=false, setup=false must be set. The keyword instantiate=false prevents the simulation command from creating a new FMU instance, otherwise our parameterization will be lost. The keyword setup=false prevents the FMU from calling the initialization mode again. The additionally listed keyword freeInstance=false prevents that the instance is removed after the simulation. This is only needed in this example, because we want to continue working on the created instance. Another keyword is the recordValues=parmas[1:3], which saves: p_real, p_boolean and p_integer as output. It should be noted that the simulate() function is not capable of outputting string values, so p_string is omitted.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"simData = simulate(c, (tStart, tStop); recordValues=params[1:3], saveat=tSave, \n instantiate=false, setup=false, freeInstance=false, terminate=false, reset=false)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Model name:\n\tIO\nSuccess:\n\ttrue\nf(x)-Evaluations:\n\tIn-place: 0\n\tOut-of-place: 0\nJacobian-Evaluations:\n\t∂ẋ_∂p: 0\n\t∂ẋ_∂x: 0\n\t∂ẋ_∂u: 0\n\t∂y_∂p: 0\n\t∂y_∂x: 0\n\t∂y_∂u: 0\n\t∂e_∂p: 0\n\t∂e_∂x: 0\n\t∂e_∂u: 0\n\t∂xr_∂xl: 0\nGradient-Evaluations:\n\t∂ẋ_∂t: 0\n\t∂y_∂t: 0\n\t∂e_∂t: 0\nCallback-Evaluations:\n\tCondition (event-indicators): 0\n\tTime-Choice (event-instances): 0\n\tAffect (event-handling): 0\n\tSave values: 0\n\tSteps completed: 0\nValues [2]:\n\t0.0\t(99.71195395748381, 1.0, 49.0)\n\t1.0\t(99.71195395748381, 1.0, 49.0)\nEvents [0]:","category":"page"},{"location":"examples/parameterize/#Second-variant","page":"Parameterize","title":"Second variant","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"To show the second variant, it is necessary to terminate and reset the FMU instance. Then, as before, the setup command must be called for the FMU. ","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2Terminate(c)\nfmi2Reset(c)\nfmi2SetupExperiment(c, tStart, tStop)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"To make sure that the functions work it is necessary to generate random numbers again. As shown already, we call the defined function generateRandomNumbers() and output the values.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"rndReal, rndBoolean, rndInteger, rndString = generateRandomNumbers()","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"(63.821182015235024, true, 98, \"Random number 38.18358553733713!\")","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"In the second variant, the value for each data type is set separately by the corresponding command. By this variant one has the maximum control and can be sure that also the correct data type is set. ","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2SetReal(c, \"p_real\", rndReal)\nfmi2SetBoolean(c, \"p_boolean\", rndBoolean)\nfmi2SetInteger(c, \"p_integer\", rndInteger)\nfmi2SetString(c, \"p_string\", rndString)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"To illustrate the functionality of the parameterization with the separate functions, the corresponding get function can be also called separately for each data type:","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2SetReal() ⇔ fmi2GetReal()\nfmi2SetBoolean() ⇔ fmi2GetBoolean()\nfmi2SetInteger() ⇔ fmi2GetInteger()\nfmi2SetString() ⇔ fmi2GetString().","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"As before, the FMU must be in initialization mode.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2EnterInitializationMode(c)\n# fmi2GetReal(c, \"u_real\")\n# fmi2GetBoolean(c, \"u_boolean\")\n# fmi2GetInteger(c, \"u_integer\")\n# fmi2GetString(c, \"p_string\")\nfmi2ExitInitializationMode(c)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"From here on, you may want to simulate the FMU. Please note, that with the default executionConfig, it is necessary to prevent a new instantiation using the keyword instantiate=false. Otherwise, a new instance is allocated for the simulation-call and the parameters set for the previous instance are not transfered.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"simData = simulate(c, (tStart, tStop); recordValues=params[1:3], saveat=tSave, \n instantiate=false, setup=false)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Model name:\n\tIO\nSuccess:\n\ttrue\nf(x)-Evaluations:\n\tIn-place: 0\n\tOut-of-place: 0\nJacobian-Evaluations:\n\t∂ẋ_∂p: 0\n\t∂ẋ_∂x: 0\n\t∂ẋ_∂u: 0\n\t∂y_∂p: 0\n\t∂y_∂x: 0\n\t∂y_∂u: 0\n\t∂e_∂p: 0\n\t∂e_∂x: 0\n\t∂e_∂u: 0\n\t∂xr_∂xl: 0\nGradient-Evaluations:\n\t∂ẋ_∂t: 0\n\t∂y_∂t: 0\n\t∂e_∂t: 0\nCallback-Evaluations:\n\tCondition (event-indicators): 0\n\tTime-Choice (event-instances): 0\n\tAffect (event-handling): 0\n\tSave values: 0\n\tSteps completed: 0\nValues [2]:\n\t0.0\t(63.821182015235024, 1.0, 98.0)\n\t1.0\t(63.821182015235024, 1.0, 98.0)\nEvents [0]:","category":"page"},{"location":"examples/parameterize/#Unload-FMU","page":"Parameterize","title":"Unload FMU","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"The FMU will be unloaded and all unpacked data on disc will be removed.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"unloadFMU(fmu)","category":"page"},{"location":"examples/parameterize/#Summary","page":"Parameterize","title":"Summary","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Based on this tutorial it can be seen that there are two different variants to set and get parameters.These examples should make it clear to the user how parameters can also be set with different data types. As a small reminder, the sequence of commands for the manual parameterization of an FMU is summarized again. ","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"loadFMU() → fmiInstantiate!() → fmiSetupExperiment() → fmiSetXXX() → fmiEnterInitializationMode() → fmiGetXXX() → fmiExitInitializationMode() → simualte() → unloadFMU()","category":"page"}] +[{"location":"examples/multiprocessing/#Multiprocessing","page":"Multiprocessing","title":"Multiprocessing","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Tutorial by Jonas Wilfert, Tobias Thummerer","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/multiprocessing/#License","page":"Multiprocessing","title":"License","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar, Jonas Wilfert\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/multiprocessing/#Motivation","page":"Multiprocessing","title":"Motivation","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"This Julia Package FMI.jl is motivated by the use of simulation models in Julia. Here the FMI specification is implemented. FMI (Functional Mock-up Interface) is a free standard (fmi-standard.org) that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. The user can thus use simulation models in the form of an FMU (Functional Mock-up Units). Besides loading the FMU, the user can also set values for parameters and states and simulate the FMU both as co-simulation and model exchange simulation.","category":"page"},{"location":"examples/multiprocessing/#Introduction-to-the-example","page":"Multiprocessing","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"This example shows how to parallelize the computation of an FMU in FMI.jl. We can compute a batch of FMU-evaluations in parallel with different initial settings. Parallelization can be achieved using multithreading or using multiprocessing. This example shows multiprocessing, check multithreading.ipynb for multithreading. Advantage of multithreading is a lower communication overhead as well as lower RAM usage. However in some cases multiprocessing can be faster as the garbage collector is not shared.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"The model used is a one-dimensional spring pendulum with friction. The object-orientated structure of the SpringFrictionPendulum1D can be seen in the following graphic.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"(Image: svg) ","category":"page"},{"location":"examples/multiprocessing/#Target-group","page":"Multiprocessing","title":"Target group","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"The example is primarily intended for users who work in the field of simulations. The example wants to show how simple it is to use FMUs in Julia.","category":"page"},{"location":"examples/multiprocessing/#Other-formats","page":"Multiprocessing","title":"Other formats","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/multiprocessing/#Getting-started","page":"Multiprocessing","title":"Getting started","text":"","category":"section"},{"location":"examples/multiprocessing/#Installation-prerequisites","page":"Multiprocessing","title":"Installation prerequisites","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":" Description Command Alternative\n1. Enter Package Manager via ] \n2. Install FMI via add FMI add \" https://github.com/ThummeTo/FMI.jl \"\n3. Install FMIZoo via add FMIZoo add \" https://github.com/ThummeTo/FMIZoo.jl \"\n4. Install FMICore via add FMICore add \" https://github.com/ThummeTo/FMICore.jl \"\n5. Install BenchmarkTools via add BenchmarkTools ","category":"page"},{"location":"examples/multiprocessing/#Code-section","page":"Multiprocessing","title":"Code section","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Adding your desired amount of processes:","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"using Distributed\nn_procs = 2\naddprocs(n_procs; exeflags=`--project=$(Base.active_project()) --threads=auto`, restrict=false)","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"2-element Vector{Int64}:\n 2\n 3","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"# imports\n@everywhere using FMI\n@everywhere using FMIZoo\n@everywhere using DifferentialEquations\n@everywhere using BenchmarkTools","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00f849c2ce69 is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Checking that we workers have been correctly initialized:","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"workers()\n\n@everywhere println(\"Hello World!\")\n\n# The following lines can be uncommented for more advanced information about the subprocesses\n# @everywhere println(pwd())\n# @everywhere println(Base.active_project())\n# @everywhere println(gethostname())\n# @everywhere println(VERSION)\n# @everywhere println(Threads.nthreads())","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Hello World!\n\n\n From worker 2:\tHello World!","category":"page"},{"location":"examples/multiprocessing/#Simulation-setup","page":"Multiprocessing","title":"Simulation setup","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Next, the batch size and input values are defined.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"\n# Best if batchSize is a multiple of the threads/cores\nbatchSize = 16\n\n# Define an array of arrays randomly\ninput_values = collect(collect.(eachrow(rand(batchSize,2))))","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":" From worker 3:\tHello World!\n\n\n\n\n\n16-element Vector{Vector{Float64}}:\n [0.38805462912056066, 0.07510792586323556]\n [0.8807277170771226, 0.23234237033075067]\n [0.729550029465148, 0.26718619077730743]\n [0.5527796202540214, 0.48150351989895623]\n [0.11845533303718903, 0.22013115810219963]\n [0.9045023979305892, 0.789498914728158]\n [0.6101194236512227, 0.09311783704427434]\n [0.002347399092128555, 0.669429745665108]\n [0.34093546115734696, 0.625870454077811]\n [0.0065065586661340324, 0.45253584745662123]\n [0.27766097097526643, 0.9758541018715101]\n [0.3197413153136759, 0.595442191855064]\n [0.24453281727680343, 0.6693340106504039]\n [0.09500940727989071, 0.007854672663103579]\n [0.16854664007036724, 0.34109872635607064]\n [0.9740613617588455, 0.6529933214970527]","category":"page"},{"location":"examples/multiprocessing/#Shared-Module","page":"Multiprocessing","title":"Shared Module","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"For Distributed we need to embed the FMU into its own module. This prevents Distributed from trying to serialize and send the FMU over the network, as this can cause issues. This module needs to be made available on all processes using @everywhere.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"@everywhere module SharedModule\n using FMIZoo\n using FMI\n\n t_start = 0.0\n t_step = 0.1\n t_stop = 10.0\n tspan = (t_start, t_stop)\n tData = collect(t_start:t_step:t_stop)\n\n model_fmu = loadFMU(\"SpringPendulum1D\", \"Dymola\", \"2022x\"; type=:ME)\nend","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"We define a helper function to calculate the FMU and combine it into an Matrix.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"@everywhere function runCalcFormatted(fmu, x0, recordValues=[\"mass.s\", \"mass.v\"])\n data = simulateME(fmu, SharedModule.tspan; recordValues=recordValues, saveat=SharedModule.tData, x0=x0, showProgress=false, dtmax=1e-4)\n return reduce(hcat, data.states.u)\nend","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Running a single evaluation is pretty quick, therefore the speed can be better tested with BenchmarkTools.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"@benchmark data = runCalcFormatted(SharedModule.model_fmu, rand(2))","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"BenchmarkTools.Trial: 2 samples with 1 evaluation per sample.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m3.152 s\u001b[22m\u001b[39m … \u001b[35m 3.174 s\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.32% … 0.72%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m3.163 s \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.52%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m3.163 s\u001b[22m\u001b[39m ± \u001b[32m15.487 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m0.52% ± 0.28%\n\n \u001b[34m█\u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m█\u001b[39m \u001b[39m \n \u001b[34m█\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[32m▁\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m█\u001b[39m \u001b[39m▁\n 3.15 s\u001b[90m Histogram: frequency by time\u001b[39m 3.17 s \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m300.75 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m7602420\u001b[39m.","category":"page"},{"location":"examples/multiprocessing/#Single-Threaded-Batch-Execution","page":"Multiprocessing","title":"Single Threaded Batch Execution","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"To compute a batch we can collect multiple evaluations. In a single threaded context we can use the same FMU for every call.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"println(\"Single Threaded\")\n@benchmark collect(runCalcFormatted(SharedModule.model_fmu, i) for i in input_values)","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Single Threaded\n\n\n\n\n\nBenchmarkTools.Trial: 1 sample with 1 evaluation per sample.\n Single result which took \u001b[34m50.391 s\u001b[39m (0.38% GC) to evaluate,\n with a memory estimate of \u001b[33m4.70 GiB\u001b[39m, over \u001b[33m121638708\u001b[39m allocations.","category":"page"},{"location":"examples/multiprocessing/#Multithreaded-Batch-Execution","page":"Multiprocessing","title":"Multithreaded Batch Execution","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"In a multithreaded context we have to provide each thread it's own fmu, as they are not thread safe. To spread the execution of a function to multiple processes, the function pmap can be used.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"println(\"Multi Threaded\")\n@benchmark pmap(i -> runCalcFormatted(SharedModule.model_fmu, i), input_values)","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"Multi Threaded\n\n\n\n\n\n\n\nBenchmarkTools.Trial: 1 sample with 1 evaluation per sample.\n Single result which took \u001b[34m30.101 s\u001b[39m (0.00% GC) to evaluate,\n with a memory estimate of \u001b[33m99.47 KiB\u001b[39m, over \u001b[33m1597\u001b[39m allocations.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"As you can see, there is a significant speed-up in the median execution time. But: The speed-up is often much smaller than n_procs (or the number of physical cores of your CPU), this has different reasons. For a rule of thumb, the speed-up should be around n/2 on a n-core-processor with n Julia processes.","category":"page"},{"location":"examples/multiprocessing/#Unload-FMU","page":"Multiprocessing","title":"Unload FMU","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"After calculating the data, the FMU is unloaded and all unpacked data on disc is removed.","category":"page"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"@everywhere unloadFMU(SharedModule.model_fmu)","category":"page"},{"location":"examples/multiprocessing/#Summary","page":"Multiprocessing","title":"Summary","text":"","category":"section"},{"location":"examples/multiprocessing/","page":"Multiprocessing","title":"Multiprocessing","text":"In this tutorial it is shown how multi processing with Distributed.jl can be used to improve the performance for calculating a Batch of FMUs.","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#Working-with-the-FMI-model-description","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"section"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"The FMI model description provides all human readable information on the model. The following functions can be used to obtain all information provided by the model description, which in turn can be extracted from the fmu.","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#Loading/Parsing","page":"Working with the FMI model description","title":"Loading/Parsing","text":"","category":"section"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2LoadModelDescription","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#general-information-about-the-FMU","page":"Working with the FMI model description","title":"general information about the FMU","text":"","category":"section"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2GetGenerationTool fmi2GetGenerationDateAndTime","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#technical-information-about-the-FMU","page":"Working with the FMI model description","title":"technical information about the FMU","text":"","category":"section"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2GetVersion\nfmi2GetTypesPlatform\n","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#FMICore.fmi2GetVersion","page":"Working with the FMI model description","title":"FMICore.fmi2GetVersion","text":"Source: FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files\n\nReturns the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “2.0”\n\n\n\n\n\nfmi2GetVersion(fmu::FMU2)\n\nReturns the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU.\n\nArguments\n\nfmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\n\nReturns\n\nReturns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi2Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “2.0”\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_modeldescription_functions/#FMICore.fmi2GetTypesPlatform","page":"Working with the FMI model description","title":"FMICore.fmi2GetTypesPlatform","text":"Source: FMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files\n\nReturns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU. The standard header file, as documented in this specification, has fmi2TypesPlatform set to “default” (so this function usually returns “default”).\n\n\n\n\n\nfmi2GetTypesPlatform(fmu::FMU2)\n\nReturns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU. The standard header file, as documented in this specification, has fmi2TypesPlatform set to “default” (so this function usually returns “default”).\n\nArguments\n\nfmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\n\nReturns\n\nReturns the string to uniquely identify the “fmi2TypesPlatform.h” header file used for compilation of the functions of the FMU.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.4 Inquire Platform and Version Number of Header Files\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_modeldescription_functions/#FMU-capabilities","page":"Working with the FMI model description","title":"FMU capabilities","text":"","category":"section"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"canGetSetFMUState\nisModelStructureAvailable\nisModelStructureDerivativesAvailable","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#FMIBase.canGetSetFMUState","page":"Working with the FMI model description","title":"FMIBase.canGetSetFMUState","text":"canGetSetFMUState(md::fmi2ModelDescription)\n\nReturns true, if the FMU supports the getting/setting of states\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\n::Bool: Returns true, if the FMU supports the getting/setting of states.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_modeldescription_functions/#FMIImport.isModelStructureAvailable","page":"Working with the FMI model description","title":"FMIImport.isModelStructureAvailable","text":"isModelStructureAvailable(md::fmi2ModelDescription)\n\nReturns true if the FMU model description contains dependency information.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\n::Bool: Returns true, if the FMU model description contains dependency information.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_modeldescription_functions/#FMIImport.isModelStructureDerivativesAvailable","page":"Working with the FMI model description","title":"FMIImport.isModelStructureDerivativesAvailable","text":"isModelStructureDerivativesAvailable(md::fmi2ModelDescription)\n\nReturns if the FMU model description contains dependency information for derivatives.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\n::Bool: Returns true, if the FMU model description contains dependency information for derivatives.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2DependenciesSupported fmi2DerivativeDependenciesSupported fmi2CanSerializeFMUstate fmi2ProvidesDirectionalDerivative","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#value-references","page":"Working with the FMI model description","title":"value references","text":"","category":"section"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getModelVariableIndices","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#FMIBase.getModelVariableIndices","page":"Working with the FMI model description","title":"FMIBase.getModelVariableIndices","text":"getModelVariableIndices(md::fmi2ModelDescription; vrs=md.valueReferences)\n\nReturns a array of indices corresponding to value references vrs\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})\n\nReturns\n\nnames::Array{Integer}: Returns a array of indices corresponding to value references vrs\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2GetValueReferencesAndNames fmi2GetNames","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/#In-/Outputs","page":"Working with the FMI model description","title":"In-/Outputs","text":"","category":"section"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"page"},{"location":"fmi2_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2GetOutputValueReferencesAndNames","category":"page"},{"location":"contents/","page":"Contents","title":"Contents","text":"Depth = 2","category":"page"},{"location":"fmi3_lowlevel_SE_functions/#FMI-for-Scheduled-Execution","page":"FMI for Scheduled Execution","title":"FMI for Scheduled Execution","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/#Working-with-the-FMI-model-description","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"The FMI model description provides all human readable information on the model. The following functions can be used to obtain all information provided by the model description, which in turn can be extracted from the fmu.","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#Loading/Parsing","page":"Working with the FMI model description","title":"Loading/Parsing","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2LoadModelDescription","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#general-information-about-the-FMU","page":"Working with the FMI model description","title":"general information about the FMU","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getGUID\ngetInstantiationToken\ngetGenerationDateAndTime\ngetGenerationTool","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIImport.getGUID","page":"Working with the FMI model description","title":"FMIImport.getGUID","text":"getGUID(md::fmi2ModelDescription)\n\nReturns the tag 'guid' from the model description.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nguid::String: Returns the tag 'guid' from the model description.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getInstantiationToken","page":"Working with the FMI model description","title":"FMIBase.getInstantiationToken","text":"Returns the tag 'instantionToken' from the model description.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getGenerationDateAndTime","page":"Working with the FMI model description","title":"FMIBase.getGenerationDateAndTime","text":"getGenerationDateAndTime(md::fmi2ModelDescription)\n\nReturns the tag 'generationdateandtime' from the model description.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.generationDateAndTime::DateTime: Returns the tag 'generationdateandtime' from the model description.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getGenerationTool","page":"Working with the FMI model description","title":"FMIBase.getGenerationTool","text":"getGenerationTool(md::fmi2ModelDescription)\n\nReturns the tag 'generationtool' from the model description.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.generationTool::Union{String, Nothing}: Returns the tag 'generationtool' from the model description.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#technical-information-about-the-FMU","page":"Working with the FMI model description","title":"technical information about the FMU","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getNumberOfEventIndicators\ngetModelIdentifier\ngetVariableNamingConvention","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getNumberOfEventIndicators","page":"Working with the FMI model description","title":"FMIBase.getNumberOfEventIndicators","text":"getNumberOfEventIndicators(md::fmi2ModelDescription)\n\nReturns the tag 'numberOfEventIndicators' from the model description.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.numberOfEventIndicators::Union{UInt, Nothing}: Returns the tag 'numberOfEventIndicators' from the model description.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getModelIdentifier","page":"Working with the FMI model description","title":"FMIBase.getModelIdentifier","text":"getModelIdentifier(md::fmiModelDescription; type=nothing)\n\nReturns the tag 'modelIdentifier' from CS or ME section.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\ntype=nothing: Defines whether a Co-Simulation or Model Exchange is present. (default = nothing)\n\nReturns\n\nmd.modelExchange.modelIdentifier::String: Returns the tag modelIdentifier from ModelExchange section.\nmd.coSimulation.modelIdentifier::String: Returns the tag modelIdentifier from CoSimulation section.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getVariableNamingConvention","page":"Working with the FMI model description","title":"FMIBase.getVariableNamingConvention","text":"getVariableNamingConvention(md::fmi2ModelDescription)\n\nReturns the tag 'varaiblenamingconvention' from the model description.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.variableNamingConvention::Union{fmi2VariableNamingConvention, Nothing}: Returns the tag 'variableNamingConvention' from the model description.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi2GetVersion fmi2GetTypesPlatform","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#default-experiment-settings","page":"Working with the FMI model description","title":"default experiment settings","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getDefaultStartTime\ngetDefaultStepSize\ngetDefaultStopTime\ngetDefaultTolerance","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getDefaultStartTime","page":"Working with the FMI model description","title":"FMIBase.getDefaultStartTime","text":"getDefaultStartTime(md::fmi2ModelDescription)\n\nReturns startTime from DefaultExperiment if defined else defaults to nothing.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.defaultExperiment.startTime::Union{Real,Nothing}: Returns a real value startTime from the DefaultExperiment if defined else defaults to nothing.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getDefaultStepSize","page":"Working with the FMI model description","title":"FMIBase.getDefaultStepSize","text":"getDefaultStepSize(md::fmi2ModelDescription)\n\nReturns stepSize from DefaultExperiment if defined else defaults to nothing.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.defaultExperiment.stepSize::Union{Real,Nothing}: Returns a real value setpSize from the DefaultExperiment if defined else defaults to nothing.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getDefaultStopTime","page":"Working with the FMI model description","title":"FMIBase.getDefaultStopTime","text":"getDefaultStopTime(md::fmi2ModelDescription)\n\nReturns stopTime from DefaultExperiment if defined else defaults to nothing.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.defaultExperiment.stopTime::Union{Real,Nothing}: Returns a real value stopTime from the DefaultExperiment if defined else defaults to nothing.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getDefaultTolerance","page":"Working with the FMI model description","title":"FMIBase.getDefaultTolerance","text":"getDefaultTolerance(md::fmi2ModelDescription)\n\nReturns tolerance from DefaultExperiment if defined else defaults to nothing.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmd.defaultExperiment.tolerance::Union{Real,Nothing}: Returns a real value tolerance from the DefaultExperiment if defined else defaults to nothing.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMU-capabilities","page":"Working with the FMI model description","title":"FMU capabilities","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"canSerializeFMUState\nprovidesDirectionalDerivatives\nprovidesAdjointDerivatives","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.canSerializeFMUState","page":"Working with the FMI model description","title":"FMIBase.canSerializeFMUState","text":"canSerializeFMUState(md::fmi2ModelDescription)\n\nReturns true, if the FMU state can be serialized\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\n::Bool: Returns true, if the FMU state can be serialized\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.providesDirectionalDerivatives","page":"Working with the FMI model description","title":"FMIBase.providesDirectionalDerivatives","text":"providesDirectionalDerivative(md::fmi2ModelDescription)\n\nReturns true, if the FMU provides directional derivatives\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\n::Bool: Returns true, if the FMU provides directional derivatives\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.providesAdjointDerivatives","page":"Working with the FMI model description","title":"FMIBase.providesAdjointDerivatives","text":"Returns true, if the FMU provides adjoint derivatives\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"canGetSetFMUState fmi2DependenciesSupported fmi2DerivativeDependenciesSupported fmi2ProvidesDirectionalDerivative","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#value-references","page":"Working with the FMI model description","title":"value references","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getValueReferencesAndNames\ngetNames\ndataTypeForValueReference\nprepareValueReference\nprepareValue","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getValueReferencesAndNames","page":"Working with the FMI model description","title":"FMIBase.getValueReferencesAndNames","text":"getValueReferencesAndNames(obj; vrs=md.valueReferences)\n\nwith:\n\nobj ∈ (fmi2ModelDescription, FMU2)\n\nReturns a dictionary Dict(fmi2ValueReference, Array{String}) of value references and their corresponding names.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})\n\nReturns\n\ndict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getNames","page":"Working with the FMI model description","title":"FMIBase.getNames","text":"getNames(md::fmi2ModelDescription; vrs=md.valueReferences, mode=:first)\n\nReturns a array of names corresponding to value references vrs.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.valueReferences: Additional attribute valueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})\nmode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)\n\nReturns\n\nnames::Array{String}: Returns a array of names corresponding to value references vrs\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.dataTypeForValueReference","page":"Working with the FMI model description","title":"FMIBase.dataTypeForValueReference","text":"dataTypeForValueReference(obj, vr::fmi2ValueReference)\n\nwhere:\n\nobj ∈ (fmi2ModelDescription, FMU2)\n\nReturns the fmi2DataType (fmi2Real, fmi2Integer, fmi2Boolean, fmi2String) for a given value reference vr.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.prepareValueReference","page":"Working with the FMI model description","title":"FMIBase.prepareValueReference","text":"prepareValueReference(obj, vrs)\n\nwhere: \n\nobj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3, FMU2Component, FMU3Instance) vrs ∈ (fmi2ValueReference, AbstractVector{fmi2ValueReference}, fmi3ValueReference, AbstractVector{fmi3ValueReference}, String, AbstractVector{String}, Integer, AbstractVector{Integer}, :states, :derivatives, :inputs, :outputs, :all, :none, Nothing)\n\nReceives one or an array of value references in an arbitrary format (see fmi2ValueReferenceFormat) and converts it into an Array{fmi2ValueReference} (if not already).\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.prepareValue","page":"Working with the FMI model description","title":"FMIBase.prepareValue","text":"prepareValue(value)\n\nPrepares a value for a FMI ccall (they only accept arrays). Technically, the value is packed into an array - if not already.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#In-/Outputs","page":"Working with the FMI model description","title":"In-/Outputs","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getInputNames\ngetInputValueReferencesAndNames\ngetInputNamesAndStarts\ngetOutputNames\ngetOutputValueReferencesAndNames","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getInputNames","page":"Working with the FMI model description","title":"FMIBase.getInputNames","text":"getInputNames(md::fmi2ModelDescription; vrs=md.inputvalueReferences, mode=:first)\n\nReturns names of inputs.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.inputvalueReferences: Additional attribute inputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.valueReferences::Array{fmi2ValueReference})\nmode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)\n\nReturns\n\nnames::Array{String}: Returns a array of names corresponding to value references vrs\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getInputValueReferencesAndNames","page":"Working with the FMI model description","title":"FMIBase.getInputValueReferencesAndNames","text":"getInputValueReferencesAndNames(md::fmi2ModelDescription)\n\nReturns a dict with (vrs, names of inputs).\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\nfmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\n\nReturns\n\ndict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of inputs)\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getInputNamesAndStarts","page":"Working with the FMI model description","title":"FMIBase.getInputNamesAndStarts","text":"getInputNamesAndStarts(md::fmi2ModelDescription)\n\nReturns a dictionary of input variables with their starting values.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\ndict::Dict{String, Array{fmi2ValueReferenceFormat}}: Returns a dictionary that constructs a hash table with keys of type String and values of type fmi2ValueReferenceFormat. So returns a dict with ( md.modelVariables[i].name::String, starts:: Array{fmi2ValueReferenceFormat} ). (Creates a tuple (name, starts) for each i in inputIndices)\n\nSee also getStartValue.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getOutputNames","page":"Working with the FMI model description","title":"FMIBase.getOutputNames","text":"fmi2GetOutputNames(md::fmi2ModelDescription; vrs=md.outputvalueReferences, mode=:first)\n\nReturns names of outputs.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.outputvalueReferences: Additional attribute outputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.outputvalueReferences::Array{fmi2ValueReference})\nmode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)\n\nReturns\n\nnames::Array{String}: Returns a array of names corresponding to value references vrs\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getOutputValueReferencesAndNames","page":"Working with the FMI model description","title":"FMIBase.getOutputValueReferencesAndNames","text":"getOutputValueReferencesAndNames(md::fmi2ModelDescription)\n\nReturns a dictionary Dict(fmi2ValueReference, Array{String}) of value references and their corresponding names.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.outputvalueReferences: Additional attribute outputvalueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.outputvalueReferences::Array{fmi2ValueReference})\n\nReturns\n\ndict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}.So returns a dict with (vrs, names of outputs)\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#Parameters","page":"Working with the FMI model description","title":"Parameters","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getParameterValueReferencesAndNames\ngetParameterNames","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getParameterValueReferencesAndNames","page":"Working with the FMI model description","title":"FMIBase.getParameterValueReferencesAndNames","text":"getParameterValueReferencesAndNames(md::fmi2ModelDescription)\n\nReturns a dictionary Dict(fmi2ValueReference, Array{String}) of parameterValueReferences and their corresponding names.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\ndict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of parameters).\n\nSee also getValueReferencesAndNames.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getParameterNames","page":"Working with the FMI model description","title":"FMIBase.getParameterNames","text":"fmi2GetParameterNames(md::fmi2ModelDescription; vrs=md.parameterValueReferences, mode=:first)\n\nReturns names of parameters.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.parameterValueReferences: Additional attribute parameterValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.parameterValueReferences::Array{fmi2ValueReference})\nmode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)\n\nReturns\n\nnames::Array{String}: Returns a array of names corresponding to parameter value references vrs\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#States","page":"Working with the FMI model description","title":"States","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getStateNames\ngetStateValueReferencesAndNames","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getStateNames","page":"Working with the FMI model description","title":"FMIBase.getStateNames","text":"fmi2GetStateNames(fmu::FMU2; vrs=md.stateValueReferences, mode=:first)\n\nReturns names of states.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.stateValueReferences: Additional attribute parameterValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.stateValueReferences::Array{fmi2ValueReference})\nmode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)\n\nReturns\n\nnames::Array{String}: Returns a array of names corresponding to parameter value references vrs\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getStateValueReferencesAndNames","page":"Working with the FMI model description","title":"FMIBase.getStateValueReferencesAndNames","text":"fmi2GetStateValueReferencesAndNames(md::fmi2ModelDescription)\n\nReturns a dictionary Dict(fmi2ValueReference, Array{String}) of state value references and their corresponding names.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\ndict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of states)\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#Derivatives","page":"Working with the FMI model description","title":"Derivatives","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getDerivateValueReferencesAndNames\ngetDerivativeNames","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getDerivateValueReferencesAndNames","page":"Working with the FMI model description","title":"FMIBase.getDerivateValueReferencesAndNames","text":"fmi2GetDerivateValueReferencesAndNames(md::fmi2ModelDescription)\n\nReturns a dictionary Dict(fmi2ValueReference, Array{String}) of derivative value references and their corresponding names.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\ndict::Dict{fmi2ValueReference, Array{String}}: Returns a dictionary that constructs a hash table with keys of type fmi2ValueReference and values of type Array{String}. So returns a dict with (vrs, names of derivatives)\n\nSee also getValueReferencesAndNames\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getDerivativeNames","page":"Working with the FMI model description","title":"FMIBase.getDerivativeNames","text":"fmi2GetDerivativeNames(md::fmi2ModelDescription; vrs=md.derivativeValueReferences, mode=:first)\n\nReturns names of derivatives.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nKeywords\n\nvrs=md.derivativeValueReferences: Additional attribute derivativeValueReferences::Array{fmi2ValueReference} of the Model Description that is a handle to a (base type) variable value. Handle and base type uniquely identify the value of a variable. (default = md.derivativeValueReferences::Array{fmi2ValueReference})\nmode=:first: If there are multiple names per value reference, availabel modes are :first (default, pick only the first one), :group (pick all and group them into an array) and :flat (pick all, but flat them out into a 1D-array together with all other names)\n\nReturns\n\nnames::Array{String}: Returns a array of names corresponding to parameter value references vrs\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#Variables","page":"Working with the FMI model description","title":"Variables","text":"","category":"section"},{"location":"fmi_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"getNamesAndInitials\ngetNamesAndDescriptions\ngetNamesAndUnits","category":"page"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getNamesAndInitials","page":"Working with the FMI model description","title":"FMIBase.getNamesAndInitials","text":"getNamesAndInitials(md::fmi2ModelDescription)\n\nReturns a dictionary of variables with their initials.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\ndict::Dict{String, Cuint}: Returns a dictionary that constructs a hash table with keys of type String and values of type Cuint. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i].inital::Union{fmi2Initial, Nothing}). (Creates a tuple (name,initial) for each i in 1:length(md.modelVariables))\n\nSee also getInitial.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getNamesAndDescriptions","page":"Working with the FMI model description","title":"FMIBase.getNamesAndDescriptions","text":"getNamesAndDescriptions(md::fmi2ModelDescription)\n\nReturns a dictionary of variables with their descriptions.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\ndict::Dict{String, String}: Returns a dictionary that constructs a hash table with keys of type String and values of type String. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i].description::Union{String, Nothing}). (Creates a tuple (name, description) for each i in 1:length(md.modelVariables))\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_modeldescription_functions/#FMIBase.getNamesAndUnits","page":"Working with the FMI model description","title":"FMIBase.getNamesAndUnits","text":"getNamesAndUnits(md::fmi2ModelDescription)\n\nReturns a dictionary of variables with their units.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\ndict::Dict{String, String}: Returns a dictionary that constructs a hash table with keys of type String and values of type String. So returns a dict with ( md.modelVariables[i].name::String, md.modelVariables[i]._Real.unit::Union{String, Nothing}). (Creates a tuple (name, unit) for each i in 1:length(md.modelVariables))\n\nSee also getUnit.\n\n\n\n\n\n","category":"function"},{"location":"examples/workshops/","page":"Pluto Workshops","title":"Pluto Workshops","text":"Pluto based notebooks, that can easyly be executed on your own Pluto-Setup.","category":"page"},{"location":"examples/workshops/","page":"Pluto Workshops","title":"Pluto Workshops","text":"","category":"page"},{"location":"fmi_lowlevel_library_constants/#Types-in-FMI-Import/Core-.jl","page":"Types in FMI Import/Core .jl","title":"Types in FMI Import/Core .jl","text":"","category":"section"},{"location":"fmi_lowlevel_library_constants/","page":"Types in FMI Import/Core .jl","title":"Types in FMI Import/Core .jl","text":"FMU\nFMUInstance\nFMUSolution\nFMUEvent\nFMUSnapshot\nFMUExecutionConfiguration\nFMULogLevel\nFMUInputFunction","category":"page"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMU","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMU","text":"FMU\n\nThe abstract type for FMUs (FMI 2 & 3).\n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMUInstance","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMUInstance","text":"FMUInstance\n\nAn instance of a FMU. This was called component in FMI2, but was corrected to instance in FMI3.\n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMUSolution","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMUSolution","text":"The mutable struct representing a specific Solution of a FMI2 FMU.\n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMUEvent","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMUEvent","text":"Container for event related information.\n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMUSnapshot","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMUSnapshot","text":"ToDo \n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMUExecutionConfiguration","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMUExecutionConfiguration","text":"A mutable struct representing the excution configuration of a FMU. For FMUs that have issues with calls like fmi2Reset or fmi2FreeInstance, this is pretty useful.\n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMULogLevel","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMULogLevel","text":"Log levels for non-standard printing of infos, warnings and errors.\n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#FMIBase.FMUInputFunction","page":"Types in FMI Import/Core .jl","title":"FMIBase.FMUInputFunction","text":"FMUInputFunction(inputFunction, vrs)\n\nStruct container for inplace input functions for FMUs.\n\nArguments\n\ninputFunction: The input function (inplace) that gets called when new inputs are needed, must match one of the patterns described under Input function patterns.\nvrs::AbstractVector: A vector of value refernces to be set by the input function\n\nInput function patterns\n\nAvailable input patterns are [c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:\n\ninputFunction(t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})\ninputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\n\n\n\n\n\n","category":"type"},{"location":"fmi_lowlevel_library_constants/#Constants-in-FMI-Import/Core-.jl","page":"Types in FMI Import/Core .jl","title":"Constants in FMI Import/Core .jl","text":"","category":"section"},{"location":"fmi_lowlevel_library_constants/","page":"Types in FMI Import/Core .jl","title":"Types in FMI Import/Core .jl","text":"","category":"page"},{"location":"fmi2_lowlevel_CS_functions/#FMI-for-Co-Simulation","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"","category":"section"},{"location":"fmi2_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"This chapter defines the Functional Mock-up Interface (FMI) for the coupling of two or more simulation models in a Co-Simulation environment (FMI for Co-Simulation). Co-Simulation is a rather general approach to the simulation of coupled technical systems and coupled physical phenomena in engineering with focus on instationary (time-dependent) problems.","category":"page"},{"location":"fmi2_lowlevel_CS_functions/#Transfer-of-Input-/-Output-Values-and-Parameters","page":"FMI for Co-Simulation","title":"Transfer of Input / Output Values and Parameters","text":"","category":"section"},{"location":"fmi2_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"In order to enable the slave to interpolate the continuous real inputs between communication steps, the derivatives of the inputs with respect to time can be provided. Also, higher derivatives can be set to allow higher order interpolation.","category":"page"},{"location":"fmi2_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"fmi2GetRealOutputDerivatives","category":"page"},{"location":"fmi2_lowlevel_CS_functions/#FMIImport.fmi2GetRealOutputDerivatives","page":"FMI for Co-Simulation","title":"FMIImport.fmi2GetRealOutputDerivatives","text":"fmi2GetRealOutputDerivatives(c::FMU2Component, vr::fmi2ValueReferenceFormat, order::AbstractArray{fmi2Integer})\n\nSets the n-th time derivative of real input variables.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that t define the variables whose derivatives shall be set.\norder::Array{fmi2Integer}: Argument order is an array of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.\n\nReturns\n\nvalue::AbstactArray{fmi2Integer}: Return value is an array which represents a vector with the values of the derivatives.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#Computation","page":"FMI for Co-Simulation","title":"Computation","text":"","category":"section"},{"location":"fmi2_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"The computation of time steps is controlled by the following function.","category":"page"},{"location":"fmi2_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"fmi2DoStep\nfmi2CancelStep","category":"page"},{"location":"fmi2_lowlevel_CS_functions/#FMICore.fmi2DoStep","page":"FMI for Co-Simulation","title":"FMICore.fmi2DoStep","text":"Source: FMISpec2.0.2[p.104]: 4.2.2 Computation\n\nThe computation of a time step is started.\n\n\n\n\n\nfmi2DoStep(c::FMU2Component, \n currentCommunicationPoint::fmi2Real, \n communicationStepSize::fmi2Real, \n noSetFMUStatePriorToCurrentPoint::fmi2Boolean)\n\nThe computation of a time step is started.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ncurrentCommunicationPoint::fmi2Real: Argument currentCommunicationPoint contains a value of type fmi2Real which is a identifier for a variable value . currentCommunicationPoint defines the current communication point of the master.\ncommunicationStepSize::fmi2Real: Argument communicationStepSize contains a value of type fmi2Real which is a identifier for a variable value. communicationStepSize defines the communiction step size.\n\nnoSetFMUStatePriorToCurrentPoint::Bool = true: Argument noSetFMUStatePriorToCurrentPoint contains a value of type Boolean. If no argument is passed the default value true is used. noSetFMUStatePriorToCurrentPoint indicates whether fmi2SetFMUState is no longer called for times before the currentCommunicationPoint in this simulation run Simulation run.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.104]: 4.2.2 Computation\n\nSee also fmi2DoStep.\n\n\n\n\n\nfmi2DoStep(c::FMU2Component, \n communicationStepSize::Union{Real, Nothing} = nothing; \n currentCommunicationPoint::Union{Real, Nothing} = nothing,\n noSetFMUStatePriorToCurrentPoint::Bool = true)\n\nDoes one step in the CoSimulation FMU\n\nArguments\n\nC::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ncommunicationStepSize::Union{Real, Nothing} = nothing: Argument communicationStepSize contains a value of type Real or Nothing , if no argument is passed the default value nothing is used. communicationStepSize defines the communiction step size.\n\nKeywords\n\ncurrentCommunicationPoint::Union{Real, Nothing} = nothing: Argument currentCommunicationPoint contains a value of type Real or type Nothing. If no argument is passed the default value nothing is used. currentCommunicationPoint defines the current communication point of the master.\nnoSetFMUStatePriorToCurrentPoint::Bool = true: Argument noSetFMUStatePriorToCurrentPoint contains a value of type Boolean. If no argument is passed the default value true is used. noSetFMUStatePriorToCurrentPoint indicates whether fmi2SetFMUState is no longer called for times before the currentCommunicationPoint in this simulation run Simulation run.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.104]: 4.2.2 Computation\n\nSee also fmi2DoStep.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#FMICore.fmi2CancelStep","page":"FMI for Co-Simulation","title":"FMICore.fmi2CancelStep","text":"Source: FMISpec2.0.2[p.105]: 4.2.2 Computation\n\nCan be called if fmi2DoStep returned fmi2Pending in order to stop the current asynchronous execution.\n\n\n\n\n\nfmi2CancelStep(c::FMU2Component)\n\nCan be called if fmi2DoStep returned fmi2Pending in order to stop the current asynchronous execution.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.104]: 4.2.2 Computation\n\nSee also fmi2DoStep.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#Retrieving-Status-Information-from-the-Slave","page":"FMI for Co-Simulation","title":"Retrieving Status Information from the Slave","text":"","category":"section"},{"location":"fmi2_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"Status information is retrieved from the slave by the following functions:","category":"page"},{"location":"fmi2_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"fmi2GetStatus\nfmi2GetStatus!\nfmi2GetRealStatus!\nfmi2GetIntegerStatus!\nfmi2GetBooleanStatus!\nfmi2GetStringStatus!","category":"page"},{"location":"fmi2_lowlevel_CS_functions/#FMIImport.fmi2GetStatus","page":"FMI for Co-Simulation","title":"FMIImport.fmi2GetStatus","text":"ToDo\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#FMICore.fmi2GetStatus!","page":"FMI for Co-Simulation","title":"FMICore.fmi2GetStatus!","text":"Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\n\n\n\n\nfmi2GetStatus!(c::FMU2Component, \n s::fmi2StatusKind, \n value::Ref{fmi2Status})\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ns::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.\n\nThe following status information can be retrieved from a slave:\n\nfmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.\nfmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation\nfmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.\nfmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.\nvalue::Ref{fmi2Status}: The value argument points to a status flag that was requested.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nSee also fmi2GetStatus!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#FMICore.fmi2GetRealStatus!","page":"FMI for Co-Simulation","title":"FMICore.fmi2GetRealStatus!","text":"Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\n\n\n\n\nfmi2GetRealStatus!(c::FMU2Component, \n s::fmi2StatusKind, \n value::Ref{fmi2Real})\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ns::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.\n\nThe following status information can be retrieved from a slave:\n\nfmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.\nfmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation\nfmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.\nfmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.\nvalue::Ref{fmi2Real}: Argument value points to the return value (fmi2Real) which was requested. fmi2Real is a alias type for Real data type.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nSee also fmi2GetRealStatus!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#FMICore.fmi2GetIntegerStatus!","page":"FMI for Co-Simulation","title":"FMICore.fmi2GetIntegerStatus!","text":"Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\n\n\n\n\nfmi2GetIntegerStatus!(c::FMU2Component, \n s::fmi2StatusKind, \n value::Ref{fmi2Integer})\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ns::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.\n\nThe following status information can be retrieved from a slave:\n\nfmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.\nfmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation\nfmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.\nfmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.\nvalue::Ref{fmi2Integer}: Argument value points to the return value (fmi2Integer) which was requested. fmi2Integer is a alias type for Integer data type.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nSee also fmi2GetIntegerStatus!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#FMICore.fmi2GetBooleanStatus!","page":"FMI for Co-Simulation","title":"FMICore.fmi2GetBooleanStatus!","text":"Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\n\n\n\n\nfmi2GetBooleanStatus!(c::FMU2Component, \n s::fmi2StatusKind, \n value::Ref{fmi2Boolean})\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ns::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.\n\nThe following status information can be retrieved from a slave:\n\nfmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.\nfmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation\nfmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.\nfmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.\nvalue::Ref{fmi2Boolean}: Argument value points to the return value (fmi2Boolean) which was requested. fmi2Boolean is a alias type for Boolean data type.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nSee also fmi2GetBooleanStatus!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_CS_functions/#FMICore.fmi2GetStringStatus!","page":"FMI for Co-Simulation","title":"FMICore.fmi2GetStringStatus!","text":"Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\n\n\n\n\nfmi2GetStringStatus!(c::FMU2Component, \n s::fmi2StatusKind, \n value::Ref{fmi2String})\n\nInforms the master about the actual status of the simulation run. Which status information is to be returned is specified by the argument fmi2StatusKind.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ns::fmi2StatusKind: Argument s defines which status information is to be returned. fmi2StatusKind is an enumeration that defines which status is inquired.\n\nThe following status information can be retrieved from a slave:\n\nfmi2DoStepStatus::fmi2Status: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers fmi2Pending if the computation is not finished. Otherwise the function returns the result of the asynchronously executed fmi2DoStep call.\nfmi2PendingStatus::fmi2String: Can be called when the fmi2DoStep function returned fmi2Pending. The function delivers a string which informs about the status of the currently running asynchronous fmi2DoStep computation\nfmi2LastSuccessfulTime:: fmi2Real: Returns the end time of the last successfully completed communication step. Can be called after fmi2DoStep(..) returned fmi2Discard.\nfmi2Terminated::fmi2Boolean: Returns fmi2True, if the slave wants to terminate the simulation. Can be called after fmi2DoStep(..) returned fmi2Discard. Use fmi2LastSuccessfulTime to determine the time instant at which the slave terminated.\nvalue:Ref{fmi2String}: Argument value points to the return value (fmi2String) which was requested. fmi2String is a alias type for String data type.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nSee also fmi2GetStringStatus!.\n\n\n\n\n\n","category":"function"},{"location":"examples/manipulation/#Manipulate-a-function","page":"Manipulation","title":"Manipulate a function","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"Tutorial by Tobias Thummerer, Johannes Stoljar","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/manipulation/#License","page":"Manipulation","title":"License","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/manipulation/#Introduction-to-the-example","page":"Manipulation","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"This example shows how to overwrite a FMI function with a custom C-function. For this the FMU model is simulated first without changes. Then the function fmi2GetReal() is overwritten and simulated again. Both simulations are displayed in a graph to show the change caused by overwriting the function. The model used is a one-dimensional spring pendulum with friction. The object-orientated structure of the SpringFrictionPendulum1D can be seen in the following graphic.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"(Image: svg) ","category":"page"},{"location":"examples/manipulation/#Other-formats","page":"Manipulation","title":"Other formats","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/manipulation/#Code-section","page":"Manipulation","title":"Code section","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"# imports\nusing FMI\nusing FMI: fmi2SetFctGetReal\nusing FMIZoo\nusing FMICore\nusing Plots\nusing DifferentialEquations # for auto solver detection","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00e3b5ac5669 is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]","category":"page"},{"location":"examples/manipulation/#Simulation-setup","page":"Manipulation","title":"Simulation setup","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"Next, the start time and end time of the simulation are set.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"tStart = 0.0\ntStop = 8.0","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"8.0","category":"page"},{"location":"examples/manipulation/#Import-FMU","page":"Manipulation","title":"Import FMU","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"Next, the FMU model from FMIZoo.jl is loaded.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"# we use an FMU from the FMIZoo.jl\nfmu = loadFMU(\"SpringFrictionPendulum1D\", \"Dymola\", \"2022x\"; type=:ME)","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"Model name:\tSpringFrictionPendulum1D\nType:\t\t0","category":"page"},{"location":"examples/manipulation/#Simulate-FMU","page":"Manipulation","title":"Simulate FMU","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"In the next steps the recorded value is defined. The recorded value is the position of the mass. In the function simulateME() the FMU is simulated in model-exchange mode (ME) with an adaptive step size. In addition, the start and end time and the recorded variables are specified.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"# an array of value references... or just one\nvrs = [\"mass.s\"]\n\nsimData = simulate(fmu, (tStart, tStop); recordValues=vrs)","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"\u001b[34mSimulating ME-FMU ... 0%|█ | ETA: N/A\u001b[39m\n\n\u001b[34mSimulating ME-FMU ... 100%|██████████████████████████████| Time: 0:00:19\u001b[39m\n\n\n\n\n\nModel name:\n\tSpringFrictionPendulum1D\nSuccess:\n\ttrue\nf(x)-Evaluations:\n\tIn-place: 687\n\tOut-of-place: 0\nJacobian-Evaluations:\n\t∂ẋ_∂p: 0\n\t∂ẋ_∂x: 0\n\t∂ẋ_∂u: 0\n\t∂y_∂p: 0\n\t∂y_∂x: 0\n\t∂y_∂u: 0\n\t∂e_∂p: 0\n\t∂e_∂x: 0\n\t∂e_∂u: 0\n\t∂xr_∂xl: 0\nGradient-Evaluations:\n\t∂ẋ_∂t: 0\n\t∂y_∂t: 0\n\t∂e_∂t: 0\nCallback-Evaluations:\n\tCondition (event-indicators): 1451\n\tTime-Choice (event-instances): 0\n\tAffect (event-handling): 6\n\tSave values: 108\n\tSteps completed: 108\nStates [108]:\n\t0.0\t[0.5, 0.0]\n\t2.352941176471972e-11\t[0.5, 1.0e-10]\n\t0.002306805098500577\t[0.50001131604032, 0.009814511243574901]\n\t0.017671223302467173\t[0.500666989145529, 0.07566472355097752]\n\t0.05336453040764681\t[0.5061289098366911, 0.23069249511360376]\n\t0.1184474059074749\t[0.5303427356080991, 0.5120833959919191]\n\t0.1848453912296851\t[0.5734637072149397, 0.782680751659161]\n\t0.2648453912296851\t[0.647777595593929, 1.0656550770578872]\n\t0.3448453912296851\t[0.7421945375653713, 1.282297047636647]\n\t...\n\t8.0\t[1.0668392065867367, -1.0000102440003257e-10]\nValues [108]:\n\t0.0\t(0.5,)\n\t2.352941176471972e-11\t(0.5,)\n\t0.002306805098500577\t(0.50001131604032,)\n\t0.017671223302467173\t(0.500666989145529,)\n\t0.05336453040764681\t(0.5061289098366911,)\n\t0.1184474059074749\t(0.5303427356080991,)\n\t0.1848453912296851\t(0.5734637072149397,)\n\t0.2648453912296851\t(0.647777595593929,)\n\t0.3448453912296851\t(0.7421945375653713,)\n\t...\n\t8.0\t(1.0668392065867367,)\nEvents [6]:\n\tState-Event #11 @ 2.352941176471972e-11s (state-change: false)\n\tState-Event #11 @ 0.9940420391273855s (state-change: false)\n\tState-Event #19 @ 1.9882755413329303s (state-change: false)\n\tState-Event #11 @ 2.983039300931689s (state-change: false)\n\tState-Event #19 @ 3.97882965888157s (state-change: false)\n\tState-Event #11 @ 4.976975955923361s (state-change: false)","category":"page"},{"location":"examples/manipulation/#Plotting-FMU","page":"Manipulation","title":"Plotting FMU","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"After the simulation is finished, the result of the FMU for the model-exchange mode can be plotted. In the plot for the FMU it can be seen that the oscillation continues to decrease due to the effect of the friction. If you simulate long enough, the oscillation comes to a standstill in a certain time.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"fig = plot(simData, states=false)","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"(Image: svg)","category":"page"},{"location":"examples/manipulation/#Override-Function","page":"Manipulation","title":"Override Function","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"After overwriting a function, the previous one is no longer accessible. The original function fmi2GetReal() is cached by storing the address of the pointer. The addresses of the pointers are kept in the FMU and are thus accessible.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"# save, where the original `fmi2GetReal` function was stored, so we can access it in our new function\noriginalGetReal = fmu.cGetReal","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"Ptr{Nothing} @0x000000018008da60","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"To overwrite the function fmi2GetReal!(), the function header of the new custom function must be identical to the previous one. The function header looks like fmi2GetReal!(cfunc::Ptr{Nothing}, c::fmi2Component, vr::Union{Array{fmi2ValueReference}, Ptr{fmi2ValueReference}}, nvr::Csize_t, value::Union{Array{fmi2Real}, Ptr{fmi2Real}})::fmi2Status. The information how the FMI2 function are structured can be seen from FMICore.jl, the api of fmi2GetReal! or the FMI2.0.3-specification.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"In the new implementation the original function is called by the previously stored pointer. Next there is a special handling if value is a pointer to an array. In this case the pointer is treated as an array, so that the entries are accessible. Otherwise, each value in value is multiplied by two. Finally, the original state of the original function is output.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"function myGetReal!(c::fmi2Component, vr::Union{Array{fmi2ValueReference}, Ptr{fmi2ValueReference}}, \n nvr::Csize_t, value::Union{Array{fmi2Real}, Ptr{fmi2Real}})\n # first, we do what the original function does\n status = fmi2GetReal!(originalGetReal, c, vr, nvr, value)\n\n # if we have a pointer to an array, we must interprete it as array to access elements\n if isa(value, Ptr{fmi2Real})\n value = unsafe_wrap(Array{fmi2Real}, value, nvr, own=false)\n end\n\n # now, we multiply every value by two (just for fun!)\n for i in 1:nvr \n value[i] *= 2.0 \n end \n\n # return the original status\n return status\nend","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"myGetReal! (generic function with 1 method)","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"In the next command the original function is overwritten with the new defined function, for which the command fmiSetFctGetReal() is called.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"# no we overwrite the original function\nfmi2SetFctGetReal(fmu, myGetReal!)","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"Ptr{Nothing} @0x0000018801a00fc0","category":"page"},{"location":"examples/manipulation/#Simulate-and-Plot-FMU-with-modified-function","page":"Manipulation","title":"Simulate and Plot FMU with modified function","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"As before, the identical command is called here for simulation. This is also a model exchange simulation. Immediately afterwards, the results are added to the previous graph as a dashed line.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"simData = simulate(fmu, (tStart, tStop); recordValues=vrs)\nplot!(fig, simData; states=false, style=:dash)","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"(Image: svg)","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"As expected by overwriting the function, all values are doubled.","category":"page"},{"location":"examples/manipulation/#Unload-FMU","page":"Manipulation","title":"Unload FMU","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.","category":"page"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"unloadFMU(fmu)","category":"page"},{"location":"examples/manipulation/#Summary","page":"Manipulation","title":"Summary","text":"","category":"section"},{"location":"examples/manipulation/","page":"Manipulation","title":"Manipulation","text":"In this tutorial it is shown how an existing function of the library can be replaced by an own implementation.","category":"page"},{"location":"library/#FMI.jl-Library-Functions","page":"User Level API - FMI.jl","title":"FMI.jl Library Functions","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"Many of the functions in this library are based on already defined functions of the FMIImport.jl library. ","category":"page"},{"location":"library/#Simulate-FMUs","page":"User Level API - FMI.jl","title":"Simulate FMUs","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"loadFMU\nsimulate\nsimulateCS\nsimulateSE\nsimulateME\nunloadFMU\nreload","category":"page"},{"location":"library/#FMIImport.loadFMU","page":"User Level API - FMI.jl","title":"FMIImport.loadFMU","text":"loadFMU(pathToFMU; unpackPath, cleanup, type)\n\nLoads an FMU, independent of the used FMI-version (the version is checked during unpacking the archive).\n\nArguments\n\npath::String the path pointing on the FMU file.\n\nKeywords\n\nunpackPath::Union{String, Nothing}=nothing the optional unpack path, if nothing a temporary directory depending on the OS is picked.\ncleanup::Bool=true a boolean indicating whether the temporary directory should be cleaned automatically.\ntype::Union{Symbol, Nothing}=nothing the type of FMU (:CS, :ME, :SE), if multiple types are available. If nothing one of the available types is chosen automatically with the priority CS > ME > SE.\n\n\n\n\n\n","category":"function"},{"location":"library/#FMI.simulate","page":"User Level API - FMI.jl","title":"FMI.simulate","text":"simulate(fmu, instance=nothing, tspan=nothing; kwargs...)\nsimulate(fmu, tspan; kwargs...)\nsimulate(instance, tspan; kwargs...)\n\nStarts a simulation of the FMU2 for the instantiated type: CS, ME or SE (this is selected automatically or during loading of the FMU). You can force a specific simulation mode by calling simulateCS, simulateME or simulateSE directly.\n\nArguments\n\nfmu::FMU: The FMU to be simulated.\nc::Union{FMUInstance, Nothing}=nothing: The instance (FMI3) or component (FMI2) of the FMU, nothing if not available. \ntspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)\n\nKeyword arguments\n\nrecordValues::fmi2ValueReferenceFormat = nothing: Array of variables (Strings or variableIdentifiers) to record. Results are returned as DiffEqCallbacks.SavedValues\nsaveat = nothing: Time points to save (interpolated) values at (default = nothing: save at each solver timestep)\nsetup::Bool: call fmi2SetupExperiment, fmi2EnterInitializationMode and fmi2ExitInitializationMode before the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\nreset::Bool: call fmi2Reset before each the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\ninstantiate::Bool: call fmi2Instantiate! simulate on a new created instance (default = nothing: use value from fmu's FMUExecutionConfiguration)\nfreeInstance::Bool: call fmi2FreeInstance at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\nterminate::Bool: call fmi2Terminate at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\ninputValueReferences::fmi2ValueReferenceFormat = nothing: Input variables (Strings or variableIdentifiers) to set at each simulation step \ninputFunction = nothing: Function to get values for the input variables at each simulation step. \nparameters::Union{Dict{<:Any, <:Any}, Nothing} = nothing: Dict of parameter variables (strings or variableIdentifiers) and values (Real, Integer, Boolean, String) to set parameters during initialization\nshowProgress::Bool = true: print simulation progress meter in REPL\n\nInput function pattern\n\n[c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:\n\ninputFunction(t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})\ninputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\n\nReturns:\n\nA FMUSolution struct.\n\nSee also simulate, simulateME, simulateCS, simulateSE.\n\n\n\n\n\n","category":"function"},{"location":"library/#FMI.simulateCS","page":"User Level API - FMI.jl","title":"FMI.simulateCS","text":"simulateCS(fmu, instance=nothing, tspan=nothing; kwargs...)\nsimulateCS(fmu, tspan; kwargs...)\nsimulateCS(instance, tspan; kwargs...)\n\nSimulate CS-FMU for the given simulation time interval. State- and Time-Events are handled internally by the FMU.\n\nArguments\n\nfmu::FMU: The FMU to be simulated.\nc::Union{FMUInstance, Nothing}=nothing: The instance (FMI3) or component (FMI2) of the FMU, nothing if not available. \ntspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)\n\nKeyword arguments\n\ntolerance::Union{Real, Nothing} = nothing: The tolerance for the internal FMU solver.\nrecordValues::fmi2ValueReferenceFormat = nothing: Array of variables (Strings or variableIdentifiers) to record. Results are returned as DiffEqCallbacks.SavedValues\nsaveat = nothing: Time points to save (interpolated) values at (default = nothing: save at each solver timestep)\nsetup::Bool: call fmi2SetupExperiment, fmi2EnterInitializationMode and fmi2ExitInitializationMode before the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\nreset::Bool: call fmi2Reset before each the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\ninstantiate::Bool: call fmi2Instantiate! simulate on a new created instance (default = nothing: use value from fmu's FMUExecutionConfiguration)\nfreeInstance::Bool: call fmi2FreeInstance at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\nterminate::Bool: call fmi2Terminate at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\ninputValueReferences::fmi2ValueReferenceFormat = nothing: Input variables (Strings or variableIdentifiers) to set at each simulation step \ninputFunction = nothing: Function to get values for the input variables at each simulation step. \nparameters::Union{Dict{<:Any, <:Any}, Nothing} = nothing: Dict of parameter variables (strings or variableIdentifiers) and values (Real, Integer, Boolean, String) to set parameters during initialization\nshowProgress::Bool = true: print simulation progress meter in REPL\n\nInput function pattern\n\n[c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:\n\ninputFunction(t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})\ninputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\n\nReturns:\n\nA FMUSolution struct.\n\nSee also simulate, simulateME, simulateSE.\n\n\n\n\n\n","category":"function"},{"location":"library/#FMI.simulateSE","page":"User Level API - FMI.jl","title":"FMI.simulateSE","text":"simulateSE(fmu, instance=nothing, tspan=nothing; kwargs...)\nsimulateSE(fmu, tspan; kwargs...)\nsimulateSE(instance, tspan; kwargs...)\n\nTo be implemented ...\n\nArguments\n\nfmu::FMU3: The FMU to be simulated. Note: SE is only available in FMI3.\nc::Union{FMU3Instance, Nothing}=nothing: The instance (FMI3) of the FMU, nothing if not available. \ntspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)\n\nKeyword arguments\n\nTo be implemented ...\n\nReturns:\n\nA FMUSolution struct.\n\nSee also simulate, simulateME, simulateCS.\n\n\n\n\n\n","category":"function"},{"location":"library/#FMI.simulateME","page":"User Level API - FMI.jl","title":"FMI.simulateME","text":"simulateME(fmu, instance=nothing, tspan=nothing; kwargs...)\nsimulateME(fmu, tspan; kwargs...)\nsimulateME(instance, tspan; kwargs...)\n\nSimulate ME-FMU for the given simulation time interval. State- and Time-Events are handled correctly.\n\nArguments\n\nfmu::FMU: The FMU to be simulated.\nc::Union{FMUInstance, Nothing}=nothing: The instance (FMI3) or component (FMI2) of the FMU, nothing if not available. \ntspan::Union{Tuple{Float64, Float64}, Nothing}=nothing: Simulation-time-span as tuple (default = nothing: use default value from FMU's model description or (0.0, 1.0) if not specified)\n\nKeyword arguments\n\nsolver = nothing: Any Julia-supported ODE-solver (default = nothing: use DifferentialEquations.jl default solver)\nrecordValues::fmi2ValueReferenceFormat = nothing: Array of variables (Strings or variableIdentifiers) to record. Results are returned as DiffEqCallbacks.SavedValues\nrecordEventIndicators::Union{AbstractArray{<:Integer, 1}, UnitRange{<:Integer}, Nothing} = nothing: Array or Range of event indicators to record\nrecordEigenvalues::Bool=false: compute and record eigenvalues\nsaveat = nothing: Time points to save (interpolated) values at (default = nothing: save at each solver timestep)\nx0::Union{AbstractArray{<:Real}, Nothing} = nothing: initial fmu State (default = nothing: use current or default-initial fmu state)\nsetup::Bool: call fmi2SetupExperiment, fmi2EnterInitializationMode and fmi2ExitInitializationMode before the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\nreset::Bool: call fmi2Reset before each the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\ninstantiate::Bool: call fmi2Instantiate! simulate on a new created instance (default = nothing: use value from fmu's FMUExecutionConfiguration)\nfreeInstance::Bool: call fmi2FreeInstance at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\nterminate::Bool: call fmi2Terminate at the end of the simulation (default = nothing: use value from fmu's FMUExecutionConfiguration)\ninputValueReferences::fmi2ValueReferenceFormat = nothing: Input variables (Strings or variableIdentifiers) to set at each simulation step \ninputFunction = nothing: Function to get values for the input variables at each simulation step. \nparameters::Union{Dict{<:Any, <:Any}, Nothing} = nothing: Dict of parameter variables (strings or variableIdentifiers) and values (Real, Integer, Boolean, String) to set parameters during initialization\ncallbacksBefore = []: callbacks to call before the internal callbacks for state- and time-events are called\ncallbacksAfter = []: callbacks to call after the internal callbacks for state- and time-events are called\nshowProgress::Bool = true: print simulation progress meter in REPL\nsolveKwargs...: keyword arguments that get passed onto the solvers solve call\n\nInput function pattern\n\n[c: current component, u: current state ,t: current time, returning array of values to be passed to fmi2SetReal(..., inputValueReferences, inputFunction(...)) or fmi3SetFloat64]:\n\ninputFunction(t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, u::AbstractVector{<:Real})\ninputFunction(x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\ninputFunction(c::Union{FMUInstance, Nothing}, x::AbstractVector{<:Real}, t::Real, u::AbstractVector{<:Real})\n\nReturns:\n\nA FMUSolution struct.\n\nSee also simulate, simulateCS, simulateSE.\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIImport.unloadFMU","page":"User Level API - FMI.jl","title":"FMIImport.unloadFMU","text":"unloadFMU(fmu::FMU2, cleanUp::Bool=true; secure_pointers::Bool=true)\n\nUnload a FMU. Free the allocated memory, close the binaries and remove temporary zip and unziped FMU model description.\n\nArguments\n\nfmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\ncleanUp::Bool= true: Defines if the file and directory should be deleted.\n\nKeywords\n\nsecure_pointers=true whether pointers to C-functions should be overwritten with dummies with Julia assertions, instead of pointing to dead memory (slower, but more user safe)\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIImport.reload","page":"User Level API - FMI.jl","title":"FMIImport.reload","text":"reload(fmu::FMU2)\n\nReloads the FMU-binary. This is useful, if the FMU does not support a clean reset implementation.\n\nArguments\n\nfmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\n\n\n\n\n\n","category":"function"},{"location":"library/#Handling-Value-References","page":"User Level API - FMI.jl","title":"Handling Value References","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"stringToValueReference","category":"page"},{"location":"library/#FMIBase.stringToValueReference","page":"User Level API - FMI.jl","title":"FMIBase.stringToValueReference","text":"stringToValueReference(obj, names)\n\nFinds the value reference for a given name.\n\nArguments\n\nobj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3) the FMI object\nnames ∈ (String, AbstractVector{String}) the value refernce name or multiple names\n\nReturn\n\nReturns a single or an array of fmi2ValueReferences (FMI2) or fmi3ValueReferences (FMI3) corresponding to the variable name(s).\n\n\n\n\n\n","category":"function"},{"location":"library/#External/additional-functions","page":"User Level API - FMI.jl","title":"External/additional functions","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"info\ngetModelName\ngetNumberOfStates\nisModelExchange\nisScheduledExecution\nisCoSimulation\ngetState\ngetTime\ngetStateDerivative","category":"page"},{"location":"library/#FMIImport.info","page":"User Level API - FMI.jl","title":"FMIImport.info","text":" info(fmu)\n\nPrint information about the FMU.\n\nArguments\n\nfmu::FMU: The FMU you are interessted in.\n\nFurther reading\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.getModelName","page":"User Level API - FMI.jl","title":"FMIBase.getModelName","text":"getModelName(md::fmi2ModelDescription)\n\nReturns the tag 'modelName' from the model description.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nmodelName::String: Returns the tag 'modelName' from the model description.\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.getNumberOfStates","page":"User Level API - FMI.jl","title":"FMIBase.getNumberOfStates","text":"getNumberOfStates(md::fmi2ModelDescription)\n\nReturns the number of states of the FMU.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\nReturns the number of states of the FMU.\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.isModelExchange","page":"User Level API - FMI.jl","title":"FMIBase.isModelExchange","text":"isModelExchange(md::fmi2ModelDescription)\n\nReturns true, if the FMU supports model exchange\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\n::Bool: Returns true, if the FMU supports model exchange\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.isScheduledExecution","page":"User Level API - FMI.jl","title":"FMIBase.isScheduledExecution","text":"Returns true, if the FMU supports scheduled execution\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.isCoSimulation","page":"User Level API - FMI.jl","title":"FMIBase.isCoSimulation","text":"isCoSimulation(md::fmi2ModelDescription)\n\nReturns true, if the FMU supports co simulation\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\n\nReturns\n\n::Bool: Returns true, if the FMU supports co simulation\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.getState","page":"User Level API - FMI.jl","title":"FMIBase.getState","text":"getState(solution::FMUSolution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)\n\nReturns the solution state.\n\nArguments\n\nsolution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.\nvr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nisIndex::Bool=false: Argument isIndex exists to check if vr ist the specific solution element (\"index\") that equals the given fmi2ValueReferenceFormat\n\nReturn\n\nIf he length of the given references equals 1, each element u in the collection solution.states.u, it is selecting the element at the index represented by indices[1] and returns it.\n\nThus, the collect() function is taking the generator expression and returning an array of the selected elements. \n\nIf more than one reference is given, the same process takes place as before. The difference is that now more than one index is accessed.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.getTime","page":"User Level API - FMI.jl","title":"FMIBase.getTime","text":"getTime(solution::FMUSolution)\n\nReturns the Solution time.\n\nArguments\n\nsolution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.\n\nReturn\n\nsolution.states.t::tType: solution.state is a struct ODESolution with attribute t. t is the time points corresponding to the saved values of the ODE solution.\nsolution.values.t::tType: solution.value is a struct ODESolution with attribute t.t the time points corresponding to the saved values of the ODE solution.\nIf no solution time is found nothing is returned.\n\n#Source\n\nusing OrdinaryDiffEq: ODESolution (SciML/SciMLBase.jl)\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\n\n\n\n\n\n","category":"function"},{"location":"library/#FMIBase.getStateDerivative","page":"User Level API - FMI.jl","title":"FMIBase.getStateDerivative","text":"getStateDerivative(solution::FMUSolution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)\n\nReturns the solution state derivative.\n\nArguments\n\nsolution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.\nvr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nisIndex::Bool=false: Argument isIndex exists to check if vr ist the specific solution element (\"index\") that equals the given fmi2ValueReferenceFormat\n\nReturn\n\nIf the length of the given references equals 1, each element myt in the collection solution.states.t is selecting the derivative of the solution states represented by indices[1] in respect to time, at time myt and returns its it.\n\nThus, the collect() function is taking the generator expression and returning an array of the selected derivatives. \n\nIf more than one reference is given, the same process takes place as before. The difference is that now more than one index is accessed.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\n\n\n\n\n\n","category":"function"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"fmiSet fmiGet fmiGet! fmiCanGetSetState fmiSetState fmiFreeState! fmiGetDependencies fmiProvidesDirectionalDerivative","category":"page"},{"location":"library/#Visualize-simulation-results","page":"User Level API - FMI.jl","title":"Visualize simulation results","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"","category":"page"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"fmiPlot fmiPlot! Plots.plot","category":"page"},{"location":"library/#Save/load-simulation-results","page":"User Level API - FMI.jl","title":"Save/load simulation results","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"","category":"page"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"fmiSaveSolution fmiSaveSolutionJLD2 fmiSaveSolutionMAT fmiSaveSolutionCSV fmiLoadSolution fmiLoadSolutionJLD2","category":"page"},{"location":"library/#FMI2-specific","page":"User Level API - FMI.jl","title":"FMI2 specific","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"","category":"page"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"fmi2Info fmi2Simulate fmi2VariableDependsOnVariable fmi2GetDependencies fmi2PrintDependencies","category":"page"},{"location":"library/#FMI3-specific","page":"User Level API - FMI.jl","title":"FMI3 specific","text":"","category":"section"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"","category":"page"},{"location":"library/","page":"User Level API - FMI.jl","title":"User Level API - FMI.jl","text":"fmi3Info fmi3Simulate fmi3VariableDependsOnVariable fmi3GetDependencies fmi3PrintDependencies","category":"page"},{"location":"features/#Features","page":"Features","title":"Features","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"Please note, that this guide focuses also on users, that are not familiar with FMI. The following feature explanations are written in an easy-to-read-fashion, so there might be some points that are scientifically only 95% correct. For further information on FMI and FMUs, see fmi-standard.org. The term fmiX... refers to a value or function that is available along different versions of FMI, for example fmiXValueReference is a wildcard for fmi2ValueReference and fmi3ValueReference.","category":"page"},{"location":"features/#Execution-Configuration","page":"Features","title":"Execution Configuration","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"Not all FMUs support all features they should according to the FMI-standard, so FMI.jl provides a so called execution configuration. This configuration is also respected by FMIFlux.jl. The content of the execution configuration may change in future (together with new or deprecated features of linked libraries), but the most important core features will be kept over time. Because not all users need the full potential of this configuration tool, there are three presets given: ","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"myFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_NO_RESET is the default operation mode for FMUs. FMUs are not reset via fmi2Reset, but new instantiated for every simulation run (or training step). This is not the most efficient way, but many FMUs have problems with resetting.\nmyFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_RESET is faster for well-implemented FMUs, but needs a fully working fmi2Reset-function. So if you know you have a fully working fmi2Reset, you may be faster with that option.\nmyFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_NO_FREEING should only be the very last choice. If your FMU neither supports fmi2Reset nor a proper fmi2FreeInstance, you could use this configuration as a last way out. Keep in mind, that new FMU instances are allocated but not freed, as long as your Julia instance is running (memory leak). In general, the amount of leaked memory is small, but you need to know what you are doing, if you do thousands or ten-thousands of simulation runs with such a FMU.\nmyFMU.executionConfig = FMU_EXECUTION_CONFIGURATION_NOTHING should be used if you want maximum control over what is done and what not. This means you need to take care of instantiating, initialization, setting up and releasing FMU instances by yourself.","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"For a more detailed overview, please see the ?FMUExecutionConfig.","category":"page"},{"location":"features/#Debugging-/-Logging","page":"Features","title":"Debugging / Logging","text":"","category":"section"},{"location":"features/#Logging-FMI-calls","page":"Features","title":"Logging FMI-calls","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"To log all FMI-calls that happen (including \"hidden\" calls e.g. if you are using simulate) you can enable debugging for FMICore.jl using ENV[\"JULIA_DEBUG\"] = \"FMICore\". This will log any fmi2xxx- and fmi3xxx-call, including the given parameters and return value. This can be a lot of calls, so you may want to redirect your REPL output to file.","category":"page"},{"location":"features/#Printing-internal-FMU-messages","page":"Features","title":"Printing internal FMU messages","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"Many FMUs support for printing debugging messages. To force message printing, you can use the keyword loggingOn=true either ...","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"in the call fmiInstantiate, for example fmiInstantiate(myFMU; loggingOn=true) or\nas part of the executionConfig, for example myFMU.executionConfig.loggingOn=true","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"You can further control which message types - like OK, Warning, Discard, Error, Fatal, Pending - should be logged by using the keywords logStatus{TYPE}=true as part of fmiInstantiate or (soon) the execution configuration. By default, all are activated. If your FMU (for FMI2 only, FMI3 changed this) uses a variadic callback function for messages (this is not supported by Julia at this time), you may need to activate external callbacks with the keyword externalCallbacks=true either ...","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"in the call fmiInstantiate!, for example fmiInstantiate!(myFMU; loggingOn=true, externalCallbacks=true) or\nas part of the executionConfig, for example myFMU.executionConfig.loggingOn=true; myFMU.executionConfig.externalCallbacks=true","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"External callbacks are currently only supported on Windows and Linux.","category":"page"},{"location":"features/#Model-variable-identification","page":"Features","title":"Model variable identification","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"FMI.jl offers multiple ways to retrieve your model variables. Any function that accepts a variable identifier can handle the following argument types:","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"UInt32 or fmiXValueReference for example 1610612742 or 0x16000001: This is the most performant way of passing a variable identifier, but you need to know the value reference (you can determine them by having a look in the modelDescription.xml).\nVector{UInt32} or Vector{fmiXValueReference} for example [1610612742, 1610612743] or [0x16000001, 0x16000002]: This is the most performant way of passing multiple variable identifiers, but you need to know the value references.\nString for example \"ball.s\": This is the most intuitive way, because you might already know the variable name from your modelling environment or model documentation.\nVector{String} for example [\"ball.s\", \"der(ball.s)\"]: This is the most intuitive way for multiple variable identifiers, because you might already know the variable names from your modelling environment or model documentation.\nSymbol for example :states: There are multiple symbol-wildcards for interesting variable groups like :all, :none, :states, :derivatives, :inputs and :outputs.\nnothing: If you don't want to record anything (same as :none)","category":"page"},{"location":"features/#Event-handling","page":"Features","title":"Event handling","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"In FMI, there are basically two types of events: state and time. State events are triggered, as soon as one or more event indicators - scalar values that describe the \"distance\" in state space to the next state event - crossing zero. Time events are triggered at known time points during the simulation. If your model has state and/or time events is detected automatically by FMI.jl and the event handling happens automatically in the background.","category":"page"},{"location":"features/#Model-exchange,-co-simulation-and-scheduled-execution","page":"Features","title":"Model exchange, co-simulation and scheduled execution","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"There are two different model types for FMUs in FMI2: Model exchange (ME) and co-simulation (CS). FMI3 further adds the mode scheduled execution (SE). If you have a FMU and are only interested in getting it simulated, use simulate so FMI.jl will automatically pick CS if available and otherwise ME. If you want to force a specific simulation mode, you can use simulateME (for ME), simulateCS (for CS) or simulateSE (for SE).","category":"page"},{"location":"features/#Simulate-arbitrary-time-intervals","page":"Features","title":"Simulate arbitrary time intervals","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"You can simply simulate arbitrary time intervals by passing a startTime unequal zero to fmi2SetupExperiment or [ToDo: corresponding FMI3 function]. Because some FMUs don't support startTime != 0.0 and will throw an error or warning, a time shifting feature inside FMI.jl can be used, that performs all necessary steps in the background - corresponding commands like e.g. fmi2SetTime or fmi2NewDiscreteStates act like the desired time interval is simulated. This feature is disabled by default, but can be activated in the execution configuration using myFMU.executionConfig.autoTimeShift=true while providing a startTime != 0.0.","category":"page"},{"location":"features/#Performance","page":"Features","title":"Performance","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"In- and Out-of-Place: Many commands in FMI.jl are available in in-place and out-of-place semantics. Of course, in-place-calls are faster, because they don't need to allocate new memory at every call (for the return values). So if you have an eye on performance (or must have), a good starting point is to substitute out-of-place- with in-place-calls. Typical improvements are:","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"valueArray = fmi2GetReal(args...) -> fmi2GetReal!(args..., valueArray)\nvalueArray = fmi2GetDerivatives(args...) -> fmi2GetDerivatives!(args..., valueArray)\nvalueArray = fmi2NewDiscreteStates(args...) -> fmi2NewDiscreteStates!(args..., valueArray)","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"Of course, you have to use the same piece of memory (to write your return values in) for multiple calls - otherwise there will be no improvement because the number of allocations stays the same.","category":"page"},{"location":"features/","page":"Features","title":"Features","text":"Views: You can use array-views instead of array-slices as input for in-place-functions, which further reduces memory allocations.","category":"page"},{"location":"features/#AD-Ecosystem-(differentiation-over-FMUs)","page":"Features","title":"AD-Ecosystem (differentiation over FMUs)","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"Sensitivites over FMUs are fully integrated into FMI.jl, FMIImport.jl and FMIFlux.jl. Supported are ForwardDiff.jl together with all AD-frameworks, that use the interface of ChainRules.jl like e.g. Zygote.jl and ReverseDiff.jl. As a result, you can use implicit solvers or you can use FMUs as part of machine learning applications.","category":"page"},{"location":"features/#Watch-your-progress","page":"Features","title":"Watch your progress","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"When simulating FMUs with FMI.jl, a progress meter is shown per default. You can control the appearance via the keyword argument showProgress for simulate, simulateME, simulateCS and simulateSE. Progress meters are also available for FMIFlux.jl, but deactivated by default (during training, this can be a bit too much). When evaluating a NeuralFMU, you can use the same keyword with showProgress=true to show a progress bar during training, too. The simulation trajectory (also called the solution of your FMU's ODE system) can be plotted using plot(solution), all axis will be labeled automatically.","category":"page"},{"location":"features/#Parallelization","page":"Features","title":"Parallelization","text":"","category":"section"},{"location":"features/","page":"Features","title":"Features","text":"A native integrated support for multi-threaded and multi-process FMU-simulation (for example for Monte Carlo experiments) will be deployed soon. ","category":"page"},{"location":"related/#Related-Publications","page":"Related Publication","title":"Related Publications","text":"","category":"section"},{"location":"related/","page":"Related Publication","title":"Related Publication","text":"Tobias Thummerer, Josef Kircher, Lars Mikelsons 2021 NeuralFMU: Towards Structural Integration of FMUs into Neural Networks (14th Modelica Conference, Preprint, Accepted) arXiv:2109.04351","category":"page"},{"location":"related/","page":"Related Publication","title":"Related Publication","text":"Tobias Thummerer, Johannes Tintenherr, Lars Mikelsons 2021 Hybrid modeling of the human cardiovascular system using NeuralFMUs (10th International Conference on Mathematical Modeling in Physical Sciences, Preprint, Accepted) arXiv:2109.04880","category":"page"},{"location":"examples/multiple_instances/#Multiple-Instances-of-an-FMU","page":"Multiple instances","title":"Multiple Instances of an FMU","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"Tutorial by Johannes Stoljar, Tobias Thummerer","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/multiple_instances/#License","page":"Multiple instances","title":"License","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/multiple_instances/#Motivation","page":"Multiple instances","title":"Motivation","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"This Julia Package FMI.jl is motivated by the use of simulation models in Julia. Here the FMI specification is implemented. FMI (Functional Mock-up Interface) is a free standard (fmi-standard.org) that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. The user can thus use simulation models in the form of an FMU (Functional Mock-up Units). Besides loading the FMU, the user can also set values for parameters and states and simulate the FMU both as co-simulation and model exchange simulation.","category":"page"},{"location":"examples/multiple_instances/#Introduction-to-the-example","page":"Multiple instances","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"In this example we want to show that it is possible to create different instances of an FMU. The different instances can then be used to run independent simulations. After the FMU has been simulated, the simulation results are displayed in a graph. The used model is a one-dimensional spring pendulum without friction. The object-orientated structure of the SpringPendulum1D can be seen in the following graphic.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"(Image: svg) ","category":"page"},{"location":"examples/multiple_instances/#Target-group","page":"Multiple instances","title":"Target group","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"The example is primarily intended for users who work in the field of simulations. The example wants to show how simple it is to use FMUs in Julia.","category":"page"},{"location":"examples/multiple_instances/#Other-formats","page":"Multiple instances","title":"Other formats","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/multiple_instances/#Getting-started","page":"Multiple instances","title":"Getting started","text":"","category":"section"},{"location":"examples/multiple_instances/#Installation-prerequisites","page":"Multiple instances","title":"Installation prerequisites","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":" Description Command Alternative\n1. Enter Package Manager via ] \n2. Install FMI via add FMI add \" https://github.com/ThummeTo/FMI.jl \"\n3. Install FMIZoo via add FMIZoo add \" https://github.com/ThummeTo/FMIZoo.jl \"\n4. Install Plots via add Plots ","category":"page"},{"location":"examples/multiple_instances/#Code-section","page":"Multiple instances","title":"Code section","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"# imports\nusing FMI\nusing FMIZoo\nusing Plots","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00ca4e361141 is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]","category":"page"},{"location":"examples/multiple_instances/#Simulation-setup","page":"Multiple instances","title":"Simulation setup","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"Next, the start time and end time of the simulation are set. Finally, the recorded values are specified to store the results of the simulation.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"tStart = 0.0\ntStop = 8.0\n\nvrs = [\"mass.s\"]","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"1-element Vector{String}:\n \"mass.s\"","category":"page"},{"location":"examples/multiple_instances/#Import-FMU","page":"Multiple instances","title":"Import FMU","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"In the next lines of code the FMU model from FMIZoo.jl is loaded and the information about the FMU is shown.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"# we use an FMU from the FMIZoo.jl\npathToFMU = get_model_filename(\"SpringPendulum1D\", \"Dymola\", \"2022x\")\n\nmyFMU = loadFMU(pathToFMU)\ninfo(myFMU)","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"#################### Begin information for FMU ####################\n\tModel name:\t\t\tSpringPendulum1D\n\tFMI-Version:\t\t\t2.0\n\tGUID:\t\t\t\t{fc15d8c4-758b-48e6-b00e-5bf47b8b14e5}\n\tGeneration tool:\t\tDymola Version 2022x (64-bit), 2021-10-08\n\tGeneration time:\t\t2022-05-19T06:54:23Z\n\tVar. naming conv.:\t\tstructured\n\tEvent indicators:\t\t0\n\tInputs:\t\t\t\t0\n\tOutputs:\t\t\t0\n\tStates:\t\t\t\t2\n\t\t33554432 [\"mass.s\"]\n\t\t33554433 [\"mass.v\"]\n\tParameters:\t\t\t7\n\t\t16777216 [\"mass_s0\"]\n\t\t16777217 [\"mass_v0\"]\n\t\t16777218 [\"fixed.s0\"]\n\t\t16777219 [\"spring.c\"]\n\t\t16777220 [\"spring.s_rel0\"]\n\t\t16777221 [\"mass.m\"]\n\t\t16777222 [\"mass.L\"]\n\tSupports Co-Simulation:\t\ttrue\n\t\tModel identifier:\tSpringPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n\t\tVar. com. steps:\ttrue\n\t\tInput interpol.:\ttrue\n\t\tMax order out. der.:\t1\n\tSupports Model-Exchange:\ttrue\n\n\n\t\tModel identifier:\tSpringPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n##################### End information for FMU #####################","category":"page"},{"location":"examples/multiple_instances/#First-Instance","page":"Multiple instances","title":"First Instance","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"To create an instance of the FMU it is necessary to call the command fmi2Instantiate!(). With the component address you now have a unique instance of the FMU.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"c1 = fmi2Instantiate!(myFMU; loggingOn=true)\ncomp1Address = c1.addr\nprintln(c1)","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"FMU: SpringPendulum1D\n InstanceName: SpringPendulum1D\n Address: Ptr{Nothing} @0x000002acf7dcae90\n State: 0\n Logging: true\n FMU time: -Inf\n FMU states: nothing","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"Next, a dictionary for the parameters is created. With this dictionary you can set the initial states of the variables of the FMU. For the spring constant spring.c a value of 100 fracNm and for the position of the mass mass.s a value of 10 m is set. The created dictionary with the specified variables for recording are passed to the command for simulation. In addition, other keywords are set. On the one hand the keyword instantiate=false is set, which prevents that in the simulation command a new instance is created. On the other hand the keyword freeInstance=false is set, this prevents that after the simulation command the instance is released. ","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"param1 = Dict(\"spring.c\"=>10.0, \"mass_s0\"=>1.0)\ndata1 = simulate(c1, (tStart, tStop); parameters=param1, recordValues=vrs, instantiate=false, freeInstance=false)\nfig = plot(data1)","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"(Image: svg)","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"For control, you can compare again the address of the instance to the previous address, and it should be the same address. As soon as this is not the case an error would be thrown by the macro @assert.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"@assert c1.addr === comp1Address","category":"page"},{"location":"examples/multiple_instances/#Second-Instance","page":"Multiple instances","title":"Second Instance","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"To create a second instance of the FMU it is necessary to call the command fmi2Instantiate!(). With the component address you now have a unique instance of the FMU.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"c2 = fmi2Instantiate!(myFMU; loggingOn=true)\ncomp2Address = c2.addr\nprintln(c2)","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"FMU: SpringPendulum1D\n InstanceName: SpringPendulum1D\n Address: Ptr{Nothing} @0x000002acf7dcc270\n State: 0\n Logging: true\n FMU time: -Inf\n FMU states: nothing","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"The addresses of the instantiated FMUs must differ, and you can see that in the comparison below.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"@assert comp1Address !== comp2Address","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"Again, a dictionary for the parameters is created. With this dictionary you can set the initial states of the variables of the FMU. For the spring constant spring.c a value of 10 fracNm and for the position of the mass mass.s a value of 20 m is set. The created dictionary with the specified variables for recording are passed to the command for simulation. As before, the two keywords instantiate=false and freeInstance=false are set.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"param2 = Dict(\"spring.c\"=>1.0, \"mass.s\"=>2.0)\ndata2 = simulateCS(c2, (tStart, tStop); parameters=param2, recordValues=vrs, instantiate=false, freeInstance=false)\nplot!(fig, data2)","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"(Image: svg)","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"For control, you can compare again the address of the instance comp2 to the previous address comp2Address and it should be the same address.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"@assert c2.addr === comp2Address","category":"page"},{"location":"examples/multiple_instances/#Unload-FMU","page":"Multiple instances","title":"Unload FMU","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.","category":"page"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"unloadFMU(myFMU)","category":"page"},{"location":"examples/multiple_instances/#Summary","page":"Multiple instances","title":"Summary","text":"","category":"section"},{"location":"examples/multiple_instances/","page":"Multiple instances","title":"Multiple instances","text":"Based on the example it can be seen that it is possible to create different instances of an FMU. The different instances can then be used to perform different simulations.","category":"page"},{"location":"examples/overview/#Overview","page":"Overview","title":"Overview","text":"","category":"section"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"This section discusses the included examples of the FMI.jl library. If you require further information about the function calls, see the function sections of the library.","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Examples are subdevided into Basics, Advanced, Export, Pluto workshops and Publication appendices.","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Basic examples:","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Simulate: Showing how you can simulate a CS-FMU and a ME-FMU.\nParameterize: A short example explaining how to parameterize a FMU before simulation.\nInputs: A short example explaining how to simulate a FMU with inputs.","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Advanced examples:","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Parameter Optimization: An introduction on how FMU parameters can be optimized to fit a specific behaviour.\nMultiple instances: Showing the use of multiple FMU instances.\nManipulation: Showing how to redefine a linked C-library function of FMU.\nMultithreading: Shows how to use multithreading to simulate multiple FMUs.\nMultiprocessing: Shows how to use multiprocessing to simulate multiple FMUs.","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"FMIExport.jl examples:","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Export-BouncingBall: Export an FMU of a BouncingBall, that is implemented in Julia","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Pluto workshops:","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Pluto workshops: Pluto based notebooks, that can easyly be executed on your own Pluto-Setup.","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Publication appendices:","category":"page"},{"location":"examples/overview/","page":"Overview","title":"Overview","text":"Modelica conference 2021: Showing the different variants of simulating an FMU.","category":"page"},{"location":"fmi-tool-info/#FMU-Import-Compatibility-information-(*FMIImport.jl*)","page":"FMI Tool Information","title":"FMU Import Compatibility information (FMIImport.jl)","text":"","category":"section"},{"location":"fmi-tool-info/","page":"FMI Tool Information","title":"FMI Tool Information","text":"This section contains information about how import and simulation of FMI.jl and FMIInmport.jl where tested.","category":"page"},{"location":"fmi-tool-info/#FMI-3.0","page":"FMI Tool Information","title":"FMI-3.0","text":"","category":"section"},{"location":"fmi-tool-info/","page":"FMI Tool Information","title":"FMI Tool Information","text":"FMI3 is for now only beta supported and information will be deployed together with the full support release.","category":"page"},{"location":"fmi-tool-info/#FMI-2.0","page":"FMI Tool Information","title":"FMI-2.0","text":"","category":"section"},{"location":"fmi-tool-info/","page":"FMI Tool Information","title":"FMI Tool Information","text":"FMI.jl and FMIImport.jl are validated by simulating all valid FMI2-FMUs from the official FMI-Cross-Check in ME- as well as in CS-Mode, excluding the tools AMESim, Test-FMUs, SimulationX and Silver. For more information see our automated GitHub-Action. The results files - as defined by the FMI Cross Check - can be found in the forked repository inside of the corresponding sub folders. There are different branches for different OS-configurations available.","category":"page"},{"location":"fmi-tool-info/#FMU-Export-Compatibility-information-(*FMIExport.jl*)","page":"FMI Tool Information","title":"FMU Export Compatibility information (FMIExport.jl)","text":"","category":"section"},{"location":"fmi-tool-info/","page":"FMI Tool Information","title":"FMI Tool Information","text":"Detailed export information and automatically generated FMUs will be deployed soon in the repository.","category":"page"},{"location":"fmi-tool-info/#FMI-3.0-2","page":"FMI Tool Information","title":"FMI-3.0","text":"","category":"section"},{"location":"fmi-tool-info/","page":"FMI Tool Information","title":"FMI Tool Information","text":"File name x86_64-windows x86_64-linux\nBouncingBall coming soon coming soon\nManipulation coming soon coming soon\nNeuralFMU coming soon coming soon","category":"page"},{"location":"fmi-tool-info/#FMI-2.0-2","page":"FMI Tool Information","title":"FMI-2.0","text":"","category":"section"},{"location":"fmi-tool-info/","page":"FMI Tool Information","title":"FMI Tool Information","text":"File name x86_64-windows x86_64-linux\nBouncingBall ME coming soon\nManipulation ME coming soon\nNeuralFMU ME coming soon","category":"page"},{"location":"fmi-tool-info/#Validation-tools","page":"FMI Tool Information","title":"Validation tools","text":"","category":"section"},{"location":"fmi-tool-info/","page":"FMI Tool Information","title":"FMI Tool Information","text":"Dassault Dymola 2022X\nFMU Check","category":"page"},{"location":"faq/#FAQ","page":"FAQ","title":"FAQ","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"This list some common - often numerical - errors, that can be fixed by better understanding the ODE-Problem inside your FMU.","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"","category":"page"},{"location":"faq/#Solving-non-linear-system-fails","page":"FAQ","title":"Solving non-linear system fails","text":"","category":"section"},{"location":"faq/#Description","page":"FAQ","title":"Description","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Error message or warning, that solving of a non-linear system failed, close to the simulation start time.","category":"page"},{"location":"faq/#Example","page":"FAQ","title":"Example","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Solving non-linear system 101 failed at time=3e-05.","category":"page"},{"location":"faq/#Reason","page":"FAQ","title":"Reason","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"This could be, because the first step of the integration is accepted by the solver's error estimation, but shouldn't. This is usually, if the first step is picked to large by the solver's start step size heuristics.","category":"page"},{"location":"faq/#Fix","page":"FAQ","title":"Fix","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Try a small start value for the integration with keyword dt.","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"","category":"page"},{"location":"faq/#Access-denied","page":"FAQ","title":"Access denied","text":"","category":"section"},{"location":"faq/#Description-2","page":"FAQ","title":"Description","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Error message, that the binary for callback functions can't be accessed/opened.","category":"page"},{"location":"faq/#Example-2","page":"FAQ","title":"Example","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"ERROR:\ncould not load library \"...\\src\\FMI2\\callbackFunctions\\binaries\\win64\\callbackFunctions.dll\"\nAccess denied","category":"page"},{"location":"faq/#Reason-2","page":"FAQ","title":"Reason","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"This is because your OS doesn't allow to interact with the binaries shipped with FMI.jl. ","category":"page"},{"location":"faq/#Fix-2","page":"FAQ","title":"Fix","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"This can easily be solved by fixing the binary's permission options or is automatically fixed if Julia runs with admin privileges.","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"","category":"page"},{"location":"faq/#Double-Callback-Crossing","page":"FAQ","title":"Double Callback Crossing","text":"","category":"section"},{"location":"faq/#Description-3","page":"FAQ","title":"Description","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"Error message, that solving failed because of double callback crossing.","category":"page"},{"location":"faq/#Example-3","page":"FAQ","title":"Example","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"ERROR:\nDouble callback crossing floating pointer reducer errored. Report this issue.","category":"page"},{"location":"faq/#Reason-3","page":"FAQ","title":"Reason","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"This is because the event instant (time point) of an FMU event indicator can't be found precisely.","category":"page"},{"location":"faq/#Fix-3","page":"FAQ","title":"Fix","text":"","category":"section"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"This can be solved by allowing for more interpolation points during searching of the zero crossing:","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"fmu.executionConfig.rootSearchInterpolationPoints = 1000 # default value is 10","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"This will have negative performance impact on systems with extreme amount of events (thousands per second). For systems with only a few events there won't be a noticeable slow down.","category":"page"},{"location":"faq/","page":"FAQ","title":"FAQ","text":"","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/#Working-with-the-FMI-model-description","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"section"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"The FMI model description provides all human readable information on the model. The following functions can be used to obtain all information provided by the model description, which in turn can be extracted from the fmu.","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/#Loading/Parsing","page":"Working with the FMI model description","title":"Loading/Parsing","text":"","category":"section"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi3LoadModelDescription","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/#general-information-about-the-FMU","page":"Working with the FMI model description","title":"general information about the FMU","text":"","category":"section"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi3GetGenerationTool fmi3GetGenerationDateAndTime","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/#technical-information-about-the-FMU","page":"Working with the FMI model description","title":"technical information about the FMU","text":"","category":"section"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi3GetVersion\n\nfmi3GetNumberOfEventIndicators\nfmi3GetNumberOfEventIndicators!","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/#FMICore.fmi3GetVersion","page":"Working with the FMI model description","title":"FMICore.fmi3GetVersion","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.4. Inquire Version Number of Header Files\n\nThis function returns fmi3Version of the fmi3Functions.h header file which was used to compile the functions of the FMU. This function call is allowed always and in all interface types.\n\nThe standard header file as documented in this specification has version \"3.0-beta.2\", so this function returns \"3.0-beta.2\".\n\n\n\n\n\nfmi3GetVersion(fmu::FMU3)\n\nArguments\n\nfmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.\n\nReturns\n\nReturns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi3Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “3.0”\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4. Inquire Version Number of Header Files\n\n\n\n\n\nfunction fmi3GetVersion(fmu::FMU3)\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nReturns a string from the address of a C-style (NUL-terminated) string. The string represents the version of the “fmi3Functions.h” header file which was used to compile the functions of the FMU. The function returns “fmiVersion” which is defined in this header file. The standard header file as documented in this specification has version “3.0”\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4. Inquire Version Number of Header Files\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_modeldescription_functions/#FMIImport.fmi3GetNumberOfEventIndicators","page":"Working with the FMI model description","title":"FMIImport.fmi3GetNumberOfEventIndicators","text":"fmi3GetNumberOfEventIndicators(c::FMU3Instance)\n\nThis function returns the number of event indicators. This function can only be called in Model Exchange. \n\nfmi3GetNumberOfEventIndicators must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nsize::Integer: Return size is the number of event indicators of this instance \n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.3.2. State: Instantiated\n\nSee also fmi3GetNumberOfEventIndicators.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_modeldescription_functions/#FMICore.fmi3GetNumberOfEventIndicators!","page":"Working with the FMI model description","title":"FMICore.fmi3GetNumberOfEventIndicators!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.2. State: Instantiated\n\nThis function returns the number of event indicators. This function can only be called in Model Exchange. \n\nfmi3GetNumberOfEventIndicators must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.\n\n\n\n\n\nfmi3GetNumberOfEventIndicators!(c::FMU3Instance, nEventIndicators::Ref{Csize_t})\n\nThis function returns the number of event indicators. This function can only be called in Model Exchange. \n\nfmi3GetNumberOfEventIndicators must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nnEventIndicators::Ref{Csize_t}: Stores the number of continuous states returned by the function\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.2. State: Instantiated\n\nSee also fmi3GetNumberOfEventIndicators!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_modeldescription_functions/#FMU-capabilities","page":"Working with the FMI model description","title":"FMU capabilities","text":"","category":"section"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"","category":"page"},{"location":"fmi3_lowlevel_modeldescription_functions/","page":"Working with the FMI model description","title":"Working with the FMI model description","text":"fmi3CanGetSetState fmi3CanSerializeFMUState","category":"page"},{"location":"fmi3_lowlevel_ME_functions/#FMI-for-Model-Exchange","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"","category":"section"},{"location":"fmi3_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"This chapter contains the interface description to access the equations of a dynamic system from a C program.","category":"page"},{"location":"fmi3_lowlevel_ME_functions/#Providing-Independent-Variables-and-Re-initialization-of-Caching","page":"FMI for Model Exchange","title":"Providing Independent Variables and Re-initialization of Caching","text":"","category":"section"},{"location":"fmi3_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"Depending on the situation, different variables need to be computed. In order to be efficient, it is important that the interface requires only the computation of variables that are needed in the present context. The state derivatives shall be reused from the previous call. This feature is called “caching of variables” in the sequel. Caching requires that the model evaluation can detect when the input arguments, like time or states, have changed.","category":"page"},{"location":"fmi3_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"fmi3SetTime\nfmi3SetContinuousStates\nfmi3GetEventIndicators\nfmi3GetEventIndicators!","category":"page"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3SetTime","page":"FMI for Model Exchange","title":"FMICore.fmi3SetTime","text":"Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode\n\nSet a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).\n\n\n\n\n\nfmi3SetTime(c::FMU3Instance, time::fmi3Float64)\n\nSet a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\ntime::fmi3Float64: Argument time contains a value of type fmi3Float64 which is a alias type for Real data type. time sets the independent variable time t.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3SetTime.\n\n\n\n\n\nfmi3SetTime(c::FMU3Instance, time::Real)\n\nSet a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nt::Real: Argument t contains a value of type Real which is a alias type for Real data type. time sets the independent variable time t.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3SetTime.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3SetContinuousStates","page":"FMI for Model Exchange","title":"FMICore.fmi3SetContinuousStates","text":"Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode\n\nSet a new (continuous) state vector and re-initialize caching of variables that depend on the states. Argument nx is the length of vector x and is provided for checking purposes\n\n\n\n\n\nfmi3SetContinuousStates(c::FMU3Instance,\n x::AbstractArray{fmi3Float64},\n nx::Csize_t)\n\nSet a new (continuous) state vector and re-initialize caching of variables that depend on the states. Argument nx is the length of vector x and is provided for checking purposes\n\nIf fmi3UpdateDiscreteStates returned with nominalsOfContinuousStatesChanged == fmi3True, then at least one nominal value of the states has changed and can be inquired with fmi3GetNominalsOfContinuousStates. Not allowed in Co-Simulation and Scheduled Execution.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nx::AbstractArray{fmi3Float64}: Argument x contains values of type fmi3Float64 which is a alias type for Real data type. x is the AbstractArray which contains the Real values of the vector that represent the nominal values of the continuous states.\nnx::Csize_t: Argument nx defines the length of vector x and is provided for checking purposes\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3SetContinuousStates.\n\n\n\n\n\nfmi3SetContinuousStates(c::FMU3Instance, x::Union{AbstractArray{Float32}, AbstractArray{Float64}})\n\nSet a new (continuous) state vector and re-initialize caching of variables that depend on the states. Argument nx is the length of vector x and is provided for checking purposes\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nx::Union{AbstractArray{Float32},AbstractArray{Float64}}:Argument x is the AbstractArray of the vector values of Float64 or Float32.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3SetContinuousStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMIImport.fmi3GetEventIndicators","page":"FMI for Model Exchange","title":"FMIImport.fmi3GetEventIndicators","text":"fmi3GetEventIndicators(c::FMU3Instance)\n\nReturns the event indicators of the FMU\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\neventIndicators::Array{fmi3Float64}:The event indicators are returned as a vector represented by an array of \"fmi3Float64\" values.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3GetEventIndicators.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3GetEventIndicators!","page":"FMI for Model Exchange","title":"FMICore.fmi3GetEventIndicators!","text":"Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode\n\nCompute event indicators at the current time instant and for the current states. EventIndicators signal Events by their sign change.\n\n\n\n\n\nfmi3GetEventIndicators!(c::FMU3Instance, eventIndicators::AbstractArray{fmi3Float64}, ni::Csize_t)\n\nCompute event indicators at the current time instant and for the current states. EventIndicators signal Events by their sign change.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\neventIndicators::AbstractArray{fmi3Float64}: Argument eventIndicators contains values of type fmi3Float64 which is a alias type for Real data type.eventIndicators is the AbstractArray which contains the Real values of the vector that represent the event indicators.\nni::Csize_t: Argument ni defines the length of vector eventIndicators and is provided for checking purposes\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3GetEventIndicators!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#Evaluation-of-Model-Equations","page":"FMI for Model Exchange","title":"Evaluation of Model Equations","text":"","category":"section"},{"location":"fmi3_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"fmi3EnterEventMode\nfmi3EnterContinuousTimeMode\nfmi3CompletedIntegratorStep!\nfmi3GetContinuousStates\nfmi3GetContinuousStates!\nfmi3GetNominalsOfContinuousStates!\nfmi3GetNumberOfContinuousStates\nfmi3GetNumberOfContinuousStates!","category":"page"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3EnterEventMode","page":"FMI for Model Exchange","title":"FMICore.fmi3EnterEventMode","text":"Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode\n\nThe model enters Event Mode from the Continuous-Time Mode in ModelExchange oder Step Mode in CoSimulation and discrete-time equations may become active (and relations are not “frozen”).\n\n\n\n\n\nfmi3EnterEventMode(c::FMU3Instance, stepEvent::fmi3Boolean, stateEvent::fmi3Boolean, rootsFound::AbstractArray{fmi3Int32}, nEventIndicators::Csize_t, timeEvent::fmi3Boolean; soft::Bool=false)\n\nThe model enters Event Mode from the Continuous-Time Mode in ModelExchange oder Step Mode in CoSimulation and discrete-time equations may become active (and relations are not “frozen”).\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nstepEvent::fmi3Boolean: \nstateEvent::fmi3Boolean: \nrootsFound::AbstractArray{fmi3Int32}: \nnEventIndicators::Csize_t: \ntimeEvent::fmi3Boolean: \nsoft::Bool=false: \n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3EnterEventMode.\n\n\n\n\n\nfmi3EnterEventMode(c::FMU3Instance, stepEvent::Bool, stateEvent::Bool, rootsFound::AbstractArray{fmi3Int32}, nEventIndicators::Csize_t, timeEvent::Bool)\n\nThe model enters Event Mode from the Continuous-Time Mode in ModelExchange oder Step Mode in CoSimulation and discrete-time equations may become active (and relations are not “frozen”).\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nstepEvent::Bool: \nstateEvent::Bool: \nrootsFound::AbstractArray{fmi3Int32}: \nnEventIndicators::Csize_t: \ntimeEvent::Bool: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3EnterEventMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3EnterContinuousTimeMode","page":"FMI for Model Exchange","title":"FMICore.fmi3EnterContinuousTimeMode","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.5. State: Event Mode\n\nThe model enters Continuous-Time Mode and all discrete-time equations become inactive and all relations are “frozen”. This function has to be called when changing from Event Mode (after the global event iteration in Event Mode over all involved FMUs and other models has converged) into Continuous-Time Mode.\n\n\n\n\n\nfmi3EnterContinuousTimeMode(c::FMU3Instance; soft::Bool=false)\n\nThe model enters Continuous-Time Mode and all discrete-time equations become inactive and all relations are “frozen”. This function has to be called when changing from Event Mode (after the global event iteration in Event Mode over all involved FMUs and other models has converged) into Continuous-Time Mode.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.5. State: Event Mode\n\nSee also fmi3EnterContinuousTimeMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3CompletedIntegratorStep!","page":"FMI for Model Exchange","title":"FMICore.fmi3CompletedIntegratorStep!","text":"Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode\n\nThis function must be called by the environment after every completed step of the integrator provided the capability flag needsCompletedIntegratorStep = true. If enterEventMode == fmi3True, the event mode must be entered If terminateSimulation == fmi3True, the simulation shall be terminated\n\n\n\n\n\nfmi3CompletedIntegratorStep!(c::FMU3Instance,\n noSetFMUStatePriorToCurrentPoint::fmi3Boolean,\n enterEventMode::Ref{fmi3Boolean},\n terminateSimulation::Ref{fmi3Boolean})\n\nThis function must be called by the environment after every completed step of the integrator provided the capability flag needsCompletedIntegratorStep == true. If enterEventMode == fmi3True, the event mode must be entered If terminateSimulation == fmi3True, the simulation shall be terminated\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nnoSetFMUStatePriorToCurrentPoint::fmi3Boolean: Argument noSetFMUStatePriorToCurrentPoint = fmi3True if fmi3SetFMUState will no longer be called for time instants prior to current time in this simulation run.\nenterEventMode::Ref{fmi3Boolean}: Argument enterEventMode points to the return value (fmi3Boolean) which signals to the environment if the FMU shall call fmi3EnterEventMode. fmi3Boolean is an alias type for Boolean data type.\nterminateSimulation::Ref{fmi3Boolean}: Argument terminateSimulation points to the return value (fmi3Boolean) which signals signal if the simulation shall be terminated. fmi3Boolean is an alias type for Boolean data type.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3CompletedIntegratorStep!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMIImport.fmi3GetContinuousStates","page":"FMI for Model Exchange","title":"FMIImport.fmi3GetContinuousStates","text":"fmi3GetContinuousStates(c::FMU3Instance)\n\nReturn the new (continuous) state vector x\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nx::Array{fmi3Float64}: Returns an array of fmi3Float64 values representing the new continuous state vector x.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.3.3. State: Initialization Mode\n\nSee also fmi3GetContinuousStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3GetContinuousStates!","page":"FMI for Model Exchange","title":"FMICore.fmi3GetContinuousStates!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.3. State: Initialization Mode\n\nReturn the states at the current time instant.\n\nThis function must be called if fmi3UpdateDiscreteStates returned with valuesOfContinuousStatesChanged == fmi3True. Not allowed in Co-Simulation and Scheduled Execution.\n\n\n\n\n\nfmi3GetContinuousStates!(c::FMU3Instance, nominals::AbstractArray{fmi3Float64}, nContinuousStates::Csize_t)\n\nReturn the states at the current time instant.\n\nThis function must be called if fmi3UpdateDiscreteStates returned with valuesOfContinuousStatesChanged == fmi3True. Not allowed in Co-Simulation and Scheduled Execution.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nnominals::AbstractArray{fmi3Float64}: Argument nominals contains values of type fmi3Float64 which is a alias type for Real data type. nominals is the AbstractArray which contains the Real values of the vector that represent the new state vector.\nnContinuousStates::Csize_t: Argument nContinuousStates defines the length of vector nominals and is provided for checking purposes\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.3. State: Initialization Mode\n\nSee also fmi3GetContinuousStates!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3GetNominalsOfContinuousStates!","page":"FMI for Model Exchange","title":"FMICore.fmi3GetNominalsOfContinuousStates!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.3. State: Initialization Mode\n\nReturn the nominal values of the continuous states.\n\nIf fmi3UpdateDiscreteStates returned with nominalsOfContinuousStatesChanged == fmi3True, then at least one nominal value of the states has changed and can be inquired with fmi3GetNominalsOfContinuousStates. Not allowed in Co-Simulation and Scheduled Execution.\n\n\n\n\n\nfmi3GetNominalsOfContinuousStates!(c::FMU3Instance, x_nominal::AbstractArray{fmi3Float64}, nx::Csize_t)\n\nReturn the nominal values of the continuous states.\n\nIf fmi3UpdateDiscreteStates returned with nominalsOfContinuousStatesChanged == fmi3True, then at least one nominal value of the states has changed and can be inquired with fmi3GetNominalsOfContinuousStates. Not allowed in Co-Simulation and Scheduled Execution.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nx_nominal::AbstractArray{fmi3Float64}: Argument x_nominal contains values of type fmi3Float64 which is a alias type for Real data type. x_nominal is the AbstractArray which contains the Real values of the vector that represent the nominal values of the continuous states.\nnx::Csize_t: Argument nx defines the length of vector x_nominal and is provided for checking purposes\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.3. State: Initialization Mode\n\nSee also fmi3GetNominalsOfContinuousStates!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMIImport.fmi3GetNumberOfContinuousStates","page":"FMI for Model Exchange","title":"FMIImport.fmi3GetNumberOfContinuousStates","text":"fmi3GetNumberOfContinuousStates(c::FMU3Instance)\n\nThis function returns the number of continuous states. This function can only be called in Model Exchange. \n\nfmi3GetNumberOfContinuousStates must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nsize::Integer: Return size is the number of continuous states of this instance \n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.3.2. State: Instantiated\n\nSee also fmi3GetNumberOfContinuousStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/#FMICore.fmi3GetNumberOfContinuousStates!","page":"FMI for Model Exchange","title":"FMICore.fmi3GetNumberOfContinuousStates!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.2. State: Instantiated\n\nThis function returns the number of continuous states. This function can only be called in Model Exchange. \n\nfmi3GetNumberOfContinuousStates must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.\n\n\n\n\n\nfmi3GetNumberOfContinuousStates!(c::FMU3Instance, nContinuousStates::Ref{Csize_t})\n\nThis function returns the number of continuous states. This function can only be called in Model Exchange. \n\nfmi3GetNumberOfContinuousStates must be called after a structural parameter is changed. As long as no structural parameters changed, the number of states is given in the modelDescription.xml, alleviating the need to call this function.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nnContinuousStates::Ref{Csize_t}: Stores the number of continuous states returned by the function\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.2. State: Instantiated\n\nSee also fmi3GetNumberOfContinuousStates!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"fmi3CompletedIntegratorStep","category":"page"},{"location":"examples/inputs/#Simulate-an-FMU-with-inputs","page":"Inputs","title":"Simulate an FMU with inputs","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"Tutorial by Tobias Thummerer","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/inputs/#License","page":"Inputs","title":"License","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/inputs/#Introduction-to-the-example","page":"Inputs","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"This example shows how to add custom inputs to a FMU, that are used during simulation.","category":"page"},{"location":"examples/inputs/#Other-formats","page":"Inputs","title":"Other formats","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/inputs/#Code-section","page":"Inputs","title":"Code section","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"# imports\nusing FMI\nusing FMIZoo\nusing Plots\nusing DifferentialEquations","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00c0f07be09d is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]","category":"page"},{"location":"examples/inputs/#Simulation-setup","page":"Inputs","title":"Simulation setup","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"Next, the start time and end time of the simulation are set. Finally, a step size is specified to store the results of the simulation at these time steps.","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"tStart = 0.0\ntStep = 0.01\ntStop = 8.0\ntSave = tStart:tStep:tStop","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"0.0:0.01:8.0","category":"page"},{"location":"examples/inputs/#Import-FMU","page":"Inputs","title":"Import FMU","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"Next, the FMU model from FMIZoo.jl is loaded.","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"# we use an FMU from the FMIZoo.jl\nfmu = loadFMU(\"SpringPendulumExtForce1D\", \"Dymola\", \"2022x\"; type=:ME) # load FMU in ME-Mode (\"Model Exchange\")","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"Model name:\tSpringPendulumExtForce1D\nType:\t\t0","category":"page"},{"location":"examples/inputs/#Simulate-as-Model-Exchange","page":"Inputs","title":"Simulate as Model-Exchange","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"In the function simulate() the FMU is simulated with an adaptive step size but with fixed save points tSave. In addition, the start and end time are specified. Note, that the dynamics of the input variables are not considered by the steps ize control of the solver, so it is highly recommended to limit the solver step size with the keyword argument dtmax if the input is more dynamic than the system.","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"# input function format \"t\", dependent on `t` (time)\nfunction extForce_t(t::Real, u::AbstractArray{<:Real})\n u[1] = sin(t)\nend \n\n# simulate while setting inputs\ndata_extForce_t = simulate(fmu, (tStart, tStop); # FMU, start and stop time\n solver = Tsit5(),\n saveat=tSave, # timepoints for the ODE solution to be saved\n inputValueReferences=[\"extForce\"], # the value references that should be set (inputs)\n inputFunction=extForce_t, # the input function to be used\n dtmax=1e-2, # limit max step size to capture inputs\n showProgress=false) # disable progress bar\nplot(data_extForce_t)","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"(Image: svg)","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"# input function format \"cxt\", dependent on `c` (component), `x` (state) and `t` (time)\nfunction extForce_cxt(c::Union{FMU2Component, Nothing}, x::Union{AbstractArray{<:Real}, Nothing}, t::Real, u::AbstractArray{<:Real})\n x1 = 0.0\n if x != nothing # this check is important, because inputs may be needed before the system state is known\n x1 = x[1] \n end\n u[1] = sin(t) * x1\n nothing\nend \n\n# simulate while setting inputs\ndata_extForce_cxt = simulate(fmu, (tStart, tStop); saveat=tSave, inputValueReferences=[\"extForce\"], inputFunction=extForce_cxt, dtmax=1e-2, showProgress=false)\nplot(data_extForce_cxt)","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"(Image: svg)","category":"page"},{"location":"examples/inputs/#Unload-FMU","page":"Inputs","title":"Unload FMU","text":"","category":"section"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.","category":"page"},{"location":"examples/inputs/","page":"Inputs","title":"Inputs","text":"unloadFMU(fmu)","category":"page"},{"location":"examples/fmiexport_examples/Export/#Create-a-Bouncing-Ball-FMU","page":"Export Bouncing Ball","title":"Create a Bouncing Ball FMU","text":"","category":"section"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"Tutorial by Tobias Thummerer, Simon Exner | Last edit: October 29 2024","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"🚧 This is a placeholder example, it will be changed or replaced soon. It is not meant to be tutorial at the current state! See the examples folder for examples. 🚧","category":"page"},{"location":"examples/fmiexport_examples/Export/#License","page":"Export Bouncing Ball","title":"License","text":"","category":"section"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar\n# Licensed under the MIT license.\n# See LICENSE (https://github.com/thummeto/FMIExport.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/fmiexport_examples/Export/#Motivation","page":"Export Bouncing Ball","title":"Motivation","text":"","category":"section"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"This Julia Package FMIExport.jl is motivated by the export of simulation models in Julia. Here the FMI specification is implemented. FMI (Functional Mock-up Interface) is a free standard (fmi-standard.org) that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. The user is able to create own FMUs (Functional Mock-up Units).","category":"page"},{"location":"examples/fmiexport_examples/Export/#REPL-commands-or-build-script","page":"Export Bouncing Ball","title":"REPL-commands or build-script","text":"","category":"section"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"The way to do this usually will be the REPL, but if you plan on exporting FMUs in an automated way, you may want to use a jl script containing the following commands. To run this example, the previously installed packages must be included.","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"using FMIExport\nusing FMIBuild: saveFMU","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"Next we have to define where to put the generated files:","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"tmpDir = mktempdir(; prefix=\"fmibuildjl_test_\", cleanup=false) \n@info \"Saving example files at: $(tmpDir)\"\nfmu_save_path = joinpath(tmpDir, \"BouncingBall.fmu\") ","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mSaving example files at: C:\\Users\\RUNNER~1\\AppData\\Local\\Temp\\fmibuildjl_test_4aPeCb\n\n\n\n\n\n\"C:\\\\Users\\\\RUNNER~1\\\\AppData\\\\Local\\\\Temp\\\\fmibuildjl_test_4aPeCb\\\\BouncingBall.fmu\"","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"Remember, that we use the FMU-source stored at examples/FMI2/BouncingBall. If you execute this notebook locally, make shure to adjust the fmusourcepath to where your FMU-Package resides. It is important, that an absolute path is provided! For this notebook to work in the automated bulid pipeline, this absolute path is obtained by the following instructions. If you run this example locally, you can provide the path manually, just make shure you use the correct directory seperator or just use just use julias joinpath function.","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"working_dir = pwd() # current working directory\nprintln(string(\"pwd() returns: \", working_dir))\n\npackage_dir = split(working_dir, joinpath(\"examples\", \"jupyter-src\"))[1] # remove everything after and including \"examples\\jupyter-src\"\nprintln(string(\"package_dir is \", package_dir))\n\nfmu_source_package = joinpath(package_dir, \"examples\", \"FMI2\", \"BouncingBall\") # add correct relative path\nprintln(string(\"fmu_source_package is \", fmu_source_package))\n\nfmu_source_path = joinpath(fmu_source_package, \"src\", \"BouncingBall.jl\") # add correct relative path\nprintln(string(\"fmu_source_path is \", fmu_source_path))","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"pwd() returns: D:\\a\\FMIExport.jl\\FMIExport.jl\\examples\\jupyter-src\npackage_dir is D:\\a\\FMIExport.jl\\FMIExport.jl\\\nfmu_source_package is D:\\a\\FMIExport.jl\\FMIExport.jl\\examples\\FMI2\\BouncingBall\nfmu_source_path is D:\\a\\FMIExport.jl\\FMIExport.jl\\examples\\FMI2\\BouncingBall\\src\\BouncingBall.jl","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"The following codecell contains workardound code that will be obsolete with the next release. This is just to check the CI-Pipeline!","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"using FMIExport.FMIBase.FMICore: fmi2True, fmi2False \n\nEPS = 1e-6\n\nFMU_FCT_INIT = function()\n m = 1.0 # ball mass\n r = 0.0 # ball radius\n d = 0.7 # ball collision damping\n v_min = 1e-1 # ball minimum velocity\n g = 9.81 # gravity constant \n sticking = fmi2False\n\n s = 1.0 # ball position\n v = 0.0 # ball velocity\n a = 0.0 # ball acceleration\n\n t = 0.0 \n x_c = [s, v] \n ẋ_c = [v, a]\n x_d = [sticking]\n u = []\n p = [m, r, d, v_min, g]\n\n return (t, x_c, ẋ_c, x_d, u, p)\nend\n\nFMU_FCT_EVALUATE = function(t, x_c, ẋ_c, x_d, u, p, eventMode)\n m, r, d, v_min, g = p\n s, v = x_c\n sticking = x_d[1]\n _, a = ẋ_c\n\n if sticking == fmi2True\n a = 0.0\n elseif sticking == fmi2False\n if eventMode\n if s < r && v < 0.0\n s = r + EPS # so that indicator is not triggered again\n v = -v*d \n \n # stop bouncing to prevent high frequency bouncing (and maybe tunneling the floor)\n if abs(v) < v_min\n sticking = fmi2True\n v = 0.0\n end\n end\n else\n # no specials in continuos time mode\n end\n\n a = (m * -g) / m # the system's physical equation (a little longer than necessary)\n else\n @error \"Unknown value for `sticking` == $(sticking).\"\n return (x_c, ẋ_c, x_d, p)\n end\n\n x_c = [s, v]\n ẋ_c = [v, a]\n x_d = [sticking]\n p = [m, r, d, v_min, g]\n\n return (x_c, ẋ_c, x_d, p) # evaluation can't change discrete state!\nend\n\nFMU_FCT_OUTPUT = function(t, x_c, ẋ_c, x_d, u, p)\n m, r, d, v_min, g = p\n s, v = x_c\n _, a = ẋ_c\n sticking = x_d[1]\n\n y = [s]\n\n return y\nend\n\nFMU_FCT_EVENT = function(t, x_c, ẋ_c, x_d, u, p)\n m, r, d, v_min, g = p\n s, v = x_c\n _, a = ẋ_c\n sticking = x_d[1]\n \n if sticking == fmi2True\n z1 = 1.0 # event 1: ball stay-on-ground\n else\n z1 = (s-r) # event 1: ball hits ground \n end\n\n z = [z1]\n\n return z\nend\nFMIBUILD_CONSTRUCTOR = function(resPath=\"\")\n fmu = fmi2CreateSimple(initializationFct=FMU_FCT_INIT,\n evaluationFct=FMU_FCT_EVALUATE,\n outputFct=FMU_FCT_OUTPUT,\n eventFct=FMU_FCT_EVENT)\n\n fmu.modelDescription.modelName = \"BouncingBall\"\n\n # modes \n fmi2ModelDescriptionAddModelExchange(fmu.modelDescription, \"BouncingBall\")\n\n # states [2]\n fmi2AddStateAndDerivative(fmu, \"ball.s\"; stateDescr=\"Absolute position of ball center of mass\", derivativeDescr=\"Absolute velocity of ball center of mass\")\n fmi2AddStateAndDerivative(fmu, \"ball.v\"; stateDescr=\"Absolute velocity of ball center of mass\", derivativeDescr=\"Absolute acceleration of ball center of mass\")\n\n # discrete state [1]\n fmi2AddIntegerDiscreteState(fmu, \"sticking\"; description=\"Indicator (boolean) if the mass is sticking on the ground, as soon as abs(v) < v_min\")\n\n # outputs [1]\n fmi2AddRealOutput(fmu, \"ball.s_out\"; description=\"Absolute position of ball center of mass\")\n\n # parameters [5]\n fmi2AddRealParameter(fmu, \"m\"; description=\"Mass of ball\")\n fmi2AddRealParameter(fmu, \"r\"; description=\"Radius of ball\")\n fmi2AddRealParameter(fmu, \"d\"; description=\"Collision damping constant (velocity fraction after hitting the ground)\")\n fmi2AddRealParameter(fmu, \"v_min\"; description=\"Minimal ball velocity to enter on-ground-state\")\n fmi2AddRealParameter(fmu, \"g\"; description=\"Gravity constant\")\n\n fmi2AddEventIndicator(fmu)\n\n return fmu\nend\nfmu = FMIBUILD_CONSTRUCTOR()","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"Model name:\tBouncingBall\nType:\t\t0","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"We need to make shure the fmusourcepackage is instantiated:","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"using Pkg\nnotebook_env = Base.active_project(); # save current enviroment to return to it after we are done\nPkg.activate(fmu_source_package); # activate the FMUs enviroment\n\n# make shure to use the same FMI source as in the enviroment of this example (\"notebook_env\"). \n# As this example is automattically built using the local FMIExport package and not the one from the Juila registry, we need to add it using \"develop\". \nPkg.develop(PackageSpec(path=package_dir)); # If you added FMIExport using \"add FMIExport\", you have to remove this line and use instantiate instead.\n# Pkg.instantiate(); # instantiate the FMUs enviroment only if develop was not previously called\n\nPkg.activate(notebook_env); # return to the original notebooks enviroment","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"\u001b[32m\u001b[1m Activating\u001b[22m\u001b[39m project at `D:\\a\\FMIExport.jl\\FMIExport.jl\\examples\\FMI2\\BouncingBall`\n\n\n\n\n\u001b[32m\u001b[1m Resolving\u001b[22m\u001b[39m package versions...\n\n\n\n\n\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `D:\\a\\FMIExport.jl\\FMIExport.jl\\examples\\FMI2\\BouncingBall\\Project.toml`\n \u001b[90m[226f0e26] \u001b[39m\u001b[92m+ FMIBuild v0.3.2\u001b[39m\n \u001b[90m[31b88311] \u001b[39m\u001b[92m+ FMIExport v0.4.1 `D:\\a\\FMIExport.jl\\FMIExport.jl\\`\u001b[39m\n\u001b[32m\u001b[1m Updating\u001b[22m\u001b[39m `D:\\a\\FMIExport.jl\\FMIExport.jl\\examples\\FMI2\\BouncingBall\\Manifest.toml`\n\n\n \u001b[90m[47edcb42] \u001b[39m\u001b[92m+ ADTypes v1.11.0\u001b[39m\n \u001b[90m[7d9f7c33] \u001b[39m\u001b[92m+ Accessors v0.1.41\u001b[39m\n \u001b[90m[79e6a3ab] \u001b[39m\u001b[92m+ Adapt v4.1.1\u001b[39m\n \u001b[90m[4fba245c] \u001b[39m\u001b[92m+ ArrayInterface v7.18.0\u001b[39m\n \u001b[90m[4c555306] \u001b[39m\u001b[92m+ ArrayLayouts v1.11.0\u001b[39m\n \u001b[90m[62783981] \u001b[39m\u001b[92m+ BitTwiddlingConvenienceFunctions v0.1.6\u001b[39m\n \u001b[90m[2a0fbf3d] \u001b[39m\u001b[92m+ CPUSummary v0.2.6\u001b[39m\n\u001b[33m⌅\u001b[39m \u001b[90m[d360d2e6] \u001b[39m\u001b[92m+ ChainRulesCore v1.24.0\u001b[39m\n \u001b[90m[fb6a15b2] \u001b[39m\u001b[92m+ CloseOpenIntervals v0.1.13\u001b[39m\n \u001b[90m[38540f10] \u001b[39m\u001b[92m+ CommonSolve v0.2.4\u001b[39m\n \u001b[90m[bbf7d656] \u001b[39m\u001b[92m+ CommonSubexpressions v0.3.1\u001b[39m\n \u001b[90m[f70d9fcc] \u001b[39m\u001b[92m+ CommonWorldInvalidations v1.0.0\u001b[39m\n \u001b[90m[34da2185] \u001b[39m\u001b[92m+ Compat v4.16.0\u001b[39m\n \u001b[90m[a33af91c] \u001b[39m\u001b[92m+ CompositionsBase v0.1.2\u001b[39m\n \u001b[90m[2569d6c7] \u001b[39m\u001b[92m+ ConcreteStructs v0.2.3\u001b[39m\n \u001b[90m[187b0558] \u001b[39m\u001b[92m+ ConstructionBase v1.5.8\u001b[39m\n \u001b[90m[adafc99b] \u001b[39m\u001b[92m+ CpuId v0.3.1\u001b[39m\n \u001b[90m[9a962f9c] \u001b[39m\u001b[92m+ DataAPI v1.16.0\u001b[39m\n \u001b[90m[864edb3b] \u001b[39m\u001b[92m+ DataStructures v0.18.20\u001b[39m\n \u001b[90m[e2d170a0] \u001b[39m\u001b[92m+ DataValueInterfaces v1.0.0\u001b[39m\n \u001b[90m[2b5f629d] \u001b[39m\u001b[92m+ DiffEqBase v6.161.0\u001b[39m\n\u001b[33m⌅\u001b[39m \u001b[90m[459566f4] \u001b[39m\u001b[92m+ DiffEqCallbacks v3.9.1\u001b[39m\n \u001b[90m[163ba53b] \u001b[39m\u001b[92m+ DiffResults v1.1.0\u001b[39m\n \u001b[90m[b552c78f] \u001b[39m\u001b[92m+ DiffRules v1.15.1\u001b[39m\n \u001b[90m[a0c0ee7d] \u001b[39m\u001b[92m+ DifferentiationInterface v0.6.29\u001b[39m\n \u001b[90m[ffbed154] \u001b[39m\u001b[92m+ DocStringExtensions v0.9.3\u001b[39m\n \u001b[90m[4e289a0a] \u001b[39m\u001b[92m+ EnumX v1.0.4\u001b[39m\n \u001b[90m[f151be2c] \u001b[39m\u001b[92m+ EnzymeCore v0.8.8\u001b[39m\n \u001b[90m[e2ba6199] \u001b[39m\u001b[92m+ ExprTools v0.1.10\u001b[39m\n\u001b[33m⌅\u001b[39m \u001b[90m[6b7a57c9] \u001b[39m\u001b[92m+ Expronicon v0.8.5\u001b[39m\n \u001b[90m[8f5d6c58] \u001b[39m\u001b[92m+ EzXML v1.2.0\u001b[39m\n \u001b[90m[900ee838] \u001b[39m\u001b[92m+ FMIBase v1.0.10\u001b[39m\n \u001b[90m[226f0e26] \u001b[39m\u001b[92m+ FMIBuild v0.3.2\u001b[39m\n \u001b[90m[8af89139] \u001b[39m\u001b[92m+ FMICore v1.1.1\u001b[39m\n \u001b[90m[31b88311] \u001b[39m\u001b[92m+ FMIExport v0.4.1 `D:\\a\\FMIExport.jl\\FMIExport.jl\\`\u001b[39m\n \u001b[90m[7034ab61] \u001b[39m\u001b[92m+ FastBroadcast v0.3.5\u001b[39m\n \u001b[90m[9aa1b823] \u001b[39m\u001b[92m+ FastClosures v0.3.2\u001b[39m\n \u001b[90m[29a986be] \u001b[39m\u001b[92m+ FastLapackInterface v2.0.4\u001b[39m\n \u001b[90m[a4df4552] \u001b[39m\u001b[92m+ FastPower v1.1.1\u001b[39m\n \u001b[90m[1a297f60] \u001b[39m\u001b[92m+ FillArrays v1.13.0\u001b[39m\n \u001b[90m[6a86dc24] \u001b[39m\u001b[92m+ FiniteDiff v2.26.2\u001b[39m\n \u001b[90m[f6369f11] \u001b[39m\u001b[92m+ ForwardDiff v0.10.38\u001b[39m\n \u001b[90m[069b7b12] \u001b[39m\u001b[92m+ FunctionWrappers v1.1.3\u001b[39m\n \u001b[90m[77dc65aa] \u001b[39m\u001b[92m+ FunctionWrappersWrappers v0.1.3\u001b[39m\n\u001b[33m⌅\u001b[39m \u001b[90m[d9f16b24] \u001b[39m\u001b[92m+ Functors v0.4.12\u001b[39m\n \u001b[90m[46192b85] \u001b[39m\u001b[92m+ GPUArraysCore v0.2.0\u001b[39m\n \u001b[90m[c27321d9] \u001b[39m\u001b[92m+ Glob v1.3.1\u001b[39m\n \u001b[90m[3e5b6fbb] \u001b[39m\u001b[92m+ HostCPUFeatures v0.1.17\u001b[39m\n \u001b[90m[615f187c] \u001b[39m\u001b[92m+ IfElse v0.1.1\u001b[39m\n \u001b[90m[3587e190] \u001b[39m\u001b[92m+ InverseFunctions v0.1.17\u001b[39m\n \u001b[90m[92d709cd] \u001b[39m\u001b[92m+ IrrationalConstants v0.2.2\u001b[39m\n \u001b[90m[82899510] \u001b[39m\u001b[92m+ IteratorInterfaceExtensions v1.0.0\u001b[39m\n \u001b[90m[692b3bcd] \u001b[39m\u001b[92m+ JLLWrappers v1.7.0\u001b[39m\n \u001b[90m[ef3ab10e] \u001b[39m\u001b[92m+ KLU v0.6.0\u001b[39m\n \u001b[90m[ba0b0d4f] \u001b[39m\u001b[92m+ Krylov v0.9.8\u001b[39m\n \u001b[90m[10f19ff3] \u001b[39m\u001b[92m+ LayoutPointers v0.1.17\u001b[39m\n \u001b[90m[5078a376] \u001b[39m\u001b[92m+ LazyArrays v2.3.2\u001b[39m\n \u001b[90m[87fe0de2] \u001b[39m\u001b[92m+ LineSearch v0.1.4\u001b[39m\n \u001b[90m[d3d80556] \u001b[39m\u001b[92m+ LineSearches v7.3.0\u001b[39m\n \u001b[90m[7ed4a6bd] \u001b[39m\u001b[92m+ LinearSolve v2.38.0\u001b[39m\n \u001b[90m[2ab3a3ac] \u001b[39m\u001b[92m+ LogExpFunctions v0.3.29\u001b[39m\n \u001b[90m[bdcacae8] \u001b[39m\u001b[92m+ LoopVectorization v0.12.171\u001b[39m\n \u001b[90m[d8e11817] \u001b[39m\u001b[92m+ MLStyle v0.4.17\u001b[39m\n \u001b[90m[1914dd2f] \u001b[39m\u001b[92m+ MacroTools v0.5.15\u001b[39m\n \u001b[90m[d125e4d3] \u001b[39m\u001b[92m+ ManualMemory v0.1.8\u001b[39m\n \u001b[90m[bb5d69b7] \u001b[39m\u001b[92m+ MaybeInplace v0.1.4\u001b[39m\n \u001b[90m[46d2c3a1] \u001b[39m\u001b[92m+ MuladdMacro v0.2.4\u001b[39m\n \u001b[90m[d41bc354] \u001b[39m\u001b[92m+ NLSolversBase v7.8.3\u001b[39m\n \u001b[90m[77ba4419] \u001b[39m\u001b[92m+ NaNMath v1.0.3\u001b[39m\n\u001b[33m⌅\u001b[39m \u001b[90m[8913a72c] \u001b[39m\u001b[92m+ NonlinearSolve v3.15.1\u001b[39m\n \u001b[90m[6fe1bfb0] \u001b[39m\u001b[92m+ OffsetArrays v1.15.0\u001b[39m\n \u001b[90m[bac558e1] \u001b[39m\u001b[92m+ OrderedCollections v1.7.0\u001b[39m\n \u001b[90m[9b87118b] \u001b[39m\u001b[92m+ PackageCompiler v2.2.0\u001b[39m\n \u001b[90m[65ce6f38] \u001b[39m\u001b[92m+ PackageExtensionCompat v1.0.2\u001b[39m\n \u001b[90m[d96e819e] \u001b[39m\u001b[92m+ Parameters v0.12.3\u001b[39m\n \u001b[90m[f517fe37] \u001b[39m\u001b[92m+ Polyester v0.7.16\u001b[39m\n \u001b[90m[1d0040c9] \u001b[39m\u001b[92m+ PolyesterWeave v0.2.2\u001b[39m\n \u001b[90m[d236fae5] \u001b[39m\u001b[92m+ PreallocationTools v0.4.24\u001b[39m\n \u001b[90m[aea7be01] \u001b[39m\u001b[92m+ PrecompileTools v1.2.1\u001b[39m\n \u001b[90m[21216c6a] \u001b[39m\u001b[92m+ Preferences v1.4.3\u001b[39m\n \u001b[90m[92933f4c] \u001b[39m\u001b[92m+ ProgressMeter v1.10.2\u001b[39m\n \u001b[90m[3cdcf5f2] \u001b[39m\u001b[92m+ RecipesBase v1.3.4\u001b[39m\n \u001b[90m[731186ca] \u001b[39m\u001b[92m+ RecursiveArrayTools v3.27.4\u001b[39m\n \u001b[90m[f2c3362d] \u001b[39m\u001b[92m+ RecursiveFactorization v0.2.23\u001b[39m\n \u001b[90m[189a3867] \u001b[39m\u001b[92m+ Reexport v1.2.2\u001b[39m\n \u001b[90m[05181044] \u001b[39m\u001b[92m+ RelocatableFolders v1.0.1\u001b[39m\n \u001b[90m[ae029012] \u001b[39m\u001b[92m+ Requires v1.3.0\u001b[39m\n \u001b[90m[7e49a35a] \u001b[39m\u001b[92m+ RuntimeGeneratedFunctions v0.5.13\u001b[39m\n \u001b[90m[94e857df] \u001b[39m\u001b[92m+ SIMDTypes v0.1.0\u001b[39m\n \u001b[90m[476501e8] \u001b[39m\u001b[92m+ SLEEFPirates v0.6.43\u001b[39m\n \u001b[90m[0bca4576] \u001b[39m\u001b[92m+ SciMLBase v2.70.0\u001b[39m\n \u001b[90m[19f34311] \u001b[39m\u001b[92m+ SciMLJacobianOperators v0.1.1\u001b[39m\n \u001b[90m[c0aeaf25] \u001b[39m\u001b[92m+ SciMLOperators v0.3.12\u001b[39m\n \u001b[90m[53ae85a6] \u001b[39m\u001b[92m+ SciMLStructures v1.6.1\u001b[39m\n \u001b[90m[6c6a2e73] \u001b[39m\u001b[92m+ Scratch v1.2.1\u001b[39m\n \u001b[90m[efcf1570] \u001b[39m\u001b[92m+ Setfield v1.1.1\u001b[39m\n\u001b[33m⌅\u001b[39m \u001b[90m[727e6d20] \u001b[39m\u001b[92m+ SimpleNonlinearSolve v1.12.3\u001b[39m\n \u001b[90m[9f842d2f] \u001b[39m\u001b[92m+ SparseConnectivityTracer v0.6.9\u001b[39m\n \u001b[90m[0a514795] \u001b[39m\u001b[92m+ SparseMatrixColorings v0.4.10\u001b[39m\n \u001b[90m[e56a9233] \u001b[39m\u001b[92m+ Sparspak v0.3.9\u001b[39m\n \u001b[90m[276daf66] \u001b[39m\u001b[92m+ SpecialFunctions v2.5.0\u001b[39m\n \u001b[90m[aedffcd0] \u001b[39m\u001b[92m+ Static v1.1.1\u001b[39m\n \u001b[90m[0d7ed370] \u001b[39m\u001b[92m+ StaticArrayInterface v1.8.0\u001b[39m\n \u001b[90m[1e83bf80] \u001b[39m\u001b[92m+ StaticArraysCore v1.4.3\u001b[39m\n \u001b[90m[7792a7ef] \u001b[39m\u001b[92m+ StrideArraysCore v0.5.7\u001b[39m\n \u001b[90m[2efcf032] \u001b[39m\u001b[92m+ SymbolicIndexingInterface v0.3.37\u001b[39m\n \u001b[90m[3783bdb8] \u001b[39m\u001b[92m+ TableTraits v1.0.1\u001b[39m\n \u001b[90m[bd369af6] \u001b[39m\u001b[92m+ Tables v1.12.0\u001b[39m\n \u001b[90m[8290d209] \u001b[39m\u001b[92m+ ThreadingUtilities v0.5.2\u001b[39m\n \u001b[90m[a759f4b9] \u001b[39m\u001b[92m+ TimerOutputs v0.5.26\u001b[39m\n \u001b[90m[d5829a12] \u001b[39m\u001b[92m+ TriangularSolve v0.2.1\u001b[39m\n \u001b[90m[781d530d] \u001b[39m\u001b[92m+ TruncatedStacktraces v1.4.0\u001b[39m\n \u001b[90m[3a884ed6] \u001b[39m\u001b[92m+ UnPack v1.0.2\u001b[39m\n \u001b[90m[3d5dd08c] \u001b[39m\u001b[92m+ VectorizationBase v0.21.71\u001b[39m\n \u001b[90m[a5390f91] \u001b[39m\u001b[92m+ ZipFile v0.10.1\u001b[39m\n \u001b[90m[1d5cc7b8] \u001b[39m\u001b[92m+ IntelOpenMP_jll v2024.2.1+0\u001b[39m\n \u001b[90m[94ce4f54] \u001b[39m\u001b[92m+ Libiconv_jll v1.18.0+0\u001b[39m\n \u001b[90m[856f044c] \u001b[39m\u001b[92m+ MKL_jll v2024.2.0+0\u001b[39m\n \u001b[90m[efe28fd5] \u001b[39m\u001b[92m+ OpenSpecFun_jll v0.5.6+0\u001b[39m\n \u001b[90m[02c8fc9c] \u001b[39m\u001b[92m+ XML2_jll v2.13.5+0\u001b[39m\n \u001b[90m[1317d2d5] \u001b[39m\u001b[92m+ oneTBB_jll v2021.12.0+0\u001b[39m\n \u001b[90m[0dad84c5] \u001b[39m\u001b[92m+ ArgTools v1.1.1\u001b[39m\n \u001b[90m[56f22d72] \u001b[39m\u001b[92m+ Artifacts\u001b[39m\n \u001b[90m[2a0f44e3] \u001b[39m\u001b[92m+ Base64\u001b[39m\n \u001b[90m[ade2ca70] \u001b[39m\u001b[92m+ Dates\u001b[39m\n \u001b[90m[8ba89e20] \u001b[39m\u001b[92m+ Distributed\u001b[39m\n \u001b[90m[f43a241f] \u001b[39m\u001b[92m+ Downloads v1.6.0\u001b[39m\n \u001b[90m[7b1f6079] \u001b[39m\u001b[92m+ FileWatching\u001b[39m\n \u001b[90m[9fa8497b] \u001b[39m\u001b[92m+ Future\u001b[39m\n \u001b[90m[b77e0a4c] \u001b[39m\u001b[92m+ InteractiveUtils\u001b[39m\n \u001b[90m[4af54fe1] \u001b[39m\u001b[92m+ LazyArtifacts\u001b[39m\n \u001b[90m[b27032c2] \u001b[39m\u001b[92m+ LibCURL v0.6.4\u001b[39m\n \u001b[90m[76f85450] \u001b[39m\u001b[92m+ LibGit2\u001b[39m\n \u001b[90m[8f399da3] \u001b[39m\u001b[92m+ Libdl\u001b[39m\n \u001b[90m[37e2e46d] \u001b[39m\u001b[92m+ LinearAlgebra\u001b[39m\n \u001b[90m[56ddb016] \u001b[39m\u001b[92m+ Logging\u001b[39m\n \u001b[90m[d6f4376e] \u001b[39m\u001b[92m+ Markdown\u001b[39m\n \u001b[90m[ca575930] \u001b[39m\u001b[92m+ NetworkOptions v1.2.0\u001b[39m\n \u001b[90m[44cfe95a] \u001b[39m\u001b[92m+ Pkg v1.10.0\u001b[39m\n \u001b[90m[de0858da] \u001b[39m\u001b[92m+ Printf\u001b[39m\n \u001b[90m[3fa0cd96] \u001b[39m\u001b[92m+ REPL\u001b[39m\n \u001b[90m[9a3f8284] \u001b[39m\u001b[92m+ Random\u001b[39m\n \u001b[90m[ea8e919c] \u001b[39m\u001b[92m+ SHA v0.7.0\u001b[39m\n \u001b[90m[9e88b42a] \u001b[39m\u001b[92m+ Serialization\u001b[39m\n \u001b[90m[6462fe0b] \u001b[39m\u001b[92m+ Sockets\u001b[39m\n \u001b[90m[2f01184e] \u001b[39m\u001b[92m+ SparseArrays v1.10.0\u001b[39m\n \u001b[90m[10745b16] \u001b[39m\u001b[92m+ Statistics v1.10.0\u001b[39m\n \u001b[90m[fa267f1f] \u001b[39m\u001b[92m+ TOML v1.0.3\u001b[39m\n \u001b[90m[a4e569a6] \u001b[39m\u001b[92m+ Tar v1.10.0\u001b[39m\n \u001b[90m[8dfed614] \u001b[39m\u001b[92m+ Test\u001b[39m\n \u001b[90m[cf7118a7] \u001b[39m\u001b[92m+ UUIDs\u001b[39m\n \u001b[90m[4ec0a83e] \u001b[39m\u001b[92m+ Unicode\u001b[39m\n \u001b[90m[e66e0078] \u001b[39m\u001b[92m+ CompilerSupportLibraries_jll v1.1.1+0\u001b[39m\n \u001b[90m[deac9b47] \u001b[39m\u001b[92m+ LibCURL_jll v8.4.0+0\u001b[39m\n \u001b[90m[e37daf67] \u001b[39m\u001b[92m+ LibGit2_jll v1.6.4+0\u001b[39m\n \u001b[90m[29816b5a] \u001b[39m\u001b[92m+ LibSSH2_jll v1.11.0+1\u001b[39m\n \u001b[90m[c8ffd9c3] \u001b[39m\u001b[92m+ MbedTLS_jll v2.28.2+1\u001b[39m\n \u001b[90m[14a3606d] \u001b[39m\u001b[92m+ MozillaCACerts_jll v2023.1.10\u001b[39m\n \u001b[90m[4536629a] \u001b[39m\u001b[92m+ OpenBLAS_jll v0.3.23+4\u001b[39m\n \u001b[90m[05823500] \u001b[39m\u001b[92m+ OpenLibm_jll v0.8.1+2\u001b[39m\n \u001b[90m[bea87d4a] \u001b[39m\u001b[92m+ SuiteSparse_jll v7.2.1+1\u001b[39m\n \u001b[90m[83775a58] \u001b[39m\u001b[92m+ Zlib_jll v1.2.13+1\u001b[39m\n \u001b[90m[8e850b90] \u001b[39m\u001b[92m+ libblastrampoline_jll v5.11.0+0\u001b[39m\n \u001b[90m[8e850ede] \u001b[39m\u001b[92m+ nghttp2_jll v1.52.0+1\u001b[39m\n \u001b[90m[3f19e933] \u001b[39m\u001b[92m+ p7zip_jll v17.4.0+2\u001b[39m\n\u001b[36m\u001b[1m Info\u001b[22m\u001b[39m Packages marked with \u001b[33m⌅\u001b[39m have new versions available but compatibility constraints restrict them from upgrading. To see why use `status --outdated -m`\n\u001b[32m\u001b[1m Activating\u001b[22m\u001b[39m project at `D:\\a\\FMIExport.jl\\FMIExport.jl\\examples`","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"That is all the preperation, that was necessary. Now we can export the FMU. ","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"The following codecell contains workardound code that will need to be modified with the next release.","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"# currently export is broken, therefor we will not do it\n#saveFMU(fmu, fmu_save_path, fmu_source_path; debug=false, compress=false) # feel free to set debug true, disabled for documentation building\n#saveFMU(fmu_save_path, fmu_source_path; debug=false, compress=false) this meight be the format after the next release","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"Now we will grab the generated FMU and move it to a path, where it will be included in this documentation","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"mkpath(\"Export_files\")\n# currently export is broken, therefor we will not find anything there\n#cp(fmu_save_path, joinpath(\"Export_files\", \"BouncingBall.fmu\"))","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"\"Export_files\"","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"One current limitation of Julia-FMUs is, that they can not be imported back into Julia, as it is currently not allowed having two Julia-sys-images existing at the same time within the same process. (The Julia FMU comes bundeled with its own image).","category":"page"},{"location":"examples/fmiexport_examples/Export/","page":"Export Bouncing Ball","title":"Export Bouncing Ball","text":"Therefore we will test our generated FMU in Python unsing FMPy.","category":"page"},{"location":"deprecated/#deprecated-Functions","page":"Deprecated","title":"deprecated Functions","text":"","category":"section"},{"location":"deprecated/","page":"Deprecated","title":"Deprecated","text":"this doc page is necessary as all exported functions must be documented in the manual with documenter configured to check for missing documentation, therefor this hidden page exists","category":"page"},{"location":"deprecated/#internal-functions:-remove-export?","page":"Deprecated","title":"internal functions: remove export?","text":"","category":"section"},{"location":"deprecated/","page":"Deprecated","title":"Deprecated","text":"fmi2CallbackFunctions","category":"page"},{"location":"deprecated/#FMICore.fmi2CallbackFunctions","page":"Deprecated","title":"FMICore.fmi2CallbackFunctions","text":"Source: FMISpec2.0.2[p.19-22]: 2.1.5 Creation, Destruction and Logging of FMU Instances\n\nThe struct contains pointers to functions provided by the environment to be used by the FMU. It is not allowed to change these functions between fmi2Instantiate(..) and fmi2Terminate(..) calls. Additionally, a pointer to the environment is provided (componentEnvironment) that needs to be passed to the “logger” function, in order that the logger function can utilize data from the environment, such as mapping a valueReference to a string. In the unlikely case that fmi2Component is also needed in the logger, it has to be passed via argument componentEnvironment. Argument componentEnvironment may be a null pointer. The componentEnvironment pointer is also passed to the stepFinished(..) function in order that the environment can provide an efficient way to identify the slave that called stepFinished(..).\n\n\n\n\n\n","category":"type"},{"location":"deprecated/#deprecated","page":"Deprecated","title":"deprecated","text":"","category":"section"},{"location":"deprecated/","page":"Deprecated","title":"Deprecated","text":"Mostly wrappers that are not supposed to be used (call specific wrapped functions instead)","category":"page"},{"location":"deprecated/","page":"Deprecated","title":"Deprecated","text":"all gone since 0.14.0 (nice)","category":"page"},{"location":"deprecated/","page":"Deprecated","title":"Deprecated","text":"","category":"page"},{"location":"examples/multithreading/#Multithreading","page":"Multithreading","title":"Multithreading","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"Tutorial by Jonas Wilfert, Tobias Thummerer","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/multithreading/#License","page":"Multithreading","title":"License","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar, Jonas Wilfert\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/multithreading/#Motivation","page":"Multithreading","title":"Motivation","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"This Julia Package FMI.jl is motivated by the use of simulation models in Julia. Here the FMI specification is implemented. FMI (Functional Mock-up Interface) is a free standard (fmi-standard.org) that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. The user can thus use simulation models in the form of an FMU (Functional Mock-up Units). Besides loading the FMU, the user can also set values for parameters and states and simulate the FMU both as co-simulation and model exchange simulation.","category":"page"},{"location":"examples/multithreading/#Introduction-to-the-example","page":"Multithreading","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"This example shows how to parallelize the computation of an FMU in FMI.jl. We can compute a batch of FMU-evaluations in parallel with different initial settings. Parallelization can be achieved using multithreading or using multiprocessing. This example shows multithreading, check multiprocessing.ipynb for multiprocessing. Advantage of multithreading is a lower communication overhead as well as lower RAM usage. However in some cases multiprocessing can be faster as the garbage collector is not shared.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"The model used is a one-dimensional spring pendulum with friction. The object-orientated structure of the SpringFrictionPendulum1D can be seen in the following graphic.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"(Image: svg) ","category":"page"},{"location":"examples/multithreading/#Target-group","page":"Multithreading","title":"Target group","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"The example is primarily intended for users who work in the field of simulations. The example wants to show how simple it is to use FMUs in Julia.","category":"page"},{"location":"examples/multithreading/#Other-formats","page":"Multithreading","title":"Other formats","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/multithreading/#Getting-started","page":"Multithreading","title":"Getting started","text":"","category":"section"},{"location":"examples/multithreading/#Installation-prerequisites","page":"Multithreading","title":"Installation prerequisites","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":" Description Command Alternative\n1. Enter Package Manager via ] \n2. Install FMI via add FMI add \" https://github.com/ThummeTo/FMI.jl \"\n3. Install FMIZoo via add FMIZoo add \" https://github.com/ThummeTo/FMIZoo.jl \"\n4. Install FMICore via add FMICore add \" https://github.com/ThummeTo/FMICore.jl \"\n5. Install Folds via add Folds \n6. Install BenchmarkTools via add BenchmarkTools ","category":"page"},{"location":"examples/multithreading/#Code-section","page":"Multithreading","title":"Code section","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"# imports\nusing FMI\nusing FMIZoo\nusing Folds\nusing BenchmarkTools\nusing DifferentialEquations","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00f398717ce5 is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"First, check the amount of available threads:","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"Threads.nthreads()","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"1","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"If the number of available threads doesn't match your expections, you can increase the number of threads available to the Julia process like described here.","category":"page"},{"location":"examples/multithreading/#Simulation-setup","page":"Multithreading","title":"Simulation setup","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"Next, the start time and end time of the simulation are set. Here we also decide the size of the batch.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"t_start = 0.0\nt_step = 0.1\nt_stop = 10.0\ntspan = (t_start, t_stop)\ntData = collect(t_start:t_step:t_stop)\n\n# Best if batchSize is a multiple of the threads/cores\nbatchSize = Threads.nthreads()\n\n# Define an array of arrays randomly\ninput_values = collect(collect.(eachrow(rand(batchSize,2))))\n","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"1-element Vector{Vector{Float64}}:\n [0.28142814679649286, 0.8081805263090995]","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"We need to instantiate one FMU for each parallel execution, as they cannot be easily shared among different threads.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"# a single FMU to compare the performance\nrealFMU = loadFMU(\"SpringPendulum1D\", \"Dymola\", \"2022x\")\n\n# the FMU batch\nrealFMUBatch = [loadFMU(\"SpringPendulum1D\", \"Dymola\", \"2022x\") for _ in 1:batchSize]","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"1-element Vector{FMU2}:\n Model name:\tSpringPendulum1D\nType:\t\t1","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"We define a helper function to calculate the FMU solution and combine it into an Matrix.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"function runCalcFormatted(fmu::FMU2, x0::Vector{Float64}, recordValues::Vector{String}=[\"mass.s\", \"mass.v\"])\n data = simulateME(fmu, tspan; recordValues=recordValues, saveat=tData, x0=x0, showProgress=false, dtmax=1e-4)\n return reduce(hcat, data.states.u)\nend","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"runCalcFormatted (generic function with 2 methods)","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"Running a single evaluation is pretty quick, therefore the speed can be better tested with BenchmarkTools.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"@benchmark data = runCalcFormatted(realFMU, rand(2))","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"BenchmarkTools.Trial: 2 samples with 1 evaluation per sample.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m3.083 s\u001b[22m\u001b[39m … \u001b[35m 3.096 s\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.35% … 0.75%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m3.090 s \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.55%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m3.090 s\u001b[22m\u001b[39m ± \u001b[32m9.213 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m0.55% ± 0.28%\n\n \u001b[34m█\u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m█\u001b[39m \u001b[39m \n \u001b[34m█\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[32m▁\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m█\u001b[39m \u001b[39m▁\n 3.08 s\u001b[90m Histogram: frequency by time\u001b[39m 3.1 s \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m300.75 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m7602420\u001b[39m.","category":"page"},{"location":"examples/multithreading/#Single-Threaded-Batch-Execution","page":"Multithreading","title":"Single Threaded Batch Execution","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"To compute a batch we can collect multiple evaluations. In a single threaded context we can use the same FMU for every call.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"println(\"Single Threaded\")\n@benchmark collect(runCalcFormatted(realFMU, i) for i in input_values)","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"Single Threaded\n\n\n\n\n\nBenchmarkTools.Trial: 2 samples with 1 evaluation per sample.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m3.075 s\u001b[22m\u001b[39m … \u001b[35m 3.117 s\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.43% … 0.36%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m3.096 s \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.39%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m3.096 s\u001b[22m\u001b[39m ± \u001b[32m29.520 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m0.39% ± 0.05%\n\n \u001b[34m█\u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m█\u001b[39m \u001b[39m \n \u001b[34m█\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[32m▁\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m█\u001b[39m \u001b[39m▁\n 3.08 s\u001b[90m Histogram: frequency by time\u001b[39m 3.12 s \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m300.75 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m7602423\u001b[39m.","category":"page"},{"location":"examples/multithreading/#Multithreaded-Batch-Execution","page":"Multithreading","title":"Multithreaded Batch Execution","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"In a multithreaded context we have to provide each thread it's own fmu, as they are not thread safe. To spread the execution of a function to multiple threads, the library Folds can be used.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"println(\"Multi Threaded\")\n@benchmark Folds.collect(runCalcFormatted(fmu, i) for (fmu, i) in zip(realFMUBatch, input_values))","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"Multi Threaded\n\n\n\n\n\nBenchmarkTools.Trial: 2 samples with 1 evaluation per sample.\n Range \u001b[90m(\u001b[39m\u001b[36m\u001b[1mmin\u001b[22m\u001b[39m … \u001b[35mmax\u001b[39m\u001b[90m): \u001b[39m\u001b[36m\u001b[1m3.063 s\u001b[22m\u001b[39m … \u001b[35m 3.072 s\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmin … max\u001b[90m): \u001b[39m0.44% … 0.36%\n Time \u001b[90m(\u001b[39m\u001b[34m\u001b[1mmedian\u001b[22m\u001b[39m\u001b[90m): \u001b[39m\u001b[34m\u001b[1m3.067 s \u001b[22m\u001b[39m\u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmedian\u001b[90m): \u001b[39m0.40%\n Time \u001b[90m(\u001b[39m\u001b[32m\u001b[1mmean\u001b[22m\u001b[39m ± \u001b[32mσ\u001b[39m\u001b[90m): \u001b[39m\u001b[32m\u001b[1m3.067 s\u001b[22m\u001b[39m ± \u001b[32m5.954 ms\u001b[39m \u001b[90m┊\u001b[39m GC \u001b[90m(\u001b[39mmean ± σ\u001b[90m): \u001b[39m0.40% ± 0.06%\n\n \u001b[34m█\u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[32m \u001b[39m\u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m \u001b[39m█\u001b[39m \u001b[39m \n \u001b[34m█\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[32m▁\u001b[39m\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m▁\u001b[39m█\u001b[39m \u001b[39m▁\n 3.06 s\u001b[90m Histogram: frequency by time\u001b[39m 3.07 s \u001b[0m\u001b[1m<\u001b[22m\n\n Memory estimate\u001b[90m: \u001b[39m\u001b[33m300.75 MiB\u001b[39m, allocs estimate\u001b[90m: \u001b[39m\u001b[33m7602438\u001b[39m.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"As you can see, there is a significant speed-up in the median execution time. But: The speed-up is often much smaller than Threads.nthreads(), this has different reasons. For a rule of thumb, the speed-up should be around n/2 on a n-core-processor with n threads for the Julia process.","category":"page"},{"location":"examples/multithreading/#Unload-FMU","page":"Multithreading","title":"Unload FMU","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"After calculating the data, the FMU is unloaded and all unpacked data on disc is removed.","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"unloadFMU(realFMU)\nunloadFMU.(realFMUBatch)","category":"page"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"1-element Vector{Nothing}:\n nothing","category":"page"},{"location":"examples/multithreading/#Summary","page":"Multithreading","title":"Summary","text":"","category":"section"},{"location":"examples/multithreading/","page":"Multithreading","title":"Multithreading","text":"In this tutorial it is shown how multi threading with Folds.jl can be used to improve the performance for calculating a Batch of FMUs.","category":"page"},{"location":"fmi2_lowlevel_library_constants/#FMI2-Types-in-FMI-Import/Core-.jl","page":"FMI2 Types in FMI Import/Core .jl","title":"FMI2 Types in FMI Import/Core .jl","text":"","category":"section"},{"location":"fmi2_lowlevel_library_constants/","page":"FMI2 Types in FMI Import/Core .jl","title":"FMI2 Types in FMI Import/Core .jl","text":"FMU2\nFMU2Component\nFMU2ComponentEnvironment\nFMI2Struct\nfmi2Initial\nfmi2ScalarVariable\nfmi2SimpleType\nfmi2Type\nfmi2BaseUnit\nfmi2Unit\nfmi2DisplayUnit\nfmi2Char\nfmi2Variability\nfmi2VariableDependency\nfmi2DependencyKind\nfmi2EventInfo\nfmi2Status\nfmi2Annotation\nfmi2ModelDescription\nfmi2FMUstate\nfmi2StatusKind\nfmi2VariableNamingConvention\nfmi2Causality\nfmi2ComponentState","category":"page"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.FMU2","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.FMU2","text":"The mutable struct representing a FMU (and a container for all its instances) in the FMI 2.0.2 Standard. Also contains the paths to the FMU and ZIP folder as well als all the FMI 2.0.2 function pointers.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.FMU2Component","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.FMU2Component","text":"The mutable struct represents an allocated instance of an FMU in the FMI 2.0.2 Standard.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.FMU2ComponentEnvironment","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.FMU2ComponentEnvironment","text":"Source: FMISpec 2.0.3 [p.16f]\n\nThis is a pointer to a data structure in the simulation environment that calls the FMU. Using this pointer, data from the modelDescription.xml file [(for example, mapping of valueReferences to variable names)] can be transferred between the simulation environment and the logger function (see [FMISpec 2.0.3] section 2.1.5).\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.FMI2Struct","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.FMI2Struct","text":"FMI2Struct\n\nA wildcard for FMI2 related structs, namely Union{FMU2, fmi2ModelDescription, FMU2Component}.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Initial","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Initial","text":"Source: FMISpec2.0.2[p.48]: 2.2.7 Definition of Model Variables (ModelVariables)\n\nEnumeration that defines how the variable is initialized. It is not allowed to provide a value for initial if causality = \"input\" or \"independent\":\n\n\"exact\": The variable is initialized with the start value (provided under Real, Integer, Boolean, String or Enumeration). \"approx\": The variable is an iteration variable of an algebraic loop and the iteration at initialization starts with the start value. \"calculated\": The variable is calculated from other variables during initialization. It is not allowed to provide a “start” value. If initial is not present, it is defined by the table below based on causality and variability. If initial = exact or approx, or causality = ″input″, a start value must be provided. If initial = calculated, or causality = ″independent″, it is not allowed to provide a start value. If fmiSetXXX is not called on a variable with causality = ″input″, then the FMU must use the start value as value of this input. Added prefix \"fmi2\" to help with redefinition of constans in enums.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2ScalarVariable","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2ScalarVariable","text":"Source: FMISpec2.0.2[p.46]: 2.2.7 Definition of Model Variables (ModelVariables)\n\nThe fmi2ScalarVariable specifies the type and argument of every exposed variable in the fmu\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2SimpleType","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2SimpleType","text":"Source: FMISpec2.0.3[p.40]: 2.2.3 Definition of Types (TypeDefinitions)\n\nThe fmi2SimpleType describes the attributes of a type definition.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Type","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Type","text":"Source: FMISpec2.0.2[p.19]: 2.1.5 Creation, Destruction and Logging of FMU Instances\n\nArgument fmuType defines the type of the FMU:\n\nfmi2ModelExchange: FMU with initialization and events; between events simulation of continuous systems is performed with external integrators from the environment.\nfmi2CoSimulation: Black box interface for co-simulation.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2BaseUnit","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2BaseUnit","text":"Source: FMISpec2.0.3[p.35]: 2.2.2 Definition of Units (UnitDefinitions)\n\nfmi2BaseUnit(\n kg=0, m=0, s=0, A=0, K=0, mol=0, cd=0, rad=0, factor=1.0, offset=0.0)\n\nType for the optional “BaseUnit” field of an fmi2Unit.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Unit","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Unit","text":"Source: FMISpec2.0.3[p.35]: 2.2.2 Definition of Units (UnitDefinitions)\n\nElement “UnitDefinitions ” of fmiModelDescription.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2DisplayUnit","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2DisplayUnit","text":"Source: FMISpec2.0.3[p.35]: 2.2.2 Definition of Units (UnitDefinitions)\n\nfmi2DisplayUnit(name, factor=1.0, offset=0.0)\n\nType for the optional “DisplayUnit” field(s) of an fmi2Unit.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Char","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Char","text":"Source: FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\n\nFMI2 Data Types To simplify porting, no C types are used in the function interfaces, but the alias types are defined in this section. All definitions in this section are provided in the header file “fmi2TypesPlatform.h”.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Variability","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Variability","text":"Source: FMISpec2.0.2[p.49]: 2.2.7 Definition of Model Variables (ModelVariables)\n\nEnumeration that defines the time dependency of the variable, in other words, it defines the time instants when a variable can change its value.\n\n\"constant\": The value of the variable never changes. \"fixed\": The value of the variable is fixed after initialization, in other words, after fmi2ExitInitializationMode was called the variable value does not change anymore. \"tunable\": The value of the variable is constant between external events (ModelExchange) and between Communication Points (Co-Simulation) due to changing variables with causality = \"parameter\" or \"input\" and variability = \"tunable\". Whenever a parameter or input signal with variability = \"tunable\" changes, an event is triggered externally (ModelExchange), or the change is performed at the next Communication Point (Co-Simulation) and the variables with variability = \"tunable\" and causality = \"calculatedParameter\" or \"output\" must be newly computed. \"discrete\": ModelExchange: The value of the variable is constant between external and internal events (= time, state, step events defined implicitly in the FMU). Co-Simulation: By convention, the variable is from a “real” sampled data system and its value is only changed at Communication Points (also inside the slave). \"continuous\": Only a variable of type = “Real” can be “continuous”. ModelExchange: No restrictions on value changes. Co-Simulation: By convention, the variable is from a differential The default is “continuous”. Added prefix \"fmi2\" to help with redefinition of constans in enums.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2VariableDependency","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2VariableDependency","text":"Mutable Struct representing existance and kind of dependencies of an Unknown on Known Variables in Continuous-Time and Event Mode (ME) and at Communication Points (CS)\n\nSee also FMI2.0.3 Spec fmi2VariableDependency [p.60]\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2DependencyKind","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2DependencyKind","text":"Types of dependency:\n\nfmi2DependencyKindDependent: no particular structure, f(v)\nfmi2DependencyKindConstant: constant factor, c*v (for Real valued variables only)\nfmi2DependencyKindFixed: tunable factor, p*v (for Real valued variables only)\nfmi2DependencyKindTunable [ToDo]\nfmi2DependencyKindDiscrete [ToDo]\n\nSource: FMI2.0.3 Spec for fmi2VariableDependency [p.60] \n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2EventInfo","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2EventInfo","text":"Source: FMISpec2.0.2[p.84]: 3.2.2 Evaluation of Model Equations\n\nIf return argument fmi2eventInfo.newDiscreteStatesNeeded = fmi2True, the FMU should stay in Event Mode, and the FMU requires to set new inputs to the FMU (fmi2SetXXX on inputs) to compute and get the outputs (fmi2GetXXX on outputs) and to call fmi2NewDiscreteStates again. Depending on the connection with other FMUs, the environment shall\n\ncall fmi2Terminate, if terminateSimulation = fmi2True is returned by at least one FMU.\ncall fmi2EnterContinuousTimeMode if all FMUs return newDiscreteStatesNeeded = fmi2False.\nstay in Event Mode otherwise.\n\nWhen the FMU is terminated, it is assumed that an appropriate message is printed by the logger function (see section 2.1.5) to explain the reason for the termination. If nominalsOfContinuousStatesChanged = fmi2True, then the nominal values of the states have changed due to the function call and can be inquired with fmi2GetNominalsOfContinuousStates. If valuesOfContinuousStatesChanged = fmi2True. then at least one element of the continuous state vector has changed its value due to the function call. The new values of the states can be retrieved with fmi2GetContinuousStates or individually for each state for which reinit = \"true\" by calling getReal. If no element of the continuous state vector has changed its value, valuesOfContinuousStatesChanged must return fmi2False. [If fmi2True would be returned in this case, an infinite event loop may occur.] If nextEventTimeDefined = fmi2True, then the simulation shall integrate at most until time = nextEventTime, and shall call fmi2EnterEventMode at this time instant. If integration is stopped before nextEventTime, for example, due to a state event, the definition of nextEventTime becomes obsolete.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Status","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Status","text":"Source: FMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nStatus returned by functions. The status has the following meaning:\n\nfmi2OK – all well\nfmi2Warning – things are not quite right, but the computation can continue. Function “logger” was called in the model (see below), and it is expected that this function has shown the prepared information message to the user.\nfmi2Discard – this return status is only possible if explicitly defined for the corresponding function\n\n(ModelExchange: fmi2SetReal, fmi2SetInteger, fmi2SetBoolean, fmi2SetString, fmi2SetContinuousStates, fmi2GetReal, fmi2GetDerivatives, fmi2GetContinuousStates, fmi2GetEventIndicators; CoSimulation: fmi2SetReal, fmi2SetInteger, fmi2SetBoolean, fmi2SetString, fmi2DoStep, fmiGetXXXStatus): For “model exchange”: It is recommended to perform a smaller step size and evaluate the model equations again, for example because an iterative solver in the model did not converge or because a function is outside of its domain (for example sqrt()). If this is not possible, the simulation has to be terminated. For “co-simulation”: fmi2Discard is returned also if the slave is not able to return the required status information. The master has to decide if the simulation run can be continued. In both cases, function “logger” was called in the FMU (see below) and it is expected that this function has shown the prepared information message to the user if the FMU was called in debug mode (loggingOn = fmi2True). Otherwise, “logger” should not show a message.\n\nfmi2Error – the FMU encountered an error. The simulation cannot be continued with this FMU instance. If one of the functions returns fmi2Error, it can be tried to restart the simulation from a formerly stored FMU state by calling fmi2SetFMUstate.\n\nThis can be done if the capability flag canGetAndSetFMUstate is true and fmi2GetFMUstate was called before in non-erroneous state. If not, the simulation cannot be continued and fmi2FreeInstance or fmi2Reset must be called afterwards.4 Further processing is possible after this call; especially other FMU instances are not affected. Function “logger” was called in the FMU (see below), and it is expected that this function has shown the prepared information message to the user.\n\nfmi2Fatal – the model computations are irreparably corrupted for all FMU instances. [For example, due to a run-time exception such as access violation or integer division by zero during the execution of an fmi function]. Function “logger” was called in the FMU (see below), and it is expected that this function has shown the prepared information message to the user. It is not possible to call any other function for any of the FMU instances.\nfmi2Pending – this status is returned only from the co-simulation interface, if the slave executes the function in an asynchronous way. That means the slave starts to compute but returns immediately. The master has to call fmi2GetStatus(..., fmi2DoStepStatus) to determine if the slave has finished the computation. Can be returned only by fmi2DoStep and by fmi2GetStatus (see section 4.2.3).\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Annotation","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Annotation","text":"A not further specified annotation struct.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2ModelDescription","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2ModelDescription","text":"Source: FMISpec2.0.2[p.34]: 2.2.1 Definition of an FMU (fmiModelDescription)\n\nThe “ModelVariables” element of fmiModelDescription is the central part of the model description. It provides the static information of all exposed variables.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2FMUstate","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2FMUstate","text":"fmi2FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant. This allows to restart a simulation from a previous FMU state.\n\nSource: FMI2.0.3 Spec [p.17]; See also section 2.1.8\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2StatusKind","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2StatusKind","text":"Source: FMISpec2.0.2[p.106]: 4.2.3 Retrieving Status Information from the Slave\n\nCoSimulation specific Enum representing state of FMU after fmi2DoStep returned fmi2Pending.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2VariableNamingConvention","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2VariableNamingConvention","text":"ToDo \n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2Causality","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2Causality","text":"Source: FMISpec2.0.2[p.48]: 2.2.7 Definition of Model Variables (ModelVariables)\n\nEnumeration that defines the causality of the variable. Allowed values of this enumeration:\n\n\"parameter\": Independent parameter (a data value that is constant during the simulation and is provided by the environment and cannot be used in connections). variability must be \"fixed\" or \"tunable\". initial must be exact or not present (meaning exact). \"calculatedParameter\": A data value that is constant during the simulation and is computed during initialization or when tunable parameters change. variability must be \"fixed\" or \"tunable\". initial must be \"approx\", \"calculated\" or not present (meaning calculated). \"input\": The variable value can be provided from another model or slave. It is not allowed to define initial. \"output\": The variable value can be used by another model or slave. The algebraic relationship to the inputs is defined via the dependencies attribute of . \"local\": Local variable that is calculated from other variables or is a continuous-time state (see section 2.2.8). It is not allowed to use the variable value in another model or slave. \"independent\": The independent variable (usually “time”). All variables are a function of this independent variable. variability must be \"continuous\". At most one ScalarVariable of an FMU can be defined as \"independent\". If no variable is defined as \"independent\", it is implicitly present with name = \"time\" and unit = \"s\". If one variable is defined as \"independent\", it must be defined as \"Real\" without a \"start\" attribute. It is not allowed to call function fmi2SetReal on an \"independent\" variable. Instead, its value is initialized with fmi2SetupExperiment and after initialization set by fmi2SetTime for ModelExchange and by arguments currentCommunicationPoint and communicationStepSize of fmi2DoStep for CoSimulation. [The actual value can be inquired with fmi2GetReal.] The default of causality is “local”. A continuous-time state must have causality = \"local\" or \"output\", see also section 2.2.8. [causality = \"calculatedParameter\" and causality = \"local\" with variability = \"fixed\" or \"tunable\" are similar. The difference is that a calculatedParameter can be used in another model or slave, whereas a local variable cannot. For example, when importing an FMU in a Modelica environment, a \"calculatedParameter\" should be imported in a public section as final parameter, whereas a \"local\" variable should be imported in a protected section of the model.] Added prefix \"fmi2\" to help with redefinition of constans in enums.\n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentState","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentState","text":"ToDo \n\n\n\n\n\n","category":"type"},{"location":"fmi2_lowlevel_library_constants/","page":"FMI2 Types in FMI Import/Core .jl","title":"FMI2 Types in FMI Import/Core .jl","text":"fmi2StructMD FMU2Solution FMIImport.fmi2ValueReferenceFormat FMU2Event FMU2ExecutionConfiguration","category":"page"},{"location":"fmi2_lowlevel_library_constants/#FMI2-Constants-in-FMI-Import/Core-.jl","page":"FMI2 Types in FMI Import/Core .jl","title":"FMI2 Constants in FMI Import/Core .jl","text":"","category":"section"},{"location":"fmi2_lowlevel_library_constants/","page":"FMI2 Types in FMI Import/Core .jl","title":"FMI2 Types in FMI Import/Core .jl","text":"fmi2True\nfmi2ComponentStateInstantiated\nfmi2ComponentStateInitializationMode\nfmi2ComponentStateEventMode\nfmi2ComponentStateContinuousTimeMode\nfmi2ComponentStateTerminated\nfmi2ComponentStateError\nfmi2ComponentStateFatal","category":"page"},{"location":"fmi2_lowlevel_library_constants/#FMICore.fmi2True","page":"FMI2 Types in FMI Import/Core .jl","title":"FMICore.fmi2True","text":"Source: FMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\n\nTo simplify porting, no C types are used in the function interfaces, but the alias types are defined in this section. All definitions in this section are provided in the header file “fmi2TypesPlatform.h”.\n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentStateInstantiated","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentStateInstantiated","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentStateInitializationMode","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentStateInitializationMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentStateEventMode","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentStateEventMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentStateContinuousTimeMode","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentStateContinuousTimeMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentStateTerminated","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentStateTerminated","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentStateError","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentStateError","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/#FMIBase.fmi2ComponentStateFatal","page":"FMI2 Types in FMI Import/Core .jl","title":"FMIBase.fmi2ComponentStateFatal","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi2_lowlevel_library_constants/","page":"FMI2 Types in FMI Import/Core .jl","title":"FMI2 Types in FMI Import/Core .jl","text":"fmi2False fmi2StatusOK fmi2StatusWarning fmi2StatusPending fmi2StatusError fmi2StatusDiscard fmi2StatusFatal","category":"page"},{"location":"fmi2_lowlevel_ME_functions/#FMI-for-Model-Exchange","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"","category":"section"},{"location":"fmi2_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"This chapter contains the interface description to access the equations of a dynamic system from a C program.","category":"page"},{"location":"fmi2_lowlevel_ME_functions/#Providing-Independent-Variables-and-Re-initialization-of-Caching","page":"FMI for Model Exchange","title":"Providing Independent Variables and Re-initialization of Caching","text":"","category":"section"},{"location":"fmi2_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"Depending on the situation, different variables need to be computed. In order to be efficient, it is important that the interface requires only the computation of variables that are needed in the present context. The state derivatives shall be reused from the previous call. This feature is called “caching of variables” in the sequel. Caching requires that the model evaluation can detect when the input arguments, like time or states, have changed.","category":"page"},{"location":"fmi2_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"fmi2SetTime\nfmi2SetContinuousStates","category":"page"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2SetTime","page":"FMI for Model Exchange","title":"FMICore.fmi2SetTime","text":"Source: FMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching\n\nSet a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).\n\n\n\n\n\nfmi2SetTime(c::FMU2Component, \n time::fmi2Real; \n soft::Bool=false,\n track::Bool=true,\n force::Bool=c.fmu.executionConfig.force,\n time_shift::Bool=c.fmu.executionConfig.autoTimeShift)\n\nSet a new time instant and re-initialize caching of variables that depend on time, provided the newly provided time value is different to the previously set time value (variables that depend solely on constants or parameters need not to be newly computed in the sequel, but the previously computed values can be reused).\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ntime::fmi2Real: Argument time contains a value of type fmi2Real which is a alias type for Real data type. time sets the independent variable time t.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.\n\n-track::Bool=true: If the Keyword track = true\n\ntime_shift::Bool=c.fmu.executionConfig.autoTimeShift:\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching\n\nSee also fmi2SetTime.\n\n\n\n\n\nfmiSetTime(c::FMU2Component, t::Real)\n\nSet a new time instant and re-initialize caching of variables that depend on time.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nt::Real: Argument t contains a value of type Real. t sets the independent variable time t.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching\n\nSee also fmi2SetTime\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2SetContinuousStates","page":"FMI for Model Exchange","title":"FMICore.fmi2SetContinuousStates","text":"Source: FMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching\n\nSet a new (continuous) state vector and re-initialize caching of variables that depend on the states. Argument nx is the length of vector x and is provided for checking purposes\n\n\n\n\n\nfmiSetContinuousStates(c::FMU2Component,\n x::Union{AbstractArray{Float32},AbstractArray{Float64}})\n\nSet a new (continuous) state vector and reinitialize chaching of variables that depend on states.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nx::Union{AbstractArray{Float32},AbstractArray{Float64}}:Argument x is the AbstractArray of the vector values of Float64 or Float32.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.1 Providing Independent Variables and Re-initialization of Caching\n\nSee also fmi2SetContinuousStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#Evaluation-of-Model-Equations","page":"FMI for Model Exchange","title":"Evaluation of Model Equations","text":"","category":"section"},{"location":"fmi2_lowlevel_ME_functions/","page":"FMI for Model Exchange","title":"FMI for Model Exchange","text":"fmi2EnterEventMode\nfmi2NewDiscreteStates\nfmi2NewDiscreteStates!\nfmi2EnterContinuousTimeMode\nfmi2CompletedIntegratorStep\nfmi2CompletedIntegratorStep!\nfmi2GetDerivatives\nfmi2GetDerivatives!\nfmi2GetEventIndicators\nfmi2GetEventIndicators!\nfmi2GetContinuousStates\nfmi2GetContinuousStates!\nfmi2GetNominalsOfContinuousStates\nfmi2GetNominalsOfContinuousStates!","category":"page"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2EnterEventMode","page":"FMI for Model Exchange","title":"FMICore.fmi2EnterEventMode","text":"Source: FMISpec2.0.2[p.84]: 3.2.2 Evaluation of Model Equations\n\nThe model enters Event Mode from the Continuous-Time Mode and discrete-time equations may become active (and relations are not “frozen”).\n\n\n\n\n\nfmi2EnterEventMode(c::FMU2Component; soft::Bool=false)\n\nThe model enters Event Mode from the Continuous-Time Mode and discrete-time equations may become active (and relations are not “frozen”).\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2EnterEventMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMIImport.fmi2NewDiscreteStates","page":"FMI for Model Exchange","title":"FMIImport.fmi2NewDiscreteStates","text":"fmi2NewDiscreteStates(c::FMU2Component)\n\nReturns the next discrete states\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\neventInfo::fmi2EventInfo*: Strut with fmi2Boolean Variables\n\nMore detailed:\n\nnewDiscreteStatesNeeded::fmi2Boolean: If newDiscreteStatesNeeded = fmi2True the FMU should stay in Event Mode, and the FMU requires to set new inputs to the FMU to compute and get the outputs and to call\n\nfmi2NewDiscreteStates again. If all FMUs return newDiscreteStatesNeeded = fmi2False call fmi2EnterContinuousTimeMode.\n\nterminateSimulation::fmi2Boolean: If terminateSimulation = fmi2True call fmi2Terminate\nnominalsOfContinuousStatesChanged::fmi2Boolean: If nominalsOfContinuousStatesChanged = fmi2True then the nominal values of the states have changed due to the function call and can be inquired with fmi2GetNominalsOfContinuousStates.\nvaluesOfContinuousStatesChanged::fmi2Boolean: If valuesOfContinuousStatesChanged = fmi2True, then at least one element of the continuous state vector has changed its value due to the function call. The new values of the states can be retrieved with fmi2GetContinuousStates. If no element of the continuous state vector has changed its value, valuesOfContinuousStatesChanged must return fmi2False.\nnextEventTimeDefined::fmi2Boolean: If nextEventTimeDefined = fmi2True, then the simulation shall integrate at most until time = nextEventTime, and shall call fmi2EnterEventMode at this time instant. If integration is stopped before nextEventTime, the definition of nextEventTime becomes obsolete.\nnextEventTime::fmi2Real: next event if nextEventTimeDefined=fmi2True\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2NewDiscreteStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2NewDiscreteStates!","page":"FMI for Model Exchange","title":"FMICore.fmi2NewDiscreteStates!","text":"Source: FMISpec2.0.2[p.84]: 3.2.2 Evaluation of Model Equations\n\nThe FMU is in Event Mode and the super dense time is incremented by this call.\n\n\n\n\n\nfmi2NewDiscreteStates!(c::FMU2Component, eventInfo::fmi2EventInfo)\n\nThe FMU is in Event Mode and the super dense time is incremented by this call.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\neventInfo::fmi2EventInfo*: Strut with fmi2Boolean Variables that\n\nMore detailed:\n\nnewDiscreteStatesNeeded::fmi2Boolean: If newDiscreteStatesNeeded = fmi2True the FMU should stay in Event Mode, and the FMU requires to set new inputs to the FMU to compute and get the outputs and to call\n\nfmi2NewDiscreteStates again. If all FMUs return newDiscreteStatesNeeded = fmi2False call fmi2EnterContinuousTimeMode.\n\nterminateSimulation::fmi2Boolean: If terminateSimulation = fmi2True call fmi2Terminate\nnominalsOfContinuousStatesChanged::fmi2Boolean: If nominalsOfContinuousStatesChanged = fmi2True then the nominal values of the states have changed due to the function call and can be inquired with fmi2GetNominalsOfContinuousStates.\nvaluesOfContinuousStatesChanged::fmi2Boolean: If valuesOfContinuousStatesChanged = fmi2True, then at least one element of the continuous state vector has changed its value due to the function call. The new values of the states can be retrieved with fmi2GetContinuousStates. If no element of the continuous state vector has changed its value, valuesOfContinuousStatesChanged must return fmi2False.\nnextEventTimeDefined::fmi2Boolean: If nextEventTimeDefined = fmi2True, then the simulation shall integrate at most until time = nextEventTime, and shall call fmi2EnterEventMode at this time instant. If integration is stopped before nextEventTime, the definition of nextEventTime becomes obsolete.\nnextEventTime::fmi2Real: next event if nextEventTimeDefined=fmi2True\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2NewDiscreteStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2EnterContinuousTimeMode","page":"FMI for Model Exchange","title":"FMICore.fmi2EnterContinuousTimeMode","text":"Source: FMISpec2.0.2[p.85]: 3.2.2 Evaluation of Model Equations\n\nThe model enters Continuous-Time Mode and all discrete-time equations become inactive and all relations are “frozen”. This function has to be called when changing from Event Mode (after the global event iteration in Event Mode over all involved FMUs and other models has converged) into Continuous-Time Mode.\n\n\n\n\n\nfmi2EnterContinuousTimeMode(c::FMU2Component; soft::Bool=false)\n\nThe model enters Continuous-Time Mode and all discrete-time equations become inactive and all relations are “frozen”. This function has to be called when changing from Event Mode (after the global event iteration in Event Mode over all involved FMUs and other models has converged) into Continuous-Time Mode.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2EnterContinuousTimeMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMIImport.fmi2CompletedIntegratorStep","page":"FMI for Model Exchange","title":"FMIImport.fmi2CompletedIntegratorStep","text":"fmiCompletedIntegratorStep(c::FMU2Component, noSetFMUStatePriorToCurrentPoint::fmi2Boolean)\n\nThis function must be called by the environment after every completed step\n\nArguments\n\nC::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nnoSetFMUStatePriorToCurrentPoint::fmi2Boolean: Argument noSetFMUStatePriorToCurrentPoint = fmi2True if fmi2SetFMUState will no longer be called for time instants prior to current time in this simulation run.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\nenterEventMode::Array{fmi2Boolean, 1}: Returns enterEventMode[1] to signal to the environment if the FMU shall call fmi2EnterEventMode\nterminateSimulation::Array{fmi2Boolean, 1}: Returns terminateSimulation[1] to signal if the simulation shall be terminated.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2CompletedIntegratorStep.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2CompletedIntegratorStep!","page":"FMI for Model Exchange","title":"FMICore.fmi2CompletedIntegratorStep!","text":"Source: FMISpec2.0.2[p.85]: 3.2.2 Evaluation of Model Equations\n\nThis function must be called by the environment after every completed step of the integrator provided the capability flag completedIntegratorStepNotNeeded = false. If enterEventMode == fmi2True, the event mode must be entered If terminateSimulation == fmi2True, the simulation shall be terminated\n\n\n\n\n\nfmi2CompletedIntegratorStep!(c::FMU2Component,\n noSetFMUStatePriorToCurrentPoint::fmi2Boolean,\n enterEventMode::Ptr{fmi2Boolean},\n terminateSimulation::Ptr{fmi2Boolean})\n\nThis function must be called by the environment after every completed step of the integrator provided the capability flag completedIntegratorStepNotNeeded = false.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nnoSetFMUStatePriorToCurrentPoint::fmi2Boolean: Argument noSetFMUStatePriorToCurrentPoint = fmi2True if fmi2SetFMUState will no longer be called for time instants prior to current time in this simulation run.\nenterEventMode::Ref{fmi2Boolean}: Argument enterEventMode points to the return value (fmi2Boolean) which signals to the environment if the FMU shall call fmi2EnterEventMode. fmi2Boolean is an alias type for Boolean data type.\nterminateSimulation::Ref{fmi2Boolean}: Argument terminateSimulation points to the return value (fmi2Boolean) which signals signal if the simulation shall be terminated. fmi2Boolean is an alias type for Boolean data type.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2CompletedIntegratorStep!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMIImport.fmi2GetDerivatives","page":"FMI for Model Exchange","title":"FMIImport.fmi2GetDerivatives","text":"fmi2GetDerivatives(c::FMU2Component)\n\nCompute state derivatives at the current time instant and for the current states.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nderivatives::Array{fmi2Real}: Returns an array of fmi2Real values representing the derivatives for the current states. The ordering of the elements of the derivatives vector is identical to the ordering of the state\n\nvector.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetDerivatives!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2GetDerivatives!","page":"FMI for Model Exchange","title":"FMICore.fmi2GetDerivatives!","text":"Source: FMISpec2.0.2[p.86]: 3.2.2 Evaluation of Model Equations\n\nCompute state derivatives at the current time instant and for the current states.\n\n\n\n\n\nfmi2GetDerivatives!(c::FMU2Component,\n derivatives::AbstractArray{fmi2Real},\n nx::Csize_t)\n\nCompute state derivatives at the current time instant and for the current states.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nderivatives::AbstractArray{fmi2Real}: Argument derivatives contains values of type fmi2Real which is a alias type for Real data type.derivatives is the AbstractArray which contains the Real values of the vector that represent the derivatives. The ordering of the elements of the derivatives vector is identical to the ordering of the state vector.\nnx::Csize_t: Argument nx defines the length of vector derivatives and is provided for checking purposes\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetDerivatives!.\n\n\n\n\n\nfmi2GetDerivatives!(c::FMU2Component, derivatives::AbstractArray{fmi2Real})\n\nCompute state derivatives at the current time instant and for the current states.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nderivatives::Array{fmi2Real}: Stores fmi2Real values representing the derivatives for the current states. The ordering of the elements of the derivatives vector is identical to the ordering of the state vector.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetDerivatives!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMIImport.fmi2GetEventIndicators","page":"FMI for Model Exchange","title":"FMIImport.fmi2GetEventIndicators","text":"fmi2GetEventIndicators(c::FMU2Component)\n\nReturns the event indicators of the FMU\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\neventIndicators::Array{fmi2Real}:The event indicators are returned as a vector represented by an array of \"fmi2Real\" values.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetEventIndicators!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2GetEventIndicators!","page":"FMI for Model Exchange","title":"FMICore.fmi2GetEventIndicators!","text":"Source: FMISpec2.0.2[p.86]: 3.2.2 Evaluation of Model Equations\n\nCompute event indicators at the current time instant and for the current states.\n\n\n\n\n\nfmi2GetEventIndicators!(c::FMU2Component, eventIndicators::AbstractArray{fmi2Real}, ni::Csize_t)\n\nCompute event indicators at the current time instant and for the current states.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\neventIndicators::AbstractArray{fmi2Real}: Argument eventIndicators contains values of type fmi2Real which is a alias type for Real data type.eventIndicators is the AbstractArray which contains the Real values of the vector that represent the event indicators.\nni::Csize_t: Argument ni defines the length of vector eventIndicators and is provided for checking purposes\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetEventIndicators!.\n\n\n\n\n\nfmi2GetEventIndicators!(c::FMU2Component, eventIndicators::AbstractArray{fmi2Real})\n\nReturns the event indicators of the FMU.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\neventIndicators::AbstractArray{fmi2Real}:The event indicators are in an AbstractArray represented by an array of \"fmi2Real\" values.\n\nReturns\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMIImport.fmi2GetContinuousStates","page":"FMI for Model Exchange","title":"FMIImport.fmi2GetContinuousStates","text":"fmi2GetContinuousStates(c::FMU2Component)\n\nReturn the new (continuous) state vector x\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nx::Array{fmi2Real}: Returns an array of fmi2Real values representing the new continuous state vector x.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetEventIndicators!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2GetContinuousStates!","page":"FMI for Model Exchange","title":"FMICore.fmi2GetContinuousStates!","text":"Source: FMISpec2.0.2[p.86]: 3.2.2 Evaluation of Model Equations\n\nReturn the new (continuous) state vector x.\n\n\n\n\n\nfmi2GetContinuousStates!(c::FMU2Component,\n x::AbstractArray{fmi2Real},\n nx::Csize_t)\n\nStores the new (continuous) state vector in x.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nx::AbstractArray{fmi2Real}: Argument x contains values of type fmi2Real which is a alias type for Real data type.x is the AbstractArray which contains the Real values of the vector that represent the new state vector.\nnx::Csize_t: Argument nx defines the length of vector x and is provided for checking purposes\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetEventIndicators!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMIImport.fmi2GetNominalsOfContinuousStates","page":"FMI for Model Exchange","title":"FMIImport.fmi2GetNominalsOfContinuousStates","text":"fmi2GetNominalsOfContinuousStates(c::FMU2Component)\n\nReturn the new (continuous) state vector x\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nx::Array{fmi2Real}: Returns an array of fmi2Real values representing the new continuous state vector x.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetNominalsOfContinuousStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_ME_functions/#FMICore.fmi2GetNominalsOfContinuousStates!","page":"FMI for Model Exchange","title":"FMICore.fmi2GetNominalsOfContinuousStates!","text":"Source: FMISpec2.0.2[p.86]: 3.2.2 Evaluation of Model Equations\n\nReturn the nominal values of the continuous states.\n\n\n\n\n\nfmi2GetNominalsOfContinuousStates!(c::FMU2Component, x_nominal::AbstractArray{fmi2Real}, nx::Csize_t)\n\nStores the nominal values of the continuous states in x_nominal.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nx_nominal::AbstractArray{fmi2Real}: Argument x_nominal contains values of type fmi2Real which is a alias type for Real data type.x_nominal is the AbstractArray which contains the Real values of the vector that represent the nominal values of the continuous states.\nnx::Csize_t: Argument nx defines the length of vector x and is provided for checking purposes\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.83]: 3.2.2 Evaluation of Model Equations\n\nSee also fmi2GetEventIndicators!.\n\n\n\n\n\n","category":"function"},{"location":"examples/simulate/#Simulate-an-FMU-in-different-modes","page":"Simulate","title":"Simulate an FMU in different modes","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"Tutorial by Johannes Stoljar, Tobias Thummerer","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/simulate/#License","page":"Simulate","title":"License","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/simulate/#Motivation","page":"Simulate","title":"Motivation","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"This Julia Package FMI.jl is motivated by the use of simulation models in Julia. Here the FMI specification is implemented. FMI (Functional Mock-up Interface) is a free standard (fmi-standard.org) that defines a container and an interface to exchange dynamic models using a combination of XML files, binaries and C code zipped into a single file. The user can thus use simulation models in the form of an FMU (Functional Mock-up Units). Besides loading the FMU, the user can also set values for parameters and states and simulate the FMU both as co-simulation and model exchange simulation.","category":"page"},{"location":"examples/simulate/#Introduction-to-the-example","page":"Simulate","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"In this example we want to show how fast and easy the simulation for an FMU is. For this purpose, the FMU is simulated in co-simulation mode and in model-exchange mode. After the FMU has been simulated, the simulation results are displayed in a graph. The graphs of the different modes are compared with each other. The used model is a one-dimensional spring pendulum with friction. The object-orientated structure of the SpringFrictionPendulum1D can be seen in the following graphic.","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"(Image: svg) ","category":"page"},{"location":"examples/simulate/#Target-group","page":"Simulate","title":"Target group","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"The example is primarily intended for users who work in the field of simulations. The example wants to show how simple it is to use FMUs in Julia.","category":"page"},{"location":"examples/simulate/#Other-formats","page":"Simulate","title":"Other formats","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/simulate/#Getting-started","page":"Simulate","title":"Getting started","text":"","category":"section"},{"location":"examples/simulate/#Installation-prerequisites","page":"Simulate","title":"Installation prerequisites","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":" Description Command Alternative\n1. Enter Package Manager via ] \n2. Install FMI via add FMI add \" https://github.com/ThummeTo/FMI.jl \"\n3. Install FMIZoo via add FMIZoo add \" https://github.com/ThummeTo/FMIZoo.jl \"\n4. Install Plots via add Plots ","category":"page"},{"location":"examples/simulate/#Code-section","page":"Simulate","title":"Code section","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"# imports\nusing FMI\nusing FMIZoo\nusing Plots\nusing DifferentialEquations","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-013022a8647d is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]","category":"page"},{"location":"examples/simulate/#Simulation-setup","page":"Simulate","title":"Simulation setup","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"Next, the start time and end time of the simulation are set. Finally, a step size is specified to store the results of the simulation at these time steps.","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"tStart = 0.0\ntStep = 0.01\ntStop = 8.0\ntSave = tStart:tStep:tStop","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"0.0:0.01:8.0","category":"page"},{"location":"examples/simulate/#Import-FMU","page":"Simulate","title":"Import FMU","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"In the next lines of code the FMU model from FMIZoo.jl is loaded and the information about the FMU is shown.","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"# we use an FMU from the FMIZoo.jl\npathToFMU = get_model_filename(\"SpringFrictionPendulum1D\", \"Dymola\", \"2022x\")\n\nmyFMU = loadFMU(pathToFMU)\n# loadFMU(\"path/to/myFMU.fmu\"; unpackPath = \"path/to/unpacked/fmu/\")\n\ninfo(myFMU)","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"#################### Begin information for FMU ####################\n\tModel name:\t\t\tSpringFrictionPendulum1D\n\tFMI-Version:\t\t\t2.0\n\tGUID:\t\t\t\t{2e178ad3-5e9b-48ec-a7b2-baa5669efc0c}\n\tGeneration tool:\t\tDymola Version 2022x (64-bit), 2021-10-08\n\tGeneration time:\t\t2022-05-19T06:54:12Z\n\tVar. naming conv.:\t\tstructured\n\tEvent indicators:\t\t24\n\tInputs:\t\t\t\t0\n\tOutputs:\t\t\t0\n\tStates:\t\t\t\t2\n\n\n\t\t33554432 [\"mass.s\"]\n\t\t33554433 [\"mass.v\", \"mass.v_relfric\"]\n\tParameters:\t\t\t12\n\t\t16777216 [\"fricScale\"]\n\t\t16777217 [\"s0\"]\n\t\t16777218 [\"v0\"]\n\t\t16777219 [\"fixed.s0\"]\n\t\t...\n\t\t16777223 [\"mass.smin\"]\n\t\t16777224 [\"mass.v_small\"]\n\t\t16777225 [\"mass.L\"]\n\t\t16777226 [\"mass.m\"]\n\t\t16777227 [\"mass.fexp\"]\n\tSupports Co-Simulation:\t\ttrue\n\t\tModel identifier:\tSpringFrictionPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n\t\tVar. com. steps:\ttrue\n\t\tInput interpol.:\ttrue\n\t\tMax order out. der.:\t1\n\tSupports Model-Exchange:\ttrue\n\t\tModel identifier:\tSpringFrictionPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n##################### End information for FMU #####################","category":"page"},{"location":"examples/simulate/#Simulate-FMU","page":"Simulate","title":"Simulate FMU","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"In the following, the FMU is simulated in the two different simulation modes.","category":"page"},{"location":"examples/simulate/#Simulate-as-Co-Simulation","page":"Simulate","title":"Simulate as Co-Simulation","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"In the next steps the recorded values are defined. The first state is the position of the mass and the second state is the velocity. In the function simulateCS() the FMU is simulated in co-simulation mode (CS) with an adaptive step size but with fixed save points tSave. In addition, the start and end time and the recorded variables are specified.","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"vrs = [\"mass.s\", \"mass.v\"]\n\ndataCS = simulateCS(myFMU, (tStart, tStop); recordValues=vrs, saveat=tSave)","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"Model name:\n\tSpringFrictionPendulum1D\nSuccess:\n\ttrue\nf(x)-Evaluations:\n\tIn-place: 0\n\tOut-of-place: 0\nJacobian-Evaluations:\n\t∂ẋ_∂p: 0\n\t∂ẋ_∂x: 0\n\t∂ẋ_∂u: 0\n\t∂y_∂p: 0\n\t∂y_∂x: 0\n\t∂y_∂u: 0\n\t∂e_∂p: 0\n\t∂e_∂x: 0\n\t∂e_∂u: 0\n\t∂xr_∂xl: 0\nGradient-Evaluations:\n\t∂ẋ_∂t: 0\n\t∂y_∂t: 0\n\t∂e_∂t: 0\nCallback-Evaluations:\n\tCondition (event-indicators): 0\n\tTime-Choice (event-instances): 0\n\tAffect (event-handling): 0\n\tSave values: 0\n\tSteps completed: 0\nValues [801]:\n\t0.0\t(0.5, 0.0)\n\t0.01\t(0.5002235448486548, 0.042692491939260585)\n\t0.02\t(0.5008715291319449, 0.08568000508550636)\n\t0.03\t(0.5019478597521578, 0.12892136998736314)\n\t0.04\t(0.5034570452098334, 0.17232325681284336)\n\t0.05\t(0.5053993458877354, 0.2158440857658765)\n\t0.06\t(0.5077764240578201, 0.259420181133082)\n\t0.07\t(0.5105886522837868, 0.30295578207463486)\n\t0.08\t(0.5138351439717114, 0.3464184707972189)\n\t...\n\t8.0\t(1.0713672543616686, -1.0008145180651074e-10)\nEvents [0]:","category":"page"},{"location":"examples/simulate/#Simulate-as-Model-Exchange","page":"Simulate","title":"Simulate as Model-Exchange","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"In the function simulateME() the FMU is simulated in model-exchange mode (ME) with an adaptive step size but with fixed save points tSave. In addition, the start and end time are specified. In contrast to the co-simulation, the values to be stored are not specified here, since the states and events of the FMU are always output as well. The identifiers given above just correspond to the states of the FMU.","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"dataME = simulateME(myFMU, (tStart, tStop); saveat=tSave)","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"\u001b[34mSimulating ME-FMU ... 0%|█ | ETA: N/A\u001b[39m\n\n\u001b[34mSimulating ME-FMU ... 100%|██████████████████████████████| Time: 0:00:15\u001b[39m\n\n\n\n\n\nModel name:\n\tSpringFrictionPendulum1D\nSuccess:\n\ttrue\nf(x)-Evaluations:\n\tIn-place: 687\n\tOut-of-place: 0\nJacobian-Evaluations:\n\t∂ẋ_∂p: 0\n\t∂ẋ_∂x: 0\n\t∂ẋ_∂u: 0\n\t∂y_∂p: 0\n\t∂y_∂x: 0\n\t∂y_∂u: 0\n\t∂e_∂p: 0\n\t∂e_∂x: 0\n\t∂e_∂u: 0\n\t∂xr_∂xl: 0\nGradient-Evaluations:\n\t∂ẋ_∂t: 0\n\t∂y_∂t: 0\n\t∂e_∂t: 0\nCallback-Evaluations:\n\tCondition (event-indicators): 1451\n\tTime-Choice (event-instances): 0\n\tAffect (event-handling): 6\n\tSave values: 0\n\tSteps completed: 108\nStates [801]:\n\t0.0\t[0.5, 0.0]\n\t0.01\t[0.5002131418271644, 0.042689450728413396]\n\t0.02\t[0.500854887495059, 0.08570846016824456]\n\t0.03\t[0.5019281657516875, 0.12898390148079517]\n\t0.04\t[0.5034351795370763, 0.1724439361472896]\n\t0.05\t[0.5053774247453302, 0.21601821086567022]\n\t0.06\t[0.5077556992635474, 0.25963791323182644]\n\t0.07\t[0.510570115246666, 0.30323585206399734]\n\t0.08\t[0.5138201143130435, 0.34674645493266887]\n\t...\n\t8.0\t[1.0668392065867367, -1.0000102440003257e-10]\nEvents [6]:\n\tState-Event #11 @ 2.352941176471972e-11s (state-change: false)\n\tState-Event #11 @ 0.9940420391273855s (state-change: false)\n\tState-Event #19 @ 1.9882755413329303s (state-change: false)\n\tState-Event #11 @ 2.983039300931689s (state-change: false)\n\tState-Event #19 @ 3.97882965888157s (state-change: false)\n\tState-Event #11 @ 4.976975955923361s (state-change: false)","category":"page"},{"location":"examples/simulate/#Plotting-FMU","page":"Simulate","title":"Plotting FMU","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"After the simulation is finished the results of the FMU for the co-simulation and model-exchange mode can be plotted. In the plot for the FMU it can be seen that the oscillation continues to decrease due to the effect of the friction. If you simulate long enough, the oscillation comes to a standstill in a certain time.","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"plot(dataCS)","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"(Image: svg)","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"plot(dataME)","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"(Image: svg)","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"From both graphs it can be seen that the simulation calculates exactly the same results.","category":"page"},{"location":"examples/simulate/#Unload-FMU","page":"Simulate","title":"Unload FMU","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.","category":"page"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"unloadFMU(myFMU)","category":"page"},{"location":"examples/simulate/#Summary","page":"Simulate","title":"Summary","text":"","category":"section"},{"location":"examples/simulate/","page":"Simulate","title":"Simulate","text":"Based on this tutorial it can be seen that simulating in the different mode is very easy, and it only takes a few commands to simulate the FMU. ","category":"page"},{"location":"fmi3_lowlevel_library_constants/#FMI3-Types-in-FMI-Import/Core-.jl","page":"FMI3 Types in FMI Import/Core .jl","title":"FMI3 Types in FMI Import/Core .jl","text":"","category":"section"},{"location":"fmi3_lowlevel_library_constants/","page":"FMI3 Types in FMI Import/Core .jl","title":"FMI3 Types in FMI Import/Core .jl","text":"FMU3\nFMU3Instance\nFMU3InstanceEnvironment\nFMI3Struct\nfmi3Instance\nfmi3InstanceEnvironment\nfmi3InstanceState\nfmi3FMUState\nfmi3Initial\nfmi3ValueReference\nfmi3Variable\nfmi3VariableDependency\nfmi3Binary\nfmi3SimpleType\nfmi3Type\nfmi3Unit\nfmi3Boolean\nfmi3Byte\nfmi3Char\nfmi3Float32\nfmi3Float64\nfmi3Int8\nfmi3Int16\nfmi3Int32\nfmi3Int64\nfmi3UInt8\nfmi3UInt16\nfmi3UInt32\nfmi3UInt64\nfmi3String\nfmi3Clock\nfmi3IntervalQualifier\nfmi3Variability\nfmi3DependencyKind\nfmi3Status\nfmi3Annotation\nfmi3ModelDescription\nfmi3VariableNamingConvention\nfmi3Causality","category":"page"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.FMU3","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.FMU3","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.1. Header Files and Naming of Functions\n\nThe mutable struct representing an FMU in the FMI 3.0 Standard. Also contains the paths to the FMU and ZIP folder as well als all the FMI 3.0 function pointers\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.FMU3Instance","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.FMU3Instance","text":"Source: FMISpec3.0, Version D5ef1c1:: 2.2.1. Header Files and Naming of Functions\n\nThe mutable struct represents a pointer to an FMU specific data structure that contains the information needed to process the model equations or to process the co-simulation of the model/subsystem represented by the FMU.\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.FMU3InstanceEnvironment","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.FMU3InstanceEnvironment","text":"This is a pointer to a data structure in the importer. Using this pointer, data may be transferred between the importer and callback functions the importer provides with the instantiation functions.\n\nSource: FMISpec 3.0.1 [2.2.3. Platform Dependent Definitions]\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.FMI3Struct","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.FMI3Struct","text":"FMI3Struct\n\nA wildcard for FMI3 related structs, namely Union{FMU3, fmi3ModelDescription, FMU3Instance}.\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Instance","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Instance","text":"fmi3Instance (alias for Ptr{Cvoid})\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3InstanceEnvironment","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3InstanceEnvironment","text":"fmi3InstanceEnvironment (alias for Ptr{Cvoid})\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceState","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceState","text":"ToDo \n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3FMUState","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3FMUState","text":"fmi3FMUState (alias for Ptr{Cvoid})\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Initial","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Initial","text":"Source: FMISpec3.0, Version D5ef1c1:2.4.7.5. Type specific properties Enumeration that defines how the variable is initialized, i.e. if a fmi3Set{VariableType} is allowed and how the FMU internally treats this value in Instantiated and Initialization Mode. For the variable with causality = independent, the attribute initial must not be provided, because its start value is set with the startTime parameter of fmi3EnterInitializationMode.\n\nThe attribute initial for other variables can have the following values and meanings:\n\nexact - The variable is initialized with the start value (provided under the variable type element).\n\napprox - The start value provides an approximation that may be modified during initialization, e.g., if the FMU is part of an algebraic loop where the variable might be an iteration variable and start value is taken as initial value for an iterative solution process.\n\ncalculated - The variable is calculated from other variables during initialization. It is not allowed to provide a start value.\n\nIf initial is not present, it is defined by Table 22 based on causality and variability. If initial = exact or approx, or causality = input, a start value must be provided. If initial = calculated, or causality = independent, it is not allowed to provide a start value.\n\n[The environment decides when to use the start value of a variable with causality = input. Examples: * Automatic tests of FMUs are performed, and the FMU is tested by providing the start value as constant input. * For a Model Exchange FMU, the FMU might be part of an algebraic loop. If the input variable is iteration variable of this algebraic loop, then initialization starts with its start value.]\n\nIf fmi3Set{VariableType} is not called on a variable with causality = input, then the FMU must use the start value as value of this input.\n\nAdded prefix \"fmi3\" to help with redefinition of constans in enums.\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3ValueReference","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3ValueReference","text":"fmi3ValueReference (alias for Cuint)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Variable","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Variable","text":"Source: FMISpec3.0, Version D5ef1c1: 2.4.7. Definition of Model Variables\n\nA fmi3Variable describes the the type, name, valueRefence and optional information for every variable in the Modeldescription.\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3VariableDependency","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3VariableDependency","text":"Mutable Struct representing existance and kind of dependencies of an Unknown on Known Variables.\n\nSee also FMI3.0.1 Spec [fig 30]\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Binary","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Binary","text":"fmi3Binary (alias for Ptr{fmi3Byte})\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3SimpleType","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3SimpleType","text":"ToDo: Not implemented\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Type","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Type","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.1. Super State: FMU State Setable\n\nArgument fmuType defines the type of the FMU:\n\nfmi3ModelExchange: FMU with initialization and events; between events simulation of continuous systems is performed with external integrators from the environment.\nfmi3CoSimulation: Black box interface for co-simulation.\nfmi3ScheduledExecution: Concurrent computation of model partitions on a single computational resource (e.g. CPU-core)\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Unit","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Unit","text":"ToDo: Not implemented\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Boolean","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Boolean","text":"fmi3Boolean (alias for Cuchar)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Byte","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Byte","text":"fmi3Byte (alias for Cuchar)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Char","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Char","text":"fmi3Char (alias for Cuchar)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Float32","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Float32","text":"fmi3Float32 (alias for Cfloat)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Float64","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Float64","text":"fmi3Float64 (alias for Cdouble)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Int8","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Int8","text":"fmi3Int8 (alias for Cchar)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Int16","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Int16","text":"fmi3Int16 (alias for Cshort)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Int32","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Int32","text":"fmi3Int32 (alias for Cint)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Int64","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Int64","text":"fmi3Int64 (alias for Clonglong)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3UInt8","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3UInt8","text":"fmi3UInt8 (alias for Cuchar)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3UInt16","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3UInt16","text":"fmi3UInt16 (alias for Cushort)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3UInt32","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3UInt32","text":"fmi3UInt32 (alias for Cuint)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3UInt64","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3UInt64","text":"fmi3UInt64 (alias for Culonglong)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3String","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3String","text":"fmi3String (alias for Ptr{fmi3Char})\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Clock","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Clock","text":"fmi3Clock (alias for Cint)\n\nSource: FMISpec3.0-dev, Version D5ef1c1:2.2.2. Platform Dependent Definitions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3IntervalQualifier","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3IntervalQualifier","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.9.4. Scheduled Execution Enumeration that defines the IntervalQualifiers which describe how to treat the intervals and intervalCounters arguments. They have the following meaning: fmi3IntervalNotYetKnown - is returned for a countdown aperiodic Clock for which the next interval is not yet known. This qualifier value can only be returned directly after the Clock was active and previous calls to fmi3GetInterval never returned fmi3IntervalChanged (nor fmi3IntervalUnchanged). In Scheduled Execution this return value means that the corresponding model partition cannot be scheduled yet.\n\nfmi3IntervalUnchanged - is returned if a previous call to fmi3GetInterval already returned a value qualified with fmi3IntervalChanged which has not changed since. In Scheduled Execution this means the corresponding model partition has already been scheduled.\n\nfmi3IntervalChanged - is returned to indicate that the value for the interval has changed for this Clock. Any previously returned intervals (if any) are overwritten with the current value. The new Clock interval is relative to the time of the current Event Mode or Clock Update Mode in contrast to the interval of a periodic Clock, where the interval is defined as the time between consecutive Clock ticks. In Scheduled Execution this means that the corresponding model partition has to be scheduled or re-scheduled (if a previous call to fmi3GetInterval returned fmi3IntervalChanged).\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Variability","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Variability","text":"Source: FMISpec3.0, Version D5ef1c1: 2.4.7.4. Variable Attributes Enumeration that defines the time dependency of the variable, in other words, it defines the time instants when a variable can change its value. [The purpose of this attribute is to define when a result value needs to be inquired and to be stored. For example, discrete variables change their values only at event instants (ME) or at a communication point (CS and SE) and it is therefore only necessary to inquire them with fmi3Get{VariableType} and store them at event times.] Allowed values of this enumeration: constant - The value of the variable never changes.\n\nfixed - The value of the variable is fixed after initialization, in other words, after fmi3ExitInitializationMode was called the variable value does not change anymore.\n\ntunable - The value of the variable is constant between events (ME) and between communication points (CS and SE) due to changing variables with causality = parameter and variability = tunable. Whenever a parameter with variability = tunable changes, an event is triggered externally (ME or CS if events are supported), or the change is performed at the next communication point (CS and SE) and the variables with variability = tunable and causality = calculatedParameter or output must be newly computed. [tunable inputs are not allowed, see Table 18.]\n\ndiscrete - Model Exchange: The value of the variable is constant between external and internal events (= time, state, step events defined implicitly in the FMU). Co-Simulation: By convention, the variable is from a real sampled data system and its value is only changed at communication points (including event handling). During intermediateUpdate, discrete variables are not allowed to change. [If the simulation algorithm notices a change in a discrete variable during intermediateUpdate, the simulation algorithm will delay the change, raise an event with earlyReturnRequested == fmi3True and during the communication point it can change the discrete variable, followed by event handling.]\n\ncontinuous - Only a variable of type == fmi3GetFloat32 or type == fmi3GetFloat64 can be continuous. Model Exchange: No restrictions on value changes (see Section 4.1.1).\n\nThe default is continuous for variables of type and , and discrete for all other types.\n\nFor variables of type Clock and clocked variables the variability is always discrete or tunable.\n\n[Note that the information about continuous states is defined with elements in .]\n\nAdded prefix \"fmi3\" to help with redefinition of constans in enums.\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3DependencyKind","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3DependencyKind","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.10. Dependencies of Variables\n\nEnumeration that defines the dependencies a single unknown variable vunknown can have in relation to a known variable vknown. They have the following meaning: dependent - no particular structure, f(.., v_{known,i}, ..)\n\nOnly for floating point type unknowns v_{unknown}:\n\nconstant - constant factor, c ⋅ v_{known,i} where c is an expression that is evaluated before fmi3EnterInitializationMode is called.\n\nOnly for floating point type unknowns v_{unknown} in Event and Continuous-Time Mode (ME) and at communication points (CS and SE), and not for for Initialization Mode:\n\nfixed - fixed factor, p⋅v_{known,i} where p is an expression that is evaluated before fmi3ExitInitializationMode is called.\n\ntunable - tunable factor, p⋅v_{known,i} where p is an expression that is evaluated before fmi3ExitInitializationMode is called and in Event Mode due to event handling (ME) or at a communication point (CS and SE)\n\ndiscrete - discrete factor, d⋅v_{known,i} where d is an expression that is evaluated before fmi3ExitInitializationMode is called and in Event Mode due to an external or internal event or at a communication point (CS and SE).\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Status","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Status","text":"Defines the status flag (an enumeration of type fmi3Status defined in file fmi3FunctionTypes.h) that is returned by functions to indicate the success of the function call: The status has the following meaning:\n\nfmi3OK: The call was successful. The output argument values are defined.\nfmi3Warning: A non-critical problem was detected, but the computation can continue. The output argument values are defined. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings.\n\n[In certain applications, e.g. in a prototyping environment, warnings may be acceptable. For production environments warnings should be treated like errors unless they can be safely ignored.]\n\nfmi3Discard: The call was not successful and the FMU is in the same state as before the call. The output argument values are not defined, but the computation can continue. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. Advanced simulation algorithms can try alternative approaches to drive the simulation by calling the function with different arguments or calling another function. Otherwise the simulation algorithm has to treat this return code like fmi3Error and has to terminate the simulation.\n\n[Examples for usage of fmi3Discard are handling of min/max violation, or signal numerical problems during model evaluation forcing smaller step sizes.]\n\nfmi3Error: The call failed. The output argument values are undefined and the simulation cannot be continued. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. If a function returns fmi3Error, it is possible to restore a previously retrieved FMU state by calling fmi3SetFMUState. Otherwise fmi3FreeInstance or fmi3Reset must be called. When detecting illegal arguments or a function call not allowed in the current state according to the respective state machine, the FMU must return fmi3Error. Other instances of this FMU are not affected by the error.\nfmi3Fatal: The state of all instances of the model is irreparably corrupted. [For example, due to a runtime exception such as access violation or integer division by zero during the execution of an FMI function.] Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings, if still possible. It is not allowed to call any other function for any instance of the FMU.\n\nSource: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Annotation","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Annotation","text":"A not further specified annotation struct.\n\nSource: [ToDo]\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3ModelDescription","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3ModelDescription","text":"Source: FMISpec3.0, Version D5ef1c1: 2.4.1. Definition of an FMU\n\nThe central FMU data structure defining all variables of the FMU that are visible/accessible via the FMU functions.\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3VariableNamingConvention","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3VariableNamingConvention","text":"[TODO]\n\nSource: FMISpec3.0, Version D5ef1c1: 2.4.7.5.1. Variable Naming Conventions\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3Causality","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3Causality","text":"Source: FMISpec3.0, Version D5ef1c1: 2.4.7.4. Variable Attributes Enumeration that defines the causality of the variable. Allowed values of this enumeration:\n\nparameter - A data value that is constant during the simulation (except for tunable parameters, see there) and is provided by the environment and cannot be used in connections, except for parameter propagation in terminals as described in Section 2.4.9.2.6. variability must be fixed or tunable. These parameters can be changed independently, unlike calculated parameters. initial must be exact or not present (meaning exact).\n\ncalculatedParameter - A data value that is constant during the simulation and is computed during initialization or when tunable parameters change. variability must be fixed or tunable. initial must be approx, calculated or not present (meaning calculated).\n\ninput - The variable value can be provided by the importer. [For example, the importer could forward the output of another FMU into this input.]\n\noutput - The variable value can be used by the importer. [For example, this value can be forwarded to an input of another FMU.] The algebraic relationship to the inputs can be defined via the dependencies attribute of .\n\nlocal - Local variables are:\n\ncontinuous states and their ContinuousStateDerivatives, ClockedStates, EventIndicators or InitialUnknowns. These variables are listed in the .\ninternal, intermediate variables or local clocks which can be read for debugging purposes and are not listed in the .\n\nSetting of local variables:\n\nIn Initialization Mode and before, local variables need to be set if they do have start values or are listed as .\nIn super state Initialized, fmi3Set{VariableType} must not be called on any of the local variables. Only in Model Exchange, continuous states can be set with fmi3SetContinuousStates. Local variable values must not be used as input to another model or FMU.\n\nindependent - The independent variable (usually time [but could also be, for example, angle]). All variables are a function of this independent variable. variability must be continuous. Exactly one variable of an FMU must be defined as independent. For Model Exchange the value is the last value set by fmi3SetTime. For Co-Simulation the value of the independent variable is lastSuccessfulTime return by the last call to fmi3DoStep or the value of argument intermediateUpdateTime of fmi3CallbackIntermediateUpdate. For Scheduled Execution the value of the independent variable is not defined. [The main purpose of this variable in Scheduled Execution is to define a quantity and unit for the independent variable.] The initial value of the independent variable is the value of the argument startTime of fmi3EnterInitializationMode for both Co-Simulation and Model Exchange. If the unit for the independent variable is not defined, it is implicitly s (seconds). If one variable is defined as independent, it must be defined with a floating point type without a start attribute. It is not allowed to call function fmi3Set{VariableType} on an independent variable. Instead, its value is initialized with fmi3EnterInitializationMode and after initialization set by fmi3SetTime for Model Exchange and by arguments currentCommunicationPoint and communicationStepSize of fmi3DoStep for Co-Simulation FMUs. [The actual value can be inquired with fmi3Get{VariableType}.]\n\nstructuralParameter - The variable value can only be changed in Configuration Mode or Reconfiguration Mode. The variability attribute must be fixed or tunable. The initial attribute must be exact or not present (meaning exact). The start attribute is mandatory. A structural parameter must not have a element. A structural parameter may be referenced in elements. If a structural parameters is referenced in elements, it must be of type and its start attribute must be larger than 0. The min attribute might still be 0.\n\nThe default of causality is local. A continuous-time state or an event indicator must have causality = local or output, see also Section 2.4.8.\n\n[causality = calculatedParameter and causality = local with variability = fixed or tunable are similar. The difference is that a calculatedParameter can be used in another model or FMU, whereas a local variable cannot. For example, when importing an FMU in a Modelica environment, a calculatedParameter should be imported in a public section as final parameter, whereas a local variable should be imported in a protected section of the model.]\n\nThe causality of variables of type Clock must be either input or output.\n\nAdded prefix \"fmi3\" to help with redefinition of constans in enums.\n\n\n\n\n\n","category":"type"},{"location":"fmi3_lowlevel_library_constants/#FMI3-Constants-in-FMI-Import/Core-.jl","page":"FMI3 Types in FMI Import/Core .jl","title":"FMI3 Constants in FMI Import/Core .jl","text":"","category":"section"},{"location":"fmi3_lowlevel_library_constants/","page":"FMI3 Types in FMI Import/Core .jl","title":"FMI3 Types in FMI Import/Core .jl","text":"fmi3True\nfmi3False\nfmi3StatusOK\nfmi3StatusWarning\nfmi3StatusDiscard\nfmi3StatusError\nfmi3StatusFatal\nfmi3InstanceStateInstantiated\nfmi3InstanceStateInitializationMode\nfmi3InstanceStateEventMode\nfmi3InstanceStateStepMode\nfmi3InstanceStateClockActivationMode\nfmi3InstanceStateContinuousTimeMode\nfmi3InstanceStateConfigurationMode\nfmi3InstanceStateReconfigurationMode\nfmi3InstanceStateTerminated\nfmi3InstanceStateError\nfmi3InstanceStateFatal\nfmi3VariableNamingConventionFlat\nfmi3VariableNamingConventionStructured\nfmi3CausalityParameter\nfmi3CausalityCalculatedParameter\nfmi3CausalityInput\nfmi3CausalityOutput\nfmi3CausalityLocal\nfmi3CausalityIndependent\nfmi3CausalityStructuralParameter","category":"page"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3True","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3True","text":"fmi2True\n\nEquals a binary true in FMI3.\n\nSource: [TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3False","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3False","text":"fmi2False\n\nEquals a binary false in FMI3.\n\nSource: [TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3StatusOK","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3StatusOK","text":"fmi3OK: The call was successful. The output argument values are defined.\n\nSource: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3StatusWarning","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3StatusWarning","text":"fmi3Warning: A non-critical problem was detected, but the computation can continue. The output argument values are defined. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. [In certain applications, e.g. in a prototyping environment, warnings may be acceptable. For production environments warnings should be treated like errors unless they can be safely ignored.]\n\nSource: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3StatusDiscard","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3StatusDiscard","text":"fmi3Discard: The call was not successful and the FMU is in the same state as before the call. The output argument values are not defined, but the computation can continue. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. Advanced simulation algorithms can try alternative approaches to drive the simulation by calling the function with different arguments or calling another function. Otherwise the simulation algorithm has to treat this return code like fmi3Error and has to terminate the simulation. [Examples for usage of fmi3Discard are handling of min/max violation, or signal numerical problems during model evaluation forcing smaller step sizes.]\n\nSource: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3StatusError","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3StatusError","text":"fmi3Error: The call failed. The output argument values are undefined and the simulation cannot be continued. Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings. If a function returns fmi3Error, it is possible to restore a previously retrieved FMU state by calling fmi3SetFMUState. Otherwise fmi3FreeInstance or fmi3Reset must be called. When detecting illegal arguments or a function call not allowed in the current state according to the respective state machine, the FMU must return fmi3Error. Other instances of this FMU are not affected by the error.\n\nSource: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3StatusFatal","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3StatusFatal","text":"fmi3Fatal: The state of all instances of the model is irreparably corrupted. [For example, due to a runtime exception such as access violation or integer division by zero during the execution of an FMI function.] Function logMessage should be called by the FMU with further information before returning this status, respecting the current logging settings, if still possible. It is not allowed to call any other function for any instance of the FMU.\n\nSource: FMISpec3.0, Version D5ef1c1: 2.2.3. Status Returned by Functions\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateInstantiated","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateInstantiated","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateInitializationMode","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateInitializationMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateEventMode","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateEventMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateStepMode","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateStepMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateClockActivationMode","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateClockActivationMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateContinuousTimeMode","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateContinuousTimeMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateConfigurationMode","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateConfigurationMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateReconfigurationMode","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateReconfigurationMode","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateTerminated","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateTerminated","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateError","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateError","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMIBase.fmi3InstanceStateFatal","page":"FMI3 Types in FMI Import/Core .jl","title":"FMIBase.fmi3InstanceStateFatal","text":"ToDo \n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3VariableNamingConventionFlat","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3VariableNamingConventionFlat","text":"[TODO]\n\nSource: FMISpec3.0, Version D5ef1c1: 2.4.7.5.1. Variable Naming Conventions\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3VariableNamingConventionStructured","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3VariableNamingConventionStructured","text":"[TODO]\n\nSource: FMISpec3.0, Version D5ef1c1: 2.4.7.5.1. Variable Naming Conventions\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3CausalityParameter","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3CausalityParameter","text":"[TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3CausalityCalculatedParameter","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3CausalityCalculatedParameter","text":"[TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3CausalityInput","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3CausalityInput","text":"[TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3CausalityOutput","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3CausalityOutput","text":"[TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3CausalityLocal","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3CausalityLocal","text":"[TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3CausalityIndependent","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3CausalityIndependent","text":"[TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_constants/#FMICore.fmi3CausalityStructuralParameter","page":"FMI3 Types in FMI Import/Core .jl","title":"FMICore.fmi3CausalityStructuralParameter","text":"[TODO]\n\n\n\n\n\n","category":"constant"},{"location":"fmi3_lowlevel_library_functions/#FMI-Common-Concepts-for-Model-Exchange-and-Co-Simulation","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"In both cases, FMI defines an input/output block of a dynamic model where the distribution of the block, the platform dependent header file, several access functions, as well as the schema files are identical.","category":"page"},{"location":"fmi3_lowlevel_library_functions/#Creation,-Destruction-and-Logging-of-FMU-Instances","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Creation, Destruction and Logging of FMU Instances","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3InstantiateCoSimulation\nfmi3InstantiateCoSimulation!\nfmi3InstantiateModelExchange\nfmi3InstantiateModelExchange!\nfmi3InstantiateScheduledExecution\nfmi3InstantiateScheduledExecution!\nfmi3FreeInstance\nfmi3FreeInstance!\nfmi3SetDebugLogging","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3InstantiateCoSimulation","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3InstantiateCoSimulation","text":"Source: FMISpec3.0, Version D5ef1c1:: 2.3.1. Super State: FMU State Setable\n\nThis function instantiates a Co-Simulation FMU (see Section 4). It is allowed to call this function only if modelDescription.xml includes a element.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3InstantiateCoSimulation!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3InstantiateCoSimulation!","text":"fmi3InstantiateCoSimulation!(fmu::FMU3; instanceName::String=fmu.modelName, type::fmi3Type=fmu.type, pushInstances::Bool = true, visible::Bool = false, loggingOn::Bool = fmu.executionConfig.loggingOn, externalCallbacks::Bool = fmu.executionConfig.externalCallbacks, \n eventModeUsed::Bool = false, ptrIntermediateUpdate=nothing, logStatusOK::Bool=true, logStatusWarning::Bool=true, logStatusDiscard::Bool=true, logStatusError::Bool=true, logStatusFatal::Bool=true)\n\nCreate a new coSimulation instance of the given fmu, adds a logger if logginOn == true.\n\nArguments\n\nfmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.\n\nKeywords\n\ninstanceName::String=fmu.modelName: Name of the instance\ntype::fmi3Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present\npushInstances::Bool = true: Defines if the fmu instances should be pushed in the application.\nvisible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)\nloggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)\nexternalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi3CallbackFunctions, this may improve readability of logging messages (default=false)\neventModeUsed::Bool = false: Defines if the FMU instance can use the event mode. (default=false)\nptrIntermediateUpdate=nothing: Points to a function handling intermediate Updates (defalut=nothing) \nlogStatusOK::Bool=true whether to log status of kind fmi3OK (default=true)\nlogStatusWarning::Bool=true whether to log status of kind fmi3Warning (default=true)\nlogStatusDiscard::Bool=true whether to log status of kind fmi3Discard (default=true)\nlogStatusError::Bool=true whether to log status of kind fmi3Error (default=true)\nlogStatusFatal::Bool=true whether to log status of kind fmi3Fatal (default=true)\n\nReturns\n\nReturns the instance of a new FMU coSimulation instance.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.4.7 Model variables\nFMISpec3.0: 2.3.1. Super State: FMU State Setable\n\nSee also fmi3InstantiateCoSimulation.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3InstantiateModelExchange","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3InstantiateModelExchange","text":"Source: FMISpec3.0, Version D5ef1c1:: 2.3.1. Super State: FMU State Setable\n\nThis function instantiates a Model Exchange FMU (see Section 3). It is allowed to call this function only if modelDescription.xml includes a element.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3InstantiateModelExchange!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3InstantiateModelExchange!","text":"fmi3InstantiateModelExchange!(fmu::FMU3; instanceName::String=fmu.modelName, type::fmi3Type=fmu.type, pushInstances::Bool = true, visible::Bool = false, loggingOn::Bool = fmu.executionConfig.loggingOn, externalCallbacks::Bool = fmu.executionConfig.externalCallbacks,\n logStatusOK::Bool=true, logStatusWarning::Bool=true, logStatusDiscard::Bool=true, logStatusError::Bool=true, logStatusFatal::Bool=true)\n\nCreate a new modelExchange instance of the given fmu, adds a logger if logginOn == true.\n\nArguments\n\nfmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.\n\nKeywords\n\ninstanceName::String=fmu.modelName: Name of the instance\ntype::fmi3Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present\npushInstances::Bool = true: Defines if the fmu instances should be pushed in the application.\nvisible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)\nloggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)\nexternalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi3CallbackFunctions, this may improve readability of logging messages (default=false)\nlogStatusOK::Bool=true whether to log status of kind fmi3OK (default=true)\nlogStatusWarning::Bool=true whether to log status of kind fmi3Warning (default=true)\nlogStatusDiscard::Bool=true whether to log status of kind fmi3Discard (default=true)\nlogStatusError::Bool=true whether to log status of kind fmi3Error (default=true)\nlogStatusFatal::Bool=true whether to log status of kind fmi3Fatal (default=true)\n\nReturns\n\nReturns the instance of a new FMU modelExchange instance.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.4.7 Model variables\nFMISpec3.0: 2.3.1. Super State: FMU State Setable\n\nSee also fmi3InstantiateModelExchange.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3InstantiateScheduledExecution","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3InstantiateScheduledExecution","text":"Source: FMISpec3.0, Version D5ef1c1:: 2.3.1. Super State: FMU State Setable\n\nThis function instantiates a Scheduled Execution FMU (see Section 4). It is allowed to call this function only if modelDescription.xml includes a element.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3InstantiateScheduledExecution!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3InstantiateScheduledExecution!","text":"fmi3InstantiateScheduledExecution!(fmu::FMU3; ptrlockPreemption::Ptr{Cvoid}, ptrunlockPreemption::Ptr{Cvoid}, instanceName::String=fmu.modelName, type::fmi3Type=fmu.type, pushInstances::Bool = true, visible::Bool = false, loggingOn::Bool = fmu.executionConfig.loggingOn, externalCallbacks::Bool = fmu.executionConfig.externalCallbacks, \n logStatusOK::Bool=true, logStatusWarning::Bool=true, logStatusDiscard::Bool=true, logStatusError::Bool=true, logStatusFatal::Bool=true)\n\nCreate a new ScheduledExecution instance of the given fmu, adds a logger if logginOn == true.\n\nArguments\n\nfmu::FMU3: Mutable struct representing a FMU and all it instantiated instances in the FMI 3.0 Standard.\n\nKeywords\n\nptrlockPreemption::Ptr{Cvoid}: Points to a function handling locking Preemption\nptrunlockPreemption::Ptr{Cvoid}: Points to a function handling unlocking Preemption\ninstanceName::String=fmu.modelName: Name of the instance\ntype::fmi3Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present\npushInstances::Bool = true: Defines if the fmu instances should be pushed in the application.\nvisible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)\nloggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)\nexternalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi3CallbackFunctions, this may improve readability of logging messages (default=false)\nlogStatusOK::Bool=true whether to log status of kind fmi3OK (default=true)\nlogStatusWarning::Bool=true whether to log status of kind fmi3Warning (default=true)\nlogStatusDiscard::Bool=true whether to log status of kind fmi3Discard (default=true)\nlogStatusError::Bool=true whether to log status of kind fmi3Error (default=true)\nlogStatusFatal::Bool=true whether to log status of kind fmi3Fatal (default=true)\n\nReturns\n\nReturns the instance of a new FMU ScheduledExecution instance.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.4.7 Model variables\nFMISpec3.0: 2.3.1. Super State: FMU State Setable\n\nSee also fmi3InstantiateScheduledExecution.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3FreeInstance","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3FreeInstance","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.1. Super State: FMU State Setable\n\nDisposes the given instance, unloads the loaded model, and frees all the allocated memory and other resources that have been allocated by the functions of the FMU interface. If a NULL pointer is provided for argument instance, the function call is ignored (does not have an effect).\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3FreeInstance!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3FreeInstance!","text":"fmi3FreeInstance!(c::FMU3Instance; popInstance::Bool = true)\n\nDisposes the given instance, unloads the loaded model, and frees all the allocated memory and other resources that have been allocated by the functions of the FMU interface. If a null pointer is provided for “c”, the function call is ignored (does not have an effect).\n\nRemoves the component from the FMUs component list.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nKeywords\n\npopInstance::Bool=true: If the Keyword popInstance = true the freed instance is deleted\n\nReturns\n\nnothing\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0, Version D5ef1c1: 2.3.1. Super State: FMU State Setable\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetDebugLogging","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetDebugLogging","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.1. Super State: FMU State Setable\n\nThe function controls debug logging that is output via the logger function callback. If loggingOn = fmi3True, debug logging is enabled, otherwise it is switched off.\n\n\n\n\n\nfmi3SetDebugLogging(c::FMU3Instance, logginOn::fmi3Boolean, nCategories::UInt, categories::Ptr{Nothing})\n\nControl the use of the logging callback function, version independent.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nlogginOn::fmi3Boolean: If loggingOn = fmi3True, debug logging is enabled for the log categories specified in categories, otherwise it is disabled. Type fmi3Boolean is defined as an alias Type for the C-Type Boolean and is to be used with fmi3True and fmi3False.\nnCategories::UInt: Argument nCategories defines the length of the argument categories.\ncategories::Ptr{Nothing}:\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.1. Super State: FMU State Setable\n\nSee also fmi3SetDebugLogging.\n\n\n\n\n\nfmi3SetDebugLogging(c::FMU3Instance)\n\nSet the DebugLogger for the FMU.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nReturns a warning if str.state is not called in fmi3InstanceStateInstantiated.\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.1. Super State: FMU State Setable\n\nSee also fmi3SetDebugLogging.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#Initialization,-Termination,-and-Resetting-an-FMU","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Initialization, Termination, and Resetting an FMU","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"This section documents functions that deal with initialization, termination, resetting of an FMU.","category":"page"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3EnterInitializationMode\nfmi3ExitInitializationMode\nfmi3EnterConfigurationMode\nfmi3ExitConfigurationMode\nfmi3Terminate\nfmi3Reset","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3EnterInitializationMode","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3EnterInitializationMode","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.2. State: Instantiated\n\nInforms the FMU to enter Initialization Mode. Before calling this function, all variables with attribute can be set with the “fmi3SetXXX” functions (the ScalarVariable attributes are defined in the Model Description File, see section 2.4.7). Setting other variables is not allowed. Also sets the simulation start and stop time.\n\n\n\n\n\nfmi3EnterInitializationMode(c::FMU3Instance, toleranceDefined::fmi3Boolean,\n tolerance::fmi3Float64,\n startTime::fmi3Float64,\n stopTimeDefined::fmi3Boolean,\n stopTime::fmi3Float64)\n\nInforms the FMU to enter Initialization Mode. Before calling this function, all variables with attribute can be set with the “fmi3SetXXX” functions (the ScalarVariable attributes are defined in the Model Description File, see section 2.4.7). Setting other variables is not allowed. Also sets the simulation start and stop time.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\ntoleranceDefined::fmi3Boolean: Arguments toleranceDefined depend on the FMU type:\nfmuType = fmi3ModelExchange: If toleranceDefined = fmi3True, then the model is called with a numerical integration scheme where the step size is controlled by using tolerance for error estimation. In such a case, all numerical algorithms used inside the model (for example, to solve non-linear algebraic equations) should also operate with an error estimation of an appropriate smaller relative tolerance.\nfmuType = fmi3CoSimulation: If toleranceDefined = fmi3True, then the communication interval of the slave is controlled by error estimation. In case the slave utilizes a numerical integrator with variable step size and error estimation, it is suggested to use “tolerance” for the error estimation of the internal integrator (usually as relative tolerance). An FMU for Co-Simulation might ignore this argument.\ntolerance::fmi3Float64: Argument tolerance is the desired tolerance\nstartTime::fmi3Float64: Argument startTime can be used to check whether the model is valid within the given boundaries or to allocate memory which is necessary for storing results. It is the fixed initial value of the independent variable and if the independent variable is time, startTime is the starting time of initializaton.\nstopTimeDefined::fmi3Boolean: If stopTimeDefined = fmi3True, then stopTime is the defined final value of the independent variable and if stopTimeDefined = fmi3False, then no final value\n\nof the independent variable is defined and argument stopTime is meaningless.\n\nstopTime::fmi3Float64: Argument stopTime can be used to check whether the model is valid within the given boundaries or to allocate memory which is necessary for storing results. It is the fixed final value of the independent variable and if the independent variable is “time”, stopTime is the stop time of the simulation.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.2. State: Instantiated\n\nSee also fmi3EnterInitializationMode.\n\n\n\n\n\nfmi3EnterInitializationMode(c::FMU3Instance, startTime::Union{Real, Nothing} = nothing, stopTime::Union{Real, Nothing} = nothing; tolerance::Union{Real, Nothing} = nothing)\n\nFMU enters Initialization mode.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nstartTime::Union{Real, Nothing} = nothing: startTime is a real number which sets the value of starting time of the experiment. The default value is set automatically if doing nothing (default = nothing).\nstopTime::Union{Real, Nothing} = nothing: stopTime is a real number which sets the value of ending time of the experiment. The default value is set automatically if doing nothing (default = nothing).\n\nKeywords\n\ntolerance::Union{Real, Nothing} = nothing: tolerance is a real number which sets the value of tolerance range. The default value is set automatically if doing nothing (default = nothing).\n\nReturns\n\nReturns a warning if str.state is not called in fmi3InstanceStateInstantiated.\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.2. State: Instantiated\n\nSee also fmi3EnterInitializationMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3ExitInitializationMode","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3ExitInitializationMode","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.3. State: Initialization Mode\n\nInforms the FMU to exit Initialization Mode.\n\n\n\n\n\nfmi3ExitInitializationMode(c::FMU3Instance)\n\nInforms the FMU to exit Initialization Mode.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.3. State: Initialization Mode\n\nSee also fmi3ExitInitializationMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3EnterConfigurationMode","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3EnterConfigurationMode","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.2. State: Instantiated\n\nIf the importer needs to change structural parameters, it must move the FMU into Configuration Mode using fmi3EnterConfigurationMode.\n\n\n\n\n\nfmi3EnterConfigurationMode(c::FMU3Instance; soft::Bool=false)\n\nIf the importer needs to change structural parameters, it must move the FMU into Configuration Mode using fmi3EnterConfigurationMode.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.2. State: Instantiated\n\nSee also fmi3EnterConfigurationMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3ExitConfigurationMode","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3ExitConfigurationMode","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.6. State: Configuration Mode\n\nExits the Configuration Mode and returns to state Instantiated.\n\n\n\n\n\nfmi3ExitConfigurationMode(c::FMU3Instance; soft::Bool=false)\n\nExits the Configuration Mode and returns to state Instantiated.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.6. State: Configuration Mode\n\nSee also fmi3ExitConfigurationMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3Terminate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3Terminate","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.4. Super State: Initialized\n\nInforms the FMU that the simulation run is terminated.\n\n\n\n\n\nfmi3Terminate(c::FMU3Instance; soft::Bool=false)\n\nInforms the FMU that the simulation run is terminated.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.4. Super State: Initialized\n\nSee also fmi3Terminate.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3Reset","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3Reset","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.1. Super State: FMU State Setable\n\nIs called by the environment to reset the FMU after a simulation run. The FMU goes into the same state as if fmi3InstantiateXXX would have been called.\n\n\n\n\n\nfmi3Reset(c::FMU3Instance; soft::Bool = false)\n\nIs called by the environment to reset the FMU after a simulation run. The FMU goes into the same state as if fmi3InstantiateXXX would have been called.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.1. Super State: FMU State Setable\n\nSee also fmi3Reset.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#Getting-and-Setting-Variable-Values","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Getting and Setting Variable Values","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"All variable values of an FMU are identified with a variable handle called “value reference”. The handle is defined in the modelDescription.xml file (as attribute “valueReference” in element “ScalarVariable”). Element “valueReference” might not be unique for all variables. If two or more variables of the same base data type (such as fmi3Float64) have the same valueReference, then they have identical values but other parts of the variable definition might be different (for example, min/max attributes).","category":"page"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3GetFloat32\nfmi3GetFloat32!\nfmi3GetFloat64\nfmi3GetFloat64!\nfmi3GetInt8\nfmi3GetInt8!\nfmi3GetInt16\nfmi3GetInt16!\nfmi3GetInt32\nfmi3GetInt32!\nfmi3GetInt64\nfmi3GetInt64!\nfmi3GetUInt8\nfmi3GetUInt8!\nfmi3GetUInt16\nfmi3GetUInt16!\nfmi3GetUInt32\nfmi3GetUInt32!\nfmi3GetUInt64\nfmi3GetUInt64!\nfmi3GetBoolean\nfmi3GetBoolean!\nfmi3GetString\nfmi3GetString!\nfmi3GetBinary\nfmi3GetBinary!\nfmi3SetFloat32\nfmi3SetFloat64\nfmi3SetInt8\nfmi3SetInt16\nfmi3SetInt32\nfmi3SetInt64\nfmi3SetUInt8\nfmi3SetUInt16\nfmi3SetUInt32\nfmi3SetUInt64\nfmi3SetBoolean\nfmi3SetString\nfmi3SetBinary","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetFloat32","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetFloat32","text":"fmi3GetFloat32(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Float32 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Float32}: returns values of an array of fmi3Float32 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetFloat32.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetFloat32!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetFloat32!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetFloat32!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Float32}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Float32}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetFloat32!.\n\n\n\n\n\nfmi3GetFloat32!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Float32})\n\nWrites the real values of an array of variables in the given field\n\nfmi3GetFloat32! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Float32}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetFloat32!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetFloat64","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetFloat64","text":"fmi3GetFloat64(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Float64 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Float64}: returns values of an array of fmi3Float64 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetFloat64.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetFloat64!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetFloat64!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetFloat64!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Float64}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Float64}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetFloat64!.\n\n\n\n\n\nfmi3GetFloat64!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Float64})\n\nWrites the real values of an array of variables in the given field\n\nfmi3GetFloat64! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Float64}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetFloat64!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetInt8","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetInt8","text":"fmi3GetInt8(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Int8 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Int8}: returns values of an array of fmi3Int8 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt8.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetInt8!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetInt8!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetInt8!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int8}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int8}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt8!.\n\n\n\n\n\nfmi3GetInt8!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Int8})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetInt8! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Int8}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt8!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetInt16","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetInt16","text":"fmi3GetInt16(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Int16 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Int16}: returns values of an array of fmi3Int16 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt16.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetInt16!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetInt16!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetInt16!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int16}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int16}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt16!.\n\n\n\n\n\nfmi3GetInt16!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Int16})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetInt16! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Int16}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt16!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetInt32","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetInt32","text":"fmi3GetInt32(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Int32 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Int32}: returns values of an array of fmi3Int32 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt32.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetInt32!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetInt32!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetInt32!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int32}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int32}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt32!.\n\n\n\n\n\nfmi3GetInt32!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Int32})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetInt32! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Int32}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt32!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetInt64","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetInt64","text":"fmi3GetInt64(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Int64 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Int64}: returns values of an array of fmi3Int64 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt64.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetInt64!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetInt64!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetInt64!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int64}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int64}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt64!.\n\n\n\n\n\nfmi3GetInt64!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Int64})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetInt64! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Int64}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetInt64!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetUInt8","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetUInt8","text":"fmi3GetUInt8(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3UInt8 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3UInt8}: returns values of an array of fmi3UInt8 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt8.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetUInt8!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetUInt8!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetUInt8!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt8}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt8}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt8!.\n\n\n\n\n\nfmi3GetUInt8!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3UInt8})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetUInt8! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3UInt8}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt8!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetUInt16","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetUInt16","text":"fmi3GetUInt16(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3UInt16 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3UInt16}: returns values of an array of fmi3UInt16 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt16.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetUInt16!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetUInt16!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetUInt16(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt16}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt16}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt16!.\n\n\n\n\n\nfmi3GetUInt16!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3UInt16})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetUInt16! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3UInt16}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt16!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetUInt32","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetUInt32","text":"fmi3GetUInt32(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3UInt32 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3UInt32}: returns values of an array of fmi3UInt32 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt32.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetUInt32!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetUInt32!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetUInt32!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt32}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt32}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt32!.\n\n\n\n\n\nfmi3GetUInt32!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3UInt32})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetUInt32! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3UInt32}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt32!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetUInt64","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetUInt64","text":"fmi3GetUInt64(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3UInt64 variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3UInt64}: returns values of an array of fmi3UInt64 variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt64.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetUInt64!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetUInt64!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetUInt64!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt64}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt64}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt64!.\n\n\n\n\n\nfmi3GetUInt64!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3UInt64})\n\nWrites the integer values of an array of variables in the given field\n\nfmi3GetUInt64! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3UInt64}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetUInt64!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetBoolean","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetBoolean","text":"fmi3GetBoolean(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Boolean variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Boolean}: returns values of an array of fmi3Boolean variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetBoolean.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetBoolean!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetBoolean!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetBoolean!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Boolean}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Boolean}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetBoolean!.\n\n\n\n\n\nfmi3GetBoolean!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Boolean})\n\nWrites the boolean values of an array of variables in the given field\n\nfmi3GetBoolean! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Boolean}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetBoolean!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetString","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetString","text":"fmi3GetString(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3String variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3String}: returns values of an array of fmi3String variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetString.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetString!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetString!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetString!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3String}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3String}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetString!.\n\n\n\n\n\nfmi3GetString!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3String})\n\nWrites the string values of an array of variables in the given field\n\nfmi3GetString! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3String}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetString!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetBinary","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetBinary","text":"fmi3GetBinary(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Binary variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Binary}: returns values of an array of fmi3Binary variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetBinary.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetBinary!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetBinary!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValues - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetBinary!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, valueSizes::AbstractArray{Csize_t}, value::AbstractArray{fmi3Binary}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalueSizes::AbstractArray{Csize_t}: Argument valueSizes defines the size of a binary element of each variable.\nvalue::AbstractArray{fmi3Binary}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetBinary!.\n\n\n\n\n\nfmi3GetBinary!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Binary})\n\nWrites the binary values of an array of variables in the given field\n\nfmi3GetBinary! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Binary}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetBinary!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetFloat32","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetFloat32","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetFloat32(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Float32}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Float32}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetFloat32.\n\n\n\n\n\nfmi3SetFloat32(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Float32}, fmi3Float32})\n\nSet the values of an array of real variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3Float32}, fmi3Float32}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetFloat32.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetFloat64","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetFloat64","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetFloat64(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Float64}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Float64}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetFloat64.\n\n\n\n\n\nfmi3SetFloat64(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Float64}, fmi3Float64})\n\nSet the values of an array of real variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3Float64}, fmi3Float64}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetFloat64.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetInt8","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetInt8","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetInt8(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int8}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int8}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\n\n\n\n\nfmi3SetInt8(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Int8}, fmi3Int8})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3Int8}, fmi3Int8}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetInt8.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetInt16","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetInt16","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetInt16(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int16}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int16}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetInt16.\n\n\n\n\n\nfmi3SetInt16(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Int16}, fmi3Int16})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3Int16}, fmi3Int16}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetInt16.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetInt32","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetInt32","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetInt32(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int32}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int32}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetInt32.\n\n\n\n\n\nfmi3SetInt32(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Int32}, fmi3Int32})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3Int32}, fmi3Int32}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetInt32.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetInt64","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetInt64","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetInt64(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Int64}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Int64}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetInt64.\n\n\n\n\n\nfmi3SetInt64(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3Int64}, fmi3Int64})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3Int64}, fmi3Int64}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetInt64.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetUInt8","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetUInt8","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetUInt8(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt8}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt8}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetUInt8.\n\n\n\n\n\nfmi3SetUInt8(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3UInt8}, fmi3UInt8})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3UInt8}, fmi3UInt8}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetUInt8.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetUInt16","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetUInt16","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetUInt16(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt16}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt16}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\n\n\n\n\nfmi3SetUInt16(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3UInt16}, fmi3UInt16})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3UInt16}, fmi3UInt16}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetUInt16.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetUInt32","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetUInt32","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetInt32(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt32}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt32}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetUInt32.\n\n\n\n\n\nfmi3SetUInt32(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3UInt32}, fmi3UInt32})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3UInt32}, fmi3UInt32}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetUInt32.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetUInt64","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetUInt64","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetUInt64(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3UInt64}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3UInt64}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed: - fmi3OK: all well - fmi3Warning: things are not quite right, but the computation can continue - fmi3Discard: if the slave computed successfully only a subinterval of the communication step - fmi3Error: the communication step could not be carried out at all - fmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetUInt64.\n\n\n\n\n\nfmi3SetUInt64(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{fmi3UInt64}, fmi3UInt64})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3UInt64}, fmi3UInt64}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetUInt64.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetBoolean","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetBoolean","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetBoolean(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Boolean}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3Boolean}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetBoolean.\n\n\n\n\n\nfmi3SetBoolean(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{Bool}, Bool})\n\nSet the values of an array of boolean variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{Bool}, Bool}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetBoolean.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetString","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetString","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetString(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3String}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi3String}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetString.\n\n\n\n\n\nfmi3SetString(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::Union{AbstractArray{String}, String})\n\nSet the values of an array of string variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{String}, String}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetString.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetBinary","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetBinary","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetBinary(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, valueSizes::AbstractArray{Csize_t}, value::AbstractArray{fmi3Binary}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalueSizes::AbstractArray{Csize_t}: Argument valueSizes defines the size of a binary element of each variable.\nvalue::AbstractArray{fmi3Binary}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetBinary.\n\n\n\n\n\nfmi3SetBinary(c::FMU3Instance, vr::fmi3ValueReferenceFormat, valueSizes::Union{AbstractArray{Csize_t}, Csize_t}, values::Union{AbstractArray{fmi3Binary}, fmi3Binary})\n\nSet the values of an array of binary variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalueSizes::Union{AbstractArray{Csize_t}, Csize_t}: Argument valueSizes defines the size of a binary element of each variable.\nvalues::Union{AbstractArray{fmi3Binary}, fmi3Binary}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetBinary.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3Get fmi3Get! fmi3Set","category":"page"},{"location":"fmi3_lowlevel_library_functions/#Getting-and-Setting-the-Complete-FMU-State","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Getting and Setting the Complete FMU State","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"The FMU has an internal state consisting of all values that are needed to continue a simulation. This internal state consists especially of the values of the continuous-time states, iteration variables, parameter values, input values, delay buffers, file identifiers, and FMU internal status information. With the functions of this section, the internal FMU state can be copied and the pointer to this copy is returned to the environment. The FMU state copy can be set as actual FMU state, in order to continue the simulation from it.","category":"page"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3GetFMUState\nfmi3GetFMUState!\nfmi3SetFMUState\nfmi3FreeFMUState\nfmi3SerializeFMUState\nfmi3SerializeFMUState!\nfmi3SerializedFMUStateSize\nfmi3SerializedFMUStateSize!\nfmi3DeSerializeFMUState\nfmi3DeSerializeFMUState!\nfmi3UpdateDiscreteStates\nfmi3EvaluateDiscreteStates\nfmi3GetNominalsOfContinuousStates","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetFMUState","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetFMUState","text":"fmi3GetFMUState(c::FMU3Instance)\n\nMakes a copy of the internal FMU state and returns a pointer to this copy.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nReturn state is a pointer to a copy of the internal FMU state.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3GetFMUState.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetFMUState!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetFMUState!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.4. Getting and Setting the Complete FMU State\n\nfmi3GetFMUstate makes a copy of the internal FMU state and returns a pointer to this copy\n\n\n\n\n\nfmi3GetFMUState!(c::FMU3Instance, FMUstate::Ref{fmi3FMUState})\n\nMakes a copy of the internal FMU state and returns a pointer to this copy\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nFMUstate::Ref{fmi3FMUstate}:If on entry FMUstate == NULL, a new allocation is required. If FMUstate != NULL, then FMUstate points to a previously returned FMUstate that has not been modified since.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3GetFMUState!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetFMUState","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetFMUState","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.4. Getting and Setting the Complete FMU State\n\nfmi3SetFMUstate copies the content of the previously copied FMUstate back and uses it as actual new FMU state.\n\n\n\n\n\nfmi3SetFMUState(c::FMU3Instance, FMUstate::fmi3FMUState)\n\nCopies the content of the previously copied FMUstate back and uses it as actual new FMU state.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nFMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3SetFMUState.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3FreeFMUState","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3FreeFMUState","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.4. Getting and Setting the Complete FMU State\n\nfmi3FreeFMUstate frees all memory and other resources allocated with the fmi3GetFMUstate call for this FMUstate.\n\n\n\n\n\nfmi3FreeFMUState(c::FMU3Instance, FMUstate::Ref{fmi3FMUState})\n\nFrees all memory and other resources allocated with the fmi3GetFMUstate call for this FMUstate.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nFMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\n\n\n\n\nfmi3FreeFMUState!(c::FMU3Instance, state::fmi3FMUState)\n\nFree the allocated memory for the FMU state.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nstate::fmi3FMUState: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nReturn singleton instance of type Nothing, if there is no value to return (as in a C void function) or when a variable or field holds no value.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3SerializeFMUState","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3SerializeFMUState","text":"fmi3SerializeFMUState(c::FMU3Instance, state::fmi3FMUState)\n\nSerializes the data referenced by the pointer FMUstate and copies this data into the byte vector serializedState of length size to be provided by the environment.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nstate::fmi3FMUState: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nserializedState:: Array{fmi3Byte}: Return serializedState contains the copy of the serialized data referenced by the pointer FMUstate\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3SerializeFMUState.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SerializeFMUState!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SerializeFMUState!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.4. Getting and Setting the Complete FMU State\n\nfmi3SerializeFMUstate serializes the data which is referenced by pointer FMUstate and copies this data in to the byte vector serializedState of length size\n\n\n\n\n\nfmi3SerializeFMUState!(c::FMU3Instance, FMUstate::fmi3FMUState, serialzedState::AbstractArray{fmi3Byte}, size::Csize_t)\n\nSerializes the data which is referenced by pointer FMUState and copies this data in to the byte vector serializedState of length size, that must be provided by the environment.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nFMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\nserialzedState::AbstractArray{fmi3Byte}: Argument serializedState contains the copy of the serialized data referenced by the pointer FMUstate.\nsize::Ref{Csize_t}: Argument size is an object that safely references a value of type Csize_t and defines the size of the byte vector in which the FMUstate can be stored.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3SerializeFMUState!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3SerializedFMUStateSize","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3SerializedFMUStateSize","text":"fmi3SerializedFMUStateSize(c::FMU3Instance, state::fmi3FMUState)\n\nReturns the size of the byte vector in which the FMUstate can be stored.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nstate::fmi3FMUState: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nReturn size is an object that safely references a value of type Csize_t.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3SerializedFMUStateSize.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SerializedFMUStateSize!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SerializedFMUStateSize!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.4. Getting and Setting the Complete FMU State\n\nfmi3SerializedFMUstateSize returns the size of the byte vector which is needed to store FMUstate in it.\n\n\n\n\n\nfmi3SerializedFMUStateSize!(c::FMU3Instance, FMUstate::fmi3FMUState, size::Ref{Csize_t})\n\nFrees all memory and other resources allocated with the fmi3GetFMUstate call for this FMUstate.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nFMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\nsize::Ref{Csize_t}: Argument size is an object that safely references a value of type Csize_t and defines the size of the byte vector in which the FMUstate can be stored.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3SerializedFMUStateSize!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3DeSerializeFMUState","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3DeSerializeFMUState","text":"fmi3SerializeFMUState(c::FMU3Instance, state::fmi3FMUState)\n\nSerializes the data referenced by the pointer FMUstate and copies this data into the byte vector serializedState of length size to be provided by the environment.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nserializedState::Array{fmi3Byte}: Argument serializedState contains the fmi3Byte field to be deserialized.\n\nReturns\n\nReturn state is a pointer to a copy of the internal FMU state.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3DeSerializeFMUState.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3DeSerializeFMUState!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3DeSerializeFMUState!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.4. Getting and Setting the Complete FMU State\n\nfmi3DeSerializeFMUstate deserializes the byte vector serializedState of length size, constructs a copy of the FMU state and returns FMUstate, the pointer to this copy.\n\n\n\n\n\nfmi3DeSerializeFMUState!(c::FMU3Instance, serialzedState::AbstractArray{fmi3Byte}, size::Csize_t, FMUstate::Ref{fmi3FMUState})\n\nDeserializes the byte vector serializedState of length size, constructs a copy of the FMU state and stores the FMU state in the given address of the reference FMUstate, the pointer to this copy.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nFMUstate::fmi3FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\nserialzedState::AbstractArray{fmi3Byte}: Argument serializedState contains the copy of the serialized data referenced by the pointer FMUstate.\nsize::Ref{Csize_t}: Argument size is an object that safely references a value of type Csize_t and defines the size of the byte vector in which the FMUstate can be stored.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.4. Getting and Setting the Complete FMU State\n\nSee also fmi3DeSerializeFMUState!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3UpdateDiscreteStates","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3UpdateDiscreteStates","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.5. State: Event Mode\n\nThis function is called to signal a converged solution at the current super-dense time instant. fmi3UpdateDiscreteStates must be called at least once per super-dense time instant.\n\n\n\n\n\nfmi3UpdateDiscreteStates(c::FMU3Instance, discreteStatesNeedUpdate::Ref{fmi3Boolean}, terminateSimulation::Ref{fmi3Boolean}, \n nominalsOfContinuousStatesChanged::Ref{fmi3Boolean}, valuesOfContinuousStatesChanged::Ref{fmi3Boolean},\n nextEventTimeDefined::Ref{fmi3Boolean}, nextEventTime::Ref{fmi3Float64})\n\nThis function is called to signal a converged solution at the current super-dense time instant. fmi3UpdateDiscreteStates must be called at least once per super-dense time instant.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\ndiscreteStatesNeedUpdate::Ref{fmi3Boolean}: \nterminateSimulation::Ref{fmi3Boolean}: \nnominalsOfContinuousStatesChanged::Ref{fmi3Boolean}: \nvaluesOfContinuousStatesChanged::Ref{fmi3Boolean}: \nnextEventTimeDefined::Ref{fmi3Boolean}: \nnextEventTime::Ref{fmi3Float64}: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.5. State: Event Mode\n\n\n\n\n\nfmi3UpdateDiscreteStates(c::FMU3Instance)\n\nThis function is called to signal a converged solution at the current super-dense time instant. fmi3UpdateDiscreteStates must be called at least once per super-dense time instant. Results are returned, use fmi3UpdateDiscreteStates! for the inplace variant.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\ndiscreteStatesNeedUpdate\nterminateSimulation\nnominalsOfContinuousStatesChanged\nvaluesOfContinuousStatesChanged\nnextEventTimeDefined\nnextEventTime\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.3.5. State: Event Mode\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3EvaluateDiscreteStates","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3EvaluateDiscreteStates","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.3. State: Initialization Mode\n\nThis function is called to trigger the evaluation of fdisc to compute the current values of discrete states from previous values. The FMU signals the support of fmi3EvaluateDiscreteStates via the capability flag providesEvaluateDiscreteStates.\n\n\n\n\n\nfmi3EvaluateDiscreteStates(c::FMU3Instance)\n\nThis function is called to trigger the evaluation of fdisc to compute the current values of discrete states from previous values. The FMU signals the support of fmi3EvaluateDiscreteStates via the capability flag providesEvaluateDiscreteStates.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.3. State: Initialization Mode\n\nSee also fmi3EvaluateDiscreteStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetNominalsOfContinuousStates","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetNominalsOfContinuousStates","text":"fmi3GetNominalsOfContinuousStates(c::FMU3Instance)\n\nReturn the nominal values of the continuous states.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nx::Array{fmi3Float64}: Returns an array of fmi3Float64 values representing the new nominals of continuous state vector x.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.3.3. State: Initialization Mode\n\nSee also fmi3GetNominalsOfContinuousStates.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#Getting-Partial-Dervatives","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Getting Partial Dervatives","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"It is optionally possible to provide evaluation of partial derivatives for an FMU. For Model Exchange, this means computing the partial derivatives at a particular time instant. For Co-Simulation, this means to compute the partial derivatives at a particular communication point. One function is provided to compute directional derivatives. This function can be used to construct the desired partial derivative matrices.","category":"page"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3GetDirectionalDerivative\nfmi3GetDirectionalDerivative!\nfmi3GetContinuousStateDerivatives\nfmi3GetContinuousStateDerivatives!\nfmi3GetAdjointDerivative\nfmi3GetAdjointDerivative!\nfmi3GetOutputDerivatives\nfmi3GetOutputDerivatives!","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetDirectionalDerivative","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetDirectionalDerivative","text":"fmi3GetDirectionalDerivative(c::FMU3Instance,\n unknowns::AbstractArray{fmi3ValueReference},\n knowns::AbstractArray{fmi3ValueReference},\n seed::AbstractArray{fmi3Float64})\n\nWrapper Function call to compute the partial derivative with respect to the variables unknowns.\n\nComputes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)\n\nunknowns: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nknowns: Real input variables of function h that changes its value in the actual Mode.\nrest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔunknowns = (δh / δknowns) Δknowns\n\nArguments\n\nc::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nunknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).\nknowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).\nseed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.\n\nReturns\n\nsensitivity::Array{fmi3Float64}: Return sensitivity contains the directional derivative vector values.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.11. Getting Partial Derivatives\n\nSee also fmi3GetDirectionalDerivative.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetDirectionalDerivative!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetDirectionalDerivative!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.11. Getting Partial Derivatives\n\nThis function computes the directional derivatives v{sensitivity} = J ⋅ v{seed} of an FMU.\n\nunknowns - contains value references to the unknowns.\n\nnUnknowns - contains the length of argument unknowns.\n\nknowns - contains value references of the knowns.\n\nnKnowns - contains the length of argument knowns.\n\nseed - contains the components of the seed vector.\n\nnSeed - contains the length of seed.\n\nsensitivity - contains the components of the sensitivity vector.\n\nnSensitivity - contains the length of sensitivity.\n\nThis function can only be called if the 'ProvidesDirectionalDerivatives' tag in the ModelDescription is set.\n\n\n\n\n\nfmi3GetDirectionalDerivative!(c::FMU3Instance,\n unknowns::AbstractArray{fmi3ValueReference},\n nUnknowns::Csize_t,\n knowns::AbstractArray{fmi3ValueReference},\n nKnowns::Csize_t,\n seed::AbstractArray{fmi3Float64},\n nSeed::Csize_t,\n sensitivity::AbstractArray{fmi3Float64},\n nSensitivity::Csize_t)\n\nWrapper Function call to compute the partial derivative with respect to the variables unknowns.\n\nComputes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)\n\nunknowns: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nknowns: Real input variables of function h that changes its value in the actual Mode.\nrest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔunknowns = (δh / δknowns) Δknowns\n\nArguments\n\nc::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nunknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).\nnUnknowns::Csize_t:\nknowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).\nnKnowns::Csize_t:\nseed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.\nnKnowns::Csize_t:\nsensitivity::AbstractArray{fmi3Float64}: Stores the directional derivative vector values.\nnKnowns::Csize_t:\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.11. Getting Partial Derivatives\n\nSee also fmi3GetDirectionalDerivative.\n\n\n\n\n\nfmi3GetDirectionalDerivative!(c::FMU3Instance,\n unknowns::AbstractArray{fmi3ValueReference},\n knowns::AbstractArray{fmi3ValueReference},\n sensitivity::AbstractArray{fmi3Float64},\n seed::AbstractArray{fmi3Float64})\n\nWrapper Function call to compute the partial derivative with respect to the variables unknowns.\n\nComputes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)\n\nunknowns: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nknowns: Real input variables of function h that changes its value in the actual Mode.\nrest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔunknowns = (δh / δknowns) Δknowns\n\nArguments\n\nc::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nunknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).\nknowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).\nsensitivity::AbstractArray{fmi3Float64}: Stores the directional derivative vector values.\nseed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.11. Getting Partial Derivatives\n\nSee also fmi3GetDirectionalDerivative!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetContinuousStateDerivatives","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetContinuousStateDerivatives","text":"fmi3GetContinuousStateDerivatives(c::FMU3Instance)\n\nCompute state derivatives at the current time instant and for the current states.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nReturns\n\nderivatives::Array{fmi3Float64}: Returns an array of fmi3Float64 values representing the derivatives for the current states. The ordering of the elements of the derivatives vector is identical to the ordering of the state\n\nvector.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3GetContinuousStateDerivatives.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetContinuousStateDerivatives!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetContinuousStateDerivatives!","text":"Source: FMISpec3.0, Version D5ef1c1: 3.2.1. State: Continuous-Time Mode\n\nCompute first-oder state derivatives at the current time instant and for the current states.\n\n\n\n\n\nfmi3GetContinuousStateDerivatives!(c::FMU3Instance,\n derivatives::AbstractArray{fmi3Float64},\n nx::Csize_t)\n\nCompute state derivatives at the current time instant and for the current states.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nderivatives::AbstractArray{fmi3Float64}: Argument derivatives contains values of type fmi3Float64 which is a alias type for Real data type.derivatives is the AbstractArray which contains the Real values of the vector that represent the derivatives. The ordering of the elements of the derivatives vector is identical to the ordering of the state vector.\nnx::Csize_t: Argument nx defines the length of vector derivatives and is provided for checking purposes\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3GetContinuousStateDerivatives!.\n\n\n\n\n\nfmi3GetContinuousStateDerivatives!(c::FMU3Instance, derivatives::Array{fmi3Float64})\n\nCompute state derivatives at the current time instant and for the current states.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nderivatives::AbstractArray{fmi3Float64}: Argument derivatives contains values of type fmi3Float64 which is a alias type for Real data type.derivatives is the AbstractArray which contains the Real values of the vector that represent the derivatives. The ordering of the elements of the derivatives vector is identical to the ordering of the state vector.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 3.2.1. State: Continuous-Time Mode\n\nSee also fmi3GetContinuousStateDerivatives!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetAdjointDerivative","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetAdjointDerivative","text":"fmi3GetAdjointDerivative(c::FMU3Instance,\n unknowns::AbstractArray{fmi3ValueReference},\n knowns::AbstractArray{fmi3ValueReference},\n seed::AbstractArray{fmi3Float64})\n\nWrapper Function call to compute the partial derivative with respect to the variables unknowns.\n\nComputes the adjoint derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)\n\nunknowns: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nknowns: Real input variables of function h that changes its value in the actual Mode.\nrest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔunknowns = (δh / δknowns) Δknowns\n\nArguments\n\nc::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nunknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).\nknowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).\nseed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.\n\nReturns\n\nsensitivity::Array{fmi3Float64}: Return sensitivity contains the directional derivative vector values.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.11. Getting Partial Derivatives\n\nSee also fmi3GetAdjointDerivative.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetAdjointDerivative!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetAdjointDerivative!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.11. Getting Partial Derivatives\n\nThis function computes the adjoint derivatives v^T{sensitivity}= v^T{seed} ⋅ J of an FMU.\n\nunknowns - contains value references to the unknowns.\n\nnUnknowns - contains the length of argument unknowns.\n\nknowns - contains value references of the knowns.\n\nnKnowns - contains the length of argument knowns.\n\nseed - contains the components of the seed vector.\n\nnSeed - contains the length of seed.\n\nsensitivity - contains the components of the sensitivity vector.\n\nnSensitivity - contains the length of sensitivity.\n\nThis function can only be called if the 'ProvidesAdjointDerivatives' tag in the ModelDescription is set.\n\n\n\n\n\nfmi3GetAdjointDerivative!(c::FMU3Instance,\n unknowns::AbstractArray{fmi3ValueReference},\n nUnknowns::Csize_t,\n knowns::AbstractArray{fmi3ValueReference},\n nKnowns::Csize_t,\n seed::AbstractArray{fmi3Float64},\n nSeed::Csize_t,\n sensitivity::AbstractArray{fmi3Float64},\n nSensitivity::Csize_t)\n\nWrapper Function call to compute the partial derivative with respect to the variables unknowns.\n\nComputes the adjoint derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)\n\nunknowns: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nknowns: Real input variables of function h that changes its value in the actual Mode.\nrest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔunknowns = (δh / δknowns) Δknowns\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nunknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).\nnUnknowns::Csize_t:\nknowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).\nnKnowns::Csize_t:\nseed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.\nnKnowns::Csize_t:\nsensitivity::AbstractArray{fmi3Float64}: Stores the adjoint derivative vector values.\nnKnowns::Csize_t:\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.11. Getting Partial Derivatives\n\nSee also fmi3GetAdjointDerivative!.\n\n\n\n\n\nfmi3GetAdjointDerivative!(c::FMU3Instance,\n unknowns::AbstractArray{fmi3ValueReference},\n knowns::AbstractArray{fmi3ValueReference},\n sensitivity::AbstractArray{fmi3Float64},\n seed::AbstractArray{fmi3Float64})\n\nWrapper Function call to compute the partial derivative with respect to the variables unknowns.\n\nComputes the adjoint derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3) and Co-Simulation (section 4). In every Mode, the general form of the FMU equations are: unknowns = 𝐡(knowns, rest)\n\nunknowns: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange/CoSimulation): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nknowns: Real input variables of function h that changes its value in the actual Mode.\nrest: Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔunknowns = (δh / δknowns) Δknowns\n\nArguments\n\nc::FMU3Instance Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nunknowns::AbstracArray{fmi3ValueReference}: Argument unknowns contains values of typefmi3ValueReference which are identifiers of a variable value of the model. unknowns can be equated with unknowns(variable described above).\nknowns::AbstractArray{fmi3ValueReference}: Argument knowns contains values of type fmi3ValueReference which are identifiers of a variable value of the model.knowns can be equated with knowns(variable described above).\nsensitivity::AbstractArray{fmi3Float64}: Stores the directional derivative vector values.\nseed::AbstractArray{fmi3Float64}:The vector values Compute the partial derivative with respect to the given entries in vector knowns with the matching evaluate of sensitivity.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.11. Getting Partial Derivatives\n\nSee also fmi3GetAdjointDerivative!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetOutputDerivatives","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetOutputDerivatives","text":"fmi3GetOutputDerivatives!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nValueReferences::Csizet, order::AbstractArray{fmi3Int32}, values::AbstractArray{fmi3Float64}, nValues::Csizet)\n\nRetrieves the n-th derivative of output values.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::Array{fmi3ValueReference}: Argument vr is an array of nValueReferences value handels called \"ValueReference\" that t define the variables whose derivatives shall be set.\norder::Array{fmi3Int32}: Argument order is an array of fmi3Int32 values witch specifys the corresponding order of derivative of the real input variable.\n\nReturns\n\nvalue::AbstactArray{fmi3Float64}: Return value is an array which represents a vector with the values of the derivatives.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.12. Getting Derivatives of Continuous Outputs\n\nSee also fmi3GetOutputDerivatives.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetOutputDerivatives!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetOutputDerivatives!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.12. Getting Derivatives of Continuous Outputs\n\nRetrieves the n-th derivative of output values.\n\nvalueReferences - is a vector of value references that define the variables whose derivatives shall be retrieved. If multiple derivatives of a variable shall be retrieved, list the value reference multiple times.\n\nnValueReferences - is the dimension of the arguments valueReferences and orders.\n\norders - contains the orders of the respective derivative (1 means the first derivative, 2 means the second derivative, …, 0 is not allowed). If multiple derivatives of a variable shall be retrieved, provide a list of them in the orders array, corresponding to a multiply occurring value reference in the valueReferences array. The highest order of derivatives retrievable can be determined by the 'maxOutputDerivativeOrder' tag in the ModelDescription.\n\nvalues - is a vector with the values of the derivatives. The order of the values elements is derived from a twofold serialization: the outer level corresponds to the combination of a value reference (e.g., valueReferences[k]) and order (e.g., orders[k]), and the inner level to the serialization of variables as defined in Section 2.2.6.1. The inner level does not exist for scalar variables.\n\nnValues - is the size of the argument values. nValues only equals nValueReferences if all corresponding output variables are scalar variables.\n\n\n\n\n\nfmi3GetOutputDerivatives!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nValueReferences::Csize_t, order::AbstractArray{fmi3Int32}, values::AbstractArray{fmi3Float64}, nValues::Csize_t)\n\nRetrieves the n-th derivative of output values.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::Array{fmi3ValueReference}: Argument vr is an array of nValueReferences value handels called \"ValueReference\" that t define the variables whose derivatives shall be set.\nnValueReferences::Csize_t: Argument nValueReferences defines the size of vr.\norder::Array{fmi3Int32}: Argument order is an array of fmi3Int32 values witch specifys the corresponding order of derivative of the real input variable.\nvalues::Array{fmi3Float64}: Argument values is an array with the actual values of these variables.\nnValues::Csize_t: Argument nValues defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.12. Getting Derivatives of Continuous Outputs\n\nSee also fmi3GetOutputDerivatives!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3SampleDirectionalDerivative fmi3SampleDirectionalDerivative! fmi3GetJacobian fmi3GetJacobian! fmi3GetFullJacobian fmi3GetFullJacobian!","category":"page"},{"location":"fmi3_lowlevel_library_functions/#TODO:-Clockstuff","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"TODO: Clockstuff","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3GetIntervalDecimal!\nfmi3SetIntervalDecimal\nfmi3GetIntervalFraction!\nfmi3SetIntervalFraction\nfmi3GetShiftDecimal!\nfmi3GetShiftFraction!\nfmi3GetClock\nfmi3GetClock!\nfmi3SetClock\nfmi3ActivateModelPartition","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetIntervalDecimal!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetIntervalDecimal!","text":"fmi3GetIntervalDecimal!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervals::AbstractArray{fmi3Float64}, qualifiers::fmi3IntervalQualifier)\n\nfmi3GetIntervalDecimal retrieves the interval until the next clock tick.\n\nFor input Clocks it is allowed to call this function to query the next activation interval. For changing aperiodic Clock, this function must be called in every Event Mode where this clock was activated. For countdown aperiodic Clock, this function must be called in every Event Mode. Clock intervals are computed in fmi3UpdateDiscreteStates (at the latest), therefore, this function should be called after fmi3UpdateDiscreteStates. For information about fmi3IntervalQualifiers, call ?fmi3IntervalQualifier\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nintervals::AbstractArray{fmi3Float64}: \nqualifiers::fmi3IntervalQualifier: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.9. Clocks\n\nSee also fmi3GetIntervalDecimal!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetIntervalDecimal","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetIntervalDecimal","text":"fmi3SetIntervalDecimal(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervals::AbstractArray{fmi3Float64})\n\nSets the interval until the next clock tick\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nintervals::AbstractArray{fmi3Float64}: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.9. Clocks\n\nSee also fmi3SetIntervalDecimal.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetIntervalFraction!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetIntervalFraction!","text":"fmi3GetIntervalFraction!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervalCounters::AbstractArray{fmi3UInt64}, resolutions::AbstractArray{fmi3UInt64}, qualifiers::fmi3IntervalQualifier)\n\nfmi3GetIntervalFraction retrieves the interval until the next clock tick.\n\nFor input Clocks it is allowed to call this function to query the next activation interval. For changing aperiodic Clock, this function must be called in every Event Mode where this clock was activated. For countdown aperiodic Clock, this function must be called in every Event Mode. Clock intervals are computed in fmi3UpdateDiscreteStates (at the latest), therefore, this function should be called after fmi3UpdateDiscreteStates. For information about fmi3IntervalQualifiers, call ?fmi3IntervalQualifier\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nintervalCounters::AbstractArray{fmi3UInt64}: \nresolutions::AbstractArray{fmi3UInt64}: \nqualifiers::fmi3IntervalQualifier: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.9. Clocks\n\nSee also fmi3GetIntervalFraction!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetIntervalFraction","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetIntervalFraction","text":"fmi3SetIntervalFraction(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, intervalCounters::AbstractArray{fmi3UInt64}, resolutions::AbstractArray{fmi3UInt64})\n\nSets the interval until the next clock tick. Only allowed if the attribute 'supportsFraction' is set.\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nintervalCounters::AbstractArray{fmi3UInt64}: \nresolutions::AbstractArray{fmi3UInt64}: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.9. Clocks\n\nSee also fmi3SetIntervalFraction.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetShiftDecimal!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetShiftDecimal!","text":"fmi3GetShiftDecimal!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, shifts::AbstractArray{fmi3Float64})\n\nfmi3GetShiftDecimal retrieves the delay to the first Clock tick from the FMU.\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nshifts::AbstractArray{fmi3Float64}:\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.9. Clocks\n\nSee also fmi3GetShiftDecimal!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetShiftFraction!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetShiftFraction!","text":"fmi3GetShiftFraction!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, shiftCounters::AbstractArray{fmi3UInt64}, resolutions::AbstractArray{fmi3UInt64})\n\nfmi3GetShiftFraction retrieves the delay to the first Clock tick from the FMU.\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nshiftCounters::AbstractArray{fmi3UInt64}:\nresolutions::AbstractArray{fmi3UInt64}:\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.9. Clocks\n\nSee also fmi3GetShiftFraction!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetClock","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetClock","text":"fmi3GetClock(c::FMU3Instance, vr::fmi3ValueReferenceFormat)\n\nGet the values of an array of fmi3Clock variables.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi3Clock}: returns values of an array of fmi3Clock variables with the dimension of fmi3ValueReferenceFormat length.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetClock.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetClock!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetClock!","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3GetClock!(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Clock}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalue::AbstractArray{fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetClock!.\n\n\n\n\n\nfmi3GetClock!(c::FMU3Instance, vr::fmi3ValueReferenceFormat, values::AbstractArray{fmi3Clock})\n\nWrites the clock values of an array of variables in the given field\n\nfmi3GetClock! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3GetClock!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3SetClock","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3SetClock","text":"Source: FMISpec3.0, Version D5ef1c1: 2.2.6.2. Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nnValue - is different from nvr if the value reference represents an array and therefore are more values tied to a single value reference.\n\n\n\n\n\nfmi3SetClock(c::FMU3Instance, vr::AbstractArray{fmi3ValueReference}, nvr::Csize_t, value::AbstractArray{fmi3Clock}, nvalue::Csize_t)\n\nFunctions to get and set values of variables idetified by their valueReference.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::AbstractArray{fmi3ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalue::AbstractArray{fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.\nnvalue::Csize_t: Argument nvalue defines the size of values.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetClock.\n\n\n\n\n\nfmi3SetClock(c::FMU3Instance, vr::fmi3ValueReferenceFormat, valueSizes::Union{AbstractArray{Csize_t}, Csize_t}, values::Union{AbstractArray{fmi3Clock}, fmi3Clock})\n\nSet the values of an array of clock variables\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi3ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi3ValueReference, Array{fmi3ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{AbstractArray{fmi3Clock}, fmi3Clock}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.6.2. Getting and Setting Variable Values\n\nSee also fmi3SetClock.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3ActivateModelPartition","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3ActivateModelPartition","text":"fmi3ActivateModelPartition(c::FMU3Instance, vr::fmi3ValueReference, activationTime::AbstractArray{fmi3Float64})\n\nDuring Clock Activation Mode (see 5.2.2.) after fmi3ActivateModelPartition has been called for a calculated, tunable or changing Clock the FMU provides the information on when the Clock will tick again, i.e. when the corresponding model partition has to be scheduled the next time.\n\nEach fmi3ActivateModelPartition call is associated with the computation of an exposed model partition of the FMU and therefore to an input Clock.\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReference: Argument vr is the value handel called \"ValueReference\" that define the variable that shall be inquired.\nactivationTime::AbstractArray{fmi3Float64}: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 5.2.2. State: Clock Activation Mode\n\nSee also fmi3ActivateModelPartition.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3CallbackClockUpdate","category":"page"},{"location":"fmi3_lowlevel_library_functions/#Conversion-functions","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Conversion functions","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"stringToType\ntypeToString\nstringToVariableNamingConvention\nvariableNamingConventionToString\nintervalQualifierToString","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMIBase.stringToType","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.stringToType","text":"stringToType(s::AbstractString)\n\nConvert s (\"coSimulation\", \"modelExchange\", \"scheduledExecution\") to the corresponding fmi3Type.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIBase.typeToString","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.typeToString","text":"typeToString(c::fmi3Type)\n\nConvert fmi3Type c to the corresponding String (\"coSimulation\", \"modelExchange\", \"scheduledExecution\").\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIBase.stringToVariableNamingConvention","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.stringToVariableNamingConvention","text":"stringToVariableNamingConvention(s::AbstractString)\n\nConvert s (\"flat\", \"structured\") to the corresponding fmi3VariableNamingConvention.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIBase.variableNamingConventionToString","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.variableNamingConventionToString","text":"variableNamingConventionToString(c::fmi3VariableNamingConvention)\n\nConvert fmi3VariableNamingConvention c to the corresponding String (\"flat\", \"structured\").\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIBase.intervalQualifierToString","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.intervalQualifierToString","text":"intervalQualifierToString(c::fmi3IntervalQualifier)\n\nConvert fmi3IntervalQualifier c to the corresponding String (\"intervalNotYetKnown\", \"intervalUnchanged\", \"intervalChanged\").\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3StringToCausality fmi3StatusToString fmi3StringToInitial","category":"page"},{"location":"fmi3_lowlevel_library_functions/#External/Additional-functions","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"External/Additional functions","text":"","category":"section"},{"location":"fmi3_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi3GetNumberOfVariableDependencies\nfmi3GetNumberOfVariableDependencies!\nfmi3GetVariableDependencies\nfmi3GetVariableDependencies!","category":"page"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetNumberOfVariableDependencies","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetNumberOfVariableDependencies","text":"fmi3GetNumberOfVariableDependencies(c::FMU3Instance, vr::fmi3ValueReference, nvr::Ref{Csize_t})\n\nThe number of dependencies of a given variable, which may change if structural parameters are changed, can be retrieved by calling fmi3GetNumberOfVariableDependencies.\n\nThis information can only be retrieved if the 'providesPerElementDependencies' tag in the ModelDescription is set.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::Union{fmi3ValueReference, String}: Argument vr is the value handel called \"ValueReference\" that define the variable that shall be inquired.\n\nReturns\n\nsize::Integer: Return size is the number of variable dependencies for the given variable \n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.10. Dependencies of Variables\n\nSee also fmi3GetNumberOfVariableDependencies.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetNumberOfVariableDependencies!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetNumberOfVariableDependencies!","text":"fmi3GetNumberOfVariableDependencies!(c::FMU3Instance, vr::fmi3ValueReference, nvr::Ref{Csize_t})\n\nThe number of dependencies of a given variable, which may change if structural parameters are changed, can be retrieved by calling fmi3GetNumberOfVariableDependencies.\n\nThis information can only be retrieved if the 'providesPerElementDependencies' tag in the ModelDescription is set.\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReference: Argument vr is the value handel called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.10. Dependencies of Variables\n\nSee also fmi3GetNumberOfVariableDependencies!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMIImport.fmi3GetVariableDependencies","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi3GetVariableDependencies","text":"fmi3GetVariableDependencies(c::FMU3Instance, vr::Union{fmi3ValueReference, String})\n\nThe actual dependencies (of type dependenciesKind) can be retrieved by calling the function fmi3GetVariableDependencies:\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::Union{fmi3ValueReference, String}: Argument vr is the value handel called \"ValueReference\" that define the variable that shall be inquired.\n\nReturns\n\nelementIndicesOfDependent::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the dependent variable that dependency information is provided for. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)\nindependents::AbstractArray{fmi3ValueReference}: must point to a buffer of fmi3ValueReference values of size nDependencies allocated by the calling environment. It is filled in by this function with the value reference of the independent variable that this dependency entry is dependent upon.\nelementIndicesIndependents::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the independent variable that this dependency entry is dependent upon. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)\ndependencyKinds::AbstractArray{fmi3DependencyKind}: must point to a buffer of dependenciesKind values of size nDependencies allocated by the calling environment. It is filled in by this function with the enumeration value describing the dependency of this dependency entry.\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.10. Dependencies of Variables\n\nSee also fmi3GetVariableDependencies!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_library_functions/#FMICore.fmi3GetVariableDependencies!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi3GetVariableDependencies!","text":"fmi3GetVariableDependencies!(c::FMU3Instance, vr::fmi3ValueReference, elementIndiceOfDependents::AbstractArray{Csize_t}, independents::AbstractArray{fmi3ValueReference}, \n elementIndiceOfInpendents::AbstractArray{Csize_t}, dependencyKind::AbstractArray{fmi3DependencyKind}, ndependencies::Csize_t)\n\nThe actual dependencies (of type dependenciesKind) can be retrieved by calling the function fmi3GetVariableDependencies:\n\nArguments\n\nc::FMU3Instance: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\nvr::fmi3ValueReference: Argument vr is the value handel called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nelementIndiceOfDependents::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the dependent variable that dependency information is provided for. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)\nindependents::AbstractArray{fmi3ValueReference}: must point to a buffer of fmi3ValueReference values of size nDependencies allocated by the calling environment. It is filled in by this function with the value reference of the independent variable that this dependency entry is dependent upon.\nelementIndiceOfInpendents::AbstractArray{Csize_t}: must point to a buffer of size_t values of size nDependencies allocated by the calling environment. It is filled in by this function with the element index of the independent variable that this dependency entry is dependent upon. The element indices start with 1. Using the element index 0 means all elements of the variable. (Note: If an array has more than one dimension the indices are serialized in the same order as defined for values in Section 2.2.6.1.)\ndependencyKind::AbstractArray{fmi3DependencyKind}: must point to a buffer of dependenciesKind values of size nDependencies allocated by the calling environment. It is filled in by this function with the enumeration value describing the dependency of this dependency entry.\nndependencies::Csize_t: specifies the number of dependencies that the calling environment allocated space for in the result buffers, and should correspond to value obtained by calling fmi3GetNumberOfVariableDependencies.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.2.10. Dependencies of Variables\n\nSee also fmi3GetVariableDependencies!.\n\n\n\n\n\n","category":"function"},{"location":"examples/parameter_optimization/#FMU-Parameter-Optimization","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Tutorial by Tobias Thummerer","category":"page"},{"location":"examples/parameter_optimization/#License","page":"FMU Parameter Optimization","title":"License","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/parameter_optimization/#Introduction-to-the-example","page":"FMU Parameter Optimization","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"This example shows how a parameter optimization can be set up for a FMU. The goal is to fit FMU parameters (and initial states), so that a reference trajectory is fit as good as possible.","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Note, that this tutorial covers optimization without gradient information. Basically, FMI.jl supports gradient based optimization, too.","category":"page"},{"location":"examples/parameter_optimization/#Other-formats","page":"FMU Parameter Optimization","title":"Other formats","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/parameter_optimization/#Getting-started","page":"FMU Parameter Optimization","title":"Getting started","text":"","category":"section"},{"location":"examples/parameter_optimization/#Installation-prerequisites","page":"FMU Parameter Optimization","title":"Installation prerequisites","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":" Description Command\n1. Enter Package Manager via ]\n2. Install FMI via add FMI\n3. Install FMIZoo via add FMIZoo\n4. Install Optim via add Optim\n5. Install Plots via add Plots","category":"page"},{"location":"examples/parameter_optimization/#Code-section","page":"FMU Parameter Optimization","title":"Code section","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"# imports\nusing FMI\nusing FMIZoo\nusing Optim\nusing Plots\nusing DifferentialEquations","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00c1821a7a7d is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]","category":"page"},{"location":"examples/parameter_optimization/#Simulation-setup","page":"FMU Parameter Optimization","title":"Simulation setup","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Next, the start time and end time of the simulation are set.","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"tStart = 0.0\ntStop = 5.0\ntStep = 0.1\ntSave = tStart:tStep:tStop","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"0.0:0.1:5.0","category":"page"},{"location":"examples/parameter_optimization/#Import-FMU","page":"FMU Parameter Optimization","title":"Import FMU","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"In the next lines of code the FMU model from FMIZoo.jl is loaded and the information about the FMU is shown.","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"# we use an FMU from the FMIZoo.jl\nfmu = loadFMU(\"SpringPendulum1D\", \"Dymola\", \"2022x\"; type=:ME)\ninfo(fmu)","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"#################### Begin information for FMU ####################\n\tModel name:\t\t\tSpringPendulum1D\n\tFMI-Version:\t\t\t2.0\n\tGUID:\t\t\t\t{fc15d8c4-758b-48e6-b00e-5bf47b8b14e5}\n\tGeneration tool:\t\tDymola Version 2022x (64-bit), 2021-10-08\n\tGeneration time:\t\t2022-05-19T06:54:23Z\n\tVar. naming conv.:\t\tstructured\n\tEvent indicators:\t\t0\n\tInputs:\t\t\t\t0\n\tOutputs:\t\t\t0\n\tStates:\t\t\t\t2\n\t\t33554432 [\"mass.s\"]\n\t\t33554433 [\"mass.v\"]\n\tParameters:\t\t\t7\n\t\t16777216 [\"mass_s0\"]\n\t\t16777217 [\"mass_v0\"]\n\t\t16777218 [\"fixed.s0\"]\n\t\t16777219 [\"spring.c\"]\n\t\t16777220 [\"spring.s_rel0\"]\n\t\t16777221 [\"mass.m\"]\n\t\t16777222 [\"mass.L\"]\n\tSupports Co-Simulation:\t\ttrue\n\t\tModel identifier:\tSpringPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n\t\tVar. com. steps:\ttrue\n\t\tInput interpol.:\ttrue\n\t\tMax order out. der.:\t1\n\tSupports Model-Exchange:\ttrue\n\t\tModel identifier:\tSpringPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n##################### End information for FMU #####################","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Now, the optimization objective (the function to minimize) needs to be defined. In this case, we just want to do a simulation and compare it to a regular sin wave.","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"s_tar = 1.0 .+ sin.(tSave)\n\n# a function to simulate the FMU for given parameters\nfunction simulateFMU(p)\n s0, v0, c, m = p # unpack parameters: s0 (start position), v0 (start velocity), c (spring constant) and m (pendulum mass)\n\n # pack the parameters into a dictionary\n paramDict = Dict{String, Any}()\n paramDict[\"spring.c\"] = c \n paramDict[\"mass.m\"] = m\n\n # pack the start state\n x0 = [s0, v0]\n\n # simulate with given start stae and parameters\n sol = simulate(fmu, (tStart, tStop); x0=x0, parameters=paramDict, saveat=tSave)\n\n # get state with index 1 (the position) from the solution\n s_res = getState(sol, 1; isIndex=true) \n\n return s_res\nend\n\n# the optimization objective\nfunction objective(p)\n s_res = simulateFMU(p)\n\n # return the position error sum between FMU simulation (s_res) and target (s_tar)\n return sum(abs.(s_tar .- s_res)) \nend","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"objective (generic function with 1 method)","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Now let's see how far we are away for our guess parameters:","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"s0 = 0.0 \nv0 = 0.0\nc = 1.0\nm = 1.0 \np = [s0, v0, c, m]\n\nobj_before = objective(p) # not really good!","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"54.43219974960283","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Let's have a look on the differences:","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"s_fmu = simulateFMU(p); # simulate the position\n\nplot(tSave, s_fmu; label=\"FMU\")\nplot!(tSave, s_tar; label=\"Optimization target\")","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"(Image: svg)","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Not that good. So let's do a bit of optimization!","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"opt = Optim.optimize(objective, p; iterations=250) # do max. 250 iterations\nobj_after = opt.minimum # much better!\np_res = opt.minimizer # the optimized parameters","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"4-element Vector{Float64}:\n 1.0005495669203626\n 0.9770845942654273\n 0.1639122205807238\n 0.14283995779131217","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Looks promising, let's have a look on the results plot:","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"s_fmu = simulateFMU(p_res); # simulate the position\n\nplot(tSave, s_fmu; label=\"FMU\")\nplot!(tSave, s_tar; label=\"Optimization target\")","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"(Image: svg)","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"Actually a pretty fit! If you have higher requirements, check out the Optim.jl library.","category":"page"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"unloadFMU(fmu)","category":"page"},{"location":"examples/parameter_optimization/#Summary","page":"FMU Parameter Optimization","title":"Summary","text":"","category":"section"},{"location":"examples/parameter_optimization/","page":"FMU Parameter Optimization","title":"FMU Parameter Optimization","text":"This tutorial showed how a parameter (and start value) optimization can be performed on a FMU with a gradient free optimizer. This tutorial will be extended soon to further show how convergence for large parameter spaces can be improoved!","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMI-Common-Concepts-for-Model-Exchange-and-Co-Simulation","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"In both cases, FMI defines an input/output block of a dynamic model where the distribution of the block, the platform dependent header file, several access functions, as well as the schema files are identical.","category":"page"},{"location":"fmi2_lowlevel_library_functions/#Opening-and-closing-FMUs","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Opening and closing FMUs","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"","category":"page"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2Unzip fmi2Load fmi2Reload fmi2Unload","category":"page"},{"location":"fmi2_lowlevel_library_functions/#Creation,-Destruction-and-Logging-of-FMU-Instances","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Creation, Destruction and Logging of FMU Instances","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2Instantiate!\nfmi2Instantiate\nfmi2FreeInstance\nfmi2SetDebugLogging","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2Instantiate!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2Instantiate!","text":"fmi2Instantiate!(fmu::FMU2;\n instanceName::String=fmu.modelName,\n type::fmi2Type=fmu.type,\n pushComponents::Bool = true,\n visible::Bool = false,\n loggingOn::Bool = fmu.executionConfig.loggingOn,\n externalCallbacks::Bool = fmu.executionConfig.externalCallbacks,\n logStatusOK::Bool=true,\n logStatusWarning::Bool=true,\n logStatusDiscard::Bool=true,\n logStatusError::Bool=true,\n logStatusFatal::Bool=true,\n logStatusPending::Bool=true)\n\nCreate a new instance of the given fmu, adds a logger if logginOn == true.\n\nArguments\n\nfmu::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\n\nKeywords\n\ninstanceName::String=fmu.modelName: Name of the instance\ntype::fmi2Type=fmu.type: Defines whether a Co-Simulation or Model Exchange is present\npushComponents::Bool = true: Defines if the fmu components should be pushed in the application.\nvisible::Bool = false if the FMU should be started with graphic interface, if supported (default=false)\nloggingOn::Bool = fmu.executionConfig.loggingOn if the FMU should log and display function calls (default=false)\nexternalCallbacks::Bool = fmu.executionConfig.externalCallbacks if an external shared library should be used for the fmi2CallbackFunctions, this may improve readability of logging messages (default=false)\nlogStatusOK::Bool=true whether to log status of kind fmi2OK (default=true)\nlogStatusWarning::Bool=true whether to log status of kind fmi2Warning (default=true)\nlogStatusDiscard::Bool=true whether to log status of kind fmi2Discard (default=true)\nlogStatusError::Bool=true whether to log status of kind fmi2Error (default=true)\nlogStatusFatal::Bool=true whether to log status of kind fmi2Fatal (default=true)\nlogStatusPending::Bool=true whether to log status of kind fmi2Pending (default=true)\n\nReturns\n\nReturns the instance of a new FMU component.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2: 2.2.7 Definition of Model Variables (ModelVariables)\n\nSee also fmi2Instantiate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2Instantiate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2Instantiate","text":"Source: FMISpec2.0.2[p.19]: 2.1.5 Creation, Destruction and Logging of FMU Instances\n\nThe function returns a new instance of an FMU.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2FreeInstance","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2FreeInstance","text":"Source: FMISpec2.0.2[p.22]: 2.1.5 Creation, Destruction and Logging of FMU Instances\n\nDisposes the given instance, unloads the loaded model, and frees all the allocated memory and other resources that have been allocated by the functions of the FMU interface. If a null pointer is provided for “c”, the function call is ignored (does not have an effect).\n\nRemoves the component from the FMUs component list.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetDebugLogging","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetDebugLogging","text":"Source: FMISpec2.0.2[p.22]: 2.1.5 Creation, Destruction and Logging of FMU Instances\n\nThe function controls debug logging that is output via the logger function callback. If loggingOn = fmi2True, debug logging is enabled, otherwise it is switched off.\n\n\n\n\n\nfmi2SetDebugLogging(c::FMU2Component, loggingOn::fmi2Boolean, nCategories::Unsigned, categories::Ptr{Nothing})\n\nControl the use of the logging callback function, version independent.\n\nArguments\n\nc::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nloggingOn::fmi2Boolean: If loggingOn = fmi2True, debug logging is enabled for the log categories specified in categories, otherwise it is disabled. Type fmi2Boolean is defined as an alias Type for the C-Type Boolean and is to be used with fmi2True and fmi2False.\nnCategories::Unsigned: Argument nCategories defines the length of the argument categories.\ncategories::Ptr{Nothing}:\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.22]: 2.1.5 Creation, Destruction and Logging of FMU Instances\n\nSee also fmi2SetDebugLogging.\n\n\n\n\n\nfmi2SetDebugLogging(c::FMU2Component)\n\nControl the use of the logging callback function, version independent.\n\nArguments\n\nc::FMU2Component: Argument c is a mutable struct representing an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.22]: 2.1.5 Creation, Destruction and Logging of FMU Instances\n\nSee also fmi2SetDebugLogging.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#Initialization,-Termination,-and-Resetting-an-FMU","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Initialization, Termination, and Resetting an FMU","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2SetupExperiment\nfmi2EnterInitializationMode\nfmi2ExitInitializationMode\nfmi2Terminate\nfmi2Reset","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetupExperiment","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetupExperiment","text":"Source: FMISpec2.0.2[p.23]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nInforms the FMU to setup the experiment. This function must be called after fmi2Instantiate and before fmi2EnterInitializationMode is called.The function controls debug logging that is output via the logger function callback. If loggingOn = fmi2True, debug logging is enabled, otherwise it is switched off.\n\n\n\n\n\nfmi2SetupExperiment(c::FMU2Component, toleranceDefined::fmi2Boolean, tolerance::fmi2Real, startTime::fmi2Real, stopTimeDefined::fmi2Boolean, stopTime::fmi2Real)\n\nInforms the FMU to setup the experiment. This function must be called after fmi2Instantiate and before fmi2EnterInitializationMode is called.\n\nArguments\n\nc::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\ntoleranceDefined::fmi2Boolean: Arguments toleranceDefined depend on the FMU type:\nfmuType = fmi2ModelExchange: If toleranceDefined = fmi2True, then the model is called with a numerical integration scheme where the step size is controlled by using tolerance for error estimation. In such a case, all numerical algorithms used inside the model (for example, to solve non-linear algebraic equations) should also operate with an error estimation of an appropriate smaller relative tolerance.\nfmuType = fmi2CoSimulation: If toleranceDefined = fmi2True, then the communication interval of the slave is controlled by error estimation. In case the slave utilizes a numerical integrator with variable step size and error estimation, it is suggested to use “tolerance” for the error estimation of the internal integrator (usually as relative tolerance). An FMU for Co-Simulation might ignore this argument.\nstartTime::fmi2Real: Argument startTime can be used to check whether the model is valid within the given boundaries or to allocate memory which is necessary for storing results. It is the fixed initial value of the independent variable and if the independent variable is time, startTime is the starting time of initializaton.\nstopTimeDefined::fmi2Boolean: If stopTimeDefined = fmi2True, then stopTime is the defined final value of the independent variable and if stopTimeDefined = fmi2False, then no final value\n\nof the independent variable is defined and argument stopTime is meaningless.\n\nstopTime::fmi2Real: Argument stopTime can be used to check whether the model is valid within the given boundaries or to allocate memory which is necessary for storing results. It is the fixed final value of the independent variable and if the independent variable is “time”, stopTime is the stop time of the simulation.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nSee also fmi2SetupExperiment.\n\n\n\n\n\nfmi2SetupExperiment(c::FMU2Component, \n startTime::Union{Real, Nothing} = nothing, \n stopTime::Union{Real, Nothing} = nothing; \n tolerance::Union{Real, Nothing} = nothing)\n\nSetup the simulation but without defining all of the parameters.\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct representing an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nstartTime::Union{Real, Nothing} = nothing: startTime is a real number which sets the value of starting time of the experiment. The default value is set automatically if doing nothing (default = nothing).\nstopTime::Union{Real, Nothing} = nothing: stopTime is a real number which sets the value of ending time of the experiment. The default value is set automatically if doing nothing (default = nothing).\n\nKeywords\n\ntolerance::Union{Real, Nothing} = nothing: tolerance is a real number which sets the value of tolerance range. The default value is set automatically if doing nothing (default = nothing).\n\nReturns\n\nReturns a warning if str.state is not called in fmi2ComponentStateInstantiated.\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.23]: 2.1.6 Initialization, Termination, and Resetting an FMU\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2SetupExperiment.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2EnterInitializationMode","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2EnterInitializationMode","text":"Source: FMISpec2.0.2[p.23]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nInforms the FMU to enter Initialization Mode. Before calling this function, all variables with attribute can be set with the “fmi2SetXXX” functions (the ScalarVariable attributes are defined in the Model Description File, see section 2.2.7). Setting other variables is not allowed. Furthermore, fmi2SetupExperiment must be called at least once before calling fmi2EnterInitializationMode, in order that startTime is defined.\n\n\n\n\n\nfmi2EnterInitializationMode(c::FMU2Component)\n\nInforms the FMU to enter Initialization Mode. Before calling this function, all variables with attribute can be set with the “fmi2SetXXX” functions (the ScalarVariable attributes are defined in the Model Description File, see section 2.2.7). Setting other variables is not allowed. Furthermore, fmi2SetupExperiment must be called at least once before calling fmi2EnterInitializationMode, in order that startTime is defined.\n\nArguments\n\nc::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nSee also fmi2EnterInitializationMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2ExitInitializationMode","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2ExitInitializationMode","text":"Source: FMISpec2.0.2[p.23]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nInforms the FMU to exit Initialization Mode.\n\n\n\n\n\nfmi2ExitInitializationMode(c::FMU2Component)\n\nInforms the FMU to exit Initialization Mode.\n\nArguments\n\nc::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nSee also fmi2EnterInitializationMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2Terminate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2Terminate","text":"Source: FMISpec2.0.2[p.24]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nInforms the FMU that the simulation run is terminated.\n\n\n\n\n\nfmi2Terminate(c::FMU2Component; soft::Bool=false)\n\nInforms the FMU that the simulation run is terminated.\n\nArguments\n\nc::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.22]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nSee also fmi2Terminate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2Reset","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2Reset","text":"Source: FMISpec2.0.2[p.24]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nIs called by the environment to reset the FMU after a simulation run. The FMU goes into the same state as if fmi2Instantiate would have been called.\n\n\n\n\n\nfmi2Reset(c::FMU2Component; soft::Bool=false)\n\nIs called by the environment to reset the FMU after a simulation run. The FMU goes into the same state as if fmi2Instantiate would have been called.All variables have their default values. Before starting a new run, fmi2SetupExperiment and fmi2EnterInitializationMode have to be called.\n\nArguments\n\nc::FMU2Component: Argument c is a Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the command is only performed if the FMU is in an allowed state for this command.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.3 Link: https://fmi-standard.org/\nFMISpec2.0.3[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.3[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.3[p.22]: 2.1.6 Initialization, Termination, and Resetting an FMU\n\nSee also fmi2Terminate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#Getting-and-Setting-Variable-Values","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Getting and Setting Variable Values","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"All variable values of an FMU are identified with a variable handle called “value reference”. The handle is defined in the modelDescription.xml file (as attribute “valueReference” in element “ScalarVariable”). Element “valueReference” might not be unique for all variables. If two or more variables of the same base data type (such as fmi2Real) have the same valueReference, then they have identical values but other parts of the variable definition might be different (for example, min/max attributes).","category":"page"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2GetReal\nfmi2GetReal!\nfmi2GetInteger\nfmi2GetInteger!\nfmi2GetBoolean\nfmi2GetBoolean!\nfmi2GetString\nfmi2GetString!\nfmi2SetReal\nfmi2SetInteger\nfmi2SetBoolean\nfmi2SetString","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2GetReal","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2GetReal","text":"fmi2GetReal(c::FMU2Component, vr::fmi2ValueReferenceFormat)\n\nGet the values of an array of fmi2Real variables.\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fm2Real}: Returns values of an array of fmi2Real variables with the dimension of fmi2ValueReferenceFormat length.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetReal.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2GetReal!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2GetReal!","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2GetReal!(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Real})\n\nFunctions to get and set values of variables idetified by their valueReference\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fm2Real}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nSee also fmi2GetReal!.\n\n\n\n\n\nfmi2GetReal!(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::AbstractArray{fmi2Real})\n\nGet the values of an array of fmi2Real variables.\n\nrites the real values of an array of variables in the given field\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fm2Real}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetReal!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2GetInteger","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2GetInteger","text":"fmi2GetInteger(c::FMU2Component, vr::fmi2ValueReferenceFormat)\n\nReturns the integer values of an array of variables\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi2Integer}: Return values is an array with the actual values of these variables.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetInteger!\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2GetInteger!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2GetInteger!","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2GetInteger!(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Integer})\n\nWrites the integer values of an array of variables in the given field\n\nfmi2GetInteger! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels, called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi2Integer}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetInteger!.\n\n\n\n\n\nfmi2GetInteger!(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::AbstractArray{fmi2Integer})\n\nWrites the integer values of an array of variables in the given field\n\nfmi2GetInteger! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::Array{fmi2Integer}: Argument values is an array with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetInteger!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2GetBoolean","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2GetBoolean","text":"fmi2GetBoolean(c::FMU2Component, vr::fmi2ValueReferenceFormat)\n\nGet the values of an array of fmi2Boolean variables.\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi2Boolean}: Return values is an array with the actual values of these variables.\n\nSee also fmi2GetBoolean!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2GetBoolean!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2GetBoolean!","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2GetBoolean!(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Boolean})\n\nWrites the boolean values of an array of variables in the given field\n\nfmi2GetBoolean! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalue::AbstractArray{fmi2Boolean}: Argument values is an array with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetBoolean!.\n\n\n\n\n\nfmi2GetBoolean!(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::AbstractArray{fmi2Boolean})\n\nWrites the boolean values of an array of variables in the given field\n\nfmi2GetBoolean! is only possible for arrays of values, please use an array instead of a scalar.\n\nArguments\n\nstr::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nstr::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi2Boolean}: Argument value is an array with the actual values of these variables\n\nReturns\n\nReturn singleton instance of type Nothing, if there is no value to return (as in a C void function) or when a variable or field holds no value.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetBoolean!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2GetString","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2GetString","text":"fmi2GetString(c::FMU2Component, vr::fmi2ValueReferenceFormat)\n\nGet the values of an array of fmi2String variables.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nvalues::Array{fmi2String}: Return values is an array with the actual values of these variables.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetString!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2GetString!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2GetString!","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2GetString!(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::Union{AbstractArray{Ptr{Cchar}}, AbstractArray{Ptr{UInt8}}})\n\nFunctions to get and set values of variables idetified by their valueReference\n\nThese functions are especially used to get the actual values of output variables if a model is connected with other models.\n\nArguments\n\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalue::Union{AbstractArray{Ptr{Cchar}, AbstractArray{Ptr{UInt8}}}: The value argument is an AbstractArray of values whose memory address refers to data of type Cchar or UInt8and describes a vector with the actual values of these. variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nSee also fmi2GetString!.\n\n\n\n\n\nfmi2GetString!(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::AbstractArray{fmi2String})\n\nWrites the string values of an array of variables in the given field\n\nThese functions are especially used to get the actual values of output variables if a model is connected with other models.\n\nArguments\n\nstr::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nstr::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::AbstractArray{fmi2String}: Argument values is an AbstractArray with the actual values of these variables\n\nReturns\n\nReturn singleton instance of type Nothing, if there is no value to return (as in a C void function) or when a variable or field holds no value.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetString!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetReal","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetReal","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2SetReal(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Real})\n\nFunctions to get and set values of variables idetified by their valueReference\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels, called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fm2Real}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nSee also fmi2GetReal.\n\n\n\n\n\nfmi2SetReal(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::Union{AbstractArray{<:Real}, <:Real})\n\nSet the values of an array of real variables\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{Array{<:Real}, <:Real}: Argument values is an array with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2SetReal.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetInteger","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetInteger","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2SetInteger(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Integer})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an AbstractArray of nvr value handels, called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalues::AbstractArray{fmi2Integer}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetInteger!.\n\n\n\n\n\nfmi2SetInteger(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::Union{AbstractArray{<:Integer}, <:Integer})\n\nSet the values of an array of integer variables\n\nArguments\n\nc::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nc::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nvalues::Union{Array{<:Integer}, <:Integer}: Argument values is an array or a single value with type Integer or any subtyp\n\nReturns\n\nstatus::fmi2Status: Return status indicates the success of the function call.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2SetInteger.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetBoolean","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetBoolean","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2SetBoolean(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::AbstractArray{fmi2Boolean})\n\nFunctions to get and set values of variables idetified by their valueReference\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalue::AbstractArray{fmi2Boolean}: Argument values is an array with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetBoolean.\n\n\n\n\n\nfmi2SetBoolean(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::Union{AbstractArray{Bool}, Bool})\n\nSet the values of an array of boolean variables\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{Array{Bool}, Bool}: Argument values is an array or a single value with type Boolean or any subtyp\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\n\nSee also fmi2GetBoolean!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetString","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetString","text":"Source: FMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nFunctions to get and set values of variables idetified by their valueReference\n\n\n\n\n\nfmi2SetString(c::FMU2Component, vr::AbstractArray{fmi2ValueReference}, nvr::Csize_t, value::Union{AbstractArray{Ptr{Cchar}}, AbstractArray{Ptr{UInt8}}})\n\nSet the values of an array of string variables\n\nFor the exact rules on which type of variables fmi2SetXXX can be called see FMISpec2.0.2 section 2.2.7 , as well as FMISpec2.0.2 section 3.2.3 in case of ModelExchange and FMISpec2.0.2 section 4.2.4 in case ofCoSimulation.\n\nArguments\n\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::AbstractArray{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that define the variable that shall be inquired.\nnvr::Csize_t: Argument nvr defines the size of vr.\nvalue::Union{AbstractArray{Ptr{Cchar}, AbstractArray{Ptr{UInt8}}}: The value argument is an AbstractArray of values whose memory address refers to data of type Cchar or UInt8and describes a vector with the actual values of these. variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nSee also fmi2GetString!.\n\n\n\n\n\nfmi2SetString(c::FMU2Component, vr::fmi2ValueReferenceFormat, values::Union{AbstractArray{String}, String})\n\nSet the values of an array of string variables\n\nFor the exact rules on which type of variables fmi2SetXXX can be called see FMISpec2.0.2 section 2.2.7 , as well as FMISpec2.0.2 section 3.2.3 in case of ModelExchange and FMISpec2.0.2 section 4.2.4 in case of CoSimulation.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::fmi2ValueReferenceFormat: Argument vr defines the value references of the variables.\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nvalues::Union{Array{String}, String}: Argument values is an array or a single value with type String.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\nFMISpec2.0.2[p.46]: 2.2.7 Definition of Model Variables\nFMISpec2.0.2[p.46]: 3.2.3 State Machine of Calling Sequence\nFMISpec2.0.2[p.108]: 4.2.4 State Machine of Calling Sequence from Master to Slave\n\nSee also fmi2SetString.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2Get fmi2Get! fmi2Set","category":"page"},{"location":"fmi2_lowlevel_library_functions/#Getting-and-Setting-the-Complete-FMU-State","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Getting and Setting the Complete FMU State","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"The FMU has an internal state consisting of all values that are needed to continue a simulation. This internal state consists especially of the values of the continuous-time states, iteration variables, parameter values, input values, delay buffers, file identifiers, and FMU internal status information. With the functions of this section, the internal FMU state can be copied and the pointer to this copy is returned to the environment. The FMU state copy can be set as actual FMU state, in order to continue the simulation from it.","category":"page"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2GetFMUstate\nfmi2GetFMUstate!\nfmi2SetFMUstate\nfmi2FreeFMUstate\nfmi2SerializedFMUstateSize\nfmi2SerializedFMUstateSize!\nfmi2SerializeFMUstate\nfmi2SerializeFMUstate!\nfmi2DeSerializeFMUstate\nfmi2DeSerializeFMUstate!","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2GetFMUstate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2GetFMUstate","text":"fmi2GetFMUstate(c::FMU2Component)\n\nMakes a copy of the internal FMU state and returns a pointer to this copy.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\n\nReturns\n\nReturn state is a pointer to a copy of the internal FMU state.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2GetFMUstate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2GetFMUstate!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2GetFMUstate!","text":"Source: FMISpec2.0.2[p.26]: 2.1.8 Getting and Setting the Complete FMU State\n\nfmi2GetFMUstate makes a copy of the internal FMU state and returns a pointer to this copy\n\n\n\n\n\nfmi2GetFMUstate!(c::FMU2Component, FMUstate::Ref{fmi2FMUstate})\n\nMakes a copy of the internal FMU state and returns a pointer to this copy.\n\nArguments\n\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nFMUstate::Ref{fmi2FMUstate}:If on entry FMUstate == NULL, a new allocation is required. If FMUstate != NULL, then FMUstate points to a previously returned FMUstate that has not been modified since.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.24]: 2.1.7 Getting and Setting Variable Values\n\nSee also fmi2GetFMUstate!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetFMUstate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetFMUstate","text":"Source: FMISpec2.0.2[p.26]: 2.1.8 Getting and Setting the Complete FMU State\n\nfmi2SetFMUstate copies the content of the previously copied FMUstate back and uses it as actual new FMU state.\n\n\n\n\n\nfmi2SetFMUstate(c::FMU2Component, FMUstate::fmi2FMUstate)\n\nCopies the content of the previously copied FMUstate back and uses it as actual new FMU state.\n\nArguments\n\nstr::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nstr::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nFMUstate::fmi2FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2GetFMUstate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2FreeFMUstate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2FreeFMUstate","text":"Source: FMISpec2.0.2[p.26]: 2.1.8 Getting and setting the complete FMU state\n\nfmi2FreeFMUstate frees all memory and other resources allocated with the fmi2GetFMUstate call for this FMUstate.\n\n\n\n\n\nfmi2FreeFMUstate(c::FMU2Component, FMUstate::Ref{fmi2FMUstate})\n\nFrees all memory and other resources allocated with the fmi2GetFMUstate call for this FMUstate.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nFMUstate::Ref{fmi2FMUstate}: Argument FMUstate is an object that safely references data of type fmi3FMUstate which is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2FreeFMUstate.\n\n\n\n\n\nfmi2FreeFMUstate!(c::FMU2Component, state::fmi2FMUstate)\n\nFree the memory for the allocated FMU state\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nstate::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nReturn singleton instance of type Nothing, if there is no value to return (as in a C void function) or when a variable or field holds no value.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2FreeFMUstate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2SerializedFMUstateSize","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2SerializedFMUstateSize","text":"fmi2SerializedFMUstateSize(c::FMU2Component, state::fmi2FMUstate)\n\nReturns the size of the byte vector in which the FMUstate can be stored.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nstate::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nReturn size is an object that safely references a value of type Csize_t.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2SerializedFMUstateSize.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SerializedFMUstateSize!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SerializedFMUstateSize!","text":"Source: FMISpec2.0.2[p.26]: 2.1.8 Getting and Setting the Complete FMU State\n\nfmi2SerializedFMUstateSize returns the size of the byte vector, in order that FMUstate can be stored in it.\n\n\n\n\n\nfmi2SerializedFMUstateSize!(c::FMU2Component, FMUstate::fmi2FMUstate, size::Ref{Csize_t})\n\nStores the size of the byte vector in the given referenced Address, in order that FMUstate can be stored in it.\n\nArgument\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nFMUstate::fmi2FMUstate: Argument FMUstate is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\nsize::Ref{Csize_t}: Argument size is an object that safely references a value of type Csize_t and defines the size of the byte vector in which the FMUstate can be stored.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2SerializedFMUstateSize!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2SerializeFMUstate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2SerializeFMUstate","text":"fmi2SerializeFMUstate(c::FMU2Component, state::fmi2FMUstate)\n\nSerializes the data referenced by the pointer FMUstate and copies this data into the byte vector serializedState of length size to be provided by the environment.\n\nArguments\n\nstr::fmi2Struct: Representative for an FMU in the FMI 2.0.2 Standard.\n\nMore detailed: fmi2Struct = Union{FMU2, FMU2Component}\n\nstr::FMU2: Mutable struct representing a FMU and all it instantiated instances in the FMI 2.0.2 Standard.\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nstate::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nserializedState:: Array{fmi2Byte}: Return serializedState contains the copy of the serialized data referenced by the pointer FMUstate\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2SerializeFMUstate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SerializeFMUstate!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SerializeFMUstate!","text":"Source: FMISpec2.0.2[p.26]: 2.1.8 Getting and Setting the Complete FMU State\n\nfmi2SerializeFMUstate serializes the data which is referenced by pointer FMUstate and copies this data in to the byte vector serializedState of length size\n\n\n\n\n\nfmi2SerializeFMUstate!(c::FMU2Component, FMUstate::fmi2FMUstate, serialzedState::AbstractArray{fmi2Byte}, size::Csize_t)\n\nSerializes the data which is referenced by pointer FMUstate and copies this data in to the byte vector serializedState of length size, that must be provided by the environment.\n\nArguments\n\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nstate::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\nserialzedState::AbstractArray{fmi2Byte}: Argument serializedState contains the copy of the serialized data referenced by the pointer FMUstate.\nsize::Csize_t: Argument size defines the length of the serialized vector.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2SerializeFMUstate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2DeSerializeFMUstate","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2DeSerializeFMUstate","text":"fmi2DeSerializeFMUstate(c::FMU2Component, serializedState::AbstractArray{fmi2Byte})\n\nDeserialize the data in the serializedState fmi2Byte field\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nserializedState::Array{fmi2Byte}: Argument serializedState contains the fmi2Byte field to be deserialized.\n\nReturns\n\nReturn state is a pointer to a copy of the internal FMU state.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2DeSerializeFMUstate.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2DeSerializeFMUstate!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2DeSerializeFMUstate!","text":"Source: FMISpec2.0.2[p.26]: 2.1.8 Getting and Setting the Complete FMU State\n\nfmi2DeSerializeFMUstate deserializes the byte vector serializedState of length size, constructs a copy of the FMU state and returns FMUstate, the pointer to this copy.\n\n\n\n\n\nfmi2DeSerializeFMUstate!(c::FMU2Component, serializedState::AbstractArray{fmi2Byte}, size::Csize_t, FMUstate::Ref{fmi2FMUstate})\n\nDeserializes the byte vector serializedState of length size, constructs a copy of the FMU state and stores the FMU state in the given address of the reference FMUstate, the pointer to this copy.\n\nArguments\n\nstr::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nstate::fmi2FMUstate: Argument state is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\nserialzedState::AbstractArray{fmi2Byte}: Argument serializedState contains the copy of the serialized data referenced by the pointer FMUstate.\nsize::Csize_t: Argument size defines the length of the serialized vector.\nFMUstate::Ref{fmi2FMUstate}: Argument FMUstate is an object that safely references data of type fmi3FMUstate which is a pointer to a data structure in the FMU that saves the internal FMU state of the actual or a previous time instant.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.8 Getting and Setting the Complete FMU State\n\nSee also fmi2DeSerializeFMUstate!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#Getting-Partial-Dervatives","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Getting Partial Dervatives","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"It is optionally possible to provide evaluation of partial derivatives for an FMU. For Model Exchange, this means computing the partial derivatives at a particular time instant. For Co-Simulation, this means to compute the partial derivatives at a particular communication point. One function is provided to compute directional derivatives. This function can be used to construct the desired partial derivative matrices.","category":"page"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2GetDirectionalDerivative\nfmi2GetDirectionalDerivative!\nfmi2SetRealInputDerivatives\nfmi2GetRealOutputDerivatives!","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMIImport.fmi2GetDirectionalDerivative","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIImport.fmi2GetDirectionalDerivative","text":"fmi2GetDirectionalDerivative(c::FMU2Component,\n vUnknown_ref::AbstractArray{fmi2ValueReference},\n vKnown_ref::AbstractArray{fmi2ValueReference},\n dvKnown::Union{AbstractArray{fmi2Real}, Nothing} = nothing)\n\nWrapper Function call to compute the partial derivative with respect to the variables vKnown_ref.\n\nComputes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns.The precise definitions are given in the mathematical descriptions of Model Exchange (section 3.1) and Co-Simulation (section 4.1). In every Mode, the general form of the FMU equations are: 𝐯unknown = 𝐡(𝐯known, 𝐯_rest)\n\nv_unknown: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nv_known: Real input variables of function h that changes its value in the actual Mode.\nv_rest:Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔv_unknown = (δh / δv_known) Δv_known\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvUnknown_ref::AbstractArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(variable described above).\nvKnown_ref::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref can be equated with v_known(variable described above).\ndvKnown::Union{AbstractArray{fmi2Real}, Nothing} = nothing: If no seed vector is passed the value nothing is used. The vector values Compute the partial derivative with respect to the given entries in vector vKnown_ref with the matching evaluate of dvKnown. # gehört das zu den v_rest values\n\nReturns\n\ndvUnknown::Array{fmi2Real}: Return dvUnknown contains the directional derivative vector values.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.9 Getting Partial Derivatives\n\nSee also fmi2GetDirectionalDerivative!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2GetDirectionalDerivative!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2GetDirectionalDerivative!","text":"Source: FMISpec2.0.2[p.26]: 2.1.9 Getting Partial Derivatives\n\nThis function computes the directional derivatives of an FMU.\n\nΔvUnknown = ∂h / ∂vKnown ⋅ ΔvKnown\n\n\n\n\n\nfmi2GetDirectionalDerivative!(c::FMU2Component,\n vUnknown_ref::AbstractArray{fmi2ValueReference},\n nUnknown::Csize_t,\n vKnown_ref::AbstractArray{fmi2ValueReference},\n nKnown::Csize_t,\n dvKnown::AbstractArray{fmi2Real},\n dvUnknown::AbstractArray{fmi2Real})\n\nWrapper Function call to compute the partial derivative with respect to the variables vKnown_ref.\n\nComputes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns. The precise definitions are given in the mathematical descriptions of Model Exchange (section 3.1) and Co-Simulation (section 4.1). In every Mode, the general form of the FMU equations are: 𝐯unknown = 𝐡(𝐯known, 𝐯_rest)\n\nv_unknown: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nv_known: Real input variables of function h that changes its value in the actual Mode.\nv_rest:Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔvunknown = (δh / δvknown) Δv_known\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvUnknown_ref::AbstracArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(variable described above).\nnUnknown::Csize_t: Length of the Unknown Array.\nvKnown_ref::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref can be equated with v_known(variable described above).\nnKnown::Csize_t: Length of the Known Array.\ndvKnown::AbstractArray{fmi2Real}:The vector values Compute the partial derivative with respect to the given entries in vector vKnown_ref with the matching evaluate of dvKnown.\ndvUnknown::AbstractArray{fmi2Real}: Stores the directional derivative vector values.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.9 Getting Partial Derivatives\n\nSee also fmi2GetDirectionalDerivative!.\n\n\n\n\n\nfmiGetDirectionalDerivative!(c::FMU2Component,\n vUnknown_ref::AbstractArray{fmi2ValueReference},\n vKnown_ref::AbstractArray{fmi2ValueReference},\n dvKnown::Array{fmi2Real},\n dvUnknown::AbstractArray)\n\nWrapper Function call to compute the partial derivative with respect to the variables vKnown_ref.\n\nComputes the directional derivatives of an FMU. An FMU has different Modes and in every Mode an FMU might be described by different equations and different unknowns.The precise definitions are given in the mathematical descriptions of Model Exchange (section 3.1) and Co-Simulation (section 4.1). In every Mode, the general form of the FMU equations are: 𝐯unknown = 𝐡(𝐯known, 𝐯_rest)\n\nv_unknown: vector of unknown Real variables computed in the actual Mode:\nInitialization Mode: unkowns kisted under that have type Real.\nContinuous-Time Mode (ModelExchange): The continuous-time outputs and state derivatives. (= the variables listed under with type Real and variability = continuous and the variables listed as state derivatives under ).\nEvent Mode (ModelExchange): The same variables as in the Continuous-Time Mode and additionally variables under with type Real and variability = discrete.\nStep Mode (CoSimulation): The variables listed under with type Real and variability = continuous or discrete. If is present, also the variables listed here as state derivatives.\nv_known: Real input variables of function h that changes its value in the actual Mode.\nv_rest:Set of input variables of function h that either changes its value in the actual Mode but are non-Real variables, or do not change their values in this Mode, but change their values in other Modes\n\nComputes a linear combination of the partial derivatives of h with respect to the selected input variables 𝐯_known:\n\nΔv_unknown = (δh / δv_known) Δv_known\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvUnknown_ref::AbstracArray{fmi2ValueReference}: Argument vUnknown_ref contains values of typefmi2ValueReference which are identifiers of a variable value of the model. vUnknown_ref can be equated with v_unknown(variable described above).\nvKnown_ref::AbstractArray{fmi2ValueReference}: Argument vKnown_ref contains values of type fmi2ValueReference which are identifiers of a variable value of the model.vKnown_ref can be equated with v_known(variable described above).\ndvUnknown::AbstractArray{fmi2Real}: Stores the directional derivative vector values.\ndvKnown::Union{AbstractArray{fmi2Real}, Nothing} = nothing: If no seed vector is passed the value nothing is used. The vector values Compute the partial derivative with respect to the given entries in vector vKnown_ref with the matching evaluate of dvKnown.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\nFMISpec2.0.2[p.16]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.25]: 2.1.9 Getting Partial Derivatives\n\nSee also fmi2GetDirectionalDerivative!.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2SetRealInputDerivatives","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2SetRealInputDerivatives","text":"Source: FMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters\n\nSets the n-th time derivative of real input variables. vr defines the value references of the variables the array order specifies the corresponding order of derivation of the variables\n\n\n\n\n\nfmi2SetRealInputDerivatives(c::FMU2Component,\n vr::AbstractArray{fmi2ValueReference},\n nvr::Csize_t,\n order::AbstractArray{fmi2Integer}, \n value::AbstractArray{fmi2Real})\n\nSets the n-th time derivative of real input variables.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that t define the variables whose derivatives shall be set.\nnvr::Csize_t: Argument nvr defines the size of vr.\norder::AbstractArray{fmi2Integer}: Argument order is an AbstractArray of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.\nvalues::AbstractArray{fmi2Real}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters\n\nSee also fmi2SetRealInputDerivatives.\n\n\n\n\n\nfmi2SetRealInputDerivatives(c::FMU2Component, \n vr::AbstractArray{fmi2ValueReference}, \n order::AbstractArray{fmi2Integer}, \n values::AbstractArray{fmi2Real})\n\nSets the n-th time derivative of real input variables.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that define the variables whose derivatives shall be set.\norder::AbstractArray{fmi2Integer}: Argument order is an AbstractArray of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.\nvalues::AbstractArray{fmi2Real}: Argument values is an AbstractArray with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters\n\nSee also fmi2SetRealInputDerivatives.\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMICore.fmi2GetRealOutputDerivatives!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMICore.fmi2GetRealOutputDerivatives!","text":"Source: FMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters\n\nRetrieves the n-th derivative of output values. vr defines the value references of the variables the array order specifies the corresponding order of derivation of the variables\n\n\n\n\n\nfmi2GetRealOutputDerivatives!(c::FMU2Component, \n vr::AbstractArray{fmi2ValueReference}, \n nvr::Csize_t, order::AbstractArray{fmi2Integer}, \n value::AbstractArray{fmi2Real})\n\nSets the n-th time derivative of real input variables.\n\nArguments\n\nc::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvr::Array{fmi2ValueReference}: Argument vr is an array of nvr value handels called \"ValueReference\" that t define the variables whose derivatives shall be set.\nnvr::Csize_t: Argument nvr defines the size of vr.\norder::Array{fmi2Integer}: Argument order is an array of fmi2Integer values witch specifys the corresponding order of derivative of the real input variable.\nvalues::Array{fmi2Real}: Argument values is an array with the actual values of these variables.\n\nReturns\n\nstatus::fmi2Status: Return status is an enumeration of type fmi2Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi2OK: all well\nfmi2Warning: things are not quite right, but the computation can continue\nfmi2Discard: if the slave computed successfully only a subinterval of the communication step\nfmi2Error: the communication step could not be carried out at all\nfmi2Fatal: if an error occurred which corrupted the FMU irreparably\nfmi2Pending: this status is returned if the slave executes the function asynchronously\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.16]: 2.1.2 Platform Dependent Definitions\nFMISpec2.0.2[p.18]: 2.1.3 Status Returned by Functions\nFMISpec2.0.2[p.104]: 4.2.1 Transfer of Input / Output Values and Parameters\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2SampleJacobian fmi2SampleJacobian!","category":"page"},{"location":"fmi2_lowlevel_library_functions/#External/Additional-functions","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"External/Additional functions","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"setDiscreteStates\ngetDiscreteStates\ngetDiscreteStates!\ngetSimpleTypeAttributeStruct\ngetDeclaredType","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMIBase.setDiscreteStates","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.setDiscreteStates","text":"ToDo\n\n\n\n\n\nsetDiscreteStates(c::FMU2Component,\n x::Union{AbstractArray{Float32},AbstractArray{Float64}})\n\nSet a new (discrete) state vector and reinitialize chaching of variables that depend on states.\n\nArguments\n\n[ToDo]\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIBase.getDiscreteStates","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.getDiscreteStates","text":"getDiscreteStates(c)\n\nSets a new (discrete) state vector (out-of-place).\n\nArguments\n\nc::FMU2Component\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIBase.getDiscreteStates!","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.getDiscreteStates!","text":"getDiscreteStates!(c, xd)\n\nSets a new (discrete) state vector (in-place).\n\nArguments\n\nc::FMU2Component\nxd::AbstractArray{Union{fmi2Real, fmi2Integer, fmi2Boolean}}\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIBase.getSimpleTypeAttributeStruct","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.getSimpleTypeAttributeStruct","text":"getSimpleTypeAttributeStruct(st::fmi2SimpleType)\n\nReturns the attribute structure for the simple type st. Depending on definition, this is either st.Real, st.Integer, st.String, st.Boolean or st.Enumeration.\n\nArguments\n\nst::fmi2SimpleType: Struct which provides the information on custom SimpleTypes.\n\nSource\n\nFMISpec2.0.3 Link: https://fmi-standard.org/\nFMISpec2.0.3[p.40]: 2.2.3 Definition of Types (TypeDefinitions)\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIBase.getDeclaredType","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIBase.getDeclaredType","text":"getDeclaredType(md::fmi2ModelDescription, mv::fmi2ScalarVariable)\n\nReturns the fmi2SimpleType of the corresponding model variable mv as defined in md.typeDefinitions. If mv does not have a declared type, return nothing. If mv has a declared type, but it is not found, issue a warning and return nothing.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\nmv::fmi2ScalarVariable: The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.\n\nSource\n\nFMISpec2.0.3 Link: https://fmi-standard.org/\nFMISpec2.0.3: 2.2.7 Definition of Model Variables (ModelVariables)\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2GetSolutionDerivative fmi2GetSolutionState fmi2GetSolutionValue fmi2GetSolutionTime fmi2GetJacobian fmi2GetJacobian! fmi2GetFullJacobian fmi2GetFullJacobian!","category":"page"},{"location":"fmi2_lowlevel_library_functions/#Export-functions","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"Export functions","text":"","category":"section"},{"location":"fmi2_lowlevel_library_functions/","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMI Common Concepts for Model Exchange and Co-Simulation","text":"fmi2ModelDescriptionAddModelStructureOutputs\nfmi2CreateEmbedded\nfmi2ModelDescriptionAddModelStructureInitialUnknowns\nfmi2ModelDescriptionAddModelVariable\nfmi2CreateSimple\nfmi2Create\nfmi2ModelDescriptionAddModelStructureDerivatives","category":"page"},{"location":"fmi2_lowlevel_library_functions/#FMIExport.fmi2ModelDescriptionAddModelStructureOutputs","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIExport.fmi2ModelDescriptionAddModelStructureOutputs","text":"Nothing = Skip entry \n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIExport.fmi2CreateEmbedded","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIExport.fmi2CreateEmbedded","text":"ToDo\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIExport.fmi2ModelDescriptionAddModelStructureInitialUnknowns","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIExport.fmi2ModelDescriptionAddModelStructureInitialUnknowns","text":"Nothing = Skip entry \n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIExport.fmi2ModelDescriptionAddModelVariable","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIExport.fmi2ModelDescriptionAddModelVariable","text":"Nothing = Skip entry \n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIExport.fmi2CreateSimple","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIExport.fmi2CreateSimple","text":"initializationFct # () -> (t, xc, ẋc, xd, u, p)\nevaluationFct # (t, xc, ẋc, xd, u, p, event) -> (xc, ẋc, xd, p)\noutputFct # (t, xc, ẋc, xd, u, p) -> y\neventFct # (t, xc, ẋc, xd, u, p) -> e\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIExport.fmi2Create","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIExport.fmi2Create","text":"ToDo\n\n\n\n\n\n","category":"function"},{"location":"fmi2_lowlevel_library_functions/#FMIExport.fmi2ModelDescriptionAddModelStructureDerivatives","page":"FMI Common Concepts for Model Exchange and Co-Simulation","title":"FMIExport.fmi2ModelDescriptionAddModelStructureDerivatives","text":"Nothing = Skip entry \n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_CS_functions/#FMI-for-Co-Simulation","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"","category":"section"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"This chapter defines the Functional Mock-up Interface (FMI) for the coupling of two or more simulation models in a Co-Simulation environment (FMI for Co-Simulation). Co-Simulation is a rather general approach to the simulation of coupled technical systems and coupled physical phenomena in engineering with focus on instationary (time-dependent) problems.","category":"page"},{"location":"fmi3_lowlevel_CS_functions/#Transfer-of-Input-/-Output-Values-and-Parameters","page":"FMI for Co-Simulation","title":"Transfer of Input / Output Values and Parameters","text":"","category":"section"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"In order to enable the slave to interpolate the continuous real inputs between communication steps, the derivatives of the inputs with respect to time can be provided. Also, higher derivatives can be set to allow higher order interpolation.","category":"page"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"","category":"page"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"fmi3CallbackIntermediateUpdate","category":"page"},{"location":"fmi3_lowlevel_CS_functions/#Computation","page":"FMI for Co-Simulation","title":"Computation","text":"","category":"section"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"The computation of time steps is controlled by the following function.","category":"page"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"fmi3EnterStepMode\nfmi3DoStep!","category":"page"},{"location":"fmi3_lowlevel_CS_functions/#FMICore.fmi3EnterStepMode","page":"FMI for Co-Simulation","title":"FMICore.fmi3EnterStepMode","text":"Source: FMISpec3.0, Version D5ef1c1: 2.3.5. State: Event Mode\n\nThis function must be called to change from Event Mode into Step Mode in Co-Simulation (see 4.2.).\n\n\n\n\n\nfmi3EnterStepMode(c::FMU3Instance; soft::Bool=false)\n\nThis function must be called to change from Event Mode into Step Mode in Co-Simulation (see 4.2.).\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\n\nKeywords\n\nsoft::Bool=false: If the Keyword soft = true the fmi3Teminate needs to be called in state fmi3InstanceStateContinuousTimeMode or fmi3InstanceStateEventMode.\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions \nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 2.3.5. State: Event Mode\n\nSee also fmi3EnterStepMode.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_CS_functions/#FMICore.fmi3DoStep!","page":"FMI for Co-Simulation","title":"FMICore.fmi3DoStep!","text":"Source: FMISpec3.0, Version D5ef1c1: 4.2.1. State: Step Mode\n\nThe computation of a time step is started.\n\n\n\n\n\nfmi3DoStep!(c::FMU3Instance, currentCommunicationPoint::fmi3Float64, communicationStepSize::fmi3Float64, noSetFMUStatePriorToCurrentPoint::fmi3Boolean,\n eventEncountered::Ref{fmi3Boolean}, terminateSimulation::Ref{fmi3Boolean}, earlyReturn::Ref{fmi3Boolean}, lastSuccessfulTime::Ref{fmi3Float64})\n\nThe computation of a time step is started.\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\ncurrentCommunicationPoint::fmi3Float64: \ncommunicationStepSize::fmi3Float64: \nnoSetFMUStatePriorToCurrentPoint::fmi3Boolean: \neventEncountered::Ref{fmi3Boolean}: \nterminateSimulation::Ref{fmi3Boolean}: \nearlyReturn::Ref{fmi3Boolean}: \nlastSuccessfulTime::Ref{fmi3Float64}: \n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 4.2.1. State: Step Mode\n\nSee also fmi3DoStep!.\n\n\n\n\n\nfmi3DoStep!(c::FMU3Instance, currentCommunicationPoint::Union{Real, Nothing} = nothing, communicationStepSize::Union{Real, Nothing} = nothing, noSetFMUStatePriorToCurrentPoint::Bool = true,\n eventEncountered::fmi3Boolean = fmi3False, terminateSimulation::fmi3Boolean = fmi3False, earlyReturn::fmi3Boolean = fmi3False, lastSuccessfulTime::fmi3Float64 = 0.0)\n\nThe computation of a time step is started.\n\nTODO argmuents\n\nArguments\n\nc::FMU3Instance: Mutable struct represents an instantiated instance of an FMU in the FMI 3.0 Standard.\ncurrentCommunicationPoint::Union{Real, Nothing} = nothing\ncommunicationStepSize::Union{Real, Nothing} = nothing\nnoSetFMUStatePriorToCurrentPoint::Bool = true\neventEncountered::fmi3Boolean = fmi3False\nterminateSimulation::fmi3Boolean = fmi3False\nearlyReturn::fmi3Boolean = fmi3False\nlastSuccessfulTime::fmi3Float64 = 0.0\n\nReturns\n\nstatus::fmi3Status: Return status is an enumeration of type fmi3Status and indicates the success of the function call.\n\nMore detailed:\n\nfmi3OK: all well\nfmi3Warning: things are not quite right, but the computation can continue\nfmi3Discard: if the slave computed successfully only a subinterval of the communication step\nfmi3Error: the communication step could not be carried out at all\nfmi3Fatal: if an error occurred which corrupted the FMU irreparably\n\nSource\n\nFMISpec3.0 Link: https://fmi-standard.org/\nFMISpec3.0: 2.2.3 Platform Dependent Definitions\nFMISpec3.0: 2.2.4 Status Returned by Functions\nFMISpec3.0: 4.2.1. State: Step Mode\n\nSee also fmi3DoStep!.\n\n\n\n\n\n","category":"function"},{"location":"fmi3_lowlevel_CS_functions/#Retrieving-Status-Information-from-the-Slave","page":"FMI for Co-Simulation","title":"Retrieving Status Information from the Slave","text":"","category":"section"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"Status information is retrieved from the slave by the following functions:","category":"page"},{"location":"fmi3_lowlevel_CS_functions/","page":"FMI for Co-Simulation","title":"FMI for Co-Simulation","text":"","category":"page"},{"location":"fmi_lowlevel_library_functions/#Functions-in-FMI-Import/Core-.jl","page":"Functions in FMI Import/Core .jl","title":"Functions in FMI Import/Core .jl","text":"","category":"section"},{"location":"fmi_lowlevel_library_functions/","page":"Functions in FMI Import/Core .jl","title":"Functions in FMI Import/Core .jl","text":"logInfo\nlogWarning\nlogError","category":"page"},{"location":"fmi_lowlevel_library_functions/#FMIBase.logInfo","page":"Functions in FMI Import/Core .jl","title":"FMIBase.logInfo","text":"Prints a message with level info if the log level allows it.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.logWarning","page":"Functions in FMI Import/Core .jl","title":"FMIBase.logWarning","text":"Prints a message with level warn if the log level allows it.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.logError","page":"Functions in FMI Import/Core .jl","title":"FMIBase.logError","text":"Prints a message with level error if the log level allows it.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/","page":"Functions in FMI Import/Core .jl","title":"Functions in FMI Import/Core .jl","text":"loadBinary eval!","category":"page"},{"location":"fmi_lowlevel_library_functions/#Conversion-functions","page":"Functions in FMI Import/Core .jl","title":"Conversion functions","text":"","category":"section"},{"location":"fmi_lowlevel_library_functions/","page":"Functions in FMI Import/Core .jl","title":"Functions in FMI Import/Core .jl","text":"stringToStatus\nstatusToString\nstringToDependencyKind\ndependencyKindToString\nvalueReferenceToString\nstringToInitial\ninitialToString\nstringToIntervalQualifier\nstringToDataType\nstringToCausality\ncausalityToString\nstringToVariability\nvariabilityToString","category":"page"},{"location":"fmi_lowlevel_library_functions/#FMIBase.stringToStatus","page":"Functions in FMI Import/Core .jl","title":"FMIBase.stringToStatus","text":"stringToStatus(s)\n\nConverts a String s to fmi2Status.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.statusToString","page":"Functions in FMI Import/Core .jl","title":"FMIBase.statusToString","text":"statusToString(::struct, status::Union{fmi2Status, Integer})\n\nConverts fmi2Status status into a String (\"OK\", \"Warning\", \"Discard\", \"Error\", \"Fatal\", \"Pending\").\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.stringToDependencyKind","page":"Functions in FMI Import/Core .jl","title":"FMIBase.stringToDependencyKind","text":"stringToDependencyKind(s::AbstractString)\n\nConverts s (\"dependent\", \"constant\", \"fixed\", \"tunable\", \"discrete\") to the corresponding fmi2DependencyKind\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.dependencyKindToString","page":"Functions in FMI Import/Core .jl","title":"FMIBase.dependencyKindToString","text":"dependencyKindToString(c::fmi2DependencyKind)\n\nConverts fmi2DependencyKind c to the corresponding String (\"dependent\", \"constant\", \"fixed\", \"tunable\", \"discrete\")\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.valueReferenceToString","page":"Functions in FMI Import/Core .jl","title":"FMIBase.valueReferenceToString","text":"valueReferenceToString(obj, reference)\n\nwhere: \n\nobj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3) reference ∈ (fmi2ValueReference, fmi3ValueReference, Integer\n\nReturns the string identifier for a give value reference.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.stringToInitial","page":"Functions in FMI Import/Core .jl","title":"FMIBase.stringToInitial","text":"stringToInitial(s::AbstractString)\n\nConverts s (\"approx\", \"exact\", \"calculated\") to the corresponding fmi2Initial.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.initialToString","page":"Functions in FMI Import/Core .jl","title":"FMIBase.initialToString","text":"fmi2InitialToString(c::fmi2Initial)\n\nConverts fmi2Initial c to the corresponding String (\"approx\", \"exact\", \"calculated\").\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.stringToIntervalQualifier","page":"Functions in FMI Import/Core .jl","title":"FMIBase.stringToIntervalQualifier","text":"stringToIntervalQualifier(::FMI3Struct, s::AbstractString)\n\nConvert s (\"intervalNotYetKnown\", \"intervalUnchanged\", \"intervalChanged\") to the corresponding fmi3IntervalQualifier.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.stringToDataType","page":"Functions in FMI Import/Core .jl","title":"FMIBase.stringToDataType","text":"stringToDataType(modelDescription, typename)\n\nConverts a typename to type, for example \"Float64\" (::String) to fmi3Float64 (::DataType).\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.stringToCausality","page":"Functions in FMI Import/Core .jl","title":"FMIBase.stringToCausality","text":"stringToCausality(s::AbstractString)\n\nConverts s (\"parameter\", \"calculatedParameter\", \"input\", \"output\", \"local\", \"independent\") to the corresponding fmi2Causality.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.causalityToString","page":"Functions in FMI Import/Core .jl","title":"FMIBase.causalityToString","text":"causalityToString(c::fmi2Causality)\n\nConverts fmi2Causality c to the corresponding String (\"parameter\", \"calculatedParameter\", \"input\", \"output\", \"local\", \"independent\").\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.stringToVariability","page":"Functions in FMI Import/Core .jl","title":"FMIBase.stringToVariability","text":"stringToVariability(s::AbstractString)\n\nConverts s (\"constant\", \"fixed\", \"tunable\", \"discrete\", \"continuous\") to the corresponding fmi2Variability.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.variabilityToString","page":"Functions in FMI Import/Core .jl","title":"FMIBase.variabilityToString","text":"variabilityToString(c::fmi2Variability)\n\nConverts fmi2Variability c to the corresponding String (\"constant\", \"fixed\", \"tunable\", \"discrete\", \"continuous\").\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/","page":"Functions in FMI Import/Core .jl","title":"Functions in FMI Import/Core .jl","text":"fmi2StringToInitial","category":"page"},{"location":"fmi_lowlevel_library_functions/#External/Additional-functions","page":"Functions in FMI Import/Core .jl","title":"External/Additional functions","text":"","category":"section"},{"location":"fmi_lowlevel_library_functions/","page":"Functions in FMI Import/Core .jl","title":"Functions in FMI Import/Core .jl","text":"getInitial\ngetStartValue\nhasCurrentInstance\ngetCurrentInstance\nmodelVariablesForValueReference\nsetValue\ngetValue\ngetValue!\ngetUnit","category":"page"},{"location":"fmi_lowlevel_library_functions/#FMIBase.getInitial","page":"Functions in FMI Import/Core .jl","title":"FMIBase.getInitial","text":"getInitial(mv::fmi2ScalarVariable)\n\nReturns the inital entry of the corresponding model variable.\n\nArguments\n\nfmi2GetStartValue(mv::fmi2ScalarVariable): The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.\n\nReturns\n\nmv.Real.unit: Returns the inital entry of the corresponding ScalarVariable representing a variable of the primitive type Real. Otherwise nothing is returned.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2: 2.2.7 Definition of Model Variables (ModelVariables)\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.getStartValue","page":"Functions in FMI Import/Core .jl","title":"FMIBase.getStartValue","text":"getStartValue(md::fmi2ModelDescription, vrs::fmi2ValueReferenceFormat = md.valueReferences)\n\nReturns the start/default value for a given value reference.\n\nArguments\n\nmd::fmi2ModelDescription: Struct which provides the static information of ModelVariables.\nvrs::fmi2ValueReferenceFormat = md.valueReferences: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\nstarts::Array{fmi2ValueReferenceFormat}: start/default value for a given value reference\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2: 2.2.7 Definition of Model Variables (ModelVariables)\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.hasCurrentInstance","page":"Functions in FMI Import/Core .jl","title":"FMIBase.hasCurrentInstance","text":"ToDo: Doc String\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.getCurrentInstance","page":"Functions in FMI Import/Core .jl","title":"FMIBase.getCurrentInstance","text":"ToDo: Doc String\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.modelVariablesForValueReference","page":"Functions in FMI Import/Core .jl","title":"FMIBase.modelVariablesForValueReference","text":"modelVariablesForValueReference(obj, vr)\n\nwhere:\n\nobj ∈ (fmi2ModelDescription, fmi3ModelDescription, FMU2, FMU3) vr ∈ (fmi2ValueReference, fmi3ValueReference)\n\nReturns the model variable(s) matching the value reference.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.setValue","page":"Functions in FMI Import/Core .jl","title":"FMIBase.setValue","text":"setValue(component,\n vrs::fmi2ValueReferenceFormat,\n srcArray::AbstractArray;\n filter=nothing)\n\nStores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference and returns an array that indicates the Status.\n\nArguments\n\ncomp::FMUInstance (FMU2Component or FMU3Instance): Mutable struct represents an instantiated instance of an FMU in the FMI 2 or 3.\nvrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\nsrcArray::AbstractArray: Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference to the input variable vr (vr = vrs[i]). srcArray has the same length as vrs.\n\nKeywords\n\nfilter=nothing: It is applied to each ModelVariable to determine if it should be updated.\n\nReturns\n\nretcodes::Array{fmi2Status}: Returns an array of length length(vrs) with Type fmi2Status. Type fmi2Status is an enumeration and indicates the success of the function call.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.getValue","page":"Functions in FMI Import/Core .jl","title":"FMIBase.getValue","text":"getValue(comp::FMU2Component, vrs::fmi2ValueReferenceFormat)\n\nReturns the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference in an array.\n\nArguments\n\ncomp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nReturns\n\ndstArray::Array{Any,1}(undef, length(vrs)): Stores the specific value of fmi2ScalarVariable containing the modelVariables with the identical fmi2ValueReference to the input variable vr (vr = vrs[i]). dstArray is a 1-Dimensional Array that has the same length as vrs.\n\n\n\n\n\ngetValue(solution::FMUSolution, vr::fmi2ValueReferenceFormat; isIndex::Bool=false)\n\nReturns the Solution values.\n\nArguments\n\nsolution::FMUSolution: Struct contains information about the solution value, success, state and events of a specific FMU.\nvr::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference (default = md.valueReferences)\n\nMore detailed: fmi2ValueReferenceFormat = Union{Nothing, String, Array{String,1}, fmi2ValueReference, Array{fmi2ValueReference,1}, Int64, Array{Int64,1}, Symbol}\n\nisIndex::Bool=false: Argument isIndex exists to check if vr ist the specific solution element (\"index\") that equals the given fmi2ValueReferenceFormat\n\nReturn\n\nIf he length of the given references equals 1, each element u in the collection solution.values.saveval is selecting the element at the index represented by indices[1] and returns it.\n\nThus, the collect() function is taking the generator expression and returning an array of the selected elements. \n\nIf more than one reference is given, the same process takes place as before. The difference is that now more than one index is accessed.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2[p.22]: 2.1.2 Platform Dependent Definitions (fmi2TypesPlatform.h)\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.getValue!","page":"Functions in FMI Import/Core .jl","title":"FMIBase.getValue!","text":"getValue!(comp::FMU2Component, vrs::fmi2ValueReferenceFormat, dst::AbstractArray)\n\nRetrieves values for the refernces vrs and stores them in dst\n\nArguments\n\ncomp::FMU2Component: Mutable struct represents an instantiated instance of an FMU in the FMI 2.0.2 Standard.\nvrs::fmi2ValueReferenceFormat: wildcards for how a user can pass a fmi[X]ValueReference\ndst::AbstractArray: The array of destinations, must match the data types of the value references.\n\nReturns\n\nretcodes::Array{fmi2Status}: Returns an array of length length(vrs) with Type fmi2Status. Type fmi2Status is an enumeration and indicates the success of the function call.\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/#FMIBase.getUnit","page":"Functions in FMI Import/Core .jl","title":"FMIBase.getUnit","text":"getUnit(mv::fmi2ScalarVariable)\n\nReturns the unit entry (a string) of the corresponding model variable.\n\nArguments\n\nfmi2GetStartValue(mv::fmi2ScalarVariable): The “ModelVariables” element consists of an ordered set of “ScalarVariable” elements. A “ScalarVariable” represents a variable of primitive type, like a real or integer variable.\n\nReturns\n\nmv.Real.unit: Returns the unit entry of the corresponding ScalarVariable representing a variable of the primitive type Real. Otherwise nothing is returned.\n\nSource\n\nFMISpec2.0.2 Link: https://fmi-standard.org/\nFMISpec2.0.2: 2.2.7 Definition of Model Variables (ModelVariables)\n\n\n\n\n\n","category":"function"},{"location":"fmi_lowlevel_library_functions/","page":"Functions in FMI Import/Core .jl","title":"Functions in FMI Import/Core .jl","text":"fmi2GetSolutionDerivative fmi2GetSolutionState fmi2GetSolutionValue fmi2GetSolutionTime fmi2GetJacobian fmi2GetJacobian! fmi2GetFullJacobian fmi2GetFullJacobian!","category":"page"},{"location":"index_library/#All-library-elements-of-FMI,-Import,-Export,-Core-and-Build","page":"API Index","title":"All library elements of FMI, Import, Export, Core and Build","text":"","category":"section"},{"location":"index_library/","page":"API Index","title":"API Index","text":"","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"(Image: FMI.jl Logo)","category":"page"},{"location":"#FMI.jl","page":"Introduction","title":"FMI.jl","text":"","category":"section"},{"location":"#What-is-FMI.jl?","page":"Introduction","title":"What is FMI.jl?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"FMI.jl is a free-to-use software library for the Julia programming language which integrates the Functional Mock-Up Interface (fmi-standard.org): load or create, parameterize, differentiate, linearize, simulate and plot FMUs seamlessly inside the Julia programming language!","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":" \nDocumentation (Image: Build Docs) (Image: Dev Docs)\nExamples (Image: Examples (latest))\nTests (Image: Test (latest)) (Image: Test (LTS)) (Image: Aqua QA)\nFMI cross checks (Image: FMI2 Cross Checks)\nPackage evaluation (Image: Run PkgEval)\nCode coverage (Image: Coverage)\nCollaboration (Image: ColPrac: Contributor's Guide on Collaborative Practices for Community Packages)\nFormatting (Image: SciML Code Style)","category":"page"},{"location":"#Breaking-Changes-in-FMI.jl-(starting-from-v0.14.0-until-release-of-v1.0.0)","page":"Introduction","title":"Breaking Changes in FMI.jl (starting from v0.14.0 until release of v1.0.0)","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"If you want to migrate your project from FMI.jl < v1.0.0 to >= v1.0.0, you will face some breaking changes - but they are worth it as you will see! We decided to do multiple smaller breaking changes starting with v0.14.0, instead of one big one. Some of them are already implemented (checked), some are still on the todo (unchecked) but will be implemented before releasing v1.0.0.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"[x] Many functions, that are not part of the FMI-standard, had the prefix fmi2... or fmi3.... This was corrected. Now, only functions that are defined by the standard itself, like e.g. fmi2Instantiate are allowed to keep the prefix. Other methods, like fmi2ValueReferenceToString, that where added to make this library more comfortable, are now cleaned to be more the Julia way: valueReferenceToString. If your code errors, the corresponding function might have lost it's prefix, so try this first.\n[x] Wrapper functions where removed, because that is not the Julia way. In most cases, this will not affect your code.\n[x] FMICore.jl and FMIImport.jl were divided into FMICore.jl, FMIImport.jl and FMIBase.jl. FMICore.jl now holds the pure standard definition (C-types and -functions), while FMIBase.jl holds everything that is needed on top of that in FMIImport.jl as well as in FMIExport.jl.\n[ ] Updated all library examples.\n[ ] Updated all library tests for a better code coverage.\n[ ] We tried to document every function, if you find undocumented user-level functions, please open an issue or PR.\n[ ] Allocations, type stability and code format where optimized and are monitored by CI now.\n[ ] Dependencies are reduced a little, to make the libraries more light-weight.\n[ ] RAM for allocated FMUs, their instances and states, is now auto-released. For maximum performance/safety you can use FMUs in blocks (like file reading/writing).\n[ ] New low-level interfaces are introduced, that fit the SciML-ecosystem. For example, a FMU can still be simulated with simulate(fmu), but one can also decide to create a prob = FMUProblem(fmu) (like an ODEProblem) and use solve(prob) to obtain a solution. Keywords will be adapted to have a fully consistent interface with the remaining SciML-ecosystem.\n[x] Optimization for new Julia LTS v1.10, removing code to keep downward compatibility with old LTS v1.6.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"🎉 After all listed features are implemented, v1.0.0 will be released! 🎉 ","category":"page"},{"location":"#How-can-I-use-FMI.jl?","page":"Introduction","title":"How can I use FMI.jl?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"1. Open a Julia-REPL, switch to package mode using ], activate your preferred environment.","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"2. Install FMI.jl:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"(@v1) pkg> add FMI","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"3. If you want to check that everything works correctly, you can run the tests bundled with FMI.jl:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"(@v1) pkg> test FMI","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"4. Have a look inside the examples folder in the examples branch or the examples section of the documentation. All examples are available as Julia-Script (.jl), Jupyter-Notebook (.ipynb) and Markdown (.md).","category":"page"},{"location":"#How-can-I-simulate-a-FMU-and-plot-values?","page":"Introduction","title":"How can I simulate a FMU and plot values?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"using FMI, Plots\n\n# load and instantiate a FMU\nfmu = loadFMU(pathToFMU) \n\n# simulate from t=0.0s until t=10.0s and record the FMU variable named \"mass.s\"\nsimData = simulate(fmu, (0.0, 10.0); recordValues=[\"mass.s\"])\n\n# plot it!\nplot(simData)\n\n# free memory\nunloadFMU(myFMU)","category":"page"},{"location":"#What-is-currently-supported-in-FMI.jl?","page":"Introduction","title":"What is currently supported in FMI.jl?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"importing the full FMI 2.0.3 and FMI 3.0.0 command set, including optional specials like fmi2GetFMUstate, fmi2SetFMUstate and fmi2GetDirectionalDerivatives\nparameterization, simulation & plotting of CS- and ME-FMUs\nevent-handling for imported discontinuous ME-FMUs","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":" FMI2.0.3 FMI3.0 SSP1.0 \n Import Export Import Export Import Export\nCS ✔️✔️ 🚧 ✔️✔️ 📅 📅 📅\nME (continuous) ✔️✔️ ✔️✔️ ✔️✔️ 📅 📅 📅\nME (discontinuous) ✔️✔️ ✔️✔️ ✔️✔️ 📅 📅 📅\nSE 🚫 🚫 🚧 📅 🚫 🚫\nExplicit solvers ✔️✔️ ✔️✔️ ✔️✔️ 📅 📅 📅\nImplicit solvers (autodiff=false) ✔️✔️ ✔️✔️ ✔️✔️ 📅 📅 📅\nImplicit solvers (autodiff=true) ✔️ ✔️✔️ ✔️ 📅 📅 📅\nget/setFMUstate ✔️✔️ 📅 ✔️✔️ 📅 🚫 🚫\ngetDirectionalDerivatives ✔️✔️ 📅 ✔️✔️ 📅 🚫 🚫\ngetAdjointDerivatives 🚫 🚫 ✔️✔️ 📅 🚫 🚫\nFMI Cross Checks ✔️✔️ 📅 📅 📅 🚫 🚫\n64-bit binaries in FMUs ✔️✔️ ✔️✔️ ✔️✔️ 📅 🚫 🚫\n32-bit binaries in FMUs ✔️ 📅 📅 📅 🚫 🚫","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"✔️✔️ supported & CI-tested","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"✔️ beta supported: implemented, but not CI-tested","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"🚧 work in progress","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"📅 planned","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"🚫 not supported by the corresponding FMI standard (not applicable)","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"❌ not planned","category":"page"},{"location":"#What-FMI.jl-Library-to-use?","page":"Introduction","title":"What FMI.jl-Library to use?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"(Image: FMI.jl Logo) To keep dependencies nice and clean, the original package FMI.jl had been split into new packages:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"FMI.jl: High level loading, manipulating, saving or building entire FMUs from scratch\nFMIImport.jl: Importing FMUs into Julia\nFMIExport.jl: Exporting stand-alone FMUs from Julia Code\nFMIBase.jl: Common concepts for import and export of FMUs\nFMICore.jl: C-code wrapper for the FMI-standard\nFMISensitivity.jl: Static and dynamic sensitivities over FMUs\nFMIBuild.jl: Compiler/Compilation dependencies for FMIExport.jl\nFMIFlux.jl: Machine Learning with FMUs\nFMIZoo.jl: A collection of testing and example FMUs","category":"page"},{"location":"#What-Platforms-are-supported?","page":"Introduction","title":"What Platforms are supported?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"FMI.jl is tested (and testing) under Julia Versions 1.6 LTS (64-bit) and latest (64-bit) on Windows latest (64-bit, 32-bit) and Ubuntu latest (64-bit). Mac (64-bit, 32-bit) and Ubuntu (32-bit) should work, but untested. For the best performance, we recommend using Julia >= 1.7, even if we support and test for the official LTS (1.6.7).","category":"page"},{"location":"#How-to-cite?","page":"Introduction","title":"How to cite?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Tobias Thummerer, Lars Mikelsons and Josef Kircher. 2021. NeuralFMU: towards structural integration of FMUs into neural networks. Martin Sjölund, Lena Buffoni, Adrian Pop and Lennart Ochel (Ed.). Proceedings of 14th Modelica Conference 2021, Linköping, Sweden, September 20-24, 2021. Linköping University Electronic Press, Linköping (Linköping Electronic Conference Proceedings ; 181), 297-306. DOI: 10.3384/ecp21181297","category":"page"},{"location":"#Related-publications?","page":"Introduction","title":"Related publications?","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Tobias Thummerer, Johannes Stoljar and Lars Mikelsons. 2022. NeuralFMU: presenting a workflow for integrating hybrid NeuralODEs into real-world applications. Electronics 11, 19, 3202. DOI: 10.3390/electronics11193202","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"Tobias Thummerer, Johannes Tintenherr, Lars Mikelsons. 2021 Hybrid modeling of the human cardiovascular system using NeuralFMUs Journal of Physics: Conference Series 2090, 1, 012155. DOI: 10.1088/1742-6596/2090/1/012155","category":"page"},{"location":"#Notes-for-contributors","page":"Introduction","title":"Notes for contributors","text":"","category":"section"},{"location":"","page":"Introduction","title":"Introduction","text":"Contributors are welcome. Before contributing, please read, understand and follow the Contributor's Guide on Collaborative Practices for Community Packages. During development of new implementations or optimizations on existing code, one will have to make design decisions that influence the library performance and usability. The following prioritization should be the basis for decision-making:","category":"page"},{"location":"","page":"Introduction","title":"Introduction","text":"#1 Compliance with standard: It is the highest priority to be compliant with the FMI standard (fmi-standard.org). Identifiers described in the standard must be used. Topologies should follow the specification as far as the possibilities of the Julia programming language allows.\n#2 Performance: Because FMI.jl is a simulation tool, performance is very important. This applies to the efficient use of CPU and GPU, but also the conscientious use of RAM and disc space.\n#3 Usability: The library should be as usable as possible and feel \"the Julia way\" (e.g. by using multiple dispatch instead of the \"C coding style\"), as long as being fully compliant with the FMI standard.","category":"page"},{"location":"examples/modelica_conference_2021/#Example-from-the-Modelica-Conference-2021","page":"Modelica conference 2021","title":"Example from the Modelica Conference 2021","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"Tutorial by Tobias Thummerer, Johannes Stoljar","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"This example was updated over time to keep track with developments and changes in FMI.jl.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/modelica_conference_2021/#License","page":"Modelica conference 2021","title":"License","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/modelica_conference_2021/#Introduction-to-the-example","page":"Modelica conference 2021","title":"Introduction to the example","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"FMUs can be simulated in multiple ways using FMI.jl. You can use a very simple interface, that offers possibilities that satisfy almost any user requirement. However, if you need to build a custom simulation loop for your use case using the core FMI functions, we show that too.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"(Image: svg) ","category":"page"},{"location":"examples/modelica_conference_2021/#Other-formats","page":"Modelica conference 2021","title":"Other formats","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/modelica_conference_2021/#Code-section","page":"Modelica conference 2021","title":"Code section","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"# imports\nusing FMI\nusing FMIZoo\nusing Plots","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00c0eb4e878d is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]","category":"page"},{"location":"examples/modelica_conference_2021/#Simulation-setup","page":"Modelica conference 2021","title":"Simulation setup","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"Next, the start time and end time of the simulation are set. Finally, a step size is specified to store the results of the simulation at these time steps.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"tStart = 0.0\ntStep = 0.1\ntStop = 8.0\ntSave = tStart:tStep:tStop","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"0.0:0.1:8.0","category":"page"},{"location":"examples/modelica_conference_2021/#Simple-FMU-Simulation","page":"Modelica conference 2021","title":"Simple FMU Simulation","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"Next, the FMU model from FMIZoo.jl is loaded and the information about the FMU is shown.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"# we use an FMU from the FMIZoo.jl\nfmu = loadFMU(\"SpringFrictionPendulum1D\", \"Dymola\", \"2022x\")\ninfo(fmu)","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"#################### Begin information for FMU ####################\n\tModel name:\t\t\tSpringFrictionPendulum1D\n\tFMI-Version:\t\t\t2.0\n\tGUID:\t\t\t\t{2e178ad3-5e9b-48ec-a7b2-baa5669efc0c}\n\tGeneration tool:\t\tDymola Version 2022x (64-bit), 2021-10-08\n\tGeneration time:\t\t2022-05-19T06:54:12Z\n\tVar. naming conv.:\t\tstructured\n\tEvent indicators:\t\t24\n\tInputs:\t\t\t\t0\n\tOutputs:\t\t\t0\n\tStates:\t\t\t\t2\n\t\t33554432 [\"mass.s\"]\n\t\t33554433 [\"mass.v\", \"mass.v_relfric\"]\n\tParameters:\t\t\t12\n\t\t16777216 [\"fricScale\"]\n\t\t16777217 [\"s0\"]\n\t\t16777218 [\"v0\"]\n\t\t16777219 [\"fixed.s0\"]\n\t\t...\n\t\t16777223 [\"mass.smin\"]\n\t\t16777224 [\"mass.v_small\"]\n\t\t16777225 [\"mass.L\"]\n\t\t16777226 [\"mass.m\"]\n\t\t16777227 [\"mass.fexp\"]\n\tSupports Co-Simulation:\t\ttrue\n\t\tModel identifier:\tSpringFrictionPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\n\n\t\tDir. Derivatives:\ttrue\n\t\tVar. com. steps:\ttrue\n\t\tInput interpol.:\ttrue\n\t\tMax order out. der.:\t1\n\tSupports Model-Exchange:\ttrue\n\t\tModel identifier:\tSpringFrictionPendulum1D\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n##################### End information for FMU #####################","category":"page"},{"location":"examples/modelica_conference_2021/#Easy-Simulation","page":"Modelica conference 2021","title":"Easy Simulation","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"In the next commands the FMU is simulated, for which the start and end time and recorded variables are declared. Afterwards the simulation result is plotted. In the plot for the FMU, it can be seen that the oscillation keeps decreasing due to the effect of friction. If one simulates long enough, the oscillation comes to a standstill after a certain time.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"simData = simulate(fmu, (tStart, tStop); recordValues=[\"mass.s\"], saveat=tSave)\nplot(simData)","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"(Image: svg)","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"After plotting the data, the FMU is unloaded and all unpacked data on disc is removed.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"unloadFMU(fmu)","category":"page"},{"location":"examples/modelica_conference_2021/#Custom-Simulation","page":"Modelica conference 2021","title":"Custom Simulation","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"In the following type of simulation a more advanced variant is presented, which allows intervening more in the simulation process. Analogous to the simple variant, an FMU model must be loaded.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"fmu = loadFMU(\"SpringFrictionPendulum1D\", \"Dymola\", \"2022x\")","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"Model name:\tSpringFrictionPendulum1D\nType:\t\t1","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"Next, it is necessary to create an instance of the FMU, this is achieved by the command fmi2Instantiate!(). ","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"instanceFMU = fmi2Instantiate!(fmu)","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"FMU: SpringFrictionPendulum1D\n InstanceName: SpringFrictionPendulum1D\n Address: Ptr{Nothing} @0x000002ec71a38230\n State: 0\n Logging: false\n FMU time: -Inf\n FMU states: nothing","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"In the following code block, start and end time for the simulation is set by the fmi2SetupExperiment() command. Next, the FMU is initialized by the calls of fmi2EnterInitializationMode() and fmi2ExitInitializationMode(). It would also be possible to set initial states, parameters or inputs at this place in code.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"fmi2SetupExperiment(instanceFMU, tStart, tStop)\n# set initial model states\nfmi2EnterInitializationMode(instanceFMU)\n# get initial model states\nfmi2ExitInitializationMode(instanceFMU)","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"0x00000000","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"The actual simulation loop is shown in the following block. Here a simulation step fmi2DoStep() with the fixed step size tStep is executed. As indicated in the code by the comments, the input values and output values of the FMU could be changed in the simulation loop as desired, whereby the higher possibility of adjustments arises.","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"values = []\n\nfor t in tSave\n # set model inputs if any\n # ...\n\n fmi2DoStep(instanceFMU, tStep)\n \n # get model outputs\n value = fmi2GetReal(instanceFMU, \"mass.s\")\n push!(values, value)\nend\n\nplot(tSave, values)","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"(Image: svg)","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"The instantiated FMU must be terminated and then the memory area for the instance can also be deallocated. The last step is to unload the FMU to remove all unpacked data on disc. ","category":"page"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"fmi2Terminate(instanceFMU)\nfmi2FreeInstance!(instanceFMU)\nunloadFMU(fmu)","category":"page"},{"location":"examples/modelica_conference_2021/#Summary","page":"Modelica conference 2021","title":"Summary","text":"","category":"section"},{"location":"examples/modelica_conference_2021/","page":"Modelica conference 2021","title":"Modelica conference 2021","text":"The tutorial has shown how to use the default simulation command and how to deploy a custom simulation loop.","category":"page"},{"location":"examples/parameterize/#Parameterize-a-FMU","page":"Parameterize","title":"Parameterize a FMU","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Tutorial by Tobias Thummerer, Johannes Stoljar","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Last update: 09.08.2023","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"🚧 This tutorial is under revision and will be replaced by an up-to-date version soon 🚧","category":"page"},{"location":"examples/parameterize/#License","page":"Parameterize","title":"License","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"# Copyright (c) 2021 Tobias Thummerer, Lars Mikelsons, Josef Kircher, Johannes Stoljar\n# Licensed under the MIT license. \n# See LICENSE (https://github.com/thummeto/FMI.jl/blob/main/LICENSE) file in the project root for details.","category":"page"},{"location":"examples/parameterize/#Introduction","page":"Parameterize","title":"Introduction","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"This example shows how to parameterize a FMU. We will show to possible ways to parameterize: The default option using the parameterization feature of fmiSimulate, fmiSimulateME or fmiSimulateCS. Second, a custom parameterization routine for advanced users. ","category":"page"},{"location":"examples/parameterize/#Other-formats","page":"Parameterize","title":"Other formats","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Besides, this Jupyter Notebook there is also a Julia file with the same name, which contains only the code cells and for the documentation there is a Markdown file corresponding to the notebook. ","category":"page"},{"location":"examples/parameterize/#Code-section","page":"Parameterize","title":"Code section","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"To run the example, the previously installed packages must be included. ","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"# imports\nusing FMI\nusing FMIZoo","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mModule DatesExt with build ID ffffffff-ffff-ffff-0000-00eb96972459 is missing from the cache.\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39mThis may mean DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed] does not support precompilation but is imported by a module that does.\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:2011\u001b[39m\n\n\n\u001b[91m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[91m\u001b[1mError: \u001b[22m\u001b[39mError during loading of extension DatesExt of Accessors, use `Base.retry_load_extensions()` to retry.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m exception =\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[0m1-element ExceptionStack:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Declaring __precompile__(false) is not allowed in files that are being precompiled.\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m Stacktrace:\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [1] \u001b[0m\u001b[1m_require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2015\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [2] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mNothing\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1875\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [3] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [4] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [5] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [6] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1865\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [7] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mextid\u001b[39m::\u001b[0mBase.ExtensionId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1358\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [8] \u001b[0m\u001b[1mrun_extension_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkgid\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1393\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [9] \u001b[0m\u001b[1mrun_package_callbacks\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmodkey\u001b[39m::\u001b[0mBase.PkgId\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1218\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [10] \u001b[0m\u001b[1m__require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1882\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [11] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [12] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [13] \u001b[0m\u001b[1m_require_prelocked\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90muuidkey\u001b[39m::\u001b[0mBase.PkgId, \u001b[90menv\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1866\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [14] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1853\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [15] \u001b[0m\u001b[1mmacro expansion\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mlock.jl:267\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [16] \u001b[0m\u001b[1m__require\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1816\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [17] \u001b[0m\u001b[1m#invoke_in_world#3\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:926\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [18] \u001b[0m\u001b[1minvoke_in_world\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4messentials.jl:923\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [19] \u001b[0m\u001b[1mrequire\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90minto\u001b[39m::\u001b[0mModule, \u001b[90mmod\u001b[39m::\u001b[0mSymbol\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:1809\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [20] \u001b[0m\u001b[1minclude\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mBase.jl:495\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [21] \u001b[0m\u001b[1minclude_package_for_output\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mpkg\u001b[39m::\u001b[0mBase.PkgId, \u001b[90minput\u001b[39m::\u001b[0mString, \u001b[90mdepot_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mdl_load_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mload_path\u001b[39m::\u001b[0mVector\u001b[90m{String}\u001b[39m, \u001b[90mconcrete_deps\u001b[39m::\u001b[0mVector\u001b[90m{Pair{Base.PkgId, UInt128}}\u001b[39m, \u001b[90msource\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2285\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [22] top-level scope\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m\u001b[4mstdin:3\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [23] \u001b[0m\u001b[1meval\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mboot.jl:385\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [24] \u001b[0m\u001b[1minclude_string\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mmapexpr\u001b[39m::\u001b[0mtypeof(identity), \u001b[90mmod\u001b[39m::\u001b[0mModule, \u001b[90mcode\u001b[39m::\u001b[0mString, \u001b[90mfilename\u001b[39m::\u001b[0mString\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2139\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [25] \u001b[0m\u001b[1minclude_string\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mloading.jl:2149\u001b[24m\u001b[39m\u001b[90m [inlined]\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [26] \u001b[0m\u001b[1mexec_options\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[90mopts\u001b[39m::\u001b[0mBase.JLOptions\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:321\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m [27] \u001b[0m\u001b[1m_start\u001b[22m\u001b[0m\u001b[1m(\u001b[22m\u001b[0m\u001b[1m)\u001b[22m\n\u001b[91m\u001b[1m│ \u001b[22m\u001b[39m \u001b[90m @\u001b[39m \u001b[90mBase\u001b[39m \u001b[90m.\\\u001b[39m\u001b[90m\u001b[4mclient.jl:557\u001b[24m\u001b[39m\n\u001b[91m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Base loading.jl:1364\u001b[39m\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\n\n\u001b[33m\u001b[1m┌ \u001b[22m\u001b[39m\u001b[33m\u001b[1mWarning: \u001b[22m\u001b[39mCircular dependency detected. Precompilation will be skipped for:\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseMatrixColoringsExt [e3ecd195-ca82-5397-9546-f380c1e34951]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseChainRulesCoreExt [b00db79b-61e3-50fb-b26f-2d35b2d9e4ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Transducers [28d57a85-8fef-5791-bfe6-a80928e7c999]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolve [8913a72c-1f9b-4ce2-8d82-65094dcecaec]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEq [1dea7af3-3e70-54e6-95c3-0bf5283fa5ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquationsFMIExt [232470a1-1d28-551b-8e3b-d6141e70703a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseForwardDiffExt [63d416d0-6995-5965-81e0-55251226d976]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Folds [41a02a25-b8f0-4f67-bc48-60067656b558]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearchLineSearchesExt [8d20b31a-8b56-511a-b573-0bef60e8c8c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBandedMatricesExt [8800daa3-e725-5fa8-982f-091420a833d6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFunctionMap [d3585ca7-f5d3-4ba6-8057-292ed1abd90f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveEnzymeExt [133222a9-3015-5ee0-8b28-65fc8ed13c28]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLinear [521117fe-8c41-49f8-b3b6-30780b3f0fb5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqTsit5 [b1df2697-797e-41e3-8120-5422d3b24e4a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TestExt [62af87b3-b810-57d2-b7eb-8929911df373]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqBDF [6ad6398a-0878-4a85-9266-38940aa047c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StaticArraysExt [6207fee4-2535-5e24-a3ba-6518da1c7d2a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffTools [47a9eef4-7e08-11e9-0b38-333d64bd3804]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPRK [5b33eab2-c0f1-4480-b2c3-94bc1e80bda1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDefault [50262376-6c5a-4cf5-baba-aaf4f84d72d7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqShooting [ed55bfe0-3725-4db6-871e-a1dc9f42a757]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRosenbrock [43230ef6-c299-4910-a778-202eb28ce4ce]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m JumpProcesses [ccbc3e58-028d-4f4c-8cd5-9ae44345cda5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SteadyStateDiffEq [9672c7b4-1e72-59bd-8a11-6ac3964bc41f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqAdamsBashforthMoulton [89bda076-bce5-4f1c-845f-551c83cdda9a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExplicitRK [9286f039-9fbf-40e8-bf65-aa933bdc4db0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCore [bbf590c4-e513-4bbe-9b18-05decba2e5d8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqCoreEnzymeCoreExt [ca1c724a-f4aa-55ef-b8e4-2f05449449ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqPDIRK [5dd0a6cf-3d4b-4314-aa06-06d4e299bc89]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MATExt [5e726ecd-5b00-51ec-bc99-f7ee9de03178]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveNLsolveExt [ae262b1c-8c8a-50b1-9ef3-b8fcfb893e74]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedRK [358294b1-0aab-51c3-aafe-ad5ab194a2ad]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSSPRK [669c94d9-1f4b-4b64-b377-1aa079aa2388]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DelayDiffEq [bcd4f6db-9728-5f36-b5f7-82caef46ccdb]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DifferentialEquations [0c46a032-eb83-5123-abaf-570d42b7fbaa]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseSparseArraysExt [8494477e-8a74-521a-b11a-5a22161b1bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m PlotsExt [e73c9e8f-3556-58c3-b67e-c4596fa67ff1]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveBandedMatricesExt [9522afde-9e86-5396-abc8-24b7312356fe]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqFIRK [85d9eb09-370e-4000-bb32-543851f73618]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqMIRK [1a22d4ce-7765-49ea-b6f2-13c8438986a6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqRKN [af6ede74-add8-4cfd-b1df-9a4dbb109d7a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolve [7ed4a6bd-45f5-4d41-b270-4a48e9bafcae]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqQPRK [04162be5-8125-4266-98ed-640baecc6514]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsForwardDiffExt [14203109-85fb-5f77-af23-1cb7d9032242]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseSparseArraysExt [4131c53f-b1d6-5635-a7a3-57f6f930b644]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersLazyArraysExt [cdbecb60-77cf-500a-86c2-8d8bbf22df88]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseBandedMatricesExt [f3d6eb4f-59b9-5696-a638-eddf66c7554e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveFirstOrder [5959db7a-ea39-4486-b5fe-2dd0bf03d60d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsStaticArraysCoreExt [a2df0a61-553a-563b-aed7-0ce21874eb58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m Sundials [c3572dad-4567-51f8-b174-8c6c989267f4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsFastBroadcastExt [42296aa8-c874-5f57-b5c1-8d6f5ebd5400]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBase [0bca4576-84f4-4d90-8ffe-ffa030f20462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m ForwardDiffExt [92c717c9-c1e5-53c1-ac59-0de8aab6796e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveFastAlmostBandedMatricesExt [f94f2e43-4c39-5f8d-ab9c-7017feb07ff4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqHighOrderRK [d28bc4f8-55e1-4f49-af69-84c1a99f0f58]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowStorageRK [b0944070-b475-4768-8dec-fb6eb410534d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSymplecticRK [fa646aed-7ef9-47eb-84c4-9443fc8cbfa8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqStabilizedIRK [e3e12d00-db14-5390-b879-ac3dd2ef6296]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIImport [9fcbc62e-52a0-44e9-a616-1359a0008194]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqLowOrderRK [1344f307-1e59-4825-a18e-ace9aa3fa4c6]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExponentialRK [e0540318-69ee-4070-8777-9e2de6de23de]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqDifferentiation [4302a76b-040a-498a-8c04-15b101fed76b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNonlinearSolve [127b3ac7-2247-4354-8eb6-78cf4e7c58e8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SparseDiffToolsPolyesterExt [9f049cbb-7c7d-5dfe-91f7-cf323d5306ff]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqSDIRK [2d112036-d095-4a1e-ab9a-08536f3ecdbf]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearAlgebraExt [ef8e1453-9c17-56fe-886b-405471570bc8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LineSearch [87fe0de2-c867-4266-b59a-2f0a94fc965b]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLBaseChainRulesCoreExt [4676cac9-c8e0-5d6e-a4e0-e3351593cdf5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqExtrapolation [becaefa8-8ca2-5cf9-886d-c06f3d2bd2c4]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqVerner [79d7bb75-1356-48c1-b8c0-6832512096c2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolveChainRulesCoreExt [073a8d7d-86ee-5d75-9348-f9bf6155b014]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqCallbacks [459566f4-90b8-5000-8ac3-15dfb0a30def]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMI [14a09403-18e3-468f-ad8a-74f8dda2d9ac]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBang [198e06fe-97b7-11e9-32a5-e1d131e6ad66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseDistributionsExt [24f3332a-0dc5-5d65-94b6-25e75cab9690]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperators [c0aeaf25-5076-4817-a8d5-81caf7dfa961]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIBase [900ee838-d029-460e-b485-d98a826ceef2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayTools [731186ca-8d62-57ce-b412-fbd966d074cd]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIExport [31b88311-cab6-44ed-ba9c-fe5a9abbd67a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEqCore [56b672f2-a5fe-4263-ab2d-da677488eb3a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFeagin [101fe9f7-ebb6-4678-b671-3a81e7194747]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m StochasticDiffEq [789caeaf-c7a9-5a7d-9973-96adeb23e2a0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBase [2b5f629d-d688-5b77-993f-72d75c75574e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangStaticArraysExt [a9f1882a-14fa-573e-a12d-824431257a23]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m RecursiveArrayToolsSparseArraysExt [73e54eaf-3344-511d-b088-1ac5413eca63]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangChainRulesCoreExt [47e8a63d-7df8-5da4-81a4-8f5796ea640c]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m LinearSolveRecursiveArrayToolsExt [04950c4b-5bc4-5740-952d-02d2c1eb583a]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersReferenceablesExt [befac7fd-b390-5150-b72a-6269c65d7e1f]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLJacobianOperators [19f34311-ddf3-4b8b-af20-060888a46c0e]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLineSearchExt [a65b7766-7c26-554a-8b8d-165d7f96f890]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqNoiseProcess [77a26b50-5914-5dd7-bc55-306e6241c503]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m TransducersAdaptExt [9144d9d9-84fa-5f34-a63a-3acddca89462]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DiffEqBaseUnitfulExt [aeb06bb4-539b-5a1b-8332-034ed9f8ca66]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m UnitfulExt [8d0556db-720e-519a-baed-0b9ed79749be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseLinearSolveExt [3d4538b4-647b-544e-b0c2-b52d0495c932]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqNordsieck [c9986a66-5c92-4813-8696-a7ec84c806c8]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqFIRK [5960d6e9-dd7a-4743-88e7-cf307b64f125]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBaseDiffEqBaseExt [a0bd8381-04c7-5287-82b0-0bf1e59008be]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SimpleNonlinearSolve [727e6d20-b764-4bd8-a329-72de5adea6c7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m NonlinearSolveBase [be0214bd-f91f-a760-ac4e-3421ce2b2da0]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m OrdinaryDiffEqIMEXMultistep [9f002381-b378-40b7-97a6-27a27c83f129]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m MicroCollections [128add7d-3638-4c79-886c-908ea0c25c34]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SymbolicIndexingInterface [2efcf032-c050-4f8e-a9bb-153293bab1f5]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m DatesExt [0361c7f5-3687-5641-8bd2-a1de0c64d1ed]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m SciMLOperatorsSparseArraysExt [9985400b-97ec-5583-b534-4f70b643bcf7]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BoundaryValueDiffEq [764a87c0-6b3e-53db-9096-fe964310641d]\n\u001b[33m\u001b[1m│ \u001b[22m\u001b[39m BangBangTablesExt [476361b5-ac10-5c09-8bec-30d098a22a5b]\n\u001b[33m\u001b[1m└ \u001b[22m\u001b[39m\u001b[90m@ Pkg.API C:\\hostedtoolcache\\windows\\julia\\1.10.7\\x64\\share\\julia\\stdlib\\v1.10\\Pkg\\src\\API.jl:1279\u001b[39m\n\n\n\u001b[36m\u001b[1m[ \u001b[22m\u001b[39m\u001b[36m\u001b[1mInfo: \u001b[22m\u001b[39mPrecompiling FMIZooExt [0fe4e21f-c175-5a0f-899f-abb2d776b1a2]","category":"page"},{"location":"examples/parameterize/#Simulation-setup","page":"Parameterize","title":"Simulation setup","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Next, the start time and end time of the simulation are set.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"tStart = 0.0\ntStop = 1.0\ntSave = collect(tStart:tStop)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"2-element Vector{Float64}:\n 0.0\n 1.0","category":"page"},{"location":"examples/parameterize/#Import-FMU","page":"Parameterize","title":"Import FMU","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"In the next lines of code the FMU model from FMIZoo.jl is loaded and the information about the FMU is shown.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"# we use an FMU from the FMIZoo.jl\n# just replace this line with a local path if you want to use your own FMU\npathToFMU = get_model_filename(\"IO\", \"Dymola\", \"2022x\")\n\nfmu = loadFMU(pathToFMU)\ninfo(fmu)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"#################### Begin information for FMU ####################\n\tModel name:\t\t\tIO\n\tFMI-Version:\t\t\t2.0\n\tGUID:\t\t\t\t{889089a6-481b-41a6-a282-f6ce02a33aa6}\n\tGeneration tool:\t\tDymola Version 2022x (64-bit), 2021-10-08\n\tGeneration time:\t\t2022-05-19T06:53:52Z\n\tVar. naming conv.:\t\tstructured\n\tEvent indicators:\t\t4\n\tInputs:\t\t\t\t3\n\n\n\t\t352321536 [\"u_real\"]\n\t\t352321537 [\"u_boolean\"]\n\t\t352321538 [\"u_integer\"]\n\tOutputs:\t\t\t3\n\t\t335544320 [\"y_real\"]\n\t\t335544321 [\"y_boolean\"]\n\t\t335544322 [\"y_integer\"]\n\tStates:\t\t\t\t0\n\tParameters:\t\t\t5\n\t\t16777216 [\"p_real\"]\n\t\t16777217 [\"p_integer\"]\n\t\t16777218 [\"p_boolean\"]\n\t\t16777219 [\"p_enumeration\"]\n\t\t134217728 [\"p_string\"]\n\tSupports Co-Simulation:\t\ttrue\n\t\tModel identifier:\tIO\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n\t\tVar. com. steps:\ttrue\n\t\tInput interpol.:\ttrue\n\t\tMax order out. der.:\t1\n\tSupports Model-Exchange:\ttrue\n\t\tModel identifier:\tIO\n\t\tGet/Set State:\t\ttrue\n\t\tSerialize State:\ttrue\n\t\tDir. Derivatives:\ttrue\n##################### End information for FMU #####################","category":"page"},{"location":"examples/parameterize/#Option-A:-Integrated-parameterization-feature-of-*FMI.jl*","page":"Parameterize","title":"Option A: Integrated parameterization feature of FMI.jl","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"If you are using the commands for simulation integrated in FMI.jl, the parameters and initial conditions are set at the correct locations during the initialization process of your FMU. This is the recommended way of parameterizing your model, if you don't have very uncommon requirements regarding initialization.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"dict = Dict{String, Any}()\ndict","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Dict{String, Any}()","category":"page"},{"location":"examples/parameterize/#Option-B:-Custom-parameterization-routine","page":"Parameterize","title":"Option B: Custom parameterization routine","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"If you have special requirements for initialization and parameterization, you can write your very own parameterization routine.","category":"page"},{"location":"examples/parameterize/#Instantiate-and-Setup-FMU","page":"Parameterize","title":"Instantiate and Setup FMU","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Next it is necessary to create an instance of the FMU. This is achieved by the command fmiInstantiate!().","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"c = fmi2Instantiate!(fmu; loggingOn=true)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"FMU: IO\n InstanceName: IO\n Address: Ptr{Nothing} @0x000001db0c96c420\n State: 0\n Logging: true\n FMU time: -Inf\n FMU states: nothing","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"In the following code block, start and end time for the simulation is set by the fmiSetupExperiment() command.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2SetupExperiment(c, tStart, tStop)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/#Parameterize-FMU","page":"Parameterize","title":"Parameterize FMU","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"In this example, for each data type (real, boolean, integer and string) a corresponding input or parameter is selected. From here on, the inputs and parameters will be referred to as parameters for simplicity.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"params = [\"p_real\", \"p_boolean\", \"p_integer\", \"p_string\"]","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"4-element Vector{String}:\n \"p_real\"\n \"p_boolean\"\n \"p_integer\"\n \"p_string\"","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"At the beginning we want to display the initial state of these parameters, for which the FMU must be in initialization mode. The next function fmiEnterInitializationMode() informs the FMU to enter the initialization mode. Before calling this function, the variables can be set. Furthermore, fmiSetupExperiment() must be called at least once before calling fmiEnterInitializationMode(), in order that the start time is defined.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2EnterInitializationMode(c)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"The initial state of these parameters are displayed with the function getValue().","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"getValue(c, params)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"4-element Vector{Any}:\n 0.0\n 0\n 0\n \"Hello World!\"","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"The initialization mode is terminated with the function fmi2ExitInitializationMode(). (For the model exchange FMU type, this function switches off all initialization equations, and enters the event mode implicitly.)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2ExitInitializationMode(c)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"In the next step, a function is defined that generates a random value for each parameter. For the parameter p_string a random number is inserted into the string. All parameters are combined to a tuple and output.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"function generateRandomNumbers()\n rndReal = 100 * rand()\n rndBoolean = rand() > 0.5\n rndInteger = round(Integer, 100 * rand())\n rndString = \"Random number $(100 * rand())!\"\n\n return rndReal, rndBoolean, rndInteger, rndString\nend","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"generateRandomNumbers (generic function with 1 method)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"The previously defined function is called and the results are displayed in the console.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"paramsVal = generateRandomNumbers()","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"(99.71195395748381, true, 49, \"Random number 27.25374833040084!\")","category":"page"},{"location":"examples/parameterize/#First-variant","page":"Parameterize","title":"First variant","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"To show the first variant, it is necessary to terminate and reset the FMU instance. Then, as before, the setup command must be called for the FMU. ","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2Terminate(c)\nfmi2Reset(c)\nfmi2SetupExperiment(c, tStart, tStop)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"In the next step it is possible to set the parameters for the FMU. With the first variant it is quickly possible to set all parameters at once. Even different data types can be set with only one command. The command setValue() selects itself which function is chosen for which data type. As long as the output of the function gives the status code 0, setting the parameters has worked.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"setValue(c, params, collect(paramsVal))","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"4-element Vector{UInt32}:\n 0x00000000\n 0x00000000\n 0x00000000\n 0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"After setting the parameters, it can be checked whether the corresponding parameters were set correctly. For this the function getValue() can be used as above. To be able to call the function getValue() the FMU must be in initialization mode.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2EnterInitializationMode(c)\n# getValue(c, params)\nfmi2ExitInitializationMode(c)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Now the FMU has been initialized correctly, the FMU can be simulated. The simulate() command is used for this purpose. It must be pointed out that the keywords instantiate=false, setup=false must be set. The keyword instantiate=false prevents the simulation command from creating a new FMU instance, otherwise our parameterization will be lost. The keyword setup=false prevents the FMU from calling the initialization mode again. The additionally listed keyword freeInstance=false prevents that the instance is removed after the simulation. This is only needed in this example, because we want to continue working on the created instance. Another keyword is the recordValues=parmas[1:3], which saves: p_real, p_boolean and p_integer as output. It should be noted that the simulate() function is not capable of outputting string values, so p_string is omitted.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"simData = simulate(c, (tStart, tStop); recordValues=params[1:3], saveat=tSave, \n instantiate=false, setup=false, freeInstance=false, terminate=false, reset=false)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Model name:\n\tIO\nSuccess:\n\ttrue\nf(x)-Evaluations:\n\tIn-place: 0\n\tOut-of-place: 0\nJacobian-Evaluations:\n\t∂ẋ_∂p: 0\n\t∂ẋ_∂x: 0\n\t∂ẋ_∂u: 0\n\t∂y_∂p: 0\n\t∂y_∂x: 0\n\t∂y_∂u: 0\n\t∂e_∂p: 0\n\t∂e_∂x: 0\n\t∂e_∂u: 0\n\t∂xr_∂xl: 0\nGradient-Evaluations:\n\t∂ẋ_∂t: 0\n\t∂y_∂t: 0\n\t∂e_∂t: 0\nCallback-Evaluations:\n\tCondition (event-indicators): 0\n\tTime-Choice (event-instances): 0\n\tAffect (event-handling): 0\n\tSave values: 0\n\tSteps completed: 0\nValues [2]:\n\t0.0\t(99.71195395748381, 1.0, 49.0)\n\t1.0\t(99.71195395748381, 1.0, 49.0)\nEvents [0]:","category":"page"},{"location":"examples/parameterize/#Second-variant","page":"Parameterize","title":"Second variant","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"To show the second variant, it is necessary to terminate and reset the FMU instance. Then, as before, the setup command must be called for the FMU. ","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2Terminate(c)\nfmi2Reset(c)\nfmi2SetupExperiment(c, tStart, tStop)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"To make sure that the functions work it is necessary to generate random numbers again. As shown already, we call the defined function generateRandomNumbers() and output the values.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"rndReal, rndBoolean, rndInteger, rndString = generateRandomNumbers()","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"(63.821182015235024, true, 98, \"Random number 38.18358553733713!\")","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"In the second variant, the value for each data type is set separately by the corresponding command. By this variant one has the maximum control and can be sure that also the correct data type is set. ","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2SetReal(c, \"p_real\", rndReal)\nfmi2SetBoolean(c, \"p_boolean\", rndBoolean)\nfmi2SetInteger(c, \"p_integer\", rndInteger)\nfmi2SetString(c, \"p_string\", rndString)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"To illustrate the functionality of the parameterization with the separate functions, the corresponding get function can be also called separately for each data type:","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2SetReal() ⇔ fmi2GetReal()\nfmi2SetBoolean() ⇔ fmi2GetBoolean()\nfmi2SetInteger() ⇔ fmi2GetInteger()\nfmi2SetString() ⇔ fmi2GetString().","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"As before, the FMU must be in initialization mode.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"fmi2EnterInitializationMode(c)\n# fmi2GetReal(c, \"u_real\")\n# fmi2GetBoolean(c, \"u_boolean\")\n# fmi2GetInteger(c, \"u_integer\")\n# fmi2GetString(c, \"p_string\")\nfmi2ExitInitializationMode(c)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"0x00000000","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"From here on, you may want to simulate the FMU. Please note, that with the default executionConfig, it is necessary to prevent a new instantiation using the keyword instantiate=false. Otherwise, a new instance is allocated for the simulation-call and the parameters set for the previous instance are not transfered.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"simData = simulate(c, (tStart, tStop); recordValues=params[1:3], saveat=tSave, \n instantiate=false, setup=false)","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Model name:\n\tIO\nSuccess:\n\ttrue\nf(x)-Evaluations:\n\tIn-place: 0\n\tOut-of-place: 0\nJacobian-Evaluations:\n\t∂ẋ_∂p: 0\n\t∂ẋ_∂x: 0\n\t∂ẋ_∂u: 0\n\t∂y_∂p: 0\n\t∂y_∂x: 0\n\t∂y_∂u: 0\n\t∂e_∂p: 0\n\t∂e_∂x: 0\n\t∂e_∂u: 0\n\t∂xr_∂xl: 0\nGradient-Evaluations:\n\t∂ẋ_∂t: 0\n\t∂y_∂t: 0\n\t∂e_∂t: 0\nCallback-Evaluations:\n\tCondition (event-indicators): 0\n\tTime-Choice (event-instances): 0\n\tAffect (event-handling): 0\n\tSave values: 0\n\tSteps completed: 0\nValues [2]:\n\t0.0\t(63.821182015235024, 1.0, 98.0)\n\t1.0\t(63.821182015235024, 1.0, 98.0)\nEvents [0]:","category":"page"},{"location":"examples/parameterize/#Unload-FMU","page":"Parameterize","title":"Unload FMU","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"The FMU will be unloaded and all unpacked data on disc will be removed.","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"unloadFMU(fmu)","category":"page"},{"location":"examples/parameterize/#Summary","page":"Parameterize","title":"Summary","text":"","category":"section"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"Based on this tutorial it can be seen that there are two different variants to set and get parameters.These examples should make it clear to the user how parameters can also be set with different data types. As a small reminder, the sequence of commands for the manual parameterization of an FMU is summarized again. ","category":"page"},{"location":"examples/parameterize/","page":"Parameterize","title":"Parameterize","text":"loadFMU() → fmiInstantiate!() → fmiSetupExperiment() → fmiSetXXX() → fmiEnterInitializationMode() → fmiGetXXX() → fmiExitInitializationMode() → simualte() → unloadFMU()","category":"page"}] }