Transient thermal response of a plate... Log Out | Topics | Search
Moderators | Register | Edit Profile

FlexPDE User's Forum » User Postings » Transient thermal response of a plate illuminated by square-wave-like laser « Previous Next »

Author Message
Top of pagePrevious messageNext messageBottom of page Link to this message

Charlie Zhang (qzhang)
Member
Username: qzhang

Post Number: 9
Registered: 06-2004
Posted on Friday, October 22, 2004 - 12:48 am:   

I am simulating the transient thermal response of a thin plate, which is illuminated by a square-wave-like laser(half of the time it is on and the other half of the time it is off)with period of 0.2 seconds.

After the simulation starts, it pops up an error window saying"time step has fallen below 1e-009 of the start values! You may have a temporal discontinuity in parameters, or you may simply need a smaller By clause or Halt cause in the time section"

Then I realized the heating power(of the laser) is obviously discontinuous in time domain, and replaced it with a sinusoidal pattern laser power(power=a*sin(b*t)), but the problem kept the same.

Can you guys give me some help? Thanks so much!
Top of pagePrevious messageNext messageBottom of page Link to this message

Robert G. Nelson (rgnelson)
Moderator
Username: rgnelson

Post Number: 238
Registered: 06-2003
Posted on Friday, October 22, 2004 - 01:20 am:   

There have been cases where because of inconsistent initial conditions the timestep control was unable to find an initial timestep at which the time behavior of the solution was polynomial. In these cases, the controller would keep cutting the timestep until a numeric error crashed the run.

This is not very polite behavior, so in version 4.2 we added a cutoff, so that if the timestep control cut the initial stepsize to less than 1e-9 of the initial requested or inferred timestep, FlexPDE will stop with a diagnostic, rather than a crash.

I had hoped that the diagnostic was self-explanatory, but I guess it wasn't.

The release notes for version 4.2.0 say:
"Version 4.2 imposes a halt if the timestep drops below 1e-9 times the requested initial timestep. If this halt occurs, you may have an inconsistent initial condition that is not resolvable by cutting the timestep, or you may have merely requested an initial timestep that is much too large."

The TIME section of the script file allows the specification of an initial timestep, in the form
TIME <start> TO <end> BY <initial>.

If you start with discontinuous conditions, a small stepsize is required to resolve the relaxation of the discontinuity. Just set the requested timestep smaller. In your case, FlexPDE seems to want a step at least 1e-9 smaller that you have requested, so try that as a specification. If it continues to complain, you probably have an unresolvable initial condition.

Top of pagePrevious messageNext messageBottom of page Link to this message

Charlie Zhang (qzhang)
Member
Username: qzhang

Post Number: 10
Registered: 06-2004
Posted on Friday, October 22, 2004 - 09:44 pm:   

Thanks a lot, Robert.

After I specified a smaller time step which is 1e-10 or 1e-11 of the original one, I ran into another error which says "Floating-Point Overflow". How can I modify the script to overcome this?

Also I figured out PDE with discontinuous parameters can be simulated in FlexPDE. I just modified one example time-dependent thermal stress problem by using square-wave-like excitation, and it works well.

Thanks so much!



Top of pagePrevious messageNext messageBottom of page Link to this message

Robert G. Nelson (rgnelson)
Moderator
Username: rgnelson

Post Number: 239
Registered: 06-2003
Posted on Friday, October 22, 2004 - 11:56 pm:   

You must have an inconsistency in your initial conditions, equations or boundary conditions.
You will have to post the descriptor or email it to me so I can take a look.
Top of pagePrevious messageNext messageBottom of page Link to this message

Robert G. Nelson (rgnelson)
Moderator
Username: rgnelson

Post Number: 240
Registered: 06-2003
Posted on Saturday, October 23, 2004 - 06:09 pm:   

It appears that there is an indexing error in FlexPDE in time-dependent problems with constraints.

I have fixed this, and will post version 4.2.3 in a few days, after some more testing.

There are a few things you should fix as well:
1) if you run only the temperature equation in your model, you will see that the temperature changes are only about 1e-4. Your threshold value is therefore much too large, and the timestep is effectively uncontrolled. Set the threshold at 1e-6.
2) with such small temperature changes, the variations are lost in roundoff error compared to the base value of 27. Recast your equation in terms of temperature change (Tp-Ta) instead. This means merely to set Ta = 0.

This problem might run successfully in the current version if you remove the constraint equations and instead put in a phoney dt() term in the displacement equations. The dt() would provide a hysteresis that acts like a constraint.
I have not tried this.
Top of pagePrevious messageNext messageBottom of page Link to this message

Charlie Zhang (qzhang)
Member
Username: qzhang

Post Number: 11
Registered: 06-2004
Posted on Sunday, October 24, 2004 - 12:52 am:   

Robert, Thanks a lot for your help and suggestions. I will install version 4.2.3 upon its release.

You also kindly mentioned that the constraint equations can be removed and instead put in a phoney dt() term in the displacement equations. I do not understand this part well, can you explain a little bit or show me how to by modifying the script I sent to you?

Really appreciate your help,





Top of pagePrevious messageNext messageBottom of page Link to this message

Robert G. Nelson (rgnelson)
Moderator
Username: rgnelson

Post Number: 241
Registered: 06-2003
Posted on Sunday, October 24, 2004 - 05:02 pm:   

I emphasize that this is a stopgap. Nevertheless, a discussion of the subject might be useful.

An equation such as "div(K*grad(Temp))=Cp*Dt(Temp)" is a conservation equation, guaranteeing that the equilibrium reached (when dt(Temp)=0) will be uniquely determined by the initial conditions and the heat input.

The equilibrium form of this equation, "div(K*grad(Temp))=0" has lost any memory of the initial condition, and is true for any and all initial conditions.

A constraint equation, such as "Integral(Cp*Temp)=Integral(Cp*Tinit)" can be added to the equilibrium equation to restore the uniqueness of the solution and tie it to an initial condition.

In your case, the energy in question is the kinetic energy of translation and rotation, but the concept is the same. So the replacement for the constraint equation is a dt(Up) in place of the "0" on the right-hand side of the Up equation, and similarly for Vp.

True conservation in the time-dependent equation requires that the correct value of Cp be provided, but even an incorrect value can tie the solution to some kind of initial condition and prevent it running away to infinity. The remaining fictitious translation can be removed after the fact.

You have not said whether there is anything proprietary in your script, so I will not post it here, but instead mail it to you.

The question becomes moot anyway, because I intend to post version 4.2.3 today.
Top of pagePrevious messageNext messageBottom of page Link to this message

Charlie Zhang (qzhang)
Member
Username: qzhang

Post Number: 12
Registered: 06-2004
Posted on Sunday, October 24, 2004 - 05:57 pm:   

Robect, thanks so much for your detailed explaination. Now I understand why constraint equation can be replaced as a phoney dt() term. :-)

I have received the modified script you sent. And it works under version 4.2.2 now.
Top of pagePrevious messageNext messageBottom of page Link to this message

Charlie Zhang (qzhang)
Member
Username: qzhang

Post Number: 13
Registered: 06-2004
Posted on Sunday, October 24, 2004 - 05:58 pm:   

Robert, thanks so much for your detailed explaination. Now I understand why constraint equation can be replaced as a phoney dt() term. :-)

I have received the modified script you sent. And it works under version 4.2.2 now.

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