# CallWithMetadata has no field val error for simple PDE system in ModelingToolkit

**URL:** <https://discourse.julialang.org/t/callwithmetadata-has-no-field-val-error-for-simple-pde-system-in-modelingtoolkit/89055>\
**Category:** Modelling & Simulations\
**Tags:** modelingtoolkit\
**Created:** [October 21, 2022, 11:21am UTC](https://discourse.julialang.org/t/callwithmetadata-has-no-field-val-error-for-simple-pde-system-in-modelingtoolkit/89055 "2022-10-21T11:21:31Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![hbooth](https://avatars.discourse-cdn.com/v4/letter/h/e19b73/32.png) [@hbooth](https://discourse.julialang.org/u/hbooth)\
**Post date:** [October 21, 2022, 11:21am UTC](https://discourse.julialang.org/t/callwithmetadata-has-no-field-val-error-for-simple-pde-system-in-modelingtoolkit/89055/1 "2022-10-21T11:21:31Z")

</div>

Hi

```julia
using DifferentialEquations
using ModelingToolkit, MethodOfLines

@parameters x
@variables t c(..)

Dx = Differential(x)
Dxx = Differential(x)^2
Dt = Differential(t)

L = 1.
D = 0.16
k = 1.
j0 = 0.4

eq = Dt(c(t,x)) ~ D*Dxx(c(t,x)) - k*c(t,x)

# Initial and boundary conditions
bcs = [c(0,x) ~ 0., 
       Dx(c(t,0)) ~ -j0, Dx(c(t,L)) ~ 0.]

# Space and time domains
domains = [t ∈ (0.0,12.0),
           x ∈ (0.0,L)]

@named pde_system = PDESystem(eq,bcs,domains,[t,x],[c])

dx = 0.01
order = 2
discretization = MOLFiniteDifference([x => dx], t)

prob = discretize(pde_system,discretization)

```

produces the error

```julia
type CallWithMetadata has no field val

Stacktrace:
 [1] getproperty
   @ ./Base.jl:38 [inlined]
 [2] (::MethodOfLines.var"#418#435")(x::Symbolics.CallWithMetadata{SymbolicUtils.FnType{Tuple, Real}, Base.ImmutableDict{DataType, Any}})
   @ MethodOfLines ~/.julia/packages/MethodOfLines/EqHjt/src/MOL_discretization.jl:16
 [3] iterate
   @ ./generator.jl:47 [inlined]
 [4] _collect
   @ ./array.jl:807 [inlined]
 [5] collect_similar(cont::Vector{Symbolics.CallWithMetadata{SymbolicUtils.FnType{Tuple, Real}, Base.ImmutableDict{DataType, Any}}}, itr::Base.Generator{Vector{Symbolics.CallWithMetadata{SymbolicUtils.FnType{Tuple, Real}, Base.ImmutableDict{DataType, Any}}}, MethodOfLines.var"#418#435"})
   @ Base ./array.jl:716
 [6] map(f::Function, A::Vector{Symbolics.CallWithMetadata{SymbolicUtils.FnType{Tuple, Real}, Base.ImmutableDict{DataType, Any}}})
   @ Base ./abstractarray.jl:2933
 [7] symbolic_discretize(pdesys::PDESystem, discretization::MOLFiniteDifference{MethodOfLines.CenterAlignedGrid})
   @ MethodOfLines ~/.julia/packages/MethodOfLines/EqHjt/src/MOL_discretization.jl:16
 [8] discretize(pdesys::PDESystem, discretization::MOLFiniteDifference{MethodOfLines.CenterAlignedGrid})
   @ MethodOfLines ~/.julia/packages/MethodOfLines/EqHjt/src/MOL_discretization.jl:162
 [9] top-level scope
   @ ~/Documents/Hadjivasiliou_Julia_Tutorial/notebooks/Tutorial_SymbolicNumerics.ipynb:1

```

Project.toml:

```julia
  [6e4b80f9] BenchmarkTools v1.3.1
  [2b5f629d] DiffEqBase v6.105.1
  [ebbdde9d] DiffEqBayes v3.1.0
  [459566f4] DiffEqCallbacks v2.24.2
  [1130ab10] DiffEqParamEstim v1.27.0
  [0c46a032] DifferentialEquations v7.5.0
  [634d3b9d] DrWatson v2.11.1
  [94925ecb] MethodOfLines v0.5.1
⌃ [961ee093] ModelingToolkit v8.29.0
  [76087f3c] NLopt v0.6.5
⌃ [91a5bcdd] Plots v1.35.4
  [731186ca] RecursiveArrayTools v2.32.0
  [0c5d862f] Symbolics v4.13.0
  [fce5fe82] Turing v0.21.12
  [e88e6eb3] Zygote v0.6.49
  [37e2e46d] LinearAlgebra

```

Any ideas?

---

<div class="post-metadata">

**Author:** ![ChrisRackauckas](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/chrisrackauckas/32/77_2.png) [@ChrisRackauckas](https://discourse.julialang.org/u/ChrisRackauckas)\
**Post date:** [October 21, 2022, 12:59pm UTC](https://discourse.julialang.org/t/callwithmetadata-has-no-field-val-error-for-simple-pde-system-in-modelingtoolkit/89055/2 "2022-10-21T12:59:32Z")

</div>

Open an issue on the repo.

---

<div class="post-metadata">

**Author:** ![hbooth](https://avatars.discourse-cdn.com/v4/letter/h/e19b73/32.png) [@hbooth](https://discourse.julialang.org/u/hbooth)\
**Post date:** [October 21, 2022, 1:02pm UTC](https://discourse.julialang.org/t/callwithmetadata-has-no-field-val-error-for-simple-pde-system-in-modelingtoolkit/89055/3 "2022-10-21T13:02:26Z")

</div>

> <https://github.com/SciML/MethodOfLines.jl/issues/180>
>
> \`\`\`
> using DifferentialEquations
> using ModelingToolkit, MethodOfLines
> 
> @param…eters x
> @variables t c(..)
> 
> Dx = Differential(x)
> Dxx = Differential(x)^2
> Dt = Differential(t)
> 
> L = 1.
> D = 0.16
> k = 1.
> j0 = 0.4
> 
> eq = Dt(c(t,x)) ~ D\*Dxx(c(t,x)) - k\*c(t,x)
> 
> \# Initial and boundary conditions
> bcs = \[c(0,x) ~ 0., 
> Dx(c(t,0)) ~ -j0, Dx(c(t,L)) ~ 0.\]
> 
> \# Space and time domains
> domains = \[t ∈ (0.0,12.0),
> x ∈ (0.0,L)\]
> 
> @named pde\_system = PDESystem(eq,bcs,domains,\[t,x\],\[c\])
> 
> dx = 0.01
> order = 2
> discretization = MOLFiniteDifference(\[x =\> dx\], t)
> 
> prob = discretize(pde\_system,discretization)
> \`\`\`
> 
> produces the error 
> 
> \`\`\`
> type CallWithMetadata has no field val
> 
> Stacktrace:
> \[1\] getproperty
> @ ./Base.jl:38 \[inlined\]
> \[2\] (::MethodOfLines.var"#418#435")(x::Symbolics.CallWithMetadata{SymbolicUtils.FnType{Tuple, Real}, Base.ImmutableDict{DataType, Any}})
> @ MethodOfLines ~/.julia/packages/MethodOfLines/EqHjt/src/MOL\_discretization.jl:16
> \[3\] iterate
> @ ./generator.jl:47 \[inlined\]
> \[4\] \_collect
> @ ./array.jl:807 \[inlined\]
> \[5\] collect\_similar(cont::Vector{Symbolics.CallWithMetadata{SymbolicUtils.FnType{Tuple, Real}, Base.ImmutableDict{DataType, Any}}}, itr::Base.Generator{Vector{Symbolics.CallWithMetadata{SymbolicUtils.FnType{Tuple, Real}, Base.ImmutableDict{DataType, Any}}}, MethodOfLines.var"#418#435"})
> @ Base ./array.jl:716
> \[6\] map(f::Function, A::Vector{Symbolics.CallWithMetadata{SymbolicUtils.FnType{Tuple, Real}, Base.ImmutableDict{DataType, Any}}})
> @ Base ./abstractarray.jl:2933
> \[7\] symbolic\_discretize(pdesys::PDESystem, discretization::MOLFiniteDifference{MethodOfLines.CenterAlignedGrid})
> @ MethodOfLines ~/.julia/packages/MethodOfLines/EqHjt/src/MOL\_discretization.jl:16
> \[8\] discretize(pdesys::PDESystem, discretization::MOLFiniteDifference{MethodOfLines.CenterAlignedGrid})
> @ MethodOfLines ~/.julia/packages/MethodOfLines/EqHjt/src/MOL\_discretization.jl:162
> \[9\] top-level scope
> @ ~/Documents/Hadjivasiliou\_Julia\_Tutorial/notebooks/Tutorial\_SymbolicNumerics.ipynb:1
> \`\`\`
> 
> Project.toml: 
> 
> \`\`\`
> \[6e4b80f9\] BenchmarkTools v1.3.1
> \[2b5f629d\] DiffEqBase v6.105.1
> \[ebbdde9d\] DiffEqBayes v3.1.0
> \[459566f4\] DiffEqCallbacks v2.24.2
> \[1130ab10\] DiffEqParamEstim v1.27.0
> \[0c46a032\] DifferentialEquations v7.5.0
> \[634d3b9d\] DrWatson v2.11.1
> \[94925ecb\] MethodOfLines v0.5.1
> ⌃ \[961ee093\] ModelingToolkit v8.29.0
> \[76087f3c\] NLopt v0.6.5
> ⌃ \[91a5bcdd\] Plots v1.35.4
> \[731186ca\] RecursiveArrayTools v2.32.0
> \[0c5d862f\] Symbolics v4.13.0
> \[fce5fe82\] Turing v0.21.12
> \[e88e6eb3\] Zygote v0.6.49
> \[37e2e46d\] LinearAlgebra
> \`\`\`

done
