DMUG-Archiv 2009

Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

Re: Abkühlung mit Freisetzung von latenter Wärme

sehr geehrterHerr Richter,

ich habe es mal versucht mit

In[11]:= fk[t_]:=45*(1-Exp[-t/0.010])
In[2]:= NDSolve[{D[T[x,y,t],{t,1}]==1.08*(D[T[x,y,t],{x,2}]+D[T[x,y,t], {y,2}])+70.26*Exp[-((T[x,y,t]+0.15)/0.05)^2],T[x,y,0]==0,
T[x,0,t]==fk[t],
T[x,8,t]==fk[t],
T[0,y,t]==fk[t],
T[8,y,t]==fk[t]},{
T[x,y,t]},{x,0,8},{y,0,8},{t,0,100},PrecisionGoal->2]
Out[2]= {{T[x,y,t]->InterpolatingFunction[{{0.,8.},{0.,8.}, {0.,100.}},<>][x,y,t]}} In[17]:= sol[alpha_]:=NDSolve[{D[T[x,y,t],{t,1}]==alpha*(D[T[x,y,t],{x, 2}]+D[T[x,y,t],{y,2}])+70.26*Exp[-((T[x,y,t]+0.15)/0.05)^2],T[x,y,0]==0,
T[x,0,t]==fk[t],
T[x,8,t]==fk[t],
T[0,y,t]==fk[t],
T[8,y,t]==fk[t]},{
T[x,y,t]},{x,0,8},{y,0,8},{t,0,100},PrecisionGoal->4];
In[19]:= sol[.002]
Out[19]= {{T[x,y,t]->InterpolatingFunction[{{0.,8.},{0.,8.}, {0.,100.}},<>][x,y,t]}} In[20]:= Manipulate [Module[{plt,loes},loes=sol[alpha];plt=ContourPlot[T[x,y,t]/.loes/.t-> time,{x,0,8},{y,0,8},ColorFunction->"Pastel",Contours->28,PlotLabel- >"temperature profile"]],{{time,5,"time"},5,100,0.05,Appearance-> "Labeled"}, {{alpha,0.002,"thermal diffusivity in cm^2/s"}, 0.001,0.005,0.001,Appearance-> "Labeled"},TrackedSymbols:>{alpha,time}]

ie.
- definieren Sie doch fkt lieber als Funktion fk[t]
bewährt hat sich ein schrittweises rantasten
d.h. zuerst die Lösungsfunktion als Funktion von alpha definieren und mal testen ob es Ergebnisse liefert, dann das Manipulate machen.

Ich habe mal etwas mit dem PrecisionGoal rumgespielt.

Mit der Boole-Funktion wird es doch recht langsam !


Hilft es ?


Gruss Carsten Herrmann




Am 20.10.2009 um 13:02 schrieb Frank Richter:




Hallo MMA-Gruppe,

ich habe mir von
http://demonstrations.wolfram.com/UnsteadyStateConductionOfHeatInTwoDimensions/
das Demonstration Project
Unsteady-State Conduction of Heat in Two Dimensions
beschafft.

Es beschreibt die Temperaturverteilung beim Abkühlen in 2 Dimensionen.

Ich möchte das Beispiel so abändern, dass latente Wärme frei wird. Es gibt hierzu ein Beispiel in dem Finite-Element-Programm ABAQUS (Benchmark Manual Kapitel 1.6.2 FREEZING OF A SQUARE SOLID: THE TWO- DIMENSIONAL STEFAN PROBLEM), und ich möchte die Ergebnisse (Temperatur als Funktion der beiden Ortskoordinaten und der Zeit) vergleichen.

Also habe ich das Beispiel verändert zu

fkt = -45*(1 - Exp[-t/0.010])
dies ist die am Rand vorgegebene Temperatur als Funktion der Zeit

und die Lösung versucht als:

NDSolve[{
D[T[x, y, t], {t, 1}] ==
 1.08* (D[T[x, y, t], {x, 2}] + D[T[x, y, t], {y, 2}]) + (70.26)*
   Boole[-0.15 >=  T[x, y, t] >= -0.25], T[x, y, 0] == 0,
T[x, 0, t] == fkt, T[x, 8, t] == fkt, T[0, y, t] == fkt,
T[8, y, t] == fkt}, {T[x, y, t]}, {x, 0, 8}, {y, 0, 8}, {t, 0, 1},
PrecisionGoal ->
2(*MaxStepFraction-> 1/5,EvaluationMonitor-> t,MaxSteps-> 10000,Method-> "BDF"*)]

Die latente Wärme wird frei in einem Temperaturintervall. Statt der Boole-Funktion hatte ich auch versucht
70.26*Exp[-((T[x, y, t] + 0.15)/0.05)^2]

Beide Lösungen bringen jedoch nur Ergebnisse, die stark von der ABAQUS-Lösung abweichen, jedoch nicht von der MMA-Lösung ohne latente Wärme, oder die Suche nach der numerischen Lösung dauert sehr lange und bricht schon zu kleinen Zeiten ab. Wie oben gezeigt, habe ich einige der Parameter zu NDSolve bereits bemüht.

Kann mir jemand bitte einen Hinweis geben, wie es richtig gemacht werden muss ?

Ich bedanke mich auf das Herzlichste im Voraus.

Frank

--
Mit freundlichen Gruessen               Kind regards


Frank Richter

Lehrstuhl Werkstoffwissenschaft (WW)    Chair of Materials Science
Institut fuer Werkstoffe                Institute for Materials
Fakultaet fuer Maschinenbau Dept. of Mechanical Engineering
Ruhr-Universitaet Bochum                Ruhr-University Bochum
Universitaetsstrasse 150                Universitaetsstrasse 150
44780 Bochum                            44780 Bochum
Deutschland                             Germany

Gebaeude IA, Ebene 1, Raum 47
Building IA, Floor 1, Room 47
Tel./Phone:     (+49)-(0)234-32-27898
Fax:            (+49)-(0)234-32-14235

http://www.ruhr-uni-bochum.de/ww/mitarb/richter.html
http://homepage.ruhr-uni-bochum.de/Frank.Richter/


Antworten:
Verweise:
Frühere   Chronologischer Index   Spätere
Vorherige   Thematischer Index   Nächste

DMUG DMUG-Archiv, http://www.mathematica.ch/archiv.html