Skip to content

Discretization failed #143

@kalmarek

Description

@kalmarek

Hey,
I have this lengthy example that fails and tells me

Discretization failed, please post an issue on https://github.com/SciML/MethodOfLines.jl with the failing code and system at low point count.

So here I am ;)

WARNING: both Symbolics and ModelingToolkit export "supremum"; uses of it in module MethodOfLines must be qualified
WARNING: both Symbolics and ModelingToolkit export "infimum"; uses of it in module MethodOfLines must be qualified
The system of equations is:
Equation[(IfElse.ifelse((2Differential(0.075)(α₂[3](t))*Differential(0.075)(Differential(0.075)(α₁[3](t)))) > 0, 2(20.0α₁[3](t) - 20.0α₁[2](t))*Differential(0.075)(α₂[3](t))*Differential(0.075)(Differential(0.075)(α₁[3](t))), 2(20.0α₁[4](t) - 20.0α₁[3](t))*Differential(0.075)(α₂[3](t))*Differential(0.075)(Differential(0.075)(α₁[3](t)))) - 2.0(399.99999999999994α₂[2](t) + 399.99999999999994α₂[4](t) - 799.9999999999999α₂[3](t))*((20.0α₁[3](t) - 20.0α₁[2](t))^2)) / (((20.0α₁[3](t) - 20.0α₁[2](t))^2 + (20.0α₂[3](t) - 20.0α₂[2](t))^2)*α₂[3](t)) + Differential(t)((20.0α₁[3](t) - 20.0α₁[2](t))^2 + (20.0α₂[3](t) - 20.0α₂[2](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.125)(α₂[4](t))*Differential(0.125)(Differential(0.125)(α₁[4](t)))) > 0, 2(20.0α₁[4](t) - 20.0α₁[3](t))*Differential(0.125)(α₂[4](t))*Differential(0.125)(Differential(0.125)(α₁[4](t))), 2(20.0α₁[5](t) - 20.0α₁[4](t))*Differential(0.125)(α₂[4](t))*Differential(0.125)(Differential(0.125)(α₁[4](t)))) - 2.0(399.99999999999994α₂[3](t) + 399.99999999999994α₂[5](t) - 799.9999999999999α₂[4](t))*((20.0α₁[4](t) - 20.0α₁[3](t))^2)) / (((20.0α₁[4](t) - 20.0α₁[3](t))^2 + (20.0α₂[4](t) - 20.0α₂[3](t))^2)*α₂[4](t)) + Differential(t)((20.0α₁[4](t) - 20.0α₁[3](t))^2 + (20.0α₂[4](t) - 20.0α₂[3](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.175)(α₂[5](t))*Differential(0.175)(Differential(0.175)(α₁[5](t)))) > 0, 2(20.0α₁[5](t) - 20.0α₁[4](t))*Differential(0.175)(α₂[5](t))*Differential(0.175)(Differential(0.175)(α₁[5](t))), 2(20.0α₁[6](t) - 20.0α₁[5](t))*Differential(0.175)(α₂[5](t))*Differential(0.175)(Differential(0.175)(α₁[5](t)))) - 2.0(399.99999999999994α₂[4](t) + 399.99999999999994α₂[6](t) - 799.9999999999999α₂[5](t))*((20.0α₁[5](t) - 20.0α₁[4](t))^2)) / (((20.0α₁[5](t) - 20.0α₁[4](t))^2 + (20.0α₂[5](t) - 20.0α₂[4](t))^2)*α₂[5](t)) + Differential(t)((20.0α₁[5](t) - 20.0α₁[4](t))^2 + (20.0α₂[5](t) - 20.0α₂[4](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.225)(α₂[6](t))*Differential(0.225)(Differential(0.225)(α₁[6](t)))) > 0, 2(20.0α₁[6](t) - 20.0α₁[5](t))*Differential(0.225)(α₂[6](t))*Differential(0.225)(Differential(0.225)(α₁[6](t))), 2(20.0α₁[7](t) - 20.0α₁[6](t))*Differential(0.225)(α₂[6](t))*Differential(0.225)(Differential(0.225)(α₁[6](t)))) - 2.0(399.99999999999994α₂[5](t) + 399.99999999999994α₂[7](t) - 799.9999999999999α₂[6](t))*((20.0α₁[6](t) - 20.0α₁[5](t))^2)) / (((20.0α₁[6](t) - 20.0α₁[5](t))^2 + (20.0α₂[6](t) - 20.0α₂[5](t))^2)*α₂[6](t)) + Differential(t)((20.0α₁[6](t) - 20.0α₁[5](t))^2 + (20.0α₂[6](t) - 20.0α₂[5](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.275)(α₂[7](t))*Differential(0.275)(Differential(0.275)(α₁[7](t)))) > 0, 2(20.0α₁[7](t) - 20.0α₁[6](t))*Differential(0.275)(α₂[7](t))*Differential(0.275)(Differential(0.275)(α₁[7](t))), 2(20.0α₁[8](t) - 20.0α₁[7](t))*Differential(0.275)(α₂[7](t))*Differential(0.275)(Differential(0.275)(α₁[7](t)))) - 2.0(399.99999999999994α₂[6](t) + 399.99999999999994α₂[8](t) - 799.9999999999999α₂[7](t))*((20.0α₁[7](t) - 20.0α₁[6](t))^2)) / (((20.0α₁[7](t) - 20.0α₁[6](t))^2 + (20.0α₂[7](t) - 20.0α₂[6](t))^2)*α₂[7](t)) + Differential(t)((20.0α₁[7](t) - 20.0α₁[6](t))^2 + (20.0α₂[7](t) - 20.0α₂[6](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.325)(α₂[8](t))*Differential(0.325)(Differential(0.325)(α₁[8](t)))) > 0, 2(20.0α₁[8](t) - 20.0α₁[7](t))*Differential(0.325)(α₂[8](t))*Differential(0.325)(Differential(0.325)(α₁[8](t))), 2(20.0α₁[9](t) - 20.0α₁[8](t))*Differential(0.325)(α₂[8](t))*Differential(0.325)(Differential(0.325)(α₁[8](t)))) - 2.0(399.99999999999994α₂[7](t) + 399.99999999999994α₂[9](t) - 799.9999999999999α₂[8](t))*((20.0α₁[8](t) - 20.0α₁[7](t))^2)) / (((20.0α₁[8](t) - 20.0α₁[7](t))^2 + (20.0α₂[8](t) - 20.0α₂[7](t))^2)*α₂[8](t)) + Differential(t)((20.0α₁[8](t) - 20.0α₁[7](t))^2 + (20.0α₂[8](t) - 20.0α₂[7](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.375)(α₂[9](t))*Differential(0.375)(Differential(0.375)(α₁[9](t)))) > 0, 2(20.0α₁[9](t) - 20.0α₁[8](t))*Differential(0.375)(α₂[9](t))*Differential(0.375)(Differential(0.375)(α₁[9](t))), 2(20.0α₁[10](t) - 20.0α₁[9](t))*Differential(0.375)(α₂[9](t))*Differential(0.375)(Differential(0.375)(α₁[9](t)))) - 2.0(399.99999999999994α₂[8](t) + 399.99999999999994α₂[10](t) - 799.9999999999999α₂[9](t))*((20.0α₁[9](t) - 20.0α₁[8](t))^2)) / (((20.0α₁[9](t) - 20.0α₁[8](t))^2 + (20.0α₂[9](t) - 20.0α₂[8](t))^2)*α₂[9](t)) + Differential(t)((20.0α₁[9](t) - 20.0α₁[8](t))^2 + (20.0α₂[9](t) - 20.0α₂[8](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.425)(α₂[10](t))*Differential(0.425)(Differential(0.425)(α₁[10](t)))) > 0, 2(20.0α₁[10](t) - 20.0α₁[9](t))*Differential(0.425)(α₂[10](t))*Differential(0.425)(Differential(0.425)(α₁[10](t))), 2(20.0α₁[11](t) - 20.0α₁[10](t))*Differential(0.425)(α₂[10](t))*Differential(0.425)(Differential(0.425)(α₁[10](t)))) - 2.0(399.99999999999994α₂[9](t) + 399.99999999999994α₂[11](t) - 799.9999999999999α₂[10](t))*((20.0α₁[10](t) - 20.0α₁[9](t))^2)) / (((20.0α₁[10](t) - 20.0α₁[9](t))^2 + (20.0α₂[10](t) - 20.0α₂[9](t))^2)*α₂[10](t)) + Differential(t)((20.0α₁[10](t) - 20.0α₁[9](t))^2 + (20.0α₂[10](t) - 20.0α₂[9](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.475)(α₂[11](t))*Differential(0.475)(Differential(0.475)(α₁[11](t)))) > 0, 2(20.0α₁[11](t) - 20.0α₁[10](t))*Differential(0.475)(α₂[11](t))*Differential(0.475)(Differential(0.475)(α₁[11](t))), 2(20.0α₁[12](t) - 20.0α₁[11](t))*Differential(0.475)(α₂[11](t))*Differential(0.475)(Differential(0.475)(α₁[11](t)))) - 2.0(399.99999999999994α₂[10](t) + 399.99999999999994α₂[12](t) - 799.9999999999999α₂[11](t))*((20.0α₁[11](t) - 20.0α₁[10](t))^2)) / (((20.0α₁[11](t) - 20.0α₁[10](t))^2 + (20.0α₂[11](t) - 20.0α₂[10](t))^2)*α₂[11](t)) + Differential(t)((20.0α₁[11](t) - 20.0α₁[10](t))^2 + (20.0α₂[11](t) - 20.0α₂[10](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.525)(α₂[12](t))*Differential(0.525)(Differential(0.525)(α₁[12](t)))) > 0, 2(20.0α₁[12](t) - 20.0α₁[11](t))*Differential(0.525)(α₂[12](t))*Differential(0.525)(Differential(0.525)(α₁[12](t))), 2(20.0α₁[13](t) - 20.0α₁[12](t))*Differential(0.525)(α₂[12](t))*Differential(0.525)(Differential(0.525)(α₁[12](t)))) - 2.0(399.99999999999994α₂[11](t) + 399.99999999999994α₂[13](t) - 799.9999999999999α₂[12](t))*((20.0α₁[12](t) - 20.0α₁[11](t))^2)) / (((20.0α₁[12](t) - 20.0α₁[11](t))^2 + (20.0α₂[12](t) - 20.0α₂[11](t))^2)*α₂[12](t)) + Differential(t)((20.0α₁[12](t) - 20.0α₁[11](t))^2 + (20.0α₂[12](t) - 20.0α₂[11](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.575)(α₂[13](t))*Differential(0.575)(Differential(0.575)(α₁[13](t)))) > 0, 2(20.0α₁[13](t) - 20.0α₁[12](t))*Differential(0.575)(α₂[13](t))*Differential(0.575)(Differential(0.575)(α₁[13](t))), 2(20.0α₁[14](t) - 20.0α₁[13](t))*Differential(0.575)(α₂[13](t))*Differential(0.575)(Differential(0.575)(α₁[13](t)))) - 2.0(399.99999999999994α₂[12](t) + 399.99999999999994α₂[14](t) - 799.9999999999999α₂[13](t))*((20.0α₁[13](t) - 20.0α₁[12](t))^2)) / (((20.0α₁[13](t) - 20.0α₁[12](t))^2 + (20.0α₂[13](t) - 20.0α₂[12](t))^2)*α₂[13](t)) + Differential(t)((20.0α₁[13](t) - 20.0α₁[12](t))^2 + (20.0α₂[13](t) - 20.0α₂[12](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.625)(α₂[14](t))*Differential(0.625)(Differential(0.625)(α₁[14](t)))) > 0, 2(20.0α₁[14](t) - 20.0α₁[13](t))*Differential(0.625)(α₂[14](t))*Differential(0.625)(Differential(0.625)(α₁[14](t))), 2(20.0α₁[15](t) - 20.0α₁[14](t))*Differential(0.625)(α₂[14](t))*Differential(0.625)(Differential(0.625)(α₁[14](t)))) - 2.0(399.99999999999994α₂[13](t) + 399.99999999999994α₂[15](t) - 799.9999999999999α₂[14](t))*((20.0α₁[14](t) - 20.0α₁[13](t))^2)) / (((20.0α₁[14](t) - 20.0α₁[13](t))^2 + (20.0α₂[14](t) - 20.0α₂[13](t))^2)*α₂[14](t)) + Differential(t)((20.0α₁[14](t) - 20.0α₁[13](t))^2 + (20.0α₂[14](t) - 20.0α₂[13](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.675)(α₂[15](t))*Differential(0.675)(Differential(0.675)(α₁[15](t)))) > 0, 2(20.0α₁[15](t) - 20.0α₁[14](t))*Differential(0.675)(α₂[15](t))*Differential(0.675)(Differential(0.675)(α₁[15](t))), 2(20.0α₁[16](t) - 20.0α₁[15](t))*Differential(0.675)(α₂[15](t))*Differential(0.675)(Differential(0.675)(α₁[15](t)))) - 2.0(399.99999999999994α₂[14](t) + 399.99999999999994α₂[16](t) - 799.9999999999999α₂[15](t))*((20.0α₁[15](t) - 20.0α₁[14](t))^2)) / (((20.0α₁[15](t) - 20.0α₁[14](t))^2 + (20.0α₂[15](t) - 20.0α₂[14](t))^2)*α₂[15](t)) + Differential(t)((20.0α₁[15](t) - 20.0α₁[14](t))^2 + (20.0α₂[15](t) - 20.0α₂[14](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.725)(α₂[16](t))*Differential(0.725)(Differential(0.725)(α₁[16](t)))) > 0, 2(20.0α₁[16](t) - 20.0α₁[15](t))*Differential(0.725)(α₂[16](t))*Differential(0.725)(Differential(0.725)(α₁[16](t))), 2(20.0α₁[17](t) - 20.0α₁[16](t))*Differential(0.725)(α₂[16](t))*Differential(0.725)(Differential(0.725)(α₁[16](t)))) - 2.0(399.99999999999994α₂[15](t) + 399.99999999999994α₂[17](t) - 799.9999999999999α₂[16](t))*((20.0α₁[16](t) - 20.0α₁[15](t))^2)) / (((20.0α₁[16](t) - 20.0α₁[15](t))^2 + (20.0α₂[16](t) - 20.0α₂[15](t))^2)*α₂[16](t)) + Differential(t)((20.0α₁[16](t) - 20.0α₁[15](t))^2 + (20.0α₂[16](t) - 20.0α₂[15](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.775)(α₂[17](t))*Differential(0.775)(Differential(0.775)(α₁[17](t)))) > 0, 2(20.0α₁[17](t) - 20.0α₁[16](t))*Differential(0.775)(α₂[17](t))*Differential(0.775)(Differential(0.775)(α₁[17](t))), 2(20.0α₁[18](t) - 20.0α₁[17](t))*Differential(0.775)(α₂[17](t))*Differential(0.775)(Differential(0.775)(α₁[17](t)))) - 2.0(399.99999999999994α₂[16](t) + 399.99999999999994α₂[18](t) - 799.9999999999999α₂[17](t))*((20.0α₁[17](t) - 20.0α₁[16](t))^2)) / (((20.0α₁[17](t) - 20.0α₁[16](t))^2 + (20.0α₂[17](t) - 20.0α₂[16](t))^2)*α₂[17](t)) + Differential(t)((20.0α₁[17](t) - 20.0α₁[16](t))^2 + (20.0α₂[17](t) - 20.0α₂[16](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.825)(α₂[18](t))*Differential(0.825)(Differential(0.825)(α₁[18](t)))) > 0, 2(20.0α₁[18](t) - 20.0α₁[17](t))*Differential(0.825)(α₂[18](t))*Differential(0.825)(Differential(0.825)(α₁[18](t))), 2(20.0α₁[19](t) - 20.0α₁[18](t))*Differential(0.825)(α₂[18](t))*Differential(0.825)(Differential(0.825)(α₁[18](t)))) - 2.0(399.99999999999994α₂[17](t) + 399.99999999999994α₂[19](t) - 799.9999999999999α₂[18](t))*((20.0α₁[18](t) - 20.0α₁[17](t))^2)) / (((20.0α₁[18](t) - 20.0α₁[17](t))^2 + (20.0α₂[18](t) - 20.0α₂[17](t))^2)*α₂[18](t)) + Differential(t)((20.0α₁[18](t) - 20.0α₁[17](t))^2 + (20.0α₂[18](t) - 20.0α₂[17](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.875)(α₂[19](t))*Differential(0.875)(Differential(0.875)(α₁[19](t)))) > 0, 2(20.0α₁[19](t) - 20.0α₁[18](t))*Differential(0.875)(α₂[19](t))*Differential(0.875)(Differential(0.875)(α₁[19](t))), 2(20.0α₁[20](t) - 20.0α₁[19](t))*Differential(0.875)(α₂[19](t))*Differential(0.875)(Differential(0.875)(α₁[19](t)))) - 2.0(399.99999999999994α₂[18](t) + 399.99999999999994α₂[20](t) - 799.9999999999999α₂[19](t))*((20.0α₁[19](t) - 20.0α₁[18](t))^2)) / (((20.0α₁[19](t) - 20.0α₁[18](t))^2 + (20.0α₂[19](t) - 20.0α₂[18](t))^2)*α₂[19](t)) + Differential(t)((20.0α₁[19](t) - 20.0α₁[18](t))^2 + (20.0α₂[19](t) - 20.0α₂[18](t))^2) ~ 0, (IfElse.ifelse((2Differential(0.925)(α₂[20](t))*Differential(0.925)(Differential(0.925)(α₁[20](t)))) > 0, 2(20.0α₁[20](t) - 20.0α₁[19](t))*Differential(0.925)(α₂[20](t))*Differential(0.925)(Differential(0.925)(α₁[20](t))), 2(20.0α₁[21](t) - 20.0α₁[20](t))*Differential(0.925)(α₂[20](t))*Differential(0.925)(Differential(0.925)(α₁[20](t)))) - 2.0(399.99999999999994α₂[19](t) + 399.99999999999994α₂[21](t) - 799.9999999999999α₂[20](t))*((20.0α₁[20](t) - 20.0α₁[19](t))^2)) / (((20.0α₁[20](t) - 20.0α₁[19](t))^2 + (20.0α₂[20](t) - 20.0α₂[19](t))^2)*α₂[20](t)) + Differential(t)((20.0α₁[20](t) - 20.0α₁[19](t))^2 + (20.0α₂[20](t) - 20.0α₂[19](t))^2) ~ 0, (IfElse.ifelse((2α₂[2](t)*Differential(0.025)(α₂[2](t))*Differential(0.025)(Differential(0.025)(α₁[2](t)))) > 0, 2(20.0α₁[2](t) - 20.0α₁[1](t))*α₂[2](t)*Differential(0.025)(α₂[2](t))*Differential(0.025)(Differential(0.025)(α₁[2](t))), 2(20.0α₁[3](t) - 20.0α₁[2](t))*α₂[2](t)*Differential(0.025)(α₂[2](t))*Differential(0.025)(Differential(0.025)(α₁[2](t)))) - (2//1)*(399.99999999999994α₂[1](t) + 399.99999999999994α₂[3](t) - 799.9999999999999α₂[2](t))*((20.0α₁[2](t) - 20.0α₁[1](t))^2)*α₂[2](t)) / (((20.0α₁[2](t) - 20.0α₁[1](t))^2 + (20.0α₂[2](t) - 20.0α₂[1](t))^2)^2) + Differential(t)(α₂[2](t)^2) ~ 0, (IfElse.ifelse((2α₂[3](t)*Differential(0.075)(α₂[3](t))*Differential(0.075)(Differential(0.075)(α₁[3](t)))) > 0, 2(20.0α₁[3](t) - 20.0α₁[2](t))*α₂[3](t)*Differential(0.075)(α₂[3](t))*Differential(0.075)(Differential(0.075)(α₁[3](t))), 2(20.0α₁[4](t) - 20.0α₁[3](t))*α₂[3](t)*Differential(0.075)(α₂[3](t))*Differential(0.075)(Differential(0.075)(α₁[3](t)))) - (2//1)*(399.99999999999994α₂[2](t) + 399.99999999999994α₂[4](t) - 799.9999999999999α₂[3](t))*((20.0α₁[3](t) - 20.0α₁[2](t))^2)*α₂[3](t)) / (((20.0α₁[3](t) - 20.0α₁[2](t))^2 + (20.0α₂[3](t) - 20.0α₂[2](t))^2)^2) + Differential(t)(α₂[3](t)^2) ~ 0, (IfElse.ifelse((2α₂[4](t)*Differential(0.125)(α₂[4](t))*Differential(0.125)(Differential(0.125)(α₁[4](t)))) > 0, 2(20.0α₁[4](t) - 20.0α₁[3](t))*α₂[4](t)*Differential(0.125)(α₂[4](t))*Differential(0.125)(Differential(0.125)(α₁[4](t))), 2(20.0α₁[5](t) - 20.0α₁[4](t))*α₂[4](t)*Differential(0.125)(α₂[4](t))*Differential(0.125)(Differential(0.125)(α₁[4](t)))) - (2//1)*(399.99999999999994α₂[3](t) + 399.99999999999994α₂[5](t) - 799.9999999999999α₂[4](t))*((20.0α₁[4](t) - 20.0α₁[3](t))^2)*α₂[4](t)) / (((20.0α₁[4](t) - 20.0α₁[3](t))^2 + (20.0α₂[4](t) - 20.0α₂[3](t))^2)^2) + Differential(t)(α₂[4](t)^2) ~ 0, (IfElse.ifelse((2α₂[5](t)*Differential(0.175)(α₂[5](t))*Differential(0.175)(Differential(0.175)(α₁[5](t)))) > 0, 2(20.0α₁[5](t) - 20.0α₁[4](t))*α₂[5](t)*Differential(0.175)(α₂[5](t))*Differential(0.175)(Differential(0.175)(α₁[5](t))), 2(20.0α₁[6](t) - 20.0α₁[5](t))*α₂[5](t)*Differential(0.175)(α₂[5](t))*Differential(0.175)(Differential(0.175)(α₁[5](t)))) - (2//1)*(399.99999999999994α₂[4](t) + 399.99999999999994α₂[6](t) - 799.9999999999999α₂[5](t))*((20.0α₁[5](t) - 20.0α₁[4](t))^2)*α₂[5](t)) / (((20.0α₁[5](t) - 20.0α₁[4](t))^2 + (20.0α₂[5](t) - 20.0α₂[4](t))^2)^2) + Differential(t)(α₂[5](t)^2) ~ 0, (IfElse.ifelse((2α₂[6](t)*Differential(0.225)(α₂[6](t))*Differential(0.225)(Differential(0.225)(α₁[6](t)))) > 0, 2(20.0α₁[6](t) - 20.0α₁[5](t))*α₂[6](t)*Differential(0.225)(α₂[6](t))*Differential(0.225)(Differential(0.225)(α₁[6](t))), 2(20.0α₁[7](t) - 20.0α₁[6](t))*α₂[6](t)*Differential(0.225)(α₂[6](t))*Differential(0.225)(Differential(0.225)(α₁[6](t)))) - (2//1)*(399.99999999999994α₂[5](t) + 399.99999999999994α₂[7](t) - 799.9999999999999α₂[6](t))*((20.0α₁[6](t) - 20.0α₁[5](t))^2)*α₂[6](t)) / (((20.0α₁[6](t) - 20.0α₁[5](t))^2 + (20.0α₂[6](t) - 20.0α₂[5](t))^2)^2) + Differential(t)(α₂[6](t)^2) ~ 0, (IfElse.ifelse((2α₂[7](t)*Differential(0.275)(α₂[7](t))*Differential(0.275)(Differential(0.275)(α₁[7](t)))) > 0, 2(20.0α₁[7](t) - 20.0α₁[6](t))*α₂[7](t)*Differential(0.275)(α₂[7](t))*Differential(0.275)(Differential(0.275)(α₁[7](t))), 2(20.0α₁[8](t) - 20.0α₁[7](t))*α₂[7](t)*Differential(0.275)(α₂[7](t))*Differential(0.275)(Differential(0.275)(α₁[7](t)))) - (2//1)*(399.99999999999994α₂[6](t) + 399.99999999999994α₂[8](t) - 799.9999999999999α₂[7](t))*((20.0α₁[7](t) - 20.0α₁[6](t))^2)*α₂[7](t)) / (((20.0α₁[7](t) - 20.0α₁[6](t))^2 + (20.0α₂[7](t) - 20.0α₂[6](t))^2)^2) + Differential(t)(α₂[7](t)^2) ~ 0, (IfElse.ifelse((2α₂[8](t)*Differential(0.325)(α₂[8](t))*Differential(0.325)(Differential(0.325)(α₁[8](t)))) > 0, 2(20.0α₁[8](t) - 20.0α₁[7](t))*α₂[8](t)*Differential(0.325)(α₂[8](t))*Differential(0.325)(Differential(0.325)(α₁[8](t))), 2(20.0α₁[9](t) - 20.0α₁[8](t))*α₂[8](t)*Differential(0.325)(α₂[8](t))*Differential(0.325)(Differential(0.325)(α₁[8](t)))) - (2//1)*(399.99999999999994α₂[7](t) + 399.99999999999994α₂[9](t) - 799.9999999999999α₂[8](t))*((20.0α₁[8](t) - 20.0α₁[7](t))^2)*α₂[8](t)) / (((20.0α₁[8](t) - 20.0α₁[7](t))^2 + (20.0α₂[8](t) - 20.0α₂[7](t))^2)^2) + Differential(t)(α₂[8](t)^2) ~ 0, (IfElse.ifelse((2α₂[9](t)*Differential(0.375)(α₂[9](t))*Differential(0.375)(Differential(0.375)(α₁[9](t)))) > 0, 2(20.0α₁[9](t) - 20.0α₁[8](t))*α₂[9](t)*Differential(0.375)(α₂[9](t))*Differential(0.375)(Differential(0.375)(α₁[9](t))), 2(20.0α₁[10](t) - 20.0α₁[9](t))*α₂[9](t)*Differential(0.375)(α₂[9](t))*Differential(0.375)(Differential(0.375)(α₁[9](t)))) - (2//1)*(399.99999999999994α₂[8](t) + 399.99999999999994α₂[10](t) - 799.9999999999999α₂[9](t))*((20.0α₁[9](t) - 20.0α₁[8](t))^2)*α₂[9](t)) / (((20.0α₁[9](t) - 20.0α₁[8](t))^2 + (20.0α₂[9](t) - 20.0α₂[8](t))^2)^2) + Differential(t)(α₂[9](t)^2) ~ 0, (IfElse.ifelse((2α₂[10](t)*Differential(0.425)(α₂[10](t))*Differential(0.425)(Differential(0.425)(α₁[10](t)))) > 0, 2(20.0α₁[10](t) - 20.0α₁[9](t))*α₂[10](t)*Differential(0.425)(α₂[10](t))*Differential(0.425)(Differential(0.425)(α₁[10](t))), 2(20.0α₁[11](t) - 20.0α₁[10](t))*α₂[10](t)*Differential(0.425)(α₂[10](t))*Differential(0.425)(Differential(0.425)(α₁[10](t)))) - (2//1)*(399.99999999999994α₂[9](t) + 399.99999999999994α₂[11](t) - 799.9999999999999α₂[10](t))*((20.0α₁[10](t) - 20.0α₁[9](t))^2)*α₂[10](t)) / (((20.0α₁[10](t) - 20.0α₁[9](t))^2 + (20.0α₂[10](t) - 20.0α₂[9](t))^2)^2) + Differential(t)(α₂[10](t)^2) ~ 0, (IfElse.ifelse((2α₂[11](t)*Differential(0.475)(α₂[11](t))*Differential(0.475)(Differential(0.475)(α₁[11](t)))) > 0, 2(20.0α₁[11](t) - 20.0α₁[10](t))*α₂[11](t)*Differential(0.475)(α₂[11](t))*Differential(0.475)(Differential(0.475)(α₁[11](t))), 2(20.0α₁[12](t) - 20.0α₁[11](t))*α₂[11](t)*Differential(0.475)(α₂[11](t))*Differential(0.475)(Differential(0.475)(α₁[11](t)))) - (2//1)*(399.99999999999994α₂[10](t) + 399.99999999999994α₂[12](t) - 799.9999999999999α₂[11](t))*((20.0α₁[11](t) - 20.0α₁[10](t))^2)*α₂[11](t)) / (((20.0α₁[11](t) - 20.0α₁[10](t))^2 + (20.0α₂[11](t) - 20.0α₂[10](t))^2)^2) + Differential(t)(α₂[11](t)^2) ~ 0, (IfElse.ifelse((2α₂[12](t)*Differential(0.525)(α₂[12](t))*Differential(0.525)(Differential(0.525)(α₁[12](t)))) > 0, 2(20.0α₁[12](t) - 20.0α₁[11](t))*α₂[12](t)*Differential(0.525)(α₂[12](t))*Differential(0.525)(Differential(0.525)(α₁[12](t))), 2(20.0α₁[13](t) - 20.0α₁[12](t))*α₂[12](t)*Differential(0.525)(α₂[12](t))*Differential(0.525)(Differential(0.525)(α₁[12](t)))) - (2//1)*(399.99999999999994α₂[11](t) + 399.99999999999994α₂[13](t) - 799.9999999999999α₂[12](t))*((20.0α₁[12](t) - 20.0α₁[11](t))^2)*α₂[12](t)) / (((20.0α₁[12](t) - 20.0α₁[11](t))^2 + (20.0α₂[12](t) - 20.0α₂[11](t))^2)^2) + Differential(t)(α₂[12](t)^2) ~ 0, (IfElse.ifelse((2α₂[13](t)*Differential(0.575)(α₂[13](t))*Differential(0.575)(Differential(0.575)(α₁[13](t)))) > 0, 2(20.0α₁[13](t) - 20.0α₁[12](t))*α₂[13](t)*Differential(0.575)(α₂[13](t))*Differential(0.575)(Differential(0.575)(α₁[13](t))), 2(20.0α₁[14](t) - 20.0α₁[13](t))*α₂[13](t)*Differential(0.575)(α₂[13](t))*Differential(0.575)(Differential(0.575)(α₁[13](t)))) - (2//1)*(399.99999999999994α₂[12](t) + 399.99999999999994α₂[14](t) - 799.9999999999999α₂[13](t))*((20.0α₁[13](t) - 20.0α₁[12](t))^2)*α₂[13](t)) / (((20.0α₁[13](t) - 20.0α₁[12](t))^2 + (20.0α₂[13](t) - 20.0α₂[12](t))^2)^2) + Differential(t)(α₂[13](t)^2) ~ 0, (IfElse.ifelse((2α₂[14](t)*Differential(0.625)(α₂[14](t))*Differential(0.625)(Differential(0.625)(α₁[14](t)))) > 0, 2(20.0α₁[14](t) - 20.0α₁[13](t))*α₂[14](t)*Differential(0.625)(α₂[14](t))*Differential(0.625)(Differential(0.625)(α₁[14](t))), 2(20.0α₁[15](t) - 20.0α₁[14](t))*α₂[14](t)*Differential(0.625)(α₂[14](t))*Differential(0.625)(Differential(0.625)(α₁[14](t)))) - (2//1)*(399.99999999999994α₂[13](t) + 399.99999999999994α₂[15](t) - 799.9999999999999α₂[14](t))*((20.0α₁[14](t) - 20.0α₁[13](t))^2)*α₂[14](t)) / (((20.0α₁[14](t) - 20.0α₁[13](t))^2 + (20.0α₂[14](t) - 20.0α₂[13](t))^2)^2) + Differential(t)(α₂[14](t)^2) ~ 0, (IfElse.ifelse((2α₂[15](t)*Differential(0.675)(α₂[15](t))*Differential(0.675)(Differential(0.675)(α₁[15](t)))) > 0, 2(20.0α₁[15](t) - 20.0α₁[14](t))*α₂[15](t)*Differential(0.675)(α₂[15](t))*Differential(0.675)(Differential(0.675)(α₁[15](t))), 2(20.0α₁[16](t) - 20.0α₁[15](t))*α₂[15](t)*Differential(0.675)(α₂[15](t))*Differential(0.675)(Differential(0.675)(α₁[15](t)))) - (2//1)*(399.99999999999994α₂[14](t) + 399.99999999999994α₂[16](t) - 799.9999999999999α₂[15](t))*((20.0α₁[15](t) - 20.0α₁[14](t))^2)*α₂[15](t)) / (((20.0α₁[15](t) - 20.0α₁[14](t))^2 + (20.0α₂[15](t) - 20.0α₂[14](t))^2)^2) + Differential(t)(α₂[15](t)^2) ~ 0, (IfElse.ifelse((2α₂[16](t)*Differential(0.725)(α₂[16](t))*Differential(0.725)(Differential(0.725)(α₁[16](t)))) > 0, 2(20.0α₁[16](t) - 20.0α₁[15](t))*α₂[16](t)*Differential(0.725)(α₂[16](t))*Differential(0.725)(Differential(0.725)(α₁[16](t))), 2(20.0α₁[17](t) - 20.0α₁[16](t))*α₂[16](t)*Differential(0.725)(α₂[16](t))*Differential(0.725)(Differential(0.725)(α₁[16](t)))) - (2//1)*(399.99999999999994α₂[15](t) + 399.99999999999994α₂[17](t) - 799.9999999999999α₂[16](t))*((20.0α₁[16](t) - 20.0α₁[15](t))^2)*α₂[16](t)) / (((20.0α₁[16](t) - 20.0α₁[15](t))^2 + (20.0α₂[16](t) - 20.0α₂[15](t))^2)^2) + Differential(t)(α₂[16](t)^2) ~ 0, (IfElse.ifelse((2α₂[17](t)*Differential(0.775)(α₂[17](t))*Differential(0.775)(Differential(0.775)(α₁[17](t)))) > 0, 2(20.0α₁[17](t) - 20.0α₁[16](t))*α₂[17](t)*Differential(0.775)(α₂[17](t))*Differential(0.775)(Differential(0.775)(α₁[17](t))), 2(20.0α₁[18](t) - 20.0α₁[17](t))*α₂[17](t)*Differential(0.775)(α₂[17](t))*Differential(0.775)(Differential(0.775)(α₁[17](t)))) - (2//1)*(399.99999999999994α₂[16](t) + 399.99999999999994α₂[18](t) - 799.9999999999999α₂[17](t))*((20.0α₁[17](t) - 20.0α₁[16](t))^2)*α₂[17](t)) / (((20.0α₁[17](t) - 20.0α₁[16](t))^2 + (20.0α₂[17](t) - 20.0α₂[16](t))^2)^2) + Differential(t)(α₂[17](t)^2) ~ 0, (IfElse.ifelse((2α₂[18](t)*Differential(0.825)(α₂[18](t))*Differential(0.825)(Differential(0.825)(α₁[18](t)))) > 0, 2(20.0α₁[18](t) - 20.0α₁[17](t))*α₂[18](t)*Differential(0.825)(α₂[18](t))*Differential(0.825)(Differential(0.825)(α₁[18](t))), 2(20.0α₁[19](t) - 20.0α₁[18](t))*α₂[18](t)*Differential(0.825)(α₂[18](t))*Differential(0.825)(Differential(0.825)(α₁[18](t)))) - (2//1)*(399.99999999999994α₂[17](t) + 399.99999999999994α₂[19](t) - 799.9999999999999α₂[18](t))*((20.0α₁[18](t) - 20.0α₁[17](t))^2)*α₂[18](t)) / (((20.0α₁[18](t) - 20.0α₁[17](t))^2 + (20.0α₂[18](t) - 20.0α₂[17](t))^2)^2) + Differential(t)(α₂[18](t)^2) ~ 0, (IfElse.ifelse((2α₂[19](t)*Differential(0.875)(α₂[19](t))*Differential(0.875)(Differential(0.875)(α₁[19](t)))) > 0, 2(20.0α₁[19](t) - 20.0α₁[18](t))*α₂[19](t)*Differential(0.875)(α₂[19](t))*Differential(0.875)(Differential(0.875)(α₁[19](t))), 2(20.0α₁[20](t) - 20.0α₁[19](t))*α₂[19](t)*Differential(0.875)(α₂[19](t))*Differential(0.875)(Differential(0.875)(α₁[19](t)))) - (2//1)*(399.99999999999994α₂[18](t) + 399.99999999999994α₂[20](t) - 799.9999999999999α₂[19](t))*((20.0α₁[19](t) - 20.0α₁[18](t))^2)*α₂[19](t)) / (((20.0α₁[19](t) - 20.0α₁[18](t))^2 + (20.0α₂[19](t) - 20.0α₂[18](t))^2)^2) + Differential(t)(α₂[19](t)^2) ~ 0, (IfElse.ifelse((2α₂[20](t)*Differential(0.925)(α₂[20](t))*Differential(0.925)(Differential(0.925)(α₁[20](t)))) > 0, 2(20.0α₁[20](t) - 20.0α₁[19](t))*α₂[20](t)*Differential(0.925)(α₂[20](t))*Differential(0.925)(Differential(0.925)(α₁[20](t))), 2(20.0α₁[21](t) - 20.0α₁[20](t))*α₂[20](t)*Differential(0.925)(α₂[20](t))*Differential(0.925)(Differential(0.925)(α₁[20](t)))) - (2//1)*(399.99999999999994α₂[19](t) + 399.99999999999994α₂[21](t) - 799.9999999999999α₂[20](t))*((20.0α₁[20](t) - 20.0α₁[19](t))^2)*α₂[20](t)) / (((20.0α₁[20](t) - 20.0α₁[19](t))^2 + (20.0α₂[20](t) - 20.0α₂[19](t))^2)^2) + Differential(t)(α₂[20](t)^2) ~ 0, (IfElse.ifelse((2α₂[21](t)*Differential(0.975)(α₂[21](t))*Differential(0.975)(Differential(0.975)(α₁[21](t)))) > 0, 2(20.0α₁[21](t) - 20.0α₁[20](t))*α₂[21](t)*Differential(0.975)(α₂[21](t))*Differential(0.975)(Differential(0.975)(α₁[21](t))), 2(20.0α₁[22](t) - 20.0α₁[21](t))*α₂[21](t)*Differential(0.975)(α₂[21](t))*Differential(0.975)(Differential(0.975)(α₁[21](t)))) - (2//1)*(399.99999999999994α₂[20](t) + 399.99999999999994α₂[22](t) - 799.9999999999999α₂[21](t))*((20.0α₁[21](t) - 20.0α₁[20](t))^2)*α₂[21](t)) / (((20.0α₁[21](t) - 20.0α₁[20](t))^2 + (20.0α₂[21](t) - 20.0α₂[20](t))^2)^2) + Differential(t)(α₂[21](t)^2) ~ 0, 0.5α₂[1](t) + 0.5α₂[2](t) ~ 0.0, 0.5α₂[21](t) + 0.5α₂[22](t) ~ 0.0, 20.0α₂[2](t) - 20.0α₂[1](t) ~ 1.0, 20.0α₂[22](t) - 20.0α₂[21](t) ~ -1.0, 20.0α₁[2](t) - 20.0α₁[1](t) ~ 0.0, 20.0α₁[22](t) - 20.0α₁[21](t) ~ 0.0]

Discretization failed, please post an issue on https://github.com/SciML/MethodOfLines.jl with the failing code and system at low point count.

ERROR: MethodError: no method matching collect_ivs_from_nested_operator!(::Set{Any}, ::SymbolicUtils.Add{Real, Int64, Dict{Any, Number}, Nothing}, ::Type{Differential})
Closest candidates are:
  collect_ivs_from_nested_operator!(::Any, ::Term, ::Any) at ~/.julia/packages/ModelingToolkit/vZUs5/src/utils.jl:188
Stacktrace:
 [1] collect_ivs_from_nested_operator!(ivs::Set{Any}, x::Term{Real, Nothing}, target_op::Type)
   @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vZUs5/src/utils.jl:192
 [2] collect_ivs(eqs::Vector{Equation}, op::Type)
   @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vZUs5/src/utils.jl:163
 [3] collect_ivs
   @ ~/.julia/packages/ModelingToolkit/vZUs5/src/utils.jl:157 [inlined]
 [4] check_equations(eqs::Vector{Equation}, iv::Sym{Real, Base.ImmutableDict{DataType, Any}})
   @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vZUs5/src/utils.jl:177
 [5] ODESystem(deqs::Vector{Equation}, iv::Sym{Real, Base.ImmutableDict{DataType, Any}}, dvs::Vector{Term{Real, Base.ImmutableDict{DataType, Any}}}, ps::Vector{Any}, var_to_name::Dict{Any, Any}, ctrls::Vector{Any}, observed::Vector{Equation}, tgrad::Base.RefValue{Vector{Num}}, jac::Base.RefValue{Any}, ctrl_jac::Base.RefValue{Any}, Wfact::Base.RefValue{Matrix{Num}}, Wfact_t::Base.RefValue{Matrix{Num}}, name::Symbol, systems::Vector{ODESystem}, defaults::Dict{Any, Any}, torn_matching::Nothing, connector_type::Nothing, connections::Nothing, preface::Nothing, events::Vector{ModelingToolkit.SymbolicContinuousCallback}, tearing_state::Nothing, substitutions::Nothing; checks::Bool)
   @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vZUs5/src/systems/diffeqs/odesystem.jl:121
 [6] ODESystem(deqs::Vector{Equation}, iv::Num, dvs::Vector{Num}, ps::Vector{Num}; controls::Vector{Num}, observed::Vector{Equation}, systems::Vector{ODESystem}, name::Symbol, default_u0::Dict{Any, Any}, default_p::Dict{Any, Any}, defaults::Dict{Num, Float64}, connector_type::Nothing, preface::Nothing, continuous_events::Nothing, checks::Bool)
   @ ModelingToolkit ~/.julia/packages/ModelingToolkit/vZUs5/src/systems/diffeqs/odesystem.jl:175
 [7] symbolic_discretize(pdesys::PDESystem, discretization::MOLFiniteDifference{MethodOfLines.EdgeAlignedGrid})
   @ MethodOfLines ~/.julia/packages/MethodOfLines/5wITU/src/MOL_discretization.jl:126
 [8] discretize(pdesys::PDESystem, discretization::MOLFiniteDifference{MethodOfLines.EdgeAlignedGrid})
   @ MethodOfLines ~/.julia/packages/MethodOfLines/5wITU/src/MOL_discretization.jl:148
 [9] top-level scope
   @ REPL[39]:1

Code to reproduce:

using ModelingToolkit, DomainSets, MethodOfLines
@parameters x t
@variables α₁(..) α₂(..);
# "time" derivative
Dt = Differential(t)
	
# spacial coordinates
Dx = Differential(x)

eqs = [
    Differential(t)(Differential(x)(α₁(t, x))^2 + Differential(x)(α₂(t, x))^2) ~ (2.0(Differential(x)(α₁(t, x))^2)*Differential(x)(Differential(x)(α₂(t, x))) - 2Differential(x)(Differential(x)(α₁(t, x)))*Differential(x)(α₁(t, x))*Differential(x)(α₂(t, x))) / ((Differential(x)(α₁(t, x))^2 + Differential(x)(α₂(t, x))^2)*α₂(t, x)),
    Differential(t)(α₂(t, x)^2) ~ ((2//1)*(Differential(x)(α₁(t, x))^2)*Differential(x)(Differential(x)(α₂(t, x)))*α₂(t, x) - 2Differential(x)(Differential(x)(α₁(t, x)))*Differential(x)(α₁(t, x))*Differential(x)(α₂(t, x))*α₂(t, x)) / ((Differential(x)(α₁(t, x))^2 + Differential(x)(α₂(t, x))^2)^2),
]

domains = [
	x  Interval(0.0, 1.0),
	t  Interval(0.0, 0.1),
    ]

bcs = [
	# initial shape
	α₁(0, x) ~ cos*x),
	α₂(0, x) ~ sin*x),

	# the curve hits OX at the ends
	α₂(t, 0) ~ 0.0,
	α₂(t, 1) ~ 0.0,

	# with positive derivative
	Dx(α₂(t,0)) ~  1.0,
	Dx(α₂(t,1)) ~ -1.0,
	
	# on the other hand x coordinate doesn't vary close to the ends
	Dx(α₁(t, 0)) ~ 0.0,
	Dx(α₁(t, 1)) ~ 0.0,
]

@named pdesys = PDESystem(
	eqs,
	bcs,
	domains,
	[t, x],
	[α₁(t,x), α₂(t,x)]
);

dx = 0.05
order = 3
discretization = MOLFiniteDifference(
	[x => dx],
	t,
	aprox_order=order,
	grid_align = MethodOfLines.edge_align
)
prob = discretize(pdesys, discretization)
  [28f2ccd6] ApproxFun v0.13.3
  [5b8099bc] DomainSets v0.5.11
  [94925ecb] MethodOfLines v0.3.2
  [961ee093] ModelingToolkit v8.13.3
  [1dea7af3] OrdinaryDiffEq v6.19.0
  [90137ffa] StaticArrays v1.4.5
  [37e2e46d] LinearAlgebra

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions