@@ -687,11 +687,11 @@ function process_SciMLProblem(
687
687
688
688
u0map = to_varmap (u0map, dvs)
689
689
symbols_to_symbolics! (sys, u0map)
690
- check_keys (sys, u0map)
691
690
692
691
pmap = to_varmap (pmap, ps)
693
692
symbols_to_symbolics! (sys, pmap)
694
- check_keys (sys, pmap)
693
+
694
+ check_inputmap_keys (sys, u0map, pmap)
695
695
696
696
defs = add_toterms (recursive_unwrap (defaults (sys)))
697
697
cmap, cs = get_cmap (sys)
@@ -783,29 +783,37 @@ end
783
783
784
784
# Check that the keys of a u0map or pmap are valid
785
785
# (i.e. are symbolic keys, and are defined for the system.)
786
- function check_keys (sys, map)
787
- badkeys = Any[]
788
- for k in keys (map )
786
+ function check_inputmap_keys (sys, u0map, pmap)
787
+ badvarkeys = Any[]
788
+ for k in keys (u0map )
789
789
if symbolic_type (k) === NotSymbolic ()
790
- push! (badkeys , k)
790
+ push! (badvarkeys , k)
791
791
end
792
792
end
793
793
794
- isempty (badkeys) || throw (BadKeyError (collect (badkeys)))
794
+ badparamkeys = Any[]
795
+ for k in keys (pmap)
796
+ if symbolic_type (k) === NotSymbolic ()
797
+ push! (badparamkeys, k)
798
+ end
799
+ end
800
+ (isempty (badvarkeys) && isempty (badparamkeys)) || throw (InvalidKeyError (collect (badvarkeys), collect (badparamkeys)))
795
801
end
796
802
797
803
const BAD_KEY_MESSAGE = """
798
- Undefined keys found in the parameter or initial condition maps.
799
- The following keys are either invalid or not parameters/states of the system :
804
+ Undefined keys found in the parameter or initial condition maps. Check if symbolic variable names have been reassigned.
805
+ The following keys are invalid:
800
806
"""
801
807
802
- struct BadKeyError <: Exception
808
+ struct InvalidKeyError <: Exception
803
809
vars:: Any
810
+ params:: Any
804
811
end
805
812
806
- function Base. showerror (io:: IO , e:: BadKeyError )
813
+ function Base. showerror (io:: IO , e:: InvalidKeyError )
807
814
println (io, BAD_KEY_MESSAGE)
808
- println (io, join (e. vars, " , " ))
815
+ println (io, " u0map: $(join (e. vars, " , " )) " )
816
+ println (io, " pmap: $(join (e. params, " , " )) " )
809
817
end
810
818
811
819
0 commit comments