M578 - Alexiades
Axially Symmetric Heat Transfer - Explicit FV Code
Consider the problem (from Lab 5) describing axially symmetric heat conduction in a hollow cylinder:
Rin ≤ r ≤ Rout, 0 ≤ z ≤ Z, with imposed temperature boundary conditions on all boundaries,
starting with a given temperature.
1. A problem with exact solution: Choose diffusivity D=1 ; Rin=1, Rout=2, Z=π ;
initial condition: T(r,z,0) = LOG(r)*SIN(z) ; and boundary conditions:
u(Rin, z, t) = 0 , u(Rout, z, t) = EXP(-t)*LOG(2)*SIN(z) ,
u( r , 0, t) = 0 , u( r , Pi, t) = 0.
Verify (by hand, on paper!) that u(r,z,t) = EXP(-t)*LOG(r)*SIN(z)
is the exact solution of this (weird) problem.
2. Implement the explicit scheme (Lab 5) for imposed temperature, and compare the numerical solution
with the exact solution above, on MMr=MMz=32 mesh, at time 0.1 and at time 1.0 , using factor=0.9 .
Calculate the max error at each of these times.
NOTE: BCs are time-dependent (as in Lab3), so time should be updated before calling FLUX
NOTE: π may create problems, code fluxes for non-uniform grid (do not use dz/2, dz).
NOTE: Best way to set π to full precision is π = 4*atan(1.d0)
3. Submit only:
errors at t=0.1 and at t=1.0