Author |
Message |
Tomomi Yoshida (tomomi)
New member Username: tomomi
Post Number: 1 Registered: 02-2007
| Posted on Sunday, February 04, 2007 - 11:21 pm: | |
Hello, I'm a new FlexPDE user and am trying to analyze fluid flow and diffusion in a cylinder@with two arms. The cylinder has absorption depending on matter (glucose) concentration on the bottom surface using Michaelis-Menten equation (Enzymatic reaction). Therefore I was Using Navier-Stokes equation (file no.1) and derived fluid velocity vx, vy, vz were transferred to Diffusion equation (file no.2). A problem is that mass conservation of fluid is almost completely satisfied, however matter conservation isnft. How to satisfy matter (glucose) conservation? I will appreciate any and all help. FlexPDE Professional Version 5.0.8 3D Tomomi |
Tomomi Yoshida (tomomi)
New member Username: tomomi
Post Number: 2 Registered: 02-2007
| Posted on Monday, February 05, 2007 - 02:00 am: | |
I add a calculating situation. Bottom surfacefs concentration gradient is equal to the absorption depending on enzymatic reaction. This is essential condition of my analysis. I tried to use this condition as a boundary condition of bottom surface. However matter (glucose) conservation wasnft satisfied. Tomomi |
Robert G. Nelson (rgnelson)
Moderator Username: rgnelson
Post Number: 758 Registered: 06-2003
| Posted on Monday, February 05, 2007 - 08:46 pm: | |
If you watch the "step error" report in the status window (for the File_2 run), you will see that the Newton's method is not converging. It bounces from 0.6 to 7e7 on alternate iterations. I have not run it to completion, but I assume it merely halts on an iteration count limit, and that the final "RMS Error" and "Max Error" are large. Usually, this kind of behavior is the result of discontinuities in the objective function that Newton's method is trying to minimize, which is in turn caused by discontinuous material parameters or inconsistent equations. I don't see anything in your script that would do this, so I am forced to look for other causes. One possibility is that the low-accuracy flow run has left non-conserving eddies in the flow field that result in indeterminate spots in the GC coupling matrix. This is merely a guess, and I'm investigating it.
|
Robert G. Nelson (rgnelson)
Moderator Username: rgnelson
Post Number: 759 Registered: 06-2003
| Posted on Tuesday, February 06, 2007 - 07:36 pm: | |
I missed my guess on this problem. The trouble was, as I should have known, due to a discontinuous slope in your bottom boundary condition. FlexPDE uses Newton's method to solve nonlinear systems, and a discontinuous slope in the objective function can cause convergence failure. You have an extraction rate that is proportional to GC for GC>0 and 0 for GC<=0. This is causing the iteration to bounce back and forth between the slope=1 and slope=0 sections of this curve. If you merely continue the definition of the BC through GC=0, the problem converges quickly. Replace your definition of GCR with GCR=SGCR*GC/(Km+abs(GC)) The ABS() prevents division by zero. If the value of GC bounces below zero on any iteration, a restoring flux will bring it back up to zero. |
Tomomi Yoshida (tomomi)
Junior Member Username: tomomi
Post Number: 3 Registered: 02-2007
| Posted on Thursday, February 08, 2007 - 05:08 am: | |
Thanks a lot. First I should apologize that there are a miss writing source in file no.2. The command transfer('file no.1.dat',vx,vy,vz) is correct. I replaced the boundary condition (GCR=SGCR*GC/(Km+abs(GC))) and tried. The result is that, as for Newtonfs method, I think your suggestion is correct. However there still some troubles. One is that mass (glucose) conservation is not satisfied. In summary window, we needs two relationships; sintegral(vx*GC,'inlet')-sintegral(vx*GC,'outlet')=Ncell*sintegral(GCR,'Glass') Ncell*sintegral(GCR,'Glass')=DG*sintegral(dz(GC),'Glass') But the result shows amount of consumption of glucose is calculated 5 times smaller than (inlet-outlet). I mean 1/5*Ncell*sintegral(GCR,'Glass')= sintegral(vx*GC,'inlet')-sintegral(vx*GC,'outlet'). This is a trouble of mass conservation. Another trouble is that result of plot window shows glucose consumption rate (GCR) equal 0, and glucose concentration (GC) <0. There are contradictions because if GCR=0, there is no absorption or extraction on the bottom surface. I tried to find other way to solve problems. I appreciate your suggestion. Tomomi
|
Robert G. Nelson (rgnelson)
Moderator Username: rgnelson
Post Number: 762 Registered: 06-2003
| Posted on Thursday, February 08, 2007 - 03:43 pm: | |
1) You must remember that this is a numerical approximation, not an analytic solution. FlexPDE stops trying to refine the solution when the estimated errors are below those you request. You have requested 1 percent error per cell. The negative glucose concentrations you observe are like 1e-6 out of an overall range of 0-420 (unless you have confused the issue with unit conversions, in which case, the discrepancy is 1e-6 out of a range of 2.2). In either case, the negative excursion is tiny compared to your requested error tolerance. Try running the flow and diffusion runs with the default 0.002 error tolerance, and you will see much less noise in the answer. 2) You have specified a bottom flux of GCR*Ncell/DG, which FlexPDE equates to DG*dz(GC). Run with default error in both flow and diffusion, the bottom integral of GCR*Ncell/DG is 3.744e-10 (as shown in a bottom-surface plot). The bottom integral of DG*dz(GC) is 3.806e-10. The difference between input and output flux is 3.74e-10 (or 7 percent of total flux). I don't see any mass conservation problem. Check that your units conversions are correct.
|
Tomomi Yoshida (tomomi)
Member Username: tomomi
Post Number: 4 Registered: 02-2007
| Posted on Sunday, February 25, 2007 - 10:25 am: | |
Mr. Nelson Your information is very helpful. At last I could find correct calculate situation and got the answer which satisfied mass conservation. Thank you very much! |
|