@@ -7,7 +7,7 @@ using NaNMath
77using  Setfield
88const  MTK =  ModelingToolkit
99
10- SPECIAL_FUNCTIONS_DICT =  Dict ([acos =>  Pyomo. py_acos,
10+ const   SPECIAL_FUNCTIONS_DICT =  Dict ([acos =>  Pyomo. py_acos,
1111    acosh =>  Pyomo. py_acosh,
1212    asin =>  Pyomo. py_asin,
1313    tan =>  Pyomo. py_tan,
@@ -33,22 +33,11 @@ struct PyomoDynamicOptModel
3333    function  PyomoDynamicOptModel (model, U, V, tₛ, is_free_final)
3434        @variables  MODEL_SYM:: Symbolics.symstruct (ConcreteModel) T_SYM DUMMY_SYM
3535        model. dU =  dae. DerivativeVar (U, wrt =  model. t, initialize =  0 )
36-         # add_time_equation!(model, MODEL_SYM, T_SYM)
3736        new (model, U, V, tₛ, is_free_final, nothing ,
3837            PyomoVar (model. dU), MODEL_SYM, T_SYM, DUMMY_SYM)
3938    end 
4039end 
4140
42- function  add_time_equation! (model:: ConcreteModel , model_sym, t_sym)
43-     model. dtime =  dae. DerivativeVar (model. time)
44- 
45-     mdt =  Symbolics. value (pysym_getproperty (model_sym, :dtime ))
46-     mts =  Symbolics. value (pysym_getproperty (model_sym, :tₛ ))
47-     expr =  mdt[t_sym] -  mts ==  0 
48-     f =  Pyomo. pyfunc (eval (Symbolics. build_function (expr, model_sym, t_sym)))
49-     model. time_eq =  pyomo. Constraint (model. t, rule =  f)
50- end 
51- 
5241struct  PyomoDynamicOptProblem{uType, tType, isinplace, P, F, K} < :
5342       AbstractDynamicOptProblem{uType, tType, isinplace}
5443    f:: F 
@@ -119,7 +108,7 @@ function MTK.add_constraint!(pmodel::PyomoDynamicOptModel, cons; n_idxs = 1)
119108    else 
120109        cons. lhs -  cons. rhs ≤  0 
121110    end 
122-     expr =  Symbolics. substitute (Symbolics. unwrap (expr), SPECIAL_FUNCTIONS_DICT)
111+     expr =  Symbolics. substitute (Symbolics. unwrap (expr), SPECIAL_FUNCTIONS_DICT, fold  =   false )
123112
124113    cons_sym =  Symbol (" cons"  , hash (cons))
125114    if  occursin (Symbolics. unwrap (t_sym), expr)
133122
134123function  MTK. set_objective! (pmodel:: PyomoDynamicOptModel , expr)
135124    @unpack  model, model_sym, t_sym, dummy_sym =  pmodel
136-     expr =  Symbolics. substitute (expr, SPECIAL_FUNCTIONS_DICT)
125+     expr =  Symbolics. substitute (expr, SPECIAL_FUNCTIONS_DICT, fold  =   false )
137126    if  occursin (Symbolics. unwrap (t_sym), expr)
138127        f =  eval (Symbolics. build_function (expr, model_sym, t_sym))
139128        model. obj =  pyomo. Objective (model. t, rule =  Pyomo. pyfunc (f))
0 commit comments