Beispiel #1
0
    def _run_c(self):
        import anharmonic._phono3py as phono3c
        
        self.set_phonon(self._triplets_at_q.ravel())
        num_band = self._primitive.get_number_of_atoms() * 3
        svecs, multiplicity = get_smallest_vectors(self._supercell,
                                                   self._primitive,
                                                   self._symprec)
        masses = np.array(self._primitive.get_masses(), dtype='double')
        p2s = self._primitive.get_primitive_to_supercell_map()
        s2p = self._primitive.get_supercell_to_primitive_map()

        phono3c.interaction(self._interaction_strength,
                            self._frequencies,
                            self._eigenvectors,
                            self._triplets_at_q,
                            self._grid_address,
                            self._mesh,
                            self._fc3,
                            svecs,
                            multiplicity,
                            masses,
                            p2s,
                            s2p,
                            self._band_indices,
                            self._symmetrize_fc3_q,
                            self._cutoff_frequency)
        self._interaction_strength *= self._unit_conversion
Beispiel #2
0
    def _run_c(self, g_zero=None):
        import anharmonic._phono3py as phono3c
        
        num_band = self._primitive.get_number_of_atoms() * 3
        svecs, multiplicity = get_smallest_vectors(self._supercell,
                                                   self._primitive,
                                                   self._symprec)
        masses = np.array(self._primitive.get_masses(), dtype='double')
        p2s = self._primitive.get_primitive_to_supercell_map()
        s2p = self._primitive.get_supercell_to_primitive_map()

        if g_zero is None:
            _g_zero = np.zeros(self._interaction_strength.shape,
                               dtype='byte', order='C')
        else:
            _g_zero = g_zero

        phono3c.interaction(self._interaction_strength,
                            _g_zero,
                            self._frequencies,
                            self._eigenvectors,
                            self._triplets_at_q,
                            self._grid_address,
                            self._mesh,
                            self._fc3,
                            svecs,
                            multiplicity,
                            masses,
                            p2s,
                            s2p,
                            self._band_indices,
                            self._symmetrize_fc3_q,
                            self._cutoff_frequency)
        self._interaction_strength *= self._unit_conversion
Beispiel #3
0
    def _run_c(self):
        import anharmonic._phono3py as phono3c
        
        self.set_phonon(self._triplets_at_q.ravel())
        num_band = self._primitive.get_number_of_atoms() * 3
        svecs, multiplicity = get_smallest_vectors(self._supercell,
                                                   self._primitive,
                                                   self._symprec)
        masses = np.array(self._primitive.get_masses(), dtype='double')
        p2s = self._primitive.get_primitive_to_supercell_map()
        s2p = self._primitive.get_supercell_to_primitive_map()

        phono3c.interaction(self._interaction_strength,
                            self._frequencies,
                            self._eigenvectors,
                            self._triplets_at_q,
                            self._grid_address,
                            self._mesh,
                            self._fc3,
                            svecs,
                            multiplicity,
                            masses,
                            p2s,
                            s2p,
                            self._band_indices,
                            self._symmetrize_fc3_q,
                            self._cutoff_frequency)
Beispiel #4
0
    def _run_c(self, g_zero=None):
        import anharmonic._phono3py as phono3c

        num_band = self._primitive.get_number_of_atoms() * 3
        svecs, multiplicity = get_smallest_vectors(self._supercell,
                                                   self._primitive,
                                                   self._symprec)
        masses = np.array(self._primitive.get_masses(), dtype='double')
        p2s = self._primitive.get_primitive_to_supercell_map()
        s2p = self._primitive.get_supercell_to_primitive_map()

        if g_zero is None:
            _g_zero = np.zeros(self._interaction_strength.shape,
                               dtype='byte',
                               order='C')
        else:
            _g_zero = g_zero

        phono3c.interaction(self._interaction_strength, _g_zero,
                            self._frequencies, self._eigenvectors,
                            self._triplets_at_q, self._grid_address,
                            self._mesh, self._fc3, svecs, multiplicity, masses,
                            p2s, s2p, self._band_indices,
                            self._symmetrize_fc3_q, self._cutoff_frequency)
        self._interaction_strength *= self._unit_conversion
Beispiel #5
0
 def _run_c(self, g_skip=None):
     import anharmonic._phono3py as phono3c
     if g_skip is None:
         g_skip = np.zeros_like(self._interaction_strength_reduced, dtype="bool")
     assert g_skip.shape == self._interaction_strength_reduced.shape
     self._set_phonon_c()
     masses = np.double(self._primitive.get_masses())
     p2s = np.intc(self._primitive.get_primitive_to_supercell_map())
     s2p = np.intc(self._primitive.get_supercell_to_primitive_map())
     atc=np.intc(self._triplet_cut_super) # int type
     atc_prim = np.intc(self._triplet_cut_prim) # int type
     phono3c.interaction(self._interaction_strength_reduced,
                         self._frequencies,
                         self._eigenvectors,
                         self._triplets_at_q_reduced.copy(),
                         self._grid_address,
                         self._mesh,
                         self._fc3,
                         atc,
                         atc_prim,
                         g_skip,
                         self._svecs,
                         self._multiplicity,
                         np.double(masses),
                         p2s,
                         s2p,
                         self._band_indices,
                         self._symmetrize_fc3_q,
                         self._cutoff_frequency,
                         self._cutoff_hfrequency,
                         self._cutoff_delta)
     phono3c.interaction_degeneracy_grid(self._interaction_strength_reduced,
                                         self._degenerates,
                                         self._triplets_at_q_reduced.astype('intc').copy(),
                                         self._band_indices.astype('intc'))