dschick / udkm1DsimML

A MATLAB Simulation Toolkit for 1D Ultrafast Dynamics in Condensed Matter
Other
7 stars 4 forks source link

Implementation of thermal contact resistance #3

Open AvonReppert opened 6 years ago

AvonReppert commented 6 years ago

Heat flow in thin films and multilayers can nicely be simulated using udkm1Dsim toolbox using the 1D-Heat equation or an N-Temperature model.

However it is known in the literature that there exist considerable interface resistances in metal/metal and even more pronounced metal/insulator interfaces. See for example: Gundrum, et al. . "Thermal conductance of metal-metal interfaces." Physical Review B 72.24 (2005): 245426..

Such thermal interface conductances limit the heat flow and thus result in a much slower temperature equilibration than predicted by the udkm1Dsim toolbox. One current workaround is to define single layers of a material with very much reduced heat conductivities that mimic the limited interface conductance.

So far I do not know how exactly this can be achieved nicely but it would be useful if the toolbox would provide an easier way of incorporating the interface conductance. Maybe one could provide the option to automatically set the heat conductance of the first unitcell in the layer to a lower user-defined value, which essentially does the same as the current workaround but would be more user friendly if this a in-built option.

In the current state the heat flow out of the thin films is often drastically overestimated if one does not include an interface resistance.

dschick commented 6 years ago

I fear there is no better way then your workaround to mimic that because MATLAB's solver only supports boundary conditions at the "real" boundaries of the sample.

So as you said it would be just about writing some kind of plugin to increase useability here.

The most obious way for me would be overwriting the getUnitCellPropertyVector method of the structure class which essentially provides all the simulations with the parameters. As the interface resistance is a property of the the structure and not of the unitCell, it would be most convinient to put it in here. So maybe one could a parameter, when adding a substructure to your sample structure with a value for the resisitance. In the getUnitCellPropertyVector one needs to do case structure to check if the required property is the heat conductivity and then change the first and last value of each layer according to the given restistance.

The resistance could be something like a scalar: 1 = take normal heat conductivity, 0 = no conductivity at all, etc.