|
Melting |
Top Previous Next |
|
{ MELTING.PDE } { ************************************************************ This problem shows the application of FlexPDE to the melting of metal.
We choose as our system variables the temperature, "temp", and the fraction of material which is solid at any point, "solid".
The temperature is given by the heat equation,
rho*cp*dt(temp) - div(lambda*grad(temp)) = Source
where cp is the heat capacity, rho the density and lambda the conductivity.
The latent heat, Qm, is an amount of heat released as "Solid" changes from zero to one. We have Qm = integral[0,1]((dH/dSolid)*dSolid), or assuming dH/dSolid is constant, dH/dSolid = Qm. Then heat source from freezing is
dH/dt = (dH/dSolid)*(dSolid/dt) = Qm*dt(Solid).
We assume that the solid fraction can be represented by a function
solid = 0.5*erfc((temp-Tm)/T0)
where Tm is the melting temperature, and T0 is a temperature range over which the melting transition occurs. Since there are no spatial derivatives in this equation, we introduce a diffusion term with small coefficient to act as a noise filter.
The particular problem addressed here is a disk of cold solid material immersed in a bath of liquid. The initial temperatures are such that material first freezes onto the disk, but after equilibrium is reached all the material is liquid. The outer boundary is insulated.
Since the initial condition is a discontinuous distribution, we use a separate REGION to define the cold initial disk, so that the grid lines will follow the shape. We also add a FEATURE bounding the disk to help the gridder define the abrupt transition. SELECT SMOOTHINIT helps minimize interpolator overshoots.
****************************************************** }
TITLE 'Melting Metal'
COORDINATES ycylinder('r','z')
SELECT cubic smoothinit
VARIABLES temp(threshold=10) solid(threshold=0.1)
DEFINITIONS
Qm= 225000 { latent heat } Tm=1850 { Melting temperature } T0= 20 { Melting interval +- T0 } temp_liq=2000 { initial liquid temperature } temp_sol=400 { initial solid temperature } Tinit sinit
R_inf = 0.7 { Domain Radius m}
{ plate } d=0.05 dd = d/5 { a defining layer around discontinuity } R_Plate=0.15
lambda = 30+4.5e-5*(temp-1350)^2 { Conductivity } rho=2500 { Density kg/m3 } cp = 700 { heat capacity }
INITIAL VALUES temp=Tinit solid = 0.5*erfc((tinit-Tm)/T0)
EQUATIONS temp: rho*cp*dt(temp) - div(lambda*grad(temp)) = Qm*dt(solid) solid: solid - 1e-6*div(grad(solid)) = 0.5*erfc((temp-Tm)/T0)
BOUNDARIES
region 'Outer' Tinit = temp_liq sinit = 0
start 'outer' (0,-R_inf) value(temp)= temp_liq arc(center=0,0) angle 180 natural(temp)=0 line to close
region 'Plate' Tinit = temp_sol sinit = 1
start(0,0) mesh_spacing=dd line to (R_Plate,0) to (R_Plate,d) to (0,d) to close
TIME 0 by 1e-5 to 600
MONITORS for cycle=10 grid(r,z) zoom (0,-0.1,0.25,0.25) elevation(temp) from(0.1,-0.1) to (0.1,0.15) range=(0,2000) elevation(solid) from(0.1,-0.1) to (0.1,0.15) range=(0,1)
PLOTS for t= 0 1e-4 1e-3 1e-2 0.1 1 10 by 10 to 100 by 100 to 300 by 300 to endtime
contour( temp) range=(0,2000) contour( temp) zoom (0,-0.2,0.45,0.45) range=(0,2000) elevation(temp) from(0.1,-0.1) to (0.1,0.15) range=(0,2000) contour(solid) range=(0,1) contour(solid) zoom (0,-0.2,0.45,0.45) range=(0,1) elevation(solid) from(0.1,-0.1) to (0.1,0.15) range=(0,1)
HISTORIES
history(temp) at (0.051,d/2) at (0.075,d/2) at (R_plate,d/2) history(temp) at (0.051,d) at (0.075,d) at (R_plate,d) history(solid) at (0.051,d/2) at (0.075,d/2) at (R_plate,d/2) history(solid) at (0.051,d) at (0.075,d) at (R_plate,d) history(integral(cp*temp+Qm*(1-solid))) as "Total Energy"
END |