From 7768db3d5812defc59f53fbe0b103e0b0ca8aff4 Mon Sep 17 00:00:00 2001 From: Atsushi Togo Date: Fri, 11 Apr 2014 17:01:18 +0900 Subject: [PATCH] Under the implementation of collision matrix and LBTE conductivity --- anharmonic/phonon3/collision_matrix.py | 18 +++++++++++++++--- anharmonic/phonon3/conductivity_LBTE.py | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) diff --git a/anharmonic/phonon3/collision_matrix.py b/anharmonic/phonon3/collision_matrix.py index 1674d589..6447e3e1 100644 --- a/anharmonic/phonon3/collision_matrix.py +++ b/anharmonic/phonon3/collision_matrix.py @@ -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: diff --git a/anharmonic/phonon3/conductivity_LBTE.py b/anharmonic/phonon3/conductivity_LBTE.py index e52f01c8..b18ef516 100644 --- a/anharmonic/phonon3/conductivity_LBTE.py +++ b/anharmonic/phonon3/conductivity_LBTE.py @@ -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