sportran
sportran copied to clipboard
Support and interface for anisotropic materials calculations
There is interest in performing (thermal) conductivity calculations for anisotropic systems.
In general, one wants to compute the full 3x3 conductivity matrix:
\begin{bmatrix} \kappa_{xx} & \kappa_{xy} & \kappa_{xz} \\ \kappa_{yx} & \kappa_{yy} & \kappa_{yz} \\ \kappa_{zx} & \kappa_{zy} & \kappa_{zz} \\ \end{bmatrix}
where
\kappa_{\alpha\beta} = \frac{1}{V k_B T} \int_0^\infty \langle J_{\alpha} (t) J_{\beta}(0) \rangle dt
Each Cartesian component (heat)-current component J_α (α=1,2,3) is not equivalent to the others, therefore one should define a HeatCurrent
with one Cartesian component only.
Diagonal components
The diagonal components are readily estimated by defining a HeatCurrent
for each Cartesian component, and performing cepstral analysis:
# Let's assume that a heat-current is contained in a (N, 3) numpy array (that here I define randomly for demonstration):
current = np.random.rand(N, 3)
# one should then create a HeatCurrent for each component, as they were different stochastic processes:
j1 = tc.HeatCurrent(current[:, 0], units, DT_FS, TEMPERATURE, VOLUME)
j2 = tc.HeatCurrent(current[:, 1], units, DT_FS, TEMPERATURE, VOLUME)
j3 = tc.HeatCurrent(current[:, 2], units, DT_FS, TEMPERATURE, VOLUME)
# and perform all the normal operations and cepstral analysis for each of them
j1f, ax1 = tc.heatcurrent.resample_current(j, fstar_THz=FSTAR_THZ, plot=True)
j2f, ax2 = tc.heatcurrent.resample_current(j, fstar_THz=FSTAR_THZ, plot=True)
j3f, ax3 = tc.heatcurrent.resample_current(j, fstar_THz=FSTAR_THZ, plot=True)
# ...
j1f.cepstral_analysis()
j2f.cepstral_analysis()
j3f.cepstral_analysis()
Off-diagonal components
Off-diagonal components are a more difficult subject. Similarly to the multi-component-fluid (aka multi-current) case, the distribution of the spectrum will not be a χ², but a Wishart distribution, and we have to deal with covariance matrices. This requires an extension of the theory...
Roadmap
- [ ] Design an interface to streamline the calculation of the diagonal components of the conductivity matrix for the typical 3D anisotropic case. This interface just defines 3
HeatCurrent
objects and offers its main methods. - [ ] Extend the theory to include off-diagonal components. The one-current case should be the easiest to deal with. The multi-current case might be quite convoluted.