Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add FMUComponent #3282

Open
wants to merge 42 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
85cebf1
feat: add `FMUComponent` with support for v2 ME FMUs
AayushSabharwal Dec 20, 2024
2409b35
test: add tests for FMIComponent
AayushSabharwal Dec 20, 2024
5a49b03
fix: fix `getcalledparameter` namespacing issues
AayushSabharwal Dec 23, 2024
02e0ff0
fix: handle scalarized called parameter in `vars!`
AayushSabharwal Dec 23, 2024
11b79c7
fix: run array variables hack on equations added by CSE hack
AayushSabharwal Dec 23, 2024
7f4cd27
fix: only use `OffsetArray` in array hack for non-standard `firstindex`
AayushSabharwal Dec 23, 2024
86a0bcd
fix: handle usage of FMU in initialization
AayushSabharwal Dec 23, 2024
f50893d
refactor: modularize code and enable array hacks
AayushSabharwal Dec 23, 2024
a98eec5
test: add test for component FMU hooked up to MTK model, initialization
AayushSabharwal Dec 23, 2024
403b92d
test: add `SimpleAdder.fmu` for testing
AayushSabharwal Dec 23, 2024
3d7fc9c
feat: allow `ImperativeAffect` to accept callable structs
AayushSabharwal Dec 24, 2024
edcbaeb
feat: add `vars!` for callbacks and affects
AayushSabharwal Dec 24, 2024
ae35c77
fix: fix `add_fallbacks!`
AayushSabharwal Dec 24, 2024
aca5bdb
fix: fix removal of `missing` defaults for solved array parameters
AayushSabharwal Dec 24, 2024
97bc830
fix: avoid trying to scalarize `missing` default of array parameters
AayushSabharwal Dec 24, 2024
9800e5d
fix: fix observed timeseries detection
AayushSabharwal Dec 24, 2024
ac6ae98
fix: fix conversion of solved array parameters to variables in initia…
AayushSabharwal Dec 24, 2024
0cb7d9c
fix: make array hack also search callbacks
AayushSabharwal Dec 24, 2024
f06d600
feat: support building v2 Co-Simulation FMU components
AayushSabharwal Dec 24, 2024
3d68f77
test: test v2 Co-Simulation FMU components
AayushSabharwal Dec 24, 2024
7d2647e
feat: support v3 ME FMUs
AayushSabharwal Jan 2, 2025
a5f0985
feat: support v3 CS FMUs
AayushSabharwal Jan 2, 2025
90eead1
fix: use `NoInit` for FMI callback reinitialization
AayushSabharwal Jan 3, 2025
2f15702
fix: handle array of symbolics in `InitializationProblem` type promotion
AayushSabharwal Jan 3, 2025
531f78e
test: test v3 FMUs as subcomponents
AayushSabharwal Jan 3, 2025
078d429
test: update `SimpleAdder.fmu`
AayushSabharwal Jan 3, 2025
3bea3aa
refactor: remove redundant fields from structs
AayushSabharwal Jan 3, 2025
d1d3839
docs: add documentation for all functions in FMIExt
AayushSabharwal Jan 3, 2025
2337cbb
build: bump SymbolicIndexingInterface compat
AayushSabharwal Jan 7, 2025
15a467e
feat: mark inputs and outputs of FMU with appropriate metadata
AayushSabharwal Jan 7, 2025
3daf349
fix: fix array hack when looking through unknowns
AayushSabharwal Jan 8, 2025
94fd36a
fix: fix several bugs causing incorrect results in FMU components
AayushSabharwal Jan 8, 2025
324cd22
test: update `SimpleAdder.fmu`
AayushSabharwal Jan 8, 2025
6f261cf
test: update `StateSpace.fmu`
AayushSabharwal Jan 8, 2025
b8ab311
test: add more comprehensive tests for FMIComponent
AayushSabharwal Jan 8, 2025
7be3be8
test: add instructions for reproducibly building `SimpleAdder.fmu`
AayushSabharwal Jan 8, 2025
0fbae81
test: add instructions for reproducibly building StateSpace.fmu
AayushSabharwal Jan 8, 2025
e903d72
build: bump SymbolicUtils compat
AayushSabharwal Jan 16, 2025
4e7e380
fix: fix type promotion in `InitializationProblem`
AayushSabharwal Jan 20, 2025
c43d22a
test: fix CSE hack test
AayushSabharwal Jan 20, 2025
ba5221c
build: bump Symbolics compat
AayushSabharwal Jan 21, 2025
a8591a4
test: move FMI tests to separate environment
AayushSabharwal Jan 21, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/workflows/Tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,7 @@ jobs:
- Extensions
- Downstream
- RegressionI
- FMI
uses: "SciML/.github/.github/workflows/tests.yml@v1"
with:
julia-version: "${{ matrix.version }}"
Expand Down
9 changes: 6 additions & 3 deletions Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,7 @@ Unitful = "1986cc42-f94f-5a68-af5c-568840ba703d"
BifurcationKit = "0f109fa4-8a5d-4b75-95aa-f515264e7665"
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"
DeepDiffs = "ab62b9b5-e342-54a8-a765-a90f495de1a6"
FMI = "14a09403-18e3-468f-ad8a-74f8dda2d9ac"
HomotopyContinuation = "f213a82b-91d6-5c5d-acf7-10f1c761b327"
InfiniteOpt = "20393b10-9daf-11e9-18c9-8db751c92c57"
LabelledArrays = "2ee39098-c373-598a-b85f-a56591580800"
Expand All @@ -72,6 +73,7 @@ LabelledArrays = "2ee39098-c373-598a-b85f-a56591580800"
MTKBifurcationKitExt = "BifurcationKit"
MTKChainRulesCoreExt = "ChainRulesCore"
MTKDeepDiffsExt = "DeepDiffs"
MTKFMIExt = "FMI"
MTKHomotopyContinuationExt = "HomotopyContinuation"
MTKInfiniteOptExt = "InfiniteOpt"
MTKLabelledArraysExt = "LabelledArrays"
Expand Down Expand Up @@ -106,6 +108,7 @@ FindFirstFunctions = "1"
ForwardDiff = "0.10.3"
FunctionWrappers = "1.1"
FunctionWrappersWrappers = "0.1"
FMI = "0.14"
Graphs = "1.5.2"
HomotopyContinuation = "2.11"
InfiniteOpt = "0.5"
Expand Down Expand Up @@ -142,9 +145,9 @@ SpecialFunctions = "0.7, 0.8, 0.9, 0.10, 1.0, 2"
StaticArrays = "0.10, 0.11, 0.12, 1.0"
StochasticDiffEq = "6.72.1"
StochasticDelayDiffEq = "1.8.1"
SymbolicIndexingInterface = "0.3.36"
SymbolicUtils = "3.10"
Symbolics = "6.22.1"
SymbolicIndexingInterface = "0.3.37"
SymbolicUtils = "3.10.1"
Symbolics = "6.24"
URIs = "1"
UnPack = "0.1, 1.0"
Unitful = "1.1"
Expand Down
Loading
Loading