I am new to the PINN topic and therefore I just wanted to study through the tutorial of NeuralPDE.jl. I tried several examples from the tutorial. Sadly none of it works and I get the same error for each example. I am using Julia Version 1.7.2.
For example, the error I get for the Poisson equation is:
ERROR: MethodError: no method matching hash(::Sym{Real, Base.ImmutableDict{DataType, Any}}, ::UInt64)
Closest candidates are:
hash(::Union{SymbolicUtils.Add, SymbolicUtils.Mul}, ::UInt64) at C:\Users\K\.julia\packages\SymbolicUtils\v2ZkM\src\types.jl:1119
hash(::Sym, ::UInt32) at C:\Users\K\.julia\packages\SymbolicUtils\v2ZkM\src\types.jl:152
hash(::PolyForm, ::UInt64) at C:\Users\K\.julia\packages\SymbolicUtils\v2ZkM\src\polyform.jl:43
...
Stacktrace:
[1] hash(D::Differential, u::UInt32)
@ Symbolics C:\Users\K\.julia\packages\Symbolics\1OrKJ\src\diff.jl:51
[2] hash(x::Function)
@ Base .\hashing.jl:20
[3] hashindex
@ .\dict.jl:169 [inlined]
[4] ht_keyindex
@ .\dict.jl:284 [inlined]
[5] in(key::Function, v::Base.KeySet{Symbol, Dict{Symbol, Int32}})
@ Base .\dict.jl:553
[6] _transform_expression(ex::Expr, indvars::Vector{Symbol}, depvars::Vector{Symbol}, dict_indvars::Dict{Symbol, Int32}, dict_depvars::Dict{Symbol, Int32}, dict_depvar_input::Dict{Symbol, Vector{Symbol}}, chain::FastChain{Tuple{FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(identity), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}}}, eltypeθ::Type, strategy::GridTraining, phi::NeuralPDE.var"#280#282"{FastChain{Tuple{FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(identity), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}}}, UnionAll}, derivative_::NeuralPDE.var"#286#287", integral::NeuralPDE.var"#288#295"{GridTraining, NeuralPDE.var"#288#289#296"{NeuralPDE.var"#286#287"}, Dict{Symbol, Int32}, Dict{Symbol, Int32}, Vector{Symbol}, Vector{Symbol}}, initθ::Vector{Float64}; is_integral::Bool, dict_transformation_vars::Nothing, transformation_vars::Nothing)
@ NeuralPDE C:\Users\K\.julia\packages\NeuralPDE\j8LaF\src\pinns_pde_solve.jl:247
[7] _transform_expression(ex::Expr, indvars::Vector{Symbol}, depvars::Vector{Symbol}, dict_indvars::Dict{Symbol, Int32}, dict_depvars::Dict{Symbol, Int32}, dict_depvar_input::Dict{Symbol, Vector{Symbol}}, chain::FastChain{Tuple{FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(identity), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}}}, eltypeθ::Type, strategy::GridTraining, phi::NeuralPDE.var"#280#282"{FastChain{Tuple{FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(identity), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}}}, UnionAll}, derivative_::NeuralPDE.var"#286#287", integral::NeuralPDE.var"#288#295"{GridTraining, NeuralPDE.var"#288#289#296"{NeuralPDE.var"#286#287"}, Dict{Symbol, Int32}, Dict{Symbol, Int32}, Vector{Symbol}, Vector{Symbol}}, initθ::Vector{Float64}; is_integral::Bool, dict_transformation_vars::Nothing, transformation_vars::Nothing)
@ NeuralPDE C:\Users\K\.julia\packages\NeuralPDE\j8LaF\src\pinns_pde_solve.jl:360
[8] transform_expression(ex::Expr, indvars::Vector{Symbol}, depvars::Vector{Symbol}, dict_indvars::Dict{Symbol, Int32}, dict_depvars::Dict{Symbol, Int32}, dict_depvar_input::Dict{Symbol, Vector{Symbol}}, chain::FastChain{Tuple{FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(identity), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}}}, eltypeθ::Type, strategy::GridTraining, phi::NeuralPDE.var"#280#282"{FastChain{Tuple{FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(identity), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}}}, UnionAll}, derivative::NeuralPDE.var"#286#287", integral::NeuralPDE.var"#288#295"{GridTraining, NeuralPDE.var"#288#289#296"{NeuralPDE.var"#286#287"}, Dict{Symbol, Int32}, Dict{Symbol, Int32}, Vector{Symbol}, Vector{Symbol}}, initθ::Vector{Float64}; is_integral::Bool, dict_transformation_vars::Nothing, transformation_vars::Nothing)
@ NeuralPDE C:\Users\K\.julia\packages\NeuralPDE\j8LaF\src\pinns_pde_solve.jl:205
[9] transform_expression(ex::Expr, indvars::Vector{Symbol}, depvars::Vector{Symbol}, dict_indvars::Dict{Symbol, Int32}, dict_depvars::Dict{Symbol, Int32}, dict_depvar_input::Dict{Symbol, Vector{Symbol}}, chain::Function, eltypeθ::Type, strategy::GridTraining, phi::NeuralPDE.var"#280#282"{FastChain{Tuple{FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(identity), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}}}, UnionAll}, derivative::NeuralPDE.var"#286#287", integral::NeuralPDE.var"#288#295"{GridTraining, NeuralPDE.var"#288#289#296"{NeuralPDE.var"#286#287"}, Dict{Symbol, Int32}, Dict{Symbol, Int32}, Vector{Symbol}, Vector{Symbol}}, initθ::Vector{Float64})
@ NeuralPDE C:\Users\K\.julia\packages\NeuralPDE\j8LaF\src\pinns_pde_solve.jl:204
[10] parse_equation(eq::Equation, indvars::Vector{Symbol}, depvars::Vector{Symbol}, dict_indvars::Dict{Symbol, Int32}, dict_depvars::Dict{Symbol, Int32}, dict_depvar_input::Dict{Symbol, Vector{Symbol}}, chain::Function, eltypeθ::Type, strategy::GridTraining, phi::NeuralPDE.var"#280#282"{FastChain{Tuple{FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(identity), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}}}, UnionAll}, derivative::NeuralPDE.var"#286#287", integral::NeuralPDE.var"#288#295"{GridTraining, NeuralPDE.var"#288#289#296"{NeuralPDE.var"#286#287"}, Dict{Symbol, Int32}, Dict{Symbol, Int32}, Vector{Symbol}, Vector{Symbol}}, initθ::Vector{Float64})
@ NeuralPDE C:\Users\K\.julia\packages\NeuralPDE\j8LaF\src\pinns_pde_solve.jl:402
[11] build_symbolic_loss_function(eqs::Equation, indvars::Vector{Symbol}, depvars::Vector{Symbol}, dict_indvars::Dict{Symbol, Int32}, dict_depvars::Dict{Symbol, Int32}, dict_depvar_input::Dict{Symbol, Vector{Symbol}}, phi::NeuralPDE.var"#280#282"{FastChain{Tuple{FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(identity), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}}}, UnionAll}, derivative::NeuralPDE.var"#286#287", integral::NeuralPDE.var"#288#295"{GridTraining, NeuralPDE.var"#288#289#296"{NeuralPDE.var"#286#287"}, Dict{Symbol, Int32}, Dict{Symbol, Int32}, Vector{Symbol}, Vector{Symbol}}, chain::FastChain{Tuple{FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(identity), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}}}, initθ::Vector{Float64}, strategy::GridTraining; eq_params::SciMLBase.NullParameters, param_estim::Bool, default_p::Nothing, bc_indvars::Vector{Any}, integrand::Nothing, dict_transformation_vars::Nothing, transformation_vars::Nothing, integrating_depvars::Vector{Symbol})
@ NeuralPDE C:\Users\K\.julia\packages\NeuralPDE\j8LaF\src\pinns_pde_solve.jl:509
[12] #build_loss_function#184
@ C:\Users\K\.julia\packages\NeuralPDE\j8LaF\src\pinns_pde_solve.jl:630 [inlined]
[13] #346
@ .\none:0 [inlined]
[14] iterate
@ .\generator.jl:47 [inlined]
[15] collect(itr::Base.Generator{Base.Iterators.Zip{Tuple{Vector{Equation}, Vector{Vector{Any}}, Vector{Vector{Symbol}}}}, NeuralPDE.var"#346#362"{NeuralPDE.var"#288#295"{GridTraining, NeuralPDE.var"#288#289#296"{NeuralPDE.var"#286#287"}, Dict{Symbol, Int32}, Dict{Symbol, Int32}, Vector{Symbol}, Vector{Symbol}}, GridTraining, NeuralPDE.var"#286#287", NeuralPDE.var"#280#282"{FastChain{Tuple{FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(identity), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}}}, UnionAll}, Vector{Float64}, FastChain{Tuple{FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(identity), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}}}, Dict{Symbol, Vector{Symbol}}, Dict{Symbol, Int32}, Dict{Symbol, Int32}, Vector{Symbol}, Vector{Symbol}, Bool, Nothing, SciMLBase.NullParameters}}) @ Base .\array.jl:724
[16] discretize(pde_system::PDESystem, discretization::PhysicsInformedNN{true, FastChain{Tuple{FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(identity), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}}}, GridTraining, Vector{Float64}, NeuralPDE.var"#280#282"{FastChain{Tuple{FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(sigmoid_fast), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}, FastDense{typeof(identity), DiffEqFlux.var"#initial_params#94"{Vector{Float32}}, Nothing}}}, UnionAll}, NeuralPDE.var"#286#287", Bool, Nothing, Base.Pairs{Symbol, Union{}, Tuple{}, NamedTuple{(), Tuple{}}}})
@ NeuralPDE C:\Users\K\.julia\packages\NeuralPDE\j8LaF\src\pinns_pde_solve.jl:1133
[17] top-level scope
@ c:\Users\K\Desktop\PINN\test.jl:30
Is there anything to fix this issue?