예제 #1
0
    def _run_c(self, g_zero):
        import phono3py._phono3py as phono3c
        
        num_band = self._primitive.get_number_of_atoms() * 3

        if g_zero is None or self._symmetrize_fc3_q:
            _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,
                            self._smallest_vectors,
                            self._multiplicity,
                            self._masses,
                            self._p2s,
                            self._s2p,
                            self._band_indices,
                            self._symmetrize_fc3_q,
                            self._cutoff_frequency)
        self._interaction_strength *= self._unit_conversion
예제 #2
0
    def _run_c(self, g_zero):
        import phono3py._phono3py as phono3c

        if g_zero is None or self._symmetrize_fc3q:
            _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._bz_grid.addresses,
            self._bz_grid.D_diag,
            self._bz_grid.Q,
            self._fc3,
            self._svecs,
            self._multi,
            self._masses,
            self._p2s,
            self._s2p,
            self._band_indices,
            self._symmetrize_fc3q,
            self._cutoff_frequency,
        )
        self._interaction_strength *= self._unit_conversion
        self._g_zero = g_zero
예제 #3
0
    def _run_c(self, g_zero=None):
        import phono3py._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