{ FIB based heat eneration in a stack of thin filme **************************************** } title 'time-dependent 3D heat conduction' select regrid=off { use fixed grid } ngrid=4 { smaller grid for quicker run } coordinates cartesian3 variables Tp(threshold=300) { the temperature variable, with approximate size} definitions long = 1 wide = 1 K { thermal conductivity -- values supplied later } A=cos(pi*0.000001/0.6) Pulse=USTEP(cos(2*pi*t/0.6)-A) Q = Pulse*17*10^8 { Thermal source } tmax = 2 { plot range control } initial values Tp = 300. equations div[k*grad(Tp)] + Q = dt(Tp) { the heat equation } extrusion z = -long,0.5,0.95,long { divide Z into two layers } boundaries surface 1 value(Tp)=300 { fix bottom surface temp } !surface 3 value(Tp)=0 { fix top surface temp } Region 1 { define full domain boundary in base plane } layer 1 k=1 { bottom right brick } layer 2 k=0.1 { top right brick } layer 3 k=174 start(-wide,-wide) value(Tp) = 300 { fix all side temps } line to (wide,-wide) { walk outer boundary in base plane } to (wide,wide) to (-wide,wide) to close { Region 2 { overlay a second region in left half } layer 1 k=0.2 { bottom left brick } layer 2 k=0.4 { top left brick } start(-wide,-wide) line to (0,-wide) { walk left half boundary in base plane } to (0,wide) to (-wide,wide) to close} time 0 to 2 by 0.0000001 { establish time range and initial timestep } monitors for cycle=1 contour(Q) on z=0 as "q " range=(0,tmax) contour(Tp) on z=0 as "XY Temp" range=(0,tmax) contour(Tp) on x=0 as "YZ Temp" range=(0,tmax) contour(Tp) on y=0 as "XZ Temp" range=(0,tmax) elevation(Tp) from (-wide,0,0) to (wide,0,0) as "X-Axis Temp" range=(0,tmax) elevation(Tp) from (0,-wide,0) to (0,wide,0) as "Y-Axis Temp" range=(0,tmax) elevation(Tp) from (0,0,-long) to (0,0,long) as "Z-Axis Temp" range=(0,tmax) plots for t = 2 contour(Tp) on z=0 as "XY Temp" range=(0,tmax) contour(Tp) on x=0 as "YZ Temp" range=(0,tmax) contour(Tp) on y=0 as "XZ Temp" range=(0,tmax) histories history(Tp) at (wide/2,-wide/2,-long/2) (wide/2,wide/2,-long/2) (-wide/2,wide/2,-long/2) (-wide/2,-wide/2,-long/2) (wide/2,-wide/2,long/2) (wide/2,wide/2,long/2) (-wide/2,wide/2,long/2) (0,0,0) range=(0,tmax) end 79329355