Timeline for Complex valued 2+1D PDE Schrödinger equation, numerical method for `NDSolve`?
Current License: CC BY-SA 3.0
26 events
when toggle format | what | by | license | comment | |
---|---|---|---|---|---|
Jul 12, 2015 at 11:06 | history | edited | J. M.'s missing motivation♦ | CC BY-SA 3.0 |
deleted 1 character in body; edited title
|
Jul 4, 2013 at 20:17 | vote | accept | alfC | ||
Jul 3, 2013 at 1:16 | answer | added | Jens | timeline score: 30 | |
Jul 2, 2013 at 12:46 | answer | added | Stefan | timeline score: 41 | |
Jul 1, 2013 at 19:27 | history | edited | alfC | CC BY-SA 3.0 |
added 8 characters in body
|
Jul 1, 2013 at 16:30 | comment | added | Stefan | I will, when when I arrived at home and don't have to write this using an iPhone anymore ;) | |
Jul 1, 2013 at 16:11 | comment | added | alfC |
Do you mind pasting the experimental code (including the StateData feature as an answer?
|
|
Jul 1, 2013 at 9:16 | comment | added | Stefan | If ProcessEquations etc. are new to you please have a look at tutorial/NDSolveStateData in theDocumentation Center. | |
Jul 1, 2013 at 9:06 | comment | added | Stefan |
Great :) I had problems with the 1D case to produce a decent plot, that's why I proposed the options. For the 2D case I'm using homog. Dirichlet on all four edges. Then I've createdNDSolveStateData with NDSolve ProcessEquations using nearly the same options as you, but with Max-/MinPoints->{100,100} and DifferenceOrder->4.
|
|
Jul 1, 2013 at 8:45 | comment | added | alfC | @Stefan, yes the 1D case is quite under control. This problem doesn't need spatial boundary conditions but (due to finite size effects in the sol), peridic should be ok. Thanks to your keywords, I am finding documentation on obscure features such as reference.wolfram.com/mathematica/tutorial/…. In any case I made a lot of progress with the 2D case by using ` Method -> {"MethodOfLines", "SpatialDiscretization" -> {"TensorProductGrid", "MaxPoints" -> nxy, "MinPoints" -> nxy, "DifferenceOrder" -> "Pseudospectral"}, Method -> "Adams"}` | |
Jul 1, 2013 at 8:31 | comment | added | Stefan |
@alfC the options were for the 1D case. For the 2D case I think you should tackle the problem differently. In order to avoid huge InterpolatingFunction objects you may use NDSolve ProcessEquations` to set up the problem and NDSolve Iterare` to evolve it in time. An additional option might be not only to use a dirichlet boundary, but maybe a mix from Neumann, dirichlet
|
|
Jul 1, 2013 at 7:05 | comment | added | alfC |
@Stefan, did you succeed with those options. I tried with all the mentioned combinations of options. The result, at best, is diverging for small t until NDSolve gives up because the error is out of control. It looks like the automatic integration method is not good for this equation because it is unstable, the question is what other options to try out. (I am using Mathematica 8, 64bit OS, and 8GB memory.)
|
|
Jul 1, 2013 at 4:38 | comment | added | Stefan | @alfC you need to reduce MaxStepSize...maybe for your machine 0.01 is already too small, but you should continuously reduce them until you get a decent result; the same holds for the other two options...just give me a hint and I'll try to describe them more thoroughly...or plug some memory in :) | |
Jul 1, 2013 at 4:36 | comment | added | Stefan |
@EricBrown morning ;) ... You could try to avoid them, but general best practise is to reduce them for partial differential equations than for ordinary... If you look at the solution sol with ByteCount[sol]/10.^6 it is already huge...
|
|
Jul 1, 2013 at 4:29 | comment | added | alfC |
@Stefan, I tried your suggested options (in the 2D+1 version) and after 3 minutes I get a nomem error and no points in the result (interpolation in the time range {0.,0.} ). I tried MaxStepSize->0.1 and I get same as at the beginning, some quickly diverging answer. I am using Mathematica 8.
|
|
Jul 1, 2013 at 4:00 | comment | added | Eric Brown | @Stefan +1 Are the AccuracyGoal/PrecisionGoal needed? | |
Jun 30, 2013 at 22:07 | comment | added | Stefan | Please use MaxStepSize -> 0.01, AccuracyGoal -> 3, PrecisionGoal -> 3. This will solve your problem. If you want me to become more specific I could try to post an answer, but not today. This will be a short night... | |
Jun 29, 2013 at 18:41 | history | edited | alfC | CC BY-SA 3.0 |
deleted 1 characters in body
|
Jun 29, 2013 at 18:35 | history | edited | alfC | CC BY-SA 3.0 |
deleted 1 characters in body
|
Jun 29, 2013 at 18:34 | comment | added | alfC |
@acl, other methods with Mathematica is fine, but if I can use the leverage of NDSolve for part of the problem that would be fine too. The main question is how to fine control NDSolve for this particular problem, for example things like MaxStepSize control the discretizations of all dimensions equaly.
|
|
Jun 29, 2013 at 11:43 | comment | added | acl |
Do you absolutely insist on using NDSolve for this, or are other approaches OK?
|
|
Jun 29, 2013 at 11:09 | history | tweeted | twitter.com/#!/StackMma/status/350934140792737792 | ||
Jun 29, 2013 at 8:38 | history | edited | alfC | CC BY-SA 3.0 |
added 4 characters in body
|
Jun 29, 2013 at 8:20 | review | First posts | |||
Jun 29, 2013 at 8:37 | |||||
Jun 29, 2013 at 8:06 | history | edited | alfC | CC BY-SA 3.0 |
added 58 characters in body
|
Jun 29, 2013 at 8:00 | history | asked | alfC | CC BY-SA 3.0 |