[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Octave-patch-tracker] [patch #7929] Partial Differential Equation Solve
From: |
Mark Wistrom |
Subject: |
[Octave-patch-tracker] [patch #7929] Partial Differential Equation Solver in two dimensions |
Date: |
Thu, 07 Feb 2013 00:42:06 +0000 |
User-agent: |
Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17 |
Follow-up Comment #9, patch #7929 (project octave):
Thank you for your time looking this over. It is excellent feedback. I will
address most if not all of your comments and concerns. First a couple of
overall comments.
1. The mathematics of the implementation. When I first looked at the problem,
I thought it would be easy if not trivial. The more I looked into it, the more
I realized why this had not been done before. The paper it is based on takes
some time and effort to get up to speed and is a little opaque. I think I have
the proper mathematics in place based on the testing that I have done. It
agrees with Matlab in most cases, and in the Singularity case the error
"looks" right. i.e. it scales nicely as n^-2, is smooth with no large jumps,
and is better than Matlab's.
2. The "trivial remarks" that you have made are valid and probably not
trivial. I will work on them.
3. Code duplication. Yes, there is code duplication. I put that in there as
part of prototyping the functionality to ensure I was making head way. I'll
address that.
4. Performance. It is slow. I know. I used the profiler (That thing is pretty
nice BTW), and the loop where the user function is called to build the vectors
is causing the problem, which is what you would expect. I see two issues: 1.
The call into the user function is per each finite element at each time step.
If the user function were passed in the vector of values for x,u,dudx and
returned a vector, that speeds things up at the expense of being different
from Matlab's implementation. 2. The loop itself could be compiled.
5. Matlab's pdepe is said to solved parabolic AND elliptic equations (at least
one needs to be parabolic). I haven't tested the elliptic part of the my code.
My code sets up the equations and then kicks off daspk (Matlab uses ode15s) to
do the time integration. So I'm not really sure what to do here. Document
things most likely.
I'll make code changes and post back with specific answers.
Thanks again,
Mark
_______________________________________________________
Reply to this item at:
<http://savannah.gnu.org/patch/?7929>
_______________________________________________
Message sent via/by Savannah
http://savannah.gnu.org/
- [Octave-patch-tracker] [patch #7929] Partial Differential Equation Solver in two dimensions, Jordi Gutiérrez Hermoso, 2013/02/06
- [Octave-patch-tracker] [patch #7929] Partial Differential Equation Solver in two dimensions, Jordi Gutiérrez Hermoso, 2013/02/06
- [Octave-patch-tracker] [patch #7929] Partial Differential Equation Solver in two dimensions, Jordi Gutiérrez Hermoso, 2013/02/06
- [Octave-patch-tracker] [patch #7929] Partial Differential Equation Solver in two dimensions,
Mark Wistrom <=
- [Octave-patch-tracker] [patch #7929] Partial Differential Equation Solver in two dimensions, Mark Wistrom, 2013/02/11
- [Octave-patch-tracker] [patch #7929] Partial Differential Equation Solver in two dimensions, Mark Wistrom, 2013/02/12
- [Octave-patch-tracker] [patch #7929] Partial Differential Equation Solver in two dimensions, Dongxu, 2013/02/14
- [Octave-patch-tracker] [patch #7929] Partial Differential Equation Solver in two dimensions, Mark Wistrom, 2013/02/14
- [Octave-patch-tracker] [patch #7929] Partial Differential Equation Solver in two dimensions, Mark Wistrom, 2013/02/14