Under the implementation of collision matrix and LBTE conductivity

This commit is contained in:
Atsushi Togo 2014-04-11 17:01:18 +09:00
parent 3b8306e03b
commit 7768db3d58
2 changed files with 16 additions and 4 deletions

View File

@ -1,9 +1,12 @@
import numpy as np
import phonopy.structure.spglib as spg
from anharmonic.phonon3.imag_self_energy import ImagSelfEnergy
from anharmonic.phonon3.triplets import get_triplets_integration_weights, gaussian
class CollisionMatrix(ImagSelfEnergy):
def __init__(self,
interaction,
symmetry,
grid_point=None,
frequency_points=None,
temperature=None,
@ -37,6 +40,8 @@ class CollisionMatrix(ImagSelfEnergy):
temperature=None,
sigma=None,
lang='C')
self._symmetry = symmetry
def run(self):
if self._fc3_normal_squared is None:
@ -62,13 +67,20 @@ class CollisionMatrix(ImagSelfEnergy):
self._weights_at_q,
self._triplets_map_at_q) = self._interaction.get_triplets_at_q()
self._grid_point = grid_point
qpoint = (self._interaction.get_grid_address()[grid_points] /
self._mesh.astype('double'))
grid_mapping_table, grid_address = spg.get_stabilized_reciprocal_mesh(
self._mesh,
self._symmetry.get_pointgroup_operations(),
qpoints=qpoint)
def _run_collision_matrix(self):
self._run_with_band_indices()
self._run_py_collision_matrix()
self._run_with_band_indices() # for Gamma
self._run_py_collision_matrix() # for Omega
def _run_py_collision_matrix(self):
g = np.zeros((2,) + self._fc3_normal_squared.shape, dtype='double')
g = np.zeros((3,) + self._fc3_normal_squared.shape, dtype='double')
if self._temperature > 0:
self._set_collision_matrix()
else:

View File

@ -108,7 +108,7 @@ class Conductivity_LBTE(Conductivity):
gv_delta_q=gv_delta_q,
log_level=log_level)
self._collision = CollisionMatrix(self._pp)
self._collision = CollisionMatrix(self._pp, self._symmetry)
def _run_at_grid_point(self):
i = self._grid_point_count