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 @@
-
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
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(..).
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
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(..).
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. 🚧
# 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.
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).
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:
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
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.
Settings
This document was generated with Documenter.jl version 1.8.0 on Wednesday 15 January 2025. Using Julia version 1.11.2.
# 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.
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.
# 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.
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.
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.
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.
# 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.
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.
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.
To run the example, the previously installed packages must be included.
# imports
using FMI
@@ -714,4 +714,4 @@
plot(tSave, values)
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.
# 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.
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.
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.
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.
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.
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.
Settings
This document was generated with Documenter.jl version 1.8.0 on Thursday 9 January 2025. Using Julia version 1.11.2.
+plot!(fig, data2)
For control, you can compare again the address of the instance comp2 to the previous address comp2Address and it should be the same address.
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.
Settings
This document was generated with Documenter.jl version 1.8.0 on Wednesday 15 January 2025. Using Julia version 1.11.2.
# 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.
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.
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.
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.
using Distributed
n_procs = 2
@@ -845,4 +845,4 @@
BenchmarkTools.Trial: 1 sample with 1 evaluation per sample.
Single result which took [34m30.101 s[39m (0.00% GC) to evaluate,
- with a memory estimate of [33m99.47 KiB[39m, over [33m1597[39m 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.
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.
Settings
This document was generated with Documenter.jl version 1.8.0 on Thursday 9 January 2025. Using Julia version 1.11.2.
+ with a memory estimate of [33m99.47 KiB[39m, over [33m1597[39m 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.
# 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.
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.
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.
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.
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.
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:
Parameter Optimization: An introduction on how FMU parameters can be optimized to fit a specific behaviour.
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:
Parameter Optimization: An introduction on how FMU parameters can be optimized to fit a specific behaviour.
# 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.
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.
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.
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!
Settings
This document was generated with Documenter.jl version 1.8.0 on Thursday 9 January 2025. Using Julia version 1.11.2.
+plot!(tSave, s_tar; label="Optimization target")
Actually a pretty fit! If you have higher requirements, check out the Optim.jl library.
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!
Settings
This document was generated with Documenter.jl version 1.8.0 on Wednesday 15 January 2025. Using Julia version 1.11.2.
# 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.
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.
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.
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.
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.
# 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.
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.
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.
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.
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)
plot(dataME)
From both graphs it can be seen that the simulation calculates exactly the same results.
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)
plot(dataME)
From both graphs it can be seen that the simulation calculates exactly the same results.
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.
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.
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.
Settings
This document was generated with Documenter.jl version 1.8.0 on Thursday 9 January 2025. Using Julia version 1.11.2.
+Double callback crossing floating pointer reducer errored. Report this issue.
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.
Settings
This document was generated with Documenter.jl version 1.8.0 on Wednesday 15 January 2025. Using Julia version 1.11.2.
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.
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.
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.
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.
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)
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.
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).
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.
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:
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.
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.
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.
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.
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.
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.
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.
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)
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.
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).
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.
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:
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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
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[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.
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
This document was generated with Documenter.jl version 1.8.0 on Thursday 9 January 2025. Using Julia version 1.11.2.
+ 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
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.
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).
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.
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).
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
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
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
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
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
This document was generated with Documenter.jl version 1.8.0 on Thursday 9 January 2025. Using Julia version 1.11.2.
+ 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
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
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.
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: 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: 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.
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: 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.
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: 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: 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: 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.
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: 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.
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”.
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.
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: 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: 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.
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: 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.
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: 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: 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: 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.
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: 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.
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”.
This document was generated with Documenter.jl version 1.8.0 on Wednesday 15 January 2025. Using Julia version 1.11.2.
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
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.
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.
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
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.
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.
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.
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.
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.
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”
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[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”).
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.
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
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.
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”
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[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”).
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.
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
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.
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.
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
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.
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.
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
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.
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).
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
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, 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
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.
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).
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
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, 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
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
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
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, 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”).
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
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, 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.
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, 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
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, 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.
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, 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.
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
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, 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.
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
This document was generated with Documenter.jl version 1.8.0 on Thursday 9 January 2025. Using Julia version 1.11.2.
+ 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, 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.
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, 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.
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
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, 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.
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, 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: 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.
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: 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: 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: 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: 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: 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).
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: 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.
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
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
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
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: 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: 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.
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: 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: 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: 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: 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: 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).
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: 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.
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
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
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
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
This document was generated with Documenter.jl version 1.8.0 on Wednesday 15 January 2025. Using Julia version 1.11.2.
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
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.
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.
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.
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.
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: 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.
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: 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.
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: 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).
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
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.
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, 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.
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
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, 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.
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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.
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".
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”
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”
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, 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.
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
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.
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".
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”
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”
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, 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.
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
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.
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]:
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.
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]:
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.
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.
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.
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.
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.
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.
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.
This document was generated with Documenter.jl version 1.8.0 on Thursday 9 January 2025. Using Julia version 1.11.2.
+ 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.
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.
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.
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.
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.
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.
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}.
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
Receives one or an array of value references in an arbitrary format (see fmi2ValueReferenceFormat) and converts it into an Array{fmi2ValueReference} (if not already).
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
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)
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)
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
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)
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).
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
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
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)
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)
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
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))
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))
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))
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.
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}.
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
Receives one or an array of value references in an arbitrary format (see fmi2ValueReferenceFormat) and converts it into an Array{fmi2ValueReference} (if not already).
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
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)
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)
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
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)
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).
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
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
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)
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)
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
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))
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))
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))
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!
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.
[ ] 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! 🎉
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).
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!
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.
[ ] 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! 🎉
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).
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.3
FMI3.0
SSP1.0
Import
Export
Import
Export
Import
Export
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)
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).
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
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.
Settings
This document was generated with Documenter.jl version 1.8.0 on Thursday 9 January 2025. Using Julia version 1.11.2.
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.3
FMI3.0
SSP1.0
Import
Export
Import
Export
Import
Export
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)
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).
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
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.
Settings
This document was generated with Documenter.jl version 1.8.0 on Wednesday 15 January 2025. Using Julia version 1.11.2.
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
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.
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.
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]:
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]:
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]:
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]:
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)
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)
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]:
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)
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.
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
using OrdinaryDiffEq: ODESolution (SciML/SciMLBase.jl)
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.
This document was generated with Documenter.jl version 1.8.0 on Thursday 9 January 2025. Using Julia version 1.11.2.
+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]:
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)
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.
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
using OrdinaryDiffEq: ODESolution (SciML/SciMLBase.jl)
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.
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
Settings
This document was generated with Documenter.jl version 1.8.0 on Thursday 9 January 2025. Using Julia version 1.11.2.
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
Settings
This document was generated with Documenter.jl version 1.8.0 on Wednesday 15 January 2025. Using Julia version 1.11.2.
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