sportran icon indicating copy to clipboard operation
sportran copied to clipboard

Support and interface for anisotropic materials calculations

Open lorisercole opened this issue 4 years ago • 0 comments

There is interest in performing (thermal) conductivity calculations for anisotropic systems. In general, one wants to compute the full 3x3 conductivity matrix: equation \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.

lorisercole avatar May 07 '20 10:05 lorisercole