Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const Mx = Tridiagonal([1.0 for i in 1:N-1],[-2.0 for i in 1:N],[1.0 for i in 1:N-1])
- # Do the reflections, different for x and y operators
- Mx[2,1] = 2.0
- Mx[end-1,end] = 2.0
- a[i]*(u[i]-u[i-1])/dx
- a[i]*(u[i]-u[i+1])/dx
- function f(t,u,du)
- u1 = @view u[:,1]
- u2 = @view u[:,1]
- du1 = @view du[:,1]
- du2 = @view du[:,2]
- for i in 2:length(u)-1
- du1[i] = (u1[i-1] - 2u1[i] + u1[i+1])/dx^2 +
- a11(x[i],u1[i])*(u1[i]-u1[i-1])/dx +
- a12(x[i],u1[i])*(u1[i]-u1[i-1])/dx +
- c1(x1[i],u1[i])
- du2[i] = (u2[i-1] - 2u2[i] + u2[i+1])/dx^2 +
- a11(x[i],u2[i])*(u2[i]-u2[i-1])/dx +
- a12(x[i],u2[i])*(u2[i]-u2[i-1])/dx +
- c1(x1[i],u2[i])
- end
- end
- using DifferentialEquations
- prob = ODEProblem(f,u0,tspan)
- sol = solve(prob,CVODE_BDF(linear_solver=:GMRES))
Add Comment
Please, Sign In to add comment