Интегродифференцированный PDE с НЕЙРАЛЬПДЕС — Джулия

#julia #differential-equations #flux.jl

Вопрос:

Я пытаюсь численно решить интегрально-дифференциальный PDE с NeuralPDE.jl помощью . Уравнение имеет аналитическое решение в области Лапласа, и поэтому я могу проверить численное решение. Уравнение таково

введите описание изображения здесь

С параметром бета а. В качестве первого шага я слепо следовал примеру, приведенному в документации, адаптируя только очевидные вещи. Это моя первая попытка:

 using NeuralPDE, Flux, ModelingToolkit, GalacticOptim, Optim, DiffEqFlux, DomainSets
import ModelingToolkit: Interval, infimum, supremum

@parameters t E
@variables i(..)

Dt = Differential(t)
DE = Differential(E)
IE = Integral(E in DomainSets.OpenInterval(0,Inf))

beta = 2.0;
eq = Dt(i(t, E))   exp(-beta*E)*i(t, E) - IE(i(t,E)*exp(-beta*E))*exp(-E) ~ 0
bcs = [i(0., E) ~ exp(-E)]
domains = [t ∈ Interval(0.0,100.0), E ∈ Interval(0.0, 10.0)]

chain = Chain(Dense(1,15,Flux.σ),Dense(15,1))
initθ = Float64.(DiffEqFlux.initial_params(chain));

strategy_ = GridTraining(0.05)
discretization = PhysicsInformedNN(chain,
                                   strategy_;
                                   init_params = nothing,
                                   phi = nothing,
                                   derivative = nothing)

@named pde_system = PDESystem(eq,bcs,domains,[t, E],[i(t, E)])

prob = NeuralPDE.discretize(pde_system,discretization)

 

И в последней строке я получаю загадочную (глупую, наверное) ошибку:

Ошибка ключа: ключ * не найден

Вместе с трассировкой стека это не очень помогает. Кто-нибудь может, пожалуйста, пролить немного света на это?

Комментарии:

1. Вы используете версию v1.6 с самой последней версией NeuralPDE.jl?

2. Да @ChrisRackauckas

3. Можете ли вы открыть проблему?

4. Здесь: github.com/SciML/NeuralPDE.jl/issues/406