Author |
Message |
pepper Member Username: pepper
Post Number: 7 Registered: 09-2010
| Posted on Friday, October 15, 2010 - 05:12 am: | |
hello! We would like to simulate solute transport problem. The first stage is to simulate a steady state water flowing scenario. Then we have a source of pollution on part of the ground surface. The way we did this is try to store the head (h) and streamline (q) from the steady state condition into a table(h,q) file='rechargeini.dat'. We then run the second pde file which has the disperssion equation for solute transport. We were thinking that the second file would read the table for values of h and q as its initial conditions. However, this did not seem to work; the second file failed to read the table(h,q) file='rechargeini.dat'. To mimic actual situation, we do not want to run the simulation concurrently, thus the steady-state must be achieved first before the pollution starts. Do you mind to help me looking into this problem? Thank you.
|
rgnelson Moderator Username: rgnelson
Post Number: 1414 Registered: 06-2003
| Posted on Saturday, October 16, 2010 - 06:59 pm: | |
1. The error I get when I run this problem is not that the table can't be read, but that you can't take a second derivative of a TABLE. This occurs because 2D Tables are piecewise bilinear interpolations, with second derivatives zero everywhere except infinite on table boundaries. This behavior cannot be represented in a computer. The reason why the table is being differentiated twice is that FlexPDE converts "b*dxx(c)" to "dx(b*dx(c))-dx(c)*dx(b)", in an attempt to create the canonical form dx(b*dx(c)) for the diffusion term. If you write the diffusion term this way, the differentiation of b will not occur. But I don't see why you want to use a TABLE in the first place. You have code in place (commented out) to use TRANSFER instead, so why not use that? It preserves the boundary shapes, which TABLE does not. 2. You have an initial value of co for your concentration variable, and then you define a surface flux equal to co as well. That a surface flux should have the same numerical value as the concentration seems highly unlikely. Perhaps you didn't realize that Natural(c) in your equation means -b*dx(c)? 3. You have set the initial concentration to co, then imposed c=0 on the left-side boundary. This discontinuous concentration profile is difficult to resolve, and dies away slowly because there is no flow at that boundary. Diffusion is the only process that can smooth out the discontinuity, so you get very small timesteps for a long time. If the value is co everywhere, it should bd co at the boundary as well. 4. You have defined v=vector(vx+vy), which means the x-component of v is the algebraic sum of the x and y velocities, and the y-component is zero. I doubt that this is what you want. 5. Instantaneous turn-on and turn-off of the surface flux will force a dense mesh at the surface and tiny timesteps to resolve the infinite slope. If you are willing to wait for the discontinuity to smooth out, this is acceptable, but you may want to use a physically realizable turn-on time using UPULSE, URAMP, RAMP, SWAGE, or some other time function with finite slope. 6. You have several VECTOR plots of scalar values. This creates vectors that are uniformly horizontal, and would seem to be a rather meaningless thing to do.
|
rgnelson Moderator Username: rgnelson
Post Number: 1415 Registered: 06-2003
| Posted on Saturday, October 16, 2010 - 07:06 pm: | |
7. Also, you have a two dimensional domain with 2D flow patterns, but you have only 1D x-flow for C. This means C will not be able to follow the flow paths. You should use a 2D equation for C.
|
pepper Member Username: pepper
Post Number: 9 Registered: 09-2010
| Posted on Thursday, October 21, 2010 - 04:16 am: | |
Thank you for your reply. I have made some changes to my file. I think it is getting better but there are still problems to be solved. Can you please check the attached .doc file. Thank you very much.see doc.file |
|