1 /* Copyright (C) 2015 Atsushi Togo */ 2 /* All rights reserved. */ 3 4 /* This file is part of phonopy. */ 5 6 /* Redistribution and use in source and binary forms, with or without */ 7 /* modification, are permitted provided that the following conditions */ 8 /* are met: */ 9 10 /* * Redistributions of source code must retain the above copyright */ 11 /* notice, this list of conditions and the following disclaimer. */ 12 13 /* * Redistributions in binary form must reproduce the above copyright */ 14 /* notice, this list of conditions and the following disclaimer in */ 15 /* the documentation and/or other materials provided with the */ 16 /* distribution. */ 17 18 /* * Neither the name of the phonopy project nor the names of its */ 19 /* contributors may be used to endorse or promote products derived */ 20 /* from this software without specific prior written permission. */ 21 22 /* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS */ 23 /* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT */ 24 /* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS */ 25 /* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE */ 26 /* COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, */ 27 /* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, */ 28 /* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; */ 29 /* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER */ 30 /* CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT */ 31 /* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN */ 32 /* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE */ 33 /* POSSIBILITY OF SUCH DAMAGE. */ 34 35 #ifndef __imag_self_energy_with_g_H__ 36 #define __imag_self_energy_with_g_H__ 37 38 #include <stddef.h> 39 #include "phonoc_array.h" 40 41 void ise_get_imag_self_energy_at_bands_with_g(double *imag_self_energy, 42 const Darray *fc3_normal_squared, 43 const double *frequencies, 44 const size_t (*triplets)[3], 45 const int *weights, 46 const double *g, 47 const char *g_zero, 48 const double temperature, 49 const double cutoff_frequency, 50 const int num_frequency_points, 51 const int frequency_point_index); 52 void ise_get_detailed_imag_self_energy_at_bands_with_g 53 (double *detailed_imag_self_energy, 54 double *imag_self_energy_N, 55 double *imag_self_energy_U, 56 const Darray *fc3_normal_squared, 57 const double *frequencies, 58 const size_t (*triplets)[3], 59 const int *weights, 60 const int *grid_address, 61 const double *g, 62 const char *g_zero, 63 const double temperature, 64 const double cutoff_frequency); 65 void ise_imag_self_energy_at_triplet(double *imag_self_energy, 66 const size_t num_band0, 67 const size_t num_band, 68 const double *fc3_normal_squared, 69 const double *frequencies, 70 const size_t triplet[3], 71 const int triplet_weight, 72 const double *g1, 73 const double *g2_3, 74 PHPYCONST int (*g_pos)[4], 75 const size_t num_g_pos, 76 const double *temperatures, 77 const size_t num_temps, 78 const double cutoff_frequency, 79 const int openmp_at_bands, 80 const int at_a_frequency_point); 81 int ise_set_g_pos(int (*g_pos)[4], 82 const size_t num_band0, 83 const size_t num_band, 84 const char *g_zero); 85 86 #endif 87