If it's already implemented, please let me know. But looking at
|
function SciMLBase.discretize(pdesys::PDESystem, |
|
discretization::AbstractEquationSystemDiscretization; |
|
analytic = nothing, kwargs...) |
|
sys, tspan = SciMLBase.symbolic_discretize(pdesys, discretization) |
|
try |
|
simpsys = structural_simplify(sys) |
|
if tspan === nothing |
|
add_metadata!(get_metadata(sys), sys) |
|
return prob = NonlinearProblem(simpsys, ones(length(simpsys.states)); |
|
discretization.kwargs..., kwargs...) |
|
else |
|
# Use ODAE if nessesary |
|
if hasfield(typeof(sys.metadata), :use_ODAE) && sys.metadata.use_ODAE |
|
add_metadata!(get_metadata(simpsys), |
|
DAEProblem(simpsys; discretization.kwargs..., kwargs...)) |
|
return prob = ODAEProblem(simpsys, Pair[], tspan; discretization.kwargs..., |
|
kwargs...) |
|
else |
|
add_metadata!(get_metadata(simpsys), sys) |
|
prob = ODEProblem(simpsys, Pair[], tspan; discretization.kwargs..., |
|
kwargs...) |
|
if analytic === nothing |
|
return prob |
|
else |
|
f = ODEFunction(pdesys, discretization, analytic = analytic, |
|
discretization.kwargs..., kwargs...) |
|
|
|
return ODEProblem(f, prob.u0, prob.tspan, prob.p; |
|
discretization.kwargs..., kwargs...) |
|
end |
|
end |
|
end |
|
catch e |
|
error_analysis(sys, e) |
|
end |
|
end |
it doesn't appear to be implemented currently.
If it's already implemented, please let me know. But looking at
PDEBase.jl/src/discretization_state.jl
Lines 55 to 90 in 9f71f68