Skip to content

Commit 53c23a4

Browse files
authored
v0.10.3 (#91)
* initial apply! for schedulers * fixed "missing NelderMead"
1 parent d887406 commit 53c23a4

File tree

4 files changed

+13
-9
lines changed

4 files changed

+13
-9
lines changed

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "FMIFlux"
22
uuid = "fabad875-0d53-4e47-9446-963b74cae21f"
3-
version = "0.10.2"
3+
version = "0.10.3"
44

55
[deps]
66
ChainRulesCore = "d360d2e6-b24c-11e9-a2a3-2a2ae2dbcce4"

src/layers.jl

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -11,18 +11,22 @@ import FMIImport: fmi2Real, fmi2ValueReferenceFormat
1111
"""
1212
ToDo.
1313
"""
14-
struct FMUParameterRegistrator
14+
struct FMUParameterRegistrator{T}
1515
fmu::FMU2
1616
p_refs::AbstractArray{<:fmi2ValueReference}
17-
p::AbstractArray{<:Real}
17+
p::AbstractArray{T}
1818

19-
function FMUParameterRegistrator(fmu::FMU2, p_refs::fmi2ValueReferenceFormat, p::AbstractArray{<:Real})
19+
function FMUParameterRegistrator{T}(fmu::FMU2, p_refs::fmi2ValueReferenceFormat, p::AbstractArray{T}) where {T}
2020
@assert length(p_refs) == length(p) "`p_refs` and `p` need to be the same length!"
2121
p_refs = prepareValueReference(fmu, p_refs)
2222
fmu.optim_p_refs = p_refs
2323
fmu.optim_p = p
2424
return new(fmu, p_refs, p)
2525
end
26+
27+
function FMUParameterRegistrator(fmu::FMU2, p_refs::fmi2ValueReferenceFormat, p::AbstractArray{T}) where {T}
28+
return FMUParameterRegistrator{T}(fmu, p_refs, p)
29+
end
2630
end
2731
export FMUParameterRegistrator
2832

src/neural.jl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -426,11 +426,11 @@ function affectFMU!(nfmu::ME_NeuralFMU, c::FMU2Component, integrator, idx)
426426

427427
# ToDo: Problem-related parameterization of optimize-call
428428
#result = optimize(x_seek -> f_optim(x_seek, nfmu, right_x_fmu), left_x, LBFGS(); autodiff = :forward)
429-
#result = Optim.optimize(x_seek -> f_optim(x_seek, nfmu, right_x_fmu, idx, sign(indicators[idx])), left_x, NelderMead())
429+
#result = Optim.optimize(x_seek -> f_optim(x_seek, nfmu, right_x_fmu, idx, sign(indicators[idx])), left_x, Optim.NelderMead())
430430

431431
# if there is an ANN above the FMU, propaget FMU state through top ANN:
432432
if nfmu.modifiedState == true
433-
result = Optim.optimize(x_seek -> f_optim(x_seek, nfmu, c, right_x_fmu), left_x, NelderMead())
433+
result = Optim.optimize(x_seek -> f_optim(x_seek, nfmu, c, right_x_fmu), left_x, Optim.NelderMead())
434434
right_x = Optim.minimizer(result)
435435
else # if there is no ANN above, then:
436436
right_x = right_x_fmu

src/scheduler.jl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -188,7 +188,7 @@ function initialize!(scheduler::BatchScheduler; runkwargs...)
188188
scheduler.runkwargs = runkwargs
189189
end
190190

191-
#scheduler.elementIndex = apply!(scheduler)
191+
scheduler.elementIndex = apply!(scheduler)
192192

193193
if scheduler.plotStep > 0
194194
plot(scheduler, lastIndex)
@@ -201,11 +201,11 @@ function update!(scheduler::BatchScheduler)
201201

202202
scheduler.step += 1
203203

204-
if scheduler.step % scheduler.applyStep == 0
204+
if scheduler.applyStep > 0 && scheduler.step % scheduler.applyStep == 0
205205
scheduler.elementIndex = apply!(scheduler)
206206
end
207207

208-
if scheduler.step % scheduler.plotStep == 0
208+
if scheduler.plotStep > 0 && scheduler.step % scheduler.plotStep == 0
209209
plot(scheduler, lastIndex)
210210
end
211211
end

0 commit comments

Comments
 (0)