Author |
Message |
Dave Gregory (dave)
New member Username: dave
Post Number: 1 Registered: 02-2008
| Posted on Monday, February 18, 2008 - 03:12 pm: | |
Hi, I am trying to run Richards equation see attachment. Although one dimensional in nature i want this code in 2-d.probelm i have is, when i increase the ngrid to 60, code is not running what could be the probelm. I also have same probelm in few other codes,I have to use ngrid<30 to run the probelm.I am using 32 bit linux professional version. Dave |
Robert G. Nelson (rgnelson)
Moderator Username: rgnelson
Post Number: 1059 Registered: 06-2003
| Posted on Monday, February 18, 2008 - 08:23 pm: | |
FlexPDE applies "upwind" weighting to first-order derivative terms, in order to stabilize the discretized system. In your case, the term dy(J*S^3)effectively divides by S^2 in computing the weighting term. When S is below 1e-154 (which it can be in regions where it is nominally zero), the divide causes a floating-point overflow hardware error. I will try to recast the arithmetic so this doesn't happen. But in the meantime, you can work around the problem by writing dy(j*S^3) as 3*j*S^2*dy(S). Or, you can turn off the upwind weighting (counting on the existing diffusion term to dominate the numerics) by specifying SELECT UPWIND=OFF
|
|