Author |
Message |
anghel (aanghel)
New member Username: aanghel
Post Number: 1 Registered: 06-2005
| Posted on Thursday, June 30, 2005 - 08:45 am: | |
what is wrong in this simple aplication of melting a solid. |
Victor Bense (indiana)
Member Username: indiana
Post Number: 5 Registered: 01-2005
| Posted on Thursday, June 30, 2005 - 11:32 am: | |
if you just follow the error messages and tag your variables and give them some threshold the script runs fine. |
anghel (aanghel)
New member Username: aanghel
Post Number: 2 Registered: 06-2005
| Posted on Friday, July 01, 2005 - 12:38 pm: | |
It works becouse you changed the second equation, the one for the solid : in my file it was solid - eps*div(grad(solid)) = 0.5*erfc((temp-Tm)/T0) and in your it was changed to solid : eps*div(grad(solid)) = 0.5*erfc((temp-Tm)/T0) it is not the same problem. With the right equation the file crashes. |
Victor Bense (indiana)
Member Username: indiana
Post Number: 6 Registered: 01-2005
| Posted on Friday, July 01, 2005 - 01:30 pm: | |
looks like you did not define any boundary conditions for "solid". In Finite elements this means that the boundary is closed (natural(solid)=0). This might cause it to crash. |
Robert G. Nelson (rgnelson)
Moderator Username: rgnelson
Post Number: 393 Registered: 06-2003
| Posted on Friday, July 01, 2005 - 08:55 pm: | |
1) I assume you are using FlexPDE version 3, because versions 4 and 5 issue some diagnostics about syntax changes. You should always state the version you are using; it could make a difference. 2) It appears that this problem is an adaptation of our example "Melting.pde". There is a significant difference, though. In our problem, rho*cp is somewhat larger than (our)Qm. In your problem, (Your)rho*Qm is 5,000,000 times bigger than rho*cp. I think what is happening is that the dt(temp) term is being swamped in the numerics as compared to dt(solid), and numerical errors are driving the system unstable, even when the solution is supposed to be constant. 3) Furthermore, the enormous Qm means that once the melting temperature is reached, the effective heat capacity jumps by a factor of 5e6, and the time derivative of temperature comes slamming down to zero. This causes oscillations that feed back into #2. 4)This is compounded by the fact that the solid equation contains no time derivatives, and is therefore not analyzed by the timestep control. In order to rectify these troubles, I have done the following things in the attached problem: 1) converted the solid equation to a time-relaxation equation dt(solid)=(Sideal - solid)/relaxation_time where Sideal is the direct computation of solid(temp), and relaxation_time is an acceptable delay between the ideal and numerical response of solid to a change in temperature. This change subjects the solid equation to timestep control, and also introduces damping of oscillations. 2) imposed a tighter Threshold (similar to "Range" in version 3) to keep a tighter clamp on the evolution. These two changes are sufficient to allow the problem to run in version 5. Version 3 and 4 seem to have troubles with equations containing time derivatives of two variables (or maybe its just the 5e6 dominance of the dt(solid) term). So I did this: 3) Inserted the value (Sideal-Solid)/relaxation_time in place of dt(solid) in the temperature equation The result is a script that runs successfully on all versions. Version 3 seems to have a problem with histories when there are cycle-based monitors, so the added monitors I put in cannot coexist with the histories in version 3.
|
ksenthilkumar (ksenthilkumar)
New member Username: ksenthilkumar
Post Number: 1 Registered: 10-2005
| Posted on Thursday, October 20, 2005 - 04:55 am: | |
Dear sir, I am working in cylindrical fluid flow heat and mass transfer. how to set the boundary condition in derivative form for ex:d(Tp)/dx=0 and second derivative form like d2(Tp)/dx2=0 |
ksenthilkumar (ksenthilkumar)
New member Username: ksenthilkumar
Post Number: 2 Registered: 10-2005
| Posted on Thursday, October 20, 2005 - 04:57 am: | |
Dear sir, I am working in cylindrical fluid flow heat and mass transfer. how to set the boundary condition in derivative form for ex:d(Tp)/dx=0 and second derivative form like d2(Tp)/dx2=0 |
Robert G. Nelson (rgnelson)
Moderator Username: rgnelson
Post Number: 476 Registered: 06-2003
| Posted on Thursday, October 20, 2005 - 03:52 pm: | |
There is no direct method in FlexPDE for specifying second derivative boundary conditions, so you have to find another way. The most obvious is to declare an additional variable (say T2) and give it the equation div(grad(Tp))=T2. Now you can impose a Value BC on T2. If the resulting system has a solution, FlexPDE should find it. However: A second-order differential equation has two integration constants, implying two boundary conditions. FlexPDE applies either a Value or a Natural BC on all boundaries, which means that both arbitrary constants are implied on each traversal path. Attempting to apply a third condition (dxx(Tp)=0) may result in an overspecified system with no solution. Because the Finite element method as used in FlexPDE is a residual minimization method, it is possible that a compromise solution might be found. Alternatively, you could provide a "tautological" boundary condition on the opposite side, to allow free variation to the variable. [The Natural BC provides the value of the surface terms arising from integration by parts. In a diffusion equation for example, div(k*grad(u))=0, the surface term is normal(k*grad(u)). Therefore, specifying Natural(u)=normal(k*grad(u)) computes the surface terms for any trial solution, effectively removing any boundary constraint. We call this a "tautological" boundary condition.]
|