melting Log Out | Topics | Search
Moderators | Register | Edit Profile

FlexPDE User's Forum » User Postings » melting « Previous Next »

Author Message
Top of pagePrevious messageNext messageBottom of page Link to this 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.
application/octet-streamD2 melting
D2 melting.pde (3.5 k)
Top of pagePrevious messageNext messageBottom of page Link to this message

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.
application/octet-stream
D_melting_2.pde (3.5 k)
Top of pagePrevious messageNext messageBottom of page Link to this message

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.
Top of pagePrevious messageNext messageBottom of page Link to this message

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.
Top of pagePrevious messageNext messageBottom of page Link to this message

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.
application/octet-stream
d2_melting1.pde (4.3 k)
Top of pagePrevious messageNext messageBottom of page Link to this message

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
Top of pagePrevious messageNext messageBottom of page Link to this message

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
Top of pagePrevious messageNext messageBottom of page Link to this message

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.]

Add Your Message Here
Post:
Username: Posting Information:
This is a private posting area. Only registered users and moderators may post messages here.
Password:
Options: Enable HTML code in message
Automatically activate URLs in message
Action:

Topics | Last Day | Last Week | Tree View | Search | Help/Instructions | Program Credits Administration