Remove unit conversion factor in C routines

This commit is contained in:
Atsushi Togo 2025-04-29 22:31:05 +09:00
parent 6264dc5e35
commit 855ce1c3c2
33 changed files with 299 additions and 284 deletions

View File

@ -65,15 +65,15 @@ void py_get_interaction(nb::ndarray<> py_fc3_normal_squared,
Darray *fc3_normal_squared;
Darray *freqs;
_lapack_complex_double *eigvecs;
int64_t(*triplets)[3];
int64_t (*triplets)[3];
int64_t num_triplets;
char *g_zero;
int64_t(*bz_grid_addresses)[3];
int64_t (*bz_grid_addresses)[3];
int64_t *D_diag;
int64_t(*Q)[3];
int64_t (*Q)[3];
double *fc3;
double(*svecs)[3];
int64_t(*multi)[2];
double (*svecs)[3];
int64_t (*multi)[2];
double *masses;
char *all_shortest;
int64_t *p2s;
@ -88,23 +88,23 @@ void py_get_interaction(nb::ndarray<> py_fc3_normal_squared,
/* npy_cdouble and lapack_complex_double may not be compatible. */
/* So eigenvectors should not be used in Python side */
eigvecs = (_lapack_complex_double *)py_eigenvectors.data();
triplets = (int64_t(*)[3])py_triplets.data();
triplets = (int64_t (*)[3])py_triplets.data();
num_triplets = (int64_t)py_triplets.shape(0);
g_zero = (char *)py_g_zero.data();
bz_grid_addresses = (int64_t(*)[3])py_bz_grid_addresses.data();
bz_grid_addresses = (int64_t (*)[3])py_bz_grid_addresses.data();
D_diag = (int64_t *)py_D_diag.data();
Q = (int64_t(*)[3])py_Q.data();
Q = (int64_t (*)[3])py_Q.data();
fc3 = (double *)py_fc3.data();
if (py_fc3.shape(0) == py_fc3.shape(1)) {
is_compact_fc3 = 0;
} else {
is_compact_fc3 = 1;
}
svecs = (double(*)[3])py_svecs.data();
svecs = (double (*)[3])py_svecs.data();
for (i = 0; i < 2; i++) {
multi_dims[i] = py_multi.shape(i);
}
multi = (int64_t(*)[2])py_multi.data();
multi = (int64_t (*)[2])py_multi.data();
masses = (double *)py_masses.data();
p2s = (int64_t *)py_p2s_map.data();
s2p = (int64_t *)py_s2p_map.data();
@ -131,74 +131,74 @@ void py_get_pp_collision(
int64_t bz_grid_type, nb::ndarray<> py_D_diag, nb::ndarray<> py_Q,
nb::ndarray<> py_fc3, nb::ndarray<> py_svecs, nb::ndarray<> py_multi,
nb::ndarray<> py_masses, nb::ndarray<> py_p2s_map, nb::ndarray<> py_s2p_map,
nb::ndarray<> py_band_indices, nb::ndarray<> py_temperatures, int64_t is_NU,
int64_t symmetrize_fc3_q, int64_t make_r0_average,
nb::ndarray<> py_band_indices, nb::ndarray<> py_temperatures_THz,
int64_t is_NU, int64_t symmetrize_fc3_q, int64_t make_r0_average,
nb::ndarray<> py_all_shortest, double cutoff_frequency,
int64_t openmp_per_triplets) {
double *gamma;
int64_t(*relative_grid_address)[4][3];
int64_t (*relative_grid_address)[4][3];
double *frequencies;
_lapack_complex_double *eigenvectors;
int64_t(*triplets)[3];
int64_t (*triplets)[3];
int64_t num_triplets;
int64_t *triplet_weights;
int64_t(*bz_grid_addresses)[3];
int64_t (*bz_grid_addresses)[3];
int64_t *bz_map;
int64_t *D_diag;
int64_t(*Q)[3];
int64_t (*Q)[3];
double *fc3;
double(*svecs)[3];
int64_t(*multi)[2];
double (*svecs)[3];
int64_t (*multi)[2];
double *masses;
int64_t *p2s;
int64_t *s2p;
Larray *band_indices;
Darray *temperatures;
Darray *temperatures_THz;
char *all_shortest;
int64_t multi_dims[2];
int64_t i;
int64_t is_compact_fc3;
gamma = (double *)py_gamma.data();
relative_grid_address = (int64_t(*)[4][3])py_relative_grid_address.data();
relative_grid_address = (int64_t (*)[4][3])py_relative_grid_address.data();
frequencies = (double *)py_frequencies.data();
eigenvectors = (_lapack_complex_double *)py_eigenvectors.data();
triplets = (int64_t(*)[3])py_triplets.data();
triplets = (int64_t (*)[3])py_triplets.data();
num_triplets = (int64_t)py_triplets.shape(0);
triplet_weights = (int64_t *)py_triplet_weights.data();
bz_grid_addresses = (int64_t(*)[3])py_bz_grid_addresses.data();
bz_grid_addresses = (int64_t (*)[3])py_bz_grid_addresses.data();
bz_map = (int64_t *)py_bz_map.data();
D_diag = (int64_t *)py_D_diag.data();
Q = (int64_t(*)[3])py_Q.data();
Q = (int64_t (*)[3])py_Q.data();
fc3 = (double *)py_fc3.data();
if (py_fc3.shape(0) == py_fc3.shape(1)) {
is_compact_fc3 = 0;
} else {
is_compact_fc3 = 1;
}
svecs = (double(*)[3])py_svecs.data();
svecs = (double (*)[3])py_svecs.data();
for (i = 0; i < 2; i++) {
multi_dims[i] = py_multi.shape(i);
}
multi = (int64_t(*)[2])py_multi.data();
multi = (int64_t (*)[2])py_multi.data();
masses = (double *)py_masses.data();
p2s = (int64_t *)py_p2s_map.data();
s2p = (int64_t *)py_s2p_map.data();
band_indices = convert_to_larray(py_band_indices);
temperatures = convert_to_darray(py_temperatures);
temperatures_THz = convert_to_darray(py_temperatures_THz);
all_shortest = (char *)py_all_shortest.data();
ph3py_get_pp_collision(
gamma, relative_grid_address, frequencies, eigenvectors, triplets,
num_triplets, triplet_weights, bz_grid_addresses, bz_map, bz_grid_type,
D_diag, Q, fc3, is_compact_fc3, svecs, multi_dims, multi, masses, p2s,
s2p, band_indices, temperatures, is_NU, symmetrize_fc3_q,
s2p, band_indices, temperatures_THz, is_NU, symmetrize_fc3_q,
make_r0_average, all_shortest, cutoff_frequency, openmp_per_triplets);
free(band_indices);
band_indices = NULL;
free(temperatures);
temperatures = NULL;
free(temperatures_THz);
temperatures_THz = NULL;
}
void py_get_pp_collision_with_sigma(
@ -209,26 +209,26 @@ void py_get_pp_collision_with_sigma(
nb::ndarray<> py_Q, nb::ndarray<> py_fc3, nb::ndarray<> py_svecs,
nb::ndarray<> py_multi, nb::ndarray<> py_masses, nb::ndarray<> py_p2s_map,
nb::ndarray<> py_s2p_map, nb::ndarray<> py_band_indices,
nb::ndarray<> py_temperatures, int64_t is_NU, int64_t symmetrize_fc3_q,
nb::ndarray<> py_temperatures_THz, int64_t is_NU, int64_t symmetrize_fc3_q,
int64_t make_r0_average, nb::ndarray<> py_all_shortest,
double cutoff_frequency, int64_t openmp_per_triplets) {
double *gamma;
double *frequencies;
_lapack_complex_double *eigenvectors;
int64_t(*triplets)[3];
int64_t (*triplets)[3];
int64_t num_triplets;
int64_t *triplet_weights;
int64_t(*bz_grid_addresses)[3];
int64_t (*bz_grid_addresses)[3];
int64_t *D_diag;
int64_t(*Q)[3];
int64_t (*Q)[3];
double *fc3;
double(*svecs)[3];
int64_t(*multi)[2];
double (*svecs)[3];
int64_t (*multi)[2];
double *masses;
int64_t *p2s;
int64_t *s2p;
Larray *band_indices;
Darray *temperatures;
Darray *temperatures_THz;
char *all_shortest;
int64_t multi_dims[2];
int64_t i;
@ -237,47 +237,47 @@ void py_get_pp_collision_with_sigma(
gamma = (double *)py_gamma.data();
frequencies = (double *)py_frequencies.data();
eigenvectors = (_lapack_complex_double *)py_eigenvectors.data();
triplets = (int64_t(*)[3])py_triplets.data();
triplets = (int64_t (*)[3])py_triplets.data();
num_triplets = (int64_t)py_triplets.shape(0);
triplet_weights = (int64_t *)py_triplet_weights.data();
bz_grid_addresses = (int64_t(*)[3])py_bz_grid_addresses.data();
bz_grid_addresses = (int64_t (*)[3])py_bz_grid_addresses.data();
D_diag = (int64_t *)py_D_diag.data();
Q = (int64_t(*)[3])py_Q.data();
Q = (int64_t (*)[3])py_Q.data();
fc3 = (double *)py_fc3.data();
if (py_fc3.shape(0) == py_fc3.shape(1)) {
is_compact_fc3 = 0;
} else {
is_compact_fc3 = 1;
}
svecs = (double(*)[3])py_svecs.data();
svecs = (double (*)[3])py_svecs.data();
for (i = 0; i < 2; i++) {
multi_dims[i] = py_multi.shape(i);
}
multi = (int64_t(*)[2])py_multi.data();
multi = (int64_t (*)[2])py_multi.data();
masses = (double *)py_masses.data();
p2s = (int64_t *)py_p2s_map.data();
s2p = (int64_t *)py_s2p_map.data();
band_indices = convert_to_larray(py_band_indices);
temperatures = convert_to_darray(py_temperatures);
temperatures_THz = convert_to_darray(py_temperatures_THz);
all_shortest = (char *)py_all_shortest.data();
ph3py_get_pp_collision_with_sigma(
gamma, sigma, sigma_cutoff, frequencies, eigenvectors, triplets,
num_triplets, triplet_weights, bz_grid_addresses, D_diag, Q, fc3,
is_compact_fc3, svecs, multi_dims, multi, masses, p2s, s2p,
band_indices, temperatures, is_NU, symmetrize_fc3_q, make_r0_average,
all_shortest, cutoff_frequency, openmp_per_triplets);
band_indices, temperatures_THz, is_NU, symmetrize_fc3_q,
make_r0_average, all_shortest, cutoff_frequency, openmp_per_triplets);
free(band_indices);
band_indices = NULL;
free(temperatures);
temperatures = NULL;
free(temperatures_THz);
temperatures_THz = NULL;
}
void py_get_imag_self_energy_with_g(
nb::ndarray<> py_gamma, nb::ndarray<> py_fc3_normal_squared,
nb::ndarray<> py_triplets, nb::ndarray<> py_triplet_weights,
nb::ndarray<> py_frequencies, double temperature, nb::ndarray<> py_g,
nb::ndarray<> py_frequencies, double temperature_THz, nb::ndarray<> py_g,
nb::ndarray<> py_g_zero, double cutoff_frequency,
int64_t frequency_point_index) {
Darray *fc3_normal_squared;
@ -285,7 +285,7 @@ void py_get_imag_self_energy_with_g(
double *g;
char *g_zero;
double *frequencies;
int64_t(*triplets)[3];
int64_t (*triplets)[3];
int64_t *triplet_weights;
int64_t num_frequency_points;
@ -294,13 +294,13 @@ void py_get_imag_self_energy_with_g(
g = (double *)py_g.data();
g_zero = (char *)py_g_zero.data();
frequencies = (double *)py_frequencies.data();
triplets = (int64_t(*)[3])py_triplets.data();
triplets = (int64_t (*)[3])py_triplets.data();
triplet_weights = (int64_t *)py_triplet_weights.data();
num_frequency_points = (int64_t)py_g.shape(2);
ph3py_get_imag_self_energy_at_bands_with_g(
gamma, fc3_normal_squared, frequencies, triplets, triplet_weights, g,
g_zero, temperature, cutoff_frequency, num_frequency_points,
g_zero, temperature_THz, cutoff_frequency, num_frequency_points,
frequency_point_index);
free(fc3_normal_squared);
@ -312,7 +312,7 @@ void py_get_detailed_imag_self_energy_with_g(
nb::ndarray<> py_gamma_U, nb::ndarray<> py_fc3_normal_squared,
nb::ndarray<> py_triplets, nb::ndarray<> py_triplet_weights,
nb::ndarray<> py_bz_grid_addresses, nb::ndarray<> py_frequencies,
double temperature, nb::ndarray<> py_g, nb::ndarray<> py_g_zero,
double temperature_THz, nb::ndarray<> py_g, nb::ndarray<> py_g_zero,
double cutoff_frequency) {
Darray *fc3_normal_squared;
double *gamma_detail;
@ -321,9 +321,9 @@ void py_get_detailed_imag_self_energy_with_g(
double *g;
char *g_zero;
double *frequencies;
int64_t(*triplets)[3];
int64_t (*triplets)[3];
int64_t *triplet_weights;
int64_t(*bz_grid_addresses)[3];
int64_t (*bz_grid_addresses)[3];
fc3_normal_squared = convert_to_darray(py_fc3_normal_squared);
gamma_detail = (double *)py_gamma_detail.data();
@ -332,14 +332,14 @@ void py_get_detailed_imag_self_energy_with_g(
g = (double *)py_g.data();
g_zero = (char *)py_g_zero.data();
frequencies = (double *)py_frequencies.data();
triplets = (int64_t(*)[3])py_triplets.data();
triplets = (int64_t (*)[3])py_triplets.data();
triplet_weights = (int64_t *)py_triplet_weights.data();
bz_grid_addresses = (int64_t(*)[3])py_bz_grid_addresses.data();
bz_grid_addresses = (int64_t (*)[3])py_bz_grid_addresses.data();
ph3py_get_detailed_imag_self_energy_at_bands_with_g(
gamma_detail, gamma_N, gamma_U, fc3_normal_squared, frequencies,
triplets, triplet_weights, bz_grid_addresses, g, g_zero, temperature,
cutoff_frequency);
triplets, triplet_weights, bz_grid_addresses, g, g_zero,
temperature_THz, cutoff_frequency);
free(fc3_normal_squared);
fc3_normal_squared = NULL;
@ -349,25 +349,25 @@ void py_get_real_self_energy_at_bands(
nb::ndarray<> py_shift, nb::ndarray<> py_fc3_normal_squared,
nb::ndarray<> py_triplets, nb::ndarray<> py_triplet_weights,
nb::ndarray<> py_frequencies, nb::ndarray<> py_band_indices,
double temperature, double epsilon, double unit_conversion_factor,
double temperature_THz, double epsilon, double unit_conversion_factor,
double cutoff_frequency) {
Darray *fc3_normal_squared;
double *shift;
double *frequencies;
int64_t *band_indices;
int64_t(*triplets)[3];
int64_t (*triplets)[3];
int64_t *triplet_weights;
fc3_normal_squared = convert_to_darray(py_fc3_normal_squared);
shift = (double *)py_shift.data();
frequencies = (double *)py_frequencies.data();
band_indices = (int64_t *)py_band_indices.data();
triplets = (int64_t(*)[3])py_triplets.data();
triplets = (int64_t (*)[3])py_triplets.data();
triplet_weights = (int64_t *)py_triplet_weights.data();
ph3py_get_real_self_energy_at_bands(
shift, fc3_normal_squared, band_indices, frequencies, triplets,
triplet_weights, epsilon, temperature, unit_conversion_factor,
triplet_weights, epsilon, temperature_THz, unit_conversion_factor,
cutoff_frequency);
free(fc3_normal_squared);
@ -378,26 +378,26 @@ void py_get_real_self_energy_at_frequency_point(
nb::ndarray<> py_shift, double frequency_point,
nb::ndarray<> py_fc3_normal_squared, nb::ndarray<> py_triplets,
nb::ndarray<> py_triplet_weights, nb::ndarray<> py_frequencies,
nb::ndarray<> py_band_indices, double temperature, double epsilon,
nb::ndarray<> py_band_indices, double temperature_THz, double epsilon,
double unit_conversion_factor, double cutoff_frequency) {
Darray *fc3_normal_squared;
double *shift;
double *frequencies;
int64_t *band_indices;
int64_t(*triplets)[3];
int64_t (*triplets)[3];
int64_t *triplet_weights;
fc3_normal_squared = convert_to_darray(py_fc3_normal_squared);
shift = (double *)py_shift.data();
frequencies = (double *)py_frequencies.data();
band_indices = (int64_t *)py_band_indices.data();
triplets = (int64_t(*)[3])py_triplets.data();
triplets = (int64_t (*)[3])py_triplets.data();
triplet_weights = (int64_t *)py_triplet_weights.data();
ph3py_get_real_self_energy_at_frequency_point(
shift, frequency_point, fc3_normal_squared, band_indices, frequencies,
triplets, triplet_weights, epsilon, temperature, unit_conversion_factor,
cutoff_frequency);
triplets, triplet_weights, epsilon, temperature_THz,
unit_conversion_factor, cutoff_frequency);
free(fc3_normal_squared);
fc3_normal_squared = NULL;
@ -408,13 +408,13 @@ void py_get_collision_matrix(
nb::ndarray<> py_frequencies, nb::ndarray<> py_g, nb::ndarray<> py_triplets,
nb::ndarray<> py_triplets_map, nb::ndarray<> py_map_q,
nb::ndarray<> py_rotated_grid_points, nb::ndarray<> py_rotations_cartesian,
double temperature, double unit_conversion_factor,
double temperature_THz, double unit_conversion_factor,
double cutoff_frequency) {
Darray *fc3_normal_squared;
double *collision_matrix;
double *g;
double *frequencies;
int64_t(*triplets)[3];
int64_t (*triplets)[3];
int64_t *triplets_map;
int64_t *map_q;
int64_t *rotated_grid_points;
@ -425,7 +425,7 @@ void py_get_collision_matrix(
collision_matrix = (double *)py_collision_matrix.data();
g = (double *)py_g.data();
frequencies = (double *)py_frequencies.data();
triplets = (int64_t(*)[3])py_triplets.data();
triplets = (int64_t (*)[3])py_triplets.data();
triplets_map = (int64_t *)py_triplets_map.data();
num_gp = (int64_t)py_triplets_map.shape(0);
map_q = (int64_t *)py_map_q.data();
@ -440,7 +440,7 @@ void py_get_collision_matrix(
ph3py_get_collision_matrix(collision_matrix, fc3_normal_squared,
frequencies, triplets, triplets_map, map_q,
rotated_grid_points, rotations_cartesian, g,
num_ir_gp, num_gp, num_rot, temperature,
num_ir_gp, num_gp, num_rot, temperature_THz,
unit_conversion_factor, cutoff_frequency);
free(fc3_normal_squared);
@ -450,13 +450,14 @@ void py_get_collision_matrix(
void py_get_reducible_collision_matrix(
nb::ndarray<> py_collision_matrix, nb::ndarray<> py_fc3_normal_squared,
nb::ndarray<> py_frequencies, nb::ndarray<> py_g, nb::ndarray<> py_triplets,
nb::ndarray<> py_triplets_map, nb::ndarray<> py_map_q, double temperature,
double unit_conversion_factor, double cutoff_frequency) {
nb::ndarray<> py_triplets_map, nb::ndarray<> py_map_q,
double temperature_THz, double unit_conversion_factor,
double cutoff_frequency) {
Darray *fc3_normal_squared;
double *collision_matrix;
double *g;
double *frequencies;
int64_t(*triplets)[3];
int64_t (*triplets)[3];
int64_t *triplets_map;
int64_t num_gp;
int64_t *map_q;
@ -465,14 +466,14 @@ void py_get_reducible_collision_matrix(
collision_matrix = (double *)py_collision_matrix.data();
g = (double *)py_g.data();
frequencies = (double *)py_frequencies.data();
triplets = (int64_t(*)[3])py_triplets.data();
triplets = (int64_t (*)[3])py_triplets.data();
triplets_map = (int64_t *)py_triplets_map.data();
num_gp = (int64_t)py_triplets_map.shape(0);
map_q = (int64_t *)py_map_q.data();
ph3py_get_reducible_collision_matrix(
collision_matrix, fc3_normal_squared, frequencies, triplets,
triplets_map, map_q, g, num_gp, temperature, unit_conversion_factor,
triplets_map, map_q, g, num_gp, temperature_THz, unit_conversion_factor,
cutoff_frequency);
free(fc3_normal_squared);
@ -544,21 +545,21 @@ void py_rotate_delta_fc2s(nb::ndarray<> py_fc3, nb::ndarray<> py_delta_fc2s,
nb::ndarray<> py_inv_U,
nb::ndarray<> py_site_sym_cart,
nb::ndarray<> py_rot_map_syms) {
double(*fc3)[3][3][3];
double(*delta_fc2s)[3][3];
double (*fc3)[3][3][3];
double (*delta_fc2s)[3][3];
double *inv_U;
double(*site_sym_cart)[3][3];
double (*site_sym_cart)[3][3];
int64_t *rot_map_syms;
int64_t num_atom, num_disp, num_site_sym;
/* (num_atom, num_atom, 3, 3, 3) */
fc3 = (double(*)[3][3][3])py_fc3.data();
fc3 = (double (*)[3][3][3])py_fc3.data();
/* (n_u1, num_atom, num_atom, 3, 3) */
delta_fc2s = (double(*)[3][3])py_delta_fc2s.data();
delta_fc2s = (double (*)[3][3])py_delta_fc2s.data();
/* (3, n_u1 * n_sym) */
inv_U = (double *)py_inv_U.data();
/* (n_sym, 3, 3) */
site_sym_cart = (double(*)[3][3])py_site_sym_cart.data();
site_sym_cart = (double (*)[3][3])py_site_sym_cart.data();
/* (n_sym, natom) */
rot_map_syms = (int64_t *)py_rot_map_syms.data();
@ -695,11 +696,11 @@ void py_transpose_compact_fc3(nb::ndarray<> py_fc3,
void py_get_thm_relative_grid_address(nb::ndarray<> py_relative_grid_address,
nb::ndarray<> py_reciprocal_lattice_py) {
int64_t(*relative_grid_address)[4][3];
double(*reciprocal_lattice)[3];
int64_t (*relative_grid_address)[4][3];
double (*reciprocal_lattice)[3];
relative_grid_address = (int64_t(*)[4][3])py_relative_grid_address.data();
reciprocal_lattice = (double(*)[3])py_reciprocal_lattice_py.data();
relative_grid_address = (int64_t (*)[4][3])py_relative_grid_address.data();
reciprocal_lattice = (double (*)[3])py_reciprocal_lattice_py.data();
ph3py_get_relative_grid_address(relative_grid_address, reciprocal_lattice);
}
@ -714,18 +715,18 @@ void py_get_neighboring_grid_points(nb::ndarray<> py_relative_grid_points,
int64_t *relative_grid_points;
int64_t *grid_points;
int64_t num_grid_points, num_relative_grid_address;
int64_t(*relative_grid_address)[3];
int64_t (*relative_grid_address)[3];
int64_t *D_diag;
int64_t(*bz_grid_address)[3];
int64_t (*bz_grid_address)[3];
int64_t *bz_map;
relative_grid_points = (int64_t *)py_relative_grid_points.data();
grid_points = (int64_t *)py_grid_points.data();
num_grid_points = (int64_t)py_grid_points.shape(0);
relative_grid_address = (int64_t(*)[3])py_relative_grid_address.data();
relative_grid_address = (int64_t (*)[3])py_relative_grid_address.data();
num_relative_grid_address = (int64_t)py_relative_grid_address.shape(0);
D_diag = (int64_t *)py_D_diag.data();
bz_grid_address = (int64_t(*)[3])py_bz_grid_address.data();
bz_grid_address = (int64_t (*)[3])py_bz_grid_address.data();
bz_map = (int64_t *)py_bz_map.data();
ph3py_get_neighboring_gird_points(
@ -743,10 +744,10 @@ void py_get_thm_integration_weights_at_grid_points(
double *iw;
double *frequency_points;
int64_t num_frequency_points, num_band, num_gp;
int64_t(*relative_grid_address)[4][3];
int64_t (*relative_grid_address)[4][3];
int64_t *D_diag;
int64_t *grid_points;
int64_t(*bz_grid_address)[3];
int64_t (*bz_grid_address)[3];
int64_t *bz_map;
int64_t *gp2irgp_map;
double *frequencies;
@ -754,11 +755,11 @@ void py_get_thm_integration_weights_at_grid_points(
iw = (double *)py_iw.data();
frequency_points = (double *)py_frequency_points.data();
num_frequency_points = (int64_t)py_frequency_points.shape(0);
relative_grid_address = (int64_t(*)[4][3])py_relative_grid_address.data();
relative_grid_address = (int64_t (*)[4][3])py_relative_grid_address.data();
D_diag = (int64_t *)py_D_diag.data();
grid_points = (int64_t *)py_grid_points.data();
num_gp = (int64_t)py_grid_points.shape(0);
bz_grid_address = (int64_t(*)[3])py_bz_grid_address.data();
bz_grid_address = (int64_t (*)[3])py_bz_grid_address.data();
bz_map = (int64_t *)py_bz_map.data();
gp2irgp_map = (int64_t *)py_gp2irgp_map.data();
frequencies = (double *)py_frequencies.data();
@ -777,14 +778,14 @@ int64_t py_tpl_get_triplets_reciprocal_mesh_at_q(
int64_t *map_triplets;
int64_t *map_q;
int64_t *D_diag;
int64_t(*rot)[3][3];
int64_t (*rot)[3][3];
int64_t num_rot;
int64_t num_ir;
map_triplets = (int64_t *)py_map_triplets.data();
map_q = (int64_t *)py_map_q.data();
D_diag = (int64_t *)py_D_diag.data();
rot = (int64_t(*)[3][3])py_rotations.data();
rot = (int64_t (*)[3][3])py_rotations.data();
num_rot = (int64_t)py_rotations.shape(0);
num_ir = ph3py_get_triplets_reciprocal_mesh_at_q(
@ -801,22 +802,22 @@ int64_t py_tpl_get_BZ_triplets_at_q(nb::ndarray<> py_triplets,
nb::ndarray<> py_map_triplets,
nb::ndarray<> py_D_diag, nb::ndarray<> py_Q,
int64_t bz_grid_type) {
int64_t(*triplets)[3];
int64_t(*bz_grid_address)[3];
int64_t (*triplets)[3];
int64_t (*bz_grid_address)[3];
int64_t *bz_map;
int64_t *map_triplets;
int64_t num_map_triplets;
int64_t *D_diag;
int64_t(*Q)[3];
int64_t (*Q)[3];
int64_t num_ir;
triplets = (int64_t(*)[3])py_triplets.data();
bz_grid_address = (int64_t(*)[3])py_bz_grid_address.data();
triplets = (int64_t (*)[3])py_triplets.data();
bz_grid_address = (int64_t (*)[3])py_bz_grid_address.data();
bz_map = (int64_t *)py_bz_map.data();
map_triplets = (int64_t *)py_map_triplets.data();
num_map_triplets = (int64_t)py_map_triplets.shape(0);
D_diag = (int64_t *)py_D_diag.data();
Q = (int64_t(*)[3])py_Q.data();
Q = (int64_t (*)[3])py_Q.data();
num_ir = ph3py_get_BZ_triplets_at_q(triplets, grid_point, bz_grid_address,
bz_map, map_triplets, num_map_triplets,
@ -835,10 +836,10 @@ void py_get_triplets_integration_weights(
double *iw;
char *iw_zero;
double *frequency_points;
int64_t(*relative_grid_address)[4][3];
int64_t (*relative_grid_address)[4][3];
int64_t *D_diag;
int64_t(*triplets)[3];
int64_t(*bz_grid_addresses)[3];
int64_t (*triplets)[3];
int64_t (*bz_grid_addresses)[3];
int64_t *bz_map;
double *frequencies1, *frequencies2;
int64_t num_band0, num_band1, num_band2, num_triplets;
@ -847,11 +848,11 @@ void py_get_triplets_integration_weights(
iw_zero = (char *)py_iw_zero.data();
frequency_points = (double *)py_frequency_points.data();
num_band0 = (int64_t)py_frequency_points.shape(0);
relative_grid_address = (int64_t(*)[4][3])py_relative_grid_address.data();
relative_grid_address = (int64_t (*)[4][3])py_relative_grid_address.data();
D_diag = (int64_t *)py_D_diag.data();
triplets = (int64_t(*)[3])py_triplets.data();
triplets = (int64_t (*)[3])py_triplets.data();
num_triplets = (int64_t)py_triplets.shape(0);
bz_grid_addresses = (int64_t(*)[3])py_bz_grid_addresses.data();
bz_grid_addresses = (int64_t (*)[3])py_bz_grid_addresses.data();
bz_map = (int64_t *)py_bz_map.data();
frequencies1 = (double *)py_frequencies1.data();
frequencies2 = (double *)py_frequencies2.data();
@ -871,7 +872,7 @@ void py_get_triplets_integration_weights_with_sigma(
double *iw;
char *iw_zero;
double *frequency_points;
int64_t(*triplets)[3];
int64_t (*triplets)[3];
double *frequencies;
int64_t num_band0, num_band, num_iw, num_triplets;
@ -879,7 +880,7 @@ void py_get_triplets_integration_weights_with_sigma(
iw_zero = (char *)py_iw_zero.data();
frequency_points = (double *)py_frequency_points.data();
num_band0 = (int64_t)py_frequency_points.shape(0);
triplets = (int64_t(*)[3])py_triplets.data();
triplets = (int64_t (*)[3])py_triplets.data();
num_triplets = (int64_t)py_triplets.shape(0);
frequencies = (double *)py_frequencies.data();
num_band = (int64_t)py_frequencies.shape(1);

View File

@ -49,7 +49,7 @@ static void get_collision_matrix(
const int64_t num_gp, const int64_t *map_q, const int64_t *rot_grid_points,
const int64_t num_ir_gp, const int64_t num_rot,
const double *rotations_cartesian, const double *g,
const double temperature, const double unit_conversion_factor,
const double temperature_THz, const double unit_conversion_factor,
const double cutoff_frequency);
static void get_collision_matrix_at_gp(
double *collision_matrix, const double *fc3_normal_squared,
@ -58,25 +58,25 @@ static void get_collision_matrix_at_gp(
const int64_t *map_q, const int64_t *rot_grid_points,
const int64_t num_ir_gp, const int64_t num_rot,
const double *rotations_cartesian, const double *g,
const double temperature, const double unit_conversion_factor,
const double temperature_THz, const double unit_conversion_factor,
const double cutoff_frequency, const int64_t *gp2tp_map, const int64_t i);
static void get_reducible_collision_matrix(
double *collision_matrix, const double *fc3_normal_squared,
const int64_t num_band0, const int64_t num_band, const double *frequencies,
const int64_t (*triplets)[3], const int64_t *triplets_map,
const int64_t num_gp, const int64_t *map_q, const double *g,
const double temperature, const double unit_conversion_factor,
const double temperature_THz, const double unit_conversion_factor,
const double cutoff_frequency);
static void get_reducible_collision_matrix_at_gp(
double *collision_matrix, const double *fc3_normal_squared,
const int64_t num_band0, const int64_t num_band, const double *frequencies,
const int64_t (*triplets)[3], const int64_t *triplets_map,
const int64_t num_gp, const int64_t *map_q, const double *g,
const double temperature, const double unit_conversion_factor,
const double temperature_THz, const double unit_conversion_factor,
const double cutoff_frequency, const int64_t *gp2tp_map, const int64_t i);
static int64_t get_inv_sinh(double *inv_sinh, const int64_t gp,
const double temperature, const double *frequencies,
const int64_t triplet[3],
const double temperature_THz,
const double *frequencies, const int64_t triplet[3],
const int64_t *triplets_map, const int64_t *map_q,
const int64_t num_band,
const double cutoff_frequency);
@ -89,7 +89,7 @@ void col_get_collision_matrix(
const int64_t *triplets_map, const int64_t *map_q,
const int64_t *rot_grid_points, const double *rotations_cartesian,
const double *g, const int64_t num_ir_gp, const int64_t num_gp,
const int64_t num_rot, const double temperature,
const int64_t num_rot, const double temperature_THz,
const double unit_conversion_factor, const double cutoff_frequency) {
int64_t num_triplets, num_band0, num_band;
@ -97,19 +97,19 @@ void col_get_collision_matrix(
num_band0 = fc3_normal_squared->dims[1];
num_band = fc3_normal_squared->dims[2];
get_collision_matrix(collision_matrix, fc3_normal_squared->data, num_band0,
num_band, frequencies, triplets, triplets_map, num_gp,
map_q, rot_grid_points, num_ir_gp, num_rot,
rotations_cartesian,
g + 2 * num_triplets * num_band0 * num_band * num_band,
temperature, unit_conversion_factor, cutoff_frequency);
get_collision_matrix(
collision_matrix, fc3_normal_squared->data, num_band0, num_band,
frequencies, triplets, triplets_map, num_gp, map_q, rot_grid_points,
num_ir_gp, num_rot, rotations_cartesian,
g + 2 * num_triplets * num_band0 * num_band * num_band, temperature_THz,
unit_conversion_factor, cutoff_frequency);
}
void col_get_reducible_collision_matrix(
double *collision_matrix, const Darray *fc3_normal_squared,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplets_map, const int64_t *map_q, const double *g,
const int64_t num_gp, const double temperature,
const int64_t num_gp, const double temperature_THz,
const double unit_conversion_factor, const double cutoff_frequency) {
int64_t num_triplets, num_band, num_band0;
@ -120,7 +120,7 @@ void col_get_reducible_collision_matrix(
get_reducible_collision_matrix(
collision_matrix, fc3_normal_squared->data, num_band0, num_band,
frequencies, triplets, triplets_map, num_gp, map_q,
g + 2 * num_triplets * num_band0 * num_band * num_band, temperature,
g + 2 * num_triplets * num_band0 * num_band * num_band, temperature_THz,
unit_conversion_factor, cutoff_frequency);
}
@ -131,7 +131,7 @@ static void get_collision_matrix(
const int64_t num_gp, const int64_t *map_q, const int64_t *rot_grid_points,
const int64_t num_ir_gp, const int64_t num_rot,
const double *rotations_cartesian, const double *g,
const double temperature, const double unit_conversion_factor,
const double temperature_THz, const double unit_conversion_factor,
const double cutoff_frequency) {
int64_t i;
int64_t *gp2tp_map;
@ -145,7 +145,7 @@ static void get_collision_matrix(
get_collision_matrix_at_gp(
collision_matrix, fc3_normal_squared, num_band0, num_band,
frequencies, triplets, triplets_map, map_q, rot_grid_points,
num_ir_gp, num_rot, rotations_cartesian, g, temperature,
num_ir_gp, num_rot, rotations_cartesian, g, temperature_THz,
unit_conversion_factor, cutoff_frequency, gp2tp_map, i);
}
@ -160,7 +160,7 @@ static void get_collision_matrix_at_gp(
const int64_t *map_q, const int64_t *rot_grid_points,
const int64_t num_ir_gp, const int64_t num_rot,
const double *rotations_cartesian, const double *g,
const double temperature, const double unit_conversion_factor,
const double temperature_THz, const double unit_conversion_factor,
const double cutoff_frequency, const int64_t *gp2tp_map, const int64_t i) {
int64_t j, k, l, m, n, ti, r_gp, swapped;
@ -171,9 +171,9 @@ static void get_collision_matrix_at_gp(
for (j = 0; j < num_rot; j++) {
r_gp = rot_grid_points[i * num_rot + j];
ti = gp2tp_map[triplets_map[r_gp]];
swapped =
get_inv_sinh(inv_sinh, r_gp, temperature, frequencies, triplets[ti],
triplets_map, map_q, num_band, cutoff_frequency);
swapped = get_inv_sinh(inv_sinh, r_gp, temperature_THz, frequencies,
triplets[ti], triplets_map, map_q, num_band,
cutoff_frequency);
for (k = 0; k < num_band0; k++) {
for (l = 0; l < num_band; l++) {
@ -219,7 +219,7 @@ static void get_reducible_collision_matrix(
const int64_t num_band0, const int64_t num_band, const double *frequencies,
const int64_t (*triplets)[3], const int64_t *triplets_map,
const int64_t num_gp, const int64_t *map_q, const double *g,
const double temperature, const double unit_conversion_factor,
const double temperature_THz, const double unit_conversion_factor,
const double cutoff_frequency) {
int64_t i;
int64_t *gp2tp_map;
@ -232,8 +232,9 @@ static void get_reducible_collision_matrix(
for (i = 0; i < num_gp; i++) {
get_reducible_collision_matrix_at_gp(
collision_matrix, fc3_normal_squared, num_band0, num_band,
frequencies, triplets, triplets_map, num_gp, map_q, g, temperature,
unit_conversion_factor, cutoff_frequency, gp2tp_map, i);
frequencies, triplets, triplets_map, num_gp, map_q, g,
temperature_THz, unit_conversion_factor, cutoff_frequency,
gp2tp_map, i);
}
free(gp2tp_map);
@ -245,7 +246,7 @@ static void get_reducible_collision_matrix_at_gp(
const int64_t num_band0, const int64_t num_band, const double *frequencies,
const int64_t (*triplets)[3], const int64_t *triplets_map,
const int64_t num_gp, const int64_t *map_q, const double *g,
const double temperature, const double unit_conversion_factor,
const double temperature_THz, const double unit_conversion_factor,
const double cutoff_frequency, const int64_t *gp2tp_map, const int64_t i) {
int64_t j, k, l, ti, swapped;
double collision;
@ -253,8 +254,9 @@ static void get_reducible_collision_matrix_at_gp(
inv_sinh = (double *)malloc(sizeof(double) * num_band);
ti = gp2tp_map[triplets_map[i]];
swapped = get_inv_sinh(inv_sinh, i, temperature, frequencies, triplets[ti],
triplets_map, map_q, num_band, cutoff_frequency);
swapped =
get_inv_sinh(inv_sinh, i, temperature_THz, frequencies, triplets[ti],
triplets_map, map_q, num_band, cutoff_frequency);
for (j = 0; j < num_band0; j++) {
for (k = 0; k < num_band; k++) {
@ -288,8 +290,8 @@ static void get_reducible_collision_matrix_at_gp(
}
static int64_t get_inv_sinh(double *inv_sinh, const int64_t gp,
const double temperature, const double *frequencies,
const int64_t triplet[3],
const double temperature_THz,
const double *frequencies, const int64_t triplet[3],
const int64_t *triplets_map, const int64_t *map_q,
const int64_t num_band,
const double cutoff_frequency) {
@ -310,7 +312,7 @@ static int64_t get_inv_sinh(double *inv_sinh, const int64_t gp,
for (i = 0; i < num_band; i++) {
f = frequencies[gp2 * num_band + i];
if (f > cutoff_frequency) {
inv_sinh[i] = funcs_inv_sinh_occupation(f, temperature);
inv_sinh[i] = funcs_inv_sinh_occupation(f, temperature_THz);
} else {
inv_sinh[i] = 0;
}

View File

@ -45,13 +45,13 @@ void col_get_collision_matrix(
const int64_t *triplets_map, const int64_t *map_q,
const int64_t *rot_grid_points, const double *rotations_cartesian,
const double *g, const int64_t num_ir_gp, const int64_t num_gp,
const int64_t num_rot, const double temperature,
const int64_t num_rot, const double temperature_THz,
const double unit_conversion_factor, const double cutoff_frequency);
void col_get_reducible_collision_matrix(
double *collision_matrix, const Darray *fc3_normal_squared,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplets_map, const int64_t *map_q, const double *g,
const int64_t num_gp, const double temperature,
const int64_t num_gp, const double temperature_THz,
const double unit_conversion_factor, const double cutoff_frequency);
#endif

View File

@ -38,17 +38,16 @@
#include "phonoc_const.h"
#define THZTOEVPARKB 47.992398658977166
#define INVSQRT2PI 0.3989422804014327
double funcs_bose_einstein(const double x, const double t) {
return 1.0 / (exp(THZTOEVPARKB * x / t) - 1);
double funcs_bose_einstein(const double x, const double temperature_THz) {
return 1.0 / (exp(x / temperature_THz) - 1);
}
double funcs_gaussian(const double x, const double sigma) {
return INVSQRT2PI / sigma * exp(-x * x / 2 / sigma / sigma);
}
double funcs_inv_sinh_occupation(const double x, const double t) {
return 1.0 / sinh(x * THZTOEVPARKB / 2 / t);
double funcs_inv_sinh_occupation(const double x, const double temperature_THz) {
return 1.0 / sinh(x / 2 / temperature_THz);
}

View File

@ -53,7 +53,7 @@ static void detailed_imag_self_energy_at_triplet(
const int64_t num_band0, const int64_t num_band,
const double *fc3_normal_squared, const double *frequencies,
const int64_t triplet[3], const double *g1, const double *g2_3,
const char *g_zero, const double *temperatures, const int64_t num_temps,
const char *g_zero, const double *temperatures_THz, const int64_t num_temps,
const double cutoff_frequency);
static double collect_detailed_imag_self_energy(
double *imag_self_energy, const int64_t num_band,
@ -72,11 +72,11 @@ void ise_get_imag_self_energy_with_g(
double *imag_self_energy, const Darray *fc3_normal_squared,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplet_weights, const double *g, const char *g_zero,
const double temperature, const double cutoff_frequency,
const double temperature_THz, const double cutoff_frequency,
const int64_t num_frequency_points, const int64_t frequency_point_index) {
int64_t i, j, num_triplets, num_band0, num_band, num_band_prod;
int64_t num_g_pos, g_index_dims, g_index_shift;
int64_t(*g_pos)[4];
int64_t (*g_pos)[4];
double *ise;
int64_t at_a_frequency_point;
@ -118,7 +118,7 @@ void ise_get_imag_self_energy_with_g(
* ise_set_g_pos works for frequency points as bands.
* set_g_pos_frequency_point works for frequency sampling mode.
*/
g_pos = (int64_t(*)[4])malloc(sizeof(int64_t[4]) * num_band_prod);
g_pos = (int64_t (*)[4])malloc(sizeof(int64_t[4]) * num_band_prod);
if (at_a_frequency_point) {
num_g_pos = set_g_pos_frequency_point(
g_pos, num_band0, num_band,
@ -134,7 +134,7 @@ void ise_get_imag_self_energy_with_g(
triplets[i], triplet_weights[i],
g + i * g_index_dims + g_index_shift,
g + (i + num_triplets) * g_index_dims + g_index_shift, g_pos,
num_g_pos, &temperature, 1, cutoff_frequency, 0,
num_g_pos, &temperature_THz, 1, cutoff_frequency, 0,
at_a_frequency_point);
free(g_pos);
@ -160,7 +160,7 @@ void ise_get_detailed_imag_self_energy_with_g(
double *imag_self_energy_U, const Darray *fc3_normal_squared,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplet_weights, const int64_t (*bz_grid_addresses)[3],
const double *g, const char *g_zero, const double temperature,
const double *g, const char *g_zero, const double temperature_THz,
const double cutoff_frequency) {
double *ise;
int64_t i, j, num_triplets, num_band0, num_band, num_band_prod;
@ -187,7 +187,7 @@ void ise_get_detailed_imag_self_energy_with_g(
num_band0, num_band, fc3_normal_squared->data + i * num_band_prod,
frequencies, triplets[i], g + i * num_band_prod,
g + (i + num_triplets) * num_band_prod, g_zero + i * num_band_prod,
&temperature, 1, cutoff_frequency);
&temperature_THz, 1, cutoff_frequency);
}
is_N = (int64_t *)malloc(sizeof(int64_t) * num_triplets);
@ -224,7 +224,7 @@ void ise_imag_self_energy_at_triplet(
const double *fc3_normal_squared, const double *frequencies,
const int64_t triplet[3], const int64_t triplet_weight, const double *g1,
const double *g2_3, const int64_t (*g_pos)[4], const int64_t num_g_pos,
const double *temperatures, const int64_t num_temps,
const double *temperatures_THz, const int64_t num_temps,
const double cutoff_frequency, const int64_t openmp_per_triplets,
const int64_t at_a_frequency_point) {
int64_t i, j;
@ -237,7 +237,7 @@ void ise_imag_self_energy_at_triplet(
for (i = 0; i < num_temps; i++) {
set_occupations(n1 + i * num_band, n2 + i * num_band, num_band,
temperatures[i], triplet, frequencies,
temperatures_THz[i], triplet, frequencies,
cutoff_frequency);
}
@ -259,7 +259,7 @@ void ise_imag_self_energy_at_triplet(
n2[j * num_band + g_pos[i][2]] < 0) {
ise_at_g_pos[i * num_temps + j] = 0;
} else {
if (temperatures[j] > 0) {
if (temperatures_THz[j] > 0) {
ise_at_g_pos[i * num_temps + j] =
((n1[j * num_band + g_pos[i][1]] +
n2[j * num_band + g_pos[i][2]] + 1) *
@ -359,7 +359,7 @@ static void detailed_imag_self_energy_at_triplet(
const int64_t num_band0, const int64_t num_band,
const double *fc3_normal_squared, const double *frequencies,
const int64_t triplet[3], const double *g1, const double *g2_3,
const char *g_zero, const double *temperatures, const int64_t num_temps,
const char *g_zero, const double *temperatures_THz, const int64_t num_temps,
const double cutoff_frequency) {
int64_t i, j, adrs_shift;
double *n1, *n2;
@ -371,12 +371,12 @@ static void detailed_imag_self_energy_at_triplet(
n2 = (double *)malloc(sizeof(double) * num_band);
for (i = 0; i < num_temps; i++) {
set_occupations(n1, n2, num_band, temperatures[i], triplet, frequencies,
cutoff_frequency);
set_occupations(n1, n2, num_band, temperatures_THz[i], triplet,
frequencies, cutoff_frequency);
for (j = 0; j < num_band0; j++) {
adrs_shift = j * num_band * num_band;
if (temperatures[i] > 0) {
if (temperatures_THz[i] > 0) {
imag_self_energy[i * num_band0 + j] =
collect_detailed_imag_self_energy(
detailed_imag_self_energy + adrs_shift, num_band,
@ -452,8 +452,8 @@ static double collect_detailed_imag_self_energy_0K(
}
static void set_occupations(double *n1, double *n2, const int64_t num_band,
const double temperature, const int64_t triplet[3],
const double *frequencies,
const double temperature_THz,
const int64_t triplet[3], const double *frequencies,
const double cutoff_frequency) {
int64_t j;
double f1, f2;
@ -462,12 +462,12 @@ static void set_occupations(double *n1, double *n2, const int64_t num_band,
f1 = frequencies[triplet[1] * num_band + j];
f2 = frequencies[triplet[2] * num_band + j];
if (f1 > cutoff_frequency) {
n1[j] = funcs_bose_einstein(f1, temperature);
n1[j] = funcs_bose_einstein(f1, temperature_THz);
} else {
n1[j] = -1;
}
if (f2 > cutoff_frequency) {
n2[j] = funcs_bose_einstein(f2, temperature);
n2[j] = funcs_bose_einstein(f2, temperature_THz);
} else {
n2[j] = -1;
}

View File

@ -44,21 +44,21 @@ void ise_get_imag_self_energy_with_g(
double *imag_self_energy, const Darray *fc3_normal_squared,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplet_weights, const double *g, const char *g_zero,
const double temperature, const double cutoff_frequency,
const double temperature_THz, const double cutoff_frequency,
const int64_t num_frequency_points, const int64_t frequency_point_index);
void ise_get_detailed_imag_self_energy_with_g(
double *detailed_imag_self_energy, double *imag_self_energy_N,
double *imag_self_energy_U, const Darray *fc3_normal_squared,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplet_weights, const int64_t (*bz_grid_addresses)[3],
const double *g, const char *g_zero, const double temperature,
const double *g, const char *g_zero, const double temperature_THz,
const double cutoff_frequency);
void ise_imag_self_energy_at_triplet(
double *imag_self_energy, const int64_t num_band0, const int64_t num_band,
const double *fc3_normal_squared, const double *frequencies,
const int64_t triplet[3], const int64_t triplet_weight, const double *g1,
const double *g2_3, const int64_t (*g_pos)[4], const int64_t num_g_pos,
const double *temperatures, const int64_t num_temps,
const double *temperatures_THz, const int64_t num_temps,
const double cutoff_frequency, const int64_t openmp_possible,
const int64_t at_a_frequency_point);
int64_t ise_set_g_pos(int64_t (*g_pos)[4], const int64_t num_band0,

View File

@ -130,10 +130,10 @@ int64_t ph3py_get_pp_collision(
const double *fc3, const int64_t is_compact_fc3, const double (*svecs)[3],
const int64_t multi_dims[2], const int64_t (*multiplicity)[2],
const double *masses, const int64_t *p2s_map, const int64_t *s2p_map,
const Larray *band_indices, const Darray *temperatures, const int64_t is_NU,
const int64_t symmetrize_fc3_q, const int64_t make_r0_average,
const char *all_shortest, const double cutoff_frequency,
const int64_t openmp_per_triplets) {
const Larray *band_indices, const Darray *temperatures_THz,
const int64_t is_NU, const int64_t symmetrize_fc3_q,
const int64_t make_r0_average, const char *all_shortest,
const double cutoff_frequency, const int64_t openmp_per_triplets) {
RecgridConstBZGrid *bzgrid;
AtomTriplets *atom_triplets;
int64_t i, j;
@ -174,7 +174,7 @@ int64_t ph3py_get_pp_collision(
(lapack_complex_double *)eigenvectors, triplets,
num_triplets, triplet_weights, bzgrid, fc3,
is_compact_fc3, atom_triplets, masses, band_indices,
temperatures, is_NU, symmetrize_fc3_q,
temperatures_THz, is_NU, symmetrize_fc3_q,
cutoff_frequency, openmp_per_triplets);
free(atom_triplets);
@ -195,10 +195,10 @@ int64_t ph3py_get_pp_collision_with_sigma(
const int64_t is_compact_fc3, const double (*svecs)[3],
const int64_t multi_dims[2], const int64_t (*multiplicity)[2],
const double *masses, const int64_t *p2s_map, const int64_t *s2p_map,
const Larray *band_indices, const Darray *temperatures, const int64_t is_NU,
const int64_t symmetrize_fc3_q, const int64_t make_r0_average,
const char *all_shortest, const double cutoff_frequency,
const int64_t openmp_per_triplets) {
const Larray *band_indices, const Darray *temperatures_THz,
const int64_t is_NU, const int64_t symmetrize_fc3_q,
const int64_t make_r0_average, const char *all_shortest,
const double cutoff_frequency, const int64_t openmp_per_triplets) {
RecgridConstBZGrid *bzgrid;
AtomTriplets *atom_triplets;
int64_t i, j;
@ -237,8 +237,8 @@ int64_t ph3py_get_pp_collision_with_sigma(
imag_self_energy, sigma, sigma_cutoff, frequencies,
(lapack_complex_double *)eigenvectors, triplets, num_triplets,
triplet_weights, bzgrid, fc3, is_compact_fc3, atom_triplets, masses,
band_indices, temperatures, is_NU, symmetrize_fc3_q, cutoff_frequency,
openmp_per_triplets);
band_indices, temperatures_THz, is_NU, symmetrize_fc3_q,
cutoff_frequency, openmp_per_triplets);
free(atom_triplets);
atom_triplets = NULL;
@ -253,11 +253,11 @@ void ph3py_get_imag_self_energy_at_bands_with_g(
double *imag_self_energy, const Darray *fc3_normal_squared,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplet_weights, const double *g, const char *g_zero,
const double temperature, const double cutoff_frequency,
const double temperature_THz, const double cutoff_frequency,
const int64_t num_frequency_points, const int64_t frequency_point_index) {
ise_get_imag_self_energy_with_g(
imag_self_energy, fc3_normal_squared, frequencies, triplets,
triplet_weights, g, g_zero, temperature, cutoff_frequency,
triplet_weights, g, g_zero, temperature_THz, cutoff_frequency,
num_frequency_points, frequency_point_index);
}
@ -266,23 +266,23 @@ void ph3py_get_detailed_imag_self_energy_at_bands_with_g(
double *imag_self_energy_U, const Darray *fc3_normal_squared,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplet_weights, const int64_t (*bz_grid_addresses)[3],
const double *g, const char *g_zero, const double temperature,
const double *g, const char *g_zero, const double temperature_THz,
const double cutoff_frequency) {
ise_get_detailed_imag_self_energy_with_g(
detailed_imag_self_energy, imag_self_energy_N, imag_self_energy_U,
fc3_normal_squared, frequencies, triplets, triplet_weights,
bz_grid_addresses, g, g_zero, temperature, cutoff_frequency);
bz_grid_addresses, g, g_zero, temperature_THz, cutoff_frequency);
}
void ph3py_get_real_self_energy_at_bands(
double *real_self_energy, const Darray *fc3_normal_squared,
const int64_t *band_indices, const double *frequencies,
const int64_t (*triplets)[3], const int64_t *triplet_weights,
const double epsilon, const double temperature,
const double epsilon, const double temperature_THz,
const double unit_conversion_factor, const double cutoff_frequency) {
rse_get_real_self_energy_at_bands(real_self_energy, fc3_normal_squared,
band_indices, frequencies, triplets,
triplet_weights, epsilon, temperature,
triplet_weights, epsilon, temperature_THz,
unit_conversion_factor, cutoff_frequency);
}
@ -291,11 +291,11 @@ void ph3py_get_real_self_energy_at_frequency_point(
const Darray *fc3_normal_squared, const int64_t *band_indices,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplet_weights, const double epsilon,
const double temperature, const double unit_conversion_factor,
const double temperature_THz, const double unit_conversion_factor,
const double cutoff_frequency) {
rse_get_real_self_energy_at_frequency_point(
real_self_energy, frequency_point, fc3_normal_squared, band_indices,
frequencies, triplets, triplet_weights, epsilon, temperature,
frequencies, triplets, triplet_weights, epsilon, temperature_THz,
unit_conversion_factor, cutoff_frequency);
}
@ -305,12 +305,12 @@ void ph3py_get_collision_matrix(
const int64_t *triplets_map, const int64_t *map_q,
const int64_t *rotated_grid_points, const double *rotations_cartesian,
const double *g, const int64_t num_ir_gp, const int64_t num_gp,
const int64_t num_rot, const double temperature,
const int64_t num_rot, const double temperature_THz,
const double unit_conversion_factor, const double cutoff_frequency) {
col_get_collision_matrix(collision_matrix, fc3_normal_squared, frequencies,
triplets, triplets_map, map_q, rotated_grid_points,
rotations_cartesian, g, num_ir_gp, num_gp, num_rot,
temperature, unit_conversion_factor,
temperature_THz, unit_conversion_factor,
cutoff_frequency);
}
@ -318,11 +318,11 @@ void ph3py_get_reducible_collision_matrix(
double *collision_matrix, const Darray *fc3_normal_squared,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplets_map, const int64_t *map_q, const double *g,
const int64_t num_gp, const double temperature,
const int64_t num_gp, const double temperature_THz,
const double unit_conversion_factor, const double cutoff_frequency) {
col_get_reducible_collision_matrix(
collision_matrix, fc3_normal_squared, frequencies, triplets,
triplets_map, map_q, g, num_gp, temperature, unit_conversion_factor,
triplets_map, map_q, g, num_gp, temperature_THz, unit_conversion_factor,
cutoff_frequency);
}

View File

@ -71,10 +71,10 @@ int64_t ph3py_get_pp_collision(
const double *fc3, const int64_t is_compact_fc3, const double (*svecs)[3],
const int64_t multi_dims[2], const int64_t (*multi)[2],
const double *masses, const int64_t *p2s_map, const int64_t *s2p_map,
const Larray *band_indices, const Darray *temperatures, const int64_t is_NU,
const int64_t symmetrize_fc3_q, const int64_t make_r0_average,
const char *all_shortest, const double cutoff_frequency,
const int64_t openmp_per_triplets);
const Larray *band_indices, const Darray *temperatures_THz,
const int64_t is_NU, const int64_t symmetrize_fc3_q,
const int64_t make_r0_average, const char *all_shortest,
const double cutoff_frequency, const int64_t openmp_per_triplets);
int64_t ph3py_get_pp_collision_with_sigma(
double *imag_self_energy, const double sigma, const double sigma_cutoff,
const double *frequencies, const _lapack_complex_double *eigenvectors,
@ -84,35 +84,35 @@ int64_t ph3py_get_pp_collision_with_sigma(
const int64_t is_compact_fc3, const double (*svecs)[3],
const int64_t multi_dims[2], const int64_t (*multi)[2],
const double *masses, const int64_t *p2s_map, const int64_t *s2p_map,
const Larray *band_indices, const Darray *temperatures, const int64_t is_NU,
const int64_t symmetrize_fc3_q, const int64_t make_r0_average,
const char *all_shortest, const double cutoff_frequency,
const int64_t openmp_per_triplets);
const Larray *band_indices, const Darray *temperatures_THz,
const int64_t is_NU, const int64_t symmetrize_fc3_q,
const int64_t make_r0_average, const char *all_shortest,
const double cutoff_frequency, const int64_t openmp_per_triplets);
void ph3py_get_imag_self_energy_at_bands_with_g(
double *imag_self_energy, const Darray *fc3_normal_squared,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplet_weights, const double *g, const char *g_zero,
const double temperature, const double cutoff_frequency,
const double temperature_THz, const double cutoff_frequency,
const int64_t num_frequency_points, const int64_t frequency_point_index);
void ph3py_get_detailed_imag_self_energy_at_bands_with_g(
double *detailed_imag_self_energy, double *imag_self_energy_N,
double *imag_self_energy_U, const Darray *fc3_normal_squared,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplet_weights, const int64_t (*bz_grid_addresses)[3],
const double *g, const char *g_zero, const double temperature,
const double *g, const char *g_zero, const double temperature_THz,
const double cutoff_frequency);
void ph3py_get_real_self_energy_at_bands(
double *real_self_energy, const Darray *fc3_normal_squared,
const int64_t *band_indices, const double *frequencies,
const int64_t (*triplets)[3], const int64_t *triplet_weights,
const double epsilon, const double temperature,
const double epsilon, const double temperature_THz,
const double unit_conversion_factor, const double cutoff_frequency);
void ph3py_get_real_self_energy_at_frequency_point(
double *real_self_energy, const double frequency_point,
const Darray *fc3_normal_squared, const int64_t *band_indices,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplet_weights, const double epsilon,
const double temperature, const double unit_conversion_factor,
const double temperature_THz, const double unit_conversion_factor,
const double cutoff_frequency);
void ph3py_get_collision_matrix(
double *collision_matrix, const Darray *fc3_normal_squared,
@ -120,13 +120,13 @@ void ph3py_get_collision_matrix(
const int64_t *triplets_map, const int64_t *map_q,
const int64_t *rotated_grid_points, const double *rotations_cartesian,
const double *g, const int64_t num_ir_gp, const int64_t num_gp,
const int64_t num_rot, const double temperature,
const int64_t num_rot, const double temperature_THz,
const double unit_conversion_factor, const double cutoff_frequency);
void ph3py_get_reducible_collision_matrix(
double *collision_matrix, const Darray *fc3_normal_squared,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplets_map, const int64_t *map_q, const double *g,
const int64_t num_gp, const double temperature,
const int64_t num_gp, const double temperature_THz,
const double unit_conversion_factor, const double cutoff_frequency);
void ph3py_get_isotope_scattering_strength(
double *gamma, const int64_t grid_point, const int64_t *ir_grid_points,

View File

@ -50,7 +50,7 @@
static void get_collision(
double *ise, const int64_t num_band0, const int64_t num_band,
const int64_t num_temps, const double *temperatures, const double *g,
const int64_t num_temps, const double *temperatures_THz, const double *g,
const char *g_zero, const double *frequencies,
const lapack_complex_double *eigenvectors, const int64_t triplet[3],
const int64_t triplet_weight, const RecgridConstBZGrid *bzgrid,
@ -72,9 +72,9 @@ void ppc_get_pp_collision(
const int64_t *triplet_weights, const RecgridConstBZGrid *bzgrid,
const double *fc3, const int64_t is_compact_fc3,
const AtomTriplets *atom_triplets, const double *masses,
const Larray *band_indices, const Darray *temperatures, const int64_t is_NU,
const int64_t symmetrize_fc3_q, const double cutoff_frequency,
const int64_t openmp_per_triplets) {
const Larray *band_indices, const Darray *temperatures_THz,
const int64_t is_NU, const int64_t symmetrize_fc3_q,
const double cutoff_frequency, const int64_t openmp_per_triplets) {
int64_t i;
int64_t num_band, num_band0, num_band_prod, num_temps;
double *ise, *freqs_at_gp, *g;
@ -89,7 +89,7 @@ void ppc_get_pp_collision(
num_band0 = band_indices->dims[0];
num_band = atom_triplets->multi_dims[1] * 3;
num_band_prod = num_band0 * num_band * num_band;
num_temps = temperatures->dims[0];
num_temps = temperatures_THz->dims[0];
ise =
(double *)malloc(sizeof(double) * num_triplets * num_temps * num_band0);
freqs_at_gp = (double *)malloc(sizeof(double) * num_band0);
@ -101,8 +101,8 @@ void ppc_get_pp_collision(
tpl_set_relative_grid_address(tp_relative_grid_address,
relative_grid_address, 2);
#ifdef _OPENMP
#pragma omp parallel for schedule(guided) private( \
g, g_zero) if (openmp_per_triplets)
#pragma omp parallel for schedule(guided) \
private(g, g_zero) if (openmp_per_triplets)
#endif
for (i = 0; i < num_triplets; i++) {
g = (double *)malloc(sizeof(double) * 2 * num_band_prod);
@ -115,7 +115,7 @@ void ppc_get_pp_collision(
num_band, 2, openmp_per_triplets);
get_collision(ise + i * num_temps * num_band0, num_band0, num_band,
num_temps, temperatures->data, g, g_zero, frequencies,
num_temps, temperatures_THz->data, g, g_zero, frequencies,
eigenvectors, triplets[i], triplet_weights[i], bzgrid,
fc3, is_compact_fc3, atom_triplets, masses,
band_indices->data, symmetrize_fc3_q, cutoff_frequency,
@ -143,9 +143,9 @@ void ppc_get_pp_collision_with_sigma(
const int64_t *triplet_weights, const RecgridConstBZGrid *bzgrid,
const double *fc3, const int64_t is_compact_fc3,
const AtomTriplets *atom_triplets, const double *masses,
const Larray *band_indices, const Darray *temperatures, const int64_t is_NU,
const int64_t symmetrize_fc3_q, const double cutoff_frequency,
const int64_t openmp_per_triplets) {
const Larray *band_indices, const Darray *temperatures_THz,
const int64_t is_NU, const int64_t symmetrize_fc3_q,
const double cutoff_frequency, const int64_t openmp_per_triplets) {
int64_t i;
int64_t num_band, num_band0, num_band_prod, num_temps;
int64_t const_adrs_shift;
@ -161,7 +161,7 @@ void ppc_get_pp_collision_with_sigma(
num_band0 = band_indices->dims[0];
num_band = atom_triplets->multi_dims[1] * 3;
num_band_prod = num_band0 * num_band * num_band;
num_temps = temperatures->dims[0];
num_temps = temperatures_THz->dims[0];
const_adrs_shift = num_band_prod;
ise =
@ -175,8 +175,8 @@ void ppc_get_pp_collision_with_sigma(
cutoff = sigma * sigma_cutoff;
#ifdef _OPENMP
#pragma omp parallel for schedule(guided) private( \
g, g_zero) if (openmp_per_triplets)
#pragma omp parallel for schedule(guided) \
private(g, g_zero) if (openmp_per_triplets)
#endif
for (i = 0; i < num_triplets; i++) {
g = (double *)malloc(sizeof(double) * 2 * num_band_prod);
@ -186,7 +186,7 @@ void ppc_get_pp_collision_with_sigma(
const_adrs_shift, frequencies, num_band, 2, 1);
get_collision(ise + i * num_temps * num_band0, num_band0, num_band,
num_temps, temperatures->data, g, g_zero, frequencies,
num_temps, temperatures_THz->data, g, g_zero, frequencies,
eigenvectors, triplets[i], triplet_weights[i], bzgrid,
fc3, is_compact_fc3, atom_triplets, masses,
band_indices->data, symmetrize_fc3_q, cutoff_frequency,
@ -209,7 +209,7 @@ void ppc_get_pp_collision_with_sigma(
static void get_collision(
double *ise, const int64_t num_band0, const int64_t num_band,
const int64_t num_temps, const double *temperatures, const double *g,
const int64_t num_temps, const double *temperatures_THz, const double *g,
const char *g_zero, const double *frequencies,
const lapack_complex_double *eigenvectors, const int64_t triplet[3],
const int64_t triplet_weight, const RecgridConstBZGrid *bzgrid,
@ -220,14 +220,14 @@ static void get_collision(
int64_t i;
int64_t num_band_prod, num_g_pos;
double *fc3_normal_squared;
int64_t(*g_pos)[4];
int64_t (*g_pos)[4];
fc3_normal_squared = NULL;
g_pos = NULL;
num_band_prod = num_band0 * num_band * num_band;
fc3_normal_squared = (double *)malloc(sizeof(double) * num_band_prod);
g_pos = (int64_t(*)[4])malloc(sizeof(int64_t[4]) * num_band_prod);
g_pos = (int64_t (*)[4])malloc(sizeof(int64_t[4]) * num_band_prod);
for (i = 0; i < num_band_prod; i++) {
fc3_normal_squared[i] = 0;
@ -243,8 +243,8 @@ static void get_collision(
ise_imag_self_energy_at_triplet(
ise, num_band0, num_band, fc3_normal_squared, frequencies, triplet,
triplet_weight, g, g + num_band_prod, g_pos, num_g_pos, temperatures,
num_temps, cutoff_frequency, openmp_per_triplets, 0);
triplet_weight, g, g + num_band_prod, g_pos, num_g_pos,
temperatures_THz, num_temps, cutoff_frequency, openmp_per_triplets, 0);
free(fc3_normal_squared);
fc3_normal_squared = NULL;

View File

@ -50,9 +50,9 @@ void ppc_get_pp_collision(
const int64_t *triplet_weights, const RecgridConstBZGrid *bzgrid,
const double *fc3, const int64_t is_compact_fc3,
const AtomTriplets *atom_triplets, const double *masses,
const Larray *band_indices, const Darray *temperatures, const int64_t is_NU,
const int64_t symmetrize_fc3_q, const double cutoff_frequency,
const int64_t openmp_per_triplets);
const Larray *band_indices, const Darray *temperatures_THz,
const int64_t is_NU, const int64_t symmetrize_fc3_q,
const double cutoff_frequency, const int64_t openmp_per_triplets);
void ppc_get_pp_collision_with_sigma(
double *imag_self_energy, const double sigma, const double sigma_cutoff,
const double *frequencies, const lapack_complex_double *eigenvectors,
@ -60,8 +60,8 @@ void ppc_get_pp_collision_with_sigma(
const int64_t *triplet_weights, const RecgridConstBZGrid *bzgrid,
const double *fc3, const int64_t is_compact_fc3,
const AtomTriplets *atom_triplets, const double *masses,
const Larray *band_indices, const Darray *temperatures, const int64_t is_NU,
const int64_t symmetrize_fc3_q, const double cutoff_frequency,
const int64_t openmp_per_triplets);
const Larray *band_indices, const Darray *temperatures_THz,
const int64_t is_NU, const int64_t symmetrize_fc3_q,
const double cutoff_frequency, const int64_t openmp_per_triplets);
#endif

View File

@ -46,12 +46,12 @@ static double get_real_self_energy_at_band(
const int64_t band_index, const Darray *fc3_normal_squared,
const double fpoint, const double *frequencies,
const int64_t (*triplets)[3], const int64_t *triplet_weights,
const double epsilon, const double temperature,
const double epsilon, const double temperature_THz,
const double unit_conversion_factor, const double cutoff_frequency);
static double sum_real_self_energy_at_band(
const int64_t num_band, const double *fc3_normal_squared,
const double fpoint, const double *freqs1, const double *freqs2,
const double epsilon, const double temperature,
const double epsilon, const double temperature_THz,
const double cutoff_frequency);
static double sum_real_self_energy_at_band_0K(
const int64_t num_band, const double *fc3_normal_squared,
@ -62,7 +62,7 @@ void rse_get_real_self_energy_at_bands(
double *real_self_energy, const Darray *fc3_normal_squared,
const int64_t *band_indices, const double *frequencies,
const int64_t (*triplets)[3], const int64_t *triplet_weights,
const double epsilon, const double temperature,
const double epsilon, const double temperature_THz,
const double unit_conversion_factor, const double cutoff_frequency) {
int64_t i, num_band0, num_band, gp0;
double fpoint;
@ -79,8 +79,8 @@ void rse_get_real_self_energy_at_bands(
} else {
real_self_energy[i] = get_real_self_energy_at_band(
i, fc3_normal_squared, fpoint, frequencies, triplets,
triplet_weights, epsilon, temperature, unit_conversion_factor,
cutoff_frequency);
triplet_weights, epsilon, temperature_THz,
unit_conversion_factor, cutoff_frequency);
}
}
}
@ -90,7 +90,7 @@ void rse_get_real_self_energy_at_frequency_point(
const Darray *fc3_normal_squared, const int64_t *band_indices,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplet_weights, const double epsilon,
const double temperature, const double unit_conversion_factor,
const double temperature_THz, const double unit_conversion_factor,
const double cutoff_frequency) {
int64_t i, num_band0;
@ -103,8 +103,8 @@ void rse_get_real_self_energy_at_frequency_point(
} else {
real_self_energy[i] = get_real_self_energy_at_band(
i, fc3_normal_squared, frequency_point, frequencies, triplets,
triplet_weights, epsilon, temperature, unit_conversion_factor,
cutoff_frequency);
triplet_weights, epsilon, temperature_THz,
unit_conversion_factor, cutoff_frequency);
}
}
}
@ -113,7 +113,7 @@ static double get_real_self_energy_at_band(
const int64_t band_index, const Darray *fc3_normal_squared,
const double fpoint, const double *frequencies,
const int64_t (*triplets)[3], const int64_t *triplet_weights,
const double epsilon, const double temperature,
const double epsilon, const double temperature_THz,
const double unit_conversion_factor, const double cutoff_frequency) {
int64_t i, num_triplets, num_band0, num_band, gp1, gp2;
double shift;
@ -129,14 +129,14 @@ static double get_real_self_energy_at_band(
for (i = 0; i < num_triplets; i++) {
gp1 = triplets[i][1];
gp2 = triplets[i][2];
if (temperature > 0) {
if (temperature_THz > 0) {
shift += sum_real_self_energy_at_band(
num_band,
fc3_normal_squared->data +
i * num_band0 * num_band * num_band +
band_index * num_band * num_band,
fpoint, frequencies + gp1 * num_band,
frequencies + gp2 * num_band, epsilon, temperature,
frequencies + gp2 * num_band, epsilon, temperature_THz,
cutoff_frequency) *
triplet_weights[i] * unit_conversion_factor;
} else {
@ -157,7 +157,7 @@ static double get_real_self_energy_at_band(
static double sum_real_self_energy_at_band(
const int64_t num_band, const double *fc3_normal_squared,
const double fpoint, const double *freqs1, const double *freqs2,
const double epsilon, const double temperature,
const double epsilon, const double temperature_THz,
const double cutoff_frequency) {
int64_t i, j;
double n1, n2, f1, f2, f3, f4, shift;
@ -166,10 +166,10 @@ static double sum_real_self_energy_at_band(
shift = 0;
for (i = 0; i < num_band; i++) {
if (freqs1[i] > cutoff_frequency) {
n1 = funcs_bose_einstein(freqs1[i], temperature);
n1 = funcs_bose_einstein(freqs1[i], temperature_THz);
for (j = 0; j < num_band; j++) {
if (freqs2[j] > cutoff_frequency) {
n2 = funcs_bose_einstein(freqs2[j], temperature);
n2 = funcs_bose_einstein(freqs2[j], temperature_THz);
f1 = fpoint + freqs1[i] + freqs2[j];
f2 = fpoint - freqs1[i] - freqs2[j];
f3 = fpoint - freqs1[i] + freqs2[j];

View File

@ -45,12 +45,12 @@ void rse_get_real_self_energy_at_bands(
double *real_self_energy, const Darray *fc3_normal_squared,
const int64_t *band_indices, const double *frequencies,
const int64_t (*triplets)[3], const int64_t *triplet_weights,
const double epsilon, const double temperature,
const double epsilon, const double temperature_THz,
const double unit_conversion_factor, const double cutoff_frequency);
void rse_get_real_self_energy_at_frequency_point(
double *real_self_energy, const double frequency_point,
const Darray *fc3_normal_squared, const int64_t *band_indices,
const double *frequencies, const int64_t (*triplets)[3],
const int64_t *triplet_weights, const double epsilon,
const double temperature, const double unit_conversion_factor,
const double temperature_THz, const double unit_conversion_factor,
const double cutoff_frequency);

View File

@ -88,7 +88,7 @@ class Phono3pyJointDos:
self._sigmas = sigmas
self._cutoff_frequency = cutoff_frequency
if frequency_factor_to_THz is None:
self._frequency_factor_to_THz = get_physical_units().defaultToTHz
self._frequency_factor_to_THz = get_physical_units().DefaultToTHz
else:
self._frequency_factor_to_THz = frequency_factor_to_THz
self._frequency_scale_factor = frequency_scale_factor

View File

@ -219,7 +219,7 @@ class Phono3py:
"""
self._symprec = symprec
if frequency_factor_to_THz is None:
self._frequency_factor_to_THz = get_physical_units().defaultToTHz
self._frequency_factor_to_THz = get_physical_units().DefaultToTHz
else:
self._frequency_factor_to_THz = frequency_factor_to_THz
self._is_symmetry = is_symmetry

View File

@ -115,7 +115,7 @@ class HeatCapacityMixIn:
# Otherwise just set 0.
for i, f in enumerate(freqs):
if f > cutoff:
condition = f < 100 * self._temperatures * get_physical_units().Kb
condition = f < 100 * self._temperatures * get_physical_units().KB
cv[:, i] = np.where(
condition,
mode_cv(np.where(condition, self._temperatures, 10000), f),

View File

@ -792,7 +792,7 @@ class ConductivityLBTEBase(ConductivityBase):
sinh = np.where(
freqs > self._pp.cutoff_frequency,
np.sinh(
freqs * get_physical_units().THzToEv / (2 * get_physical_units().Kb * t)
freqs * get_physical_units().THzToEv / (2 * get_physical_units().KB * t)
),
-1.0,
)
@ -801,7 +801,7 @@ class ConductivityLBTEBase(ConductivityBase):
freqs
* get_physical_units().THzToEv
* inv_sinh
/ (4 * get_physical_units().Kb * t**2)
/ (4 * get_physical_units().KB * t**2)
)
for i, f in enumerate(freqs_sinh):
@ -1088,7 +1088,7 @@ class ConductivityLBTEBase(ConductivityBase):
t = self._temperatures[i_temp]
mode_kappa[i_sigma, i_temp] *= (
self._conversion_factor * get_physical_units().Kb * t**2
self._conversion_factor * get_physical_units().KB * t**2
)
def _set_mode_kappa_Chaput(self, mode_kappa, i_sigma, i_temp, weights):
@ -1133,7 +1133,7 @@ class ConductivityLBTEBase(ConductivityBase):
vals = vals.reshape(num_ir_grid_points, num_band)
mode_kappa[i_sigma, i_temp, :, :, i] += vals
factor = self._conversion_factor * get_physical_units().Kb * t**2
factor = self._conversion_factor * get_physical_units().KB * t**2
mode_kappa[i_sigma, i_temp] *= factor
def _set_mode_kappa_from_mfp(self, weights, rotations_cartesian, i_sigma, i_temp):
@ -1160,7 +1160,7 @@ class ConductivityLBTEBase(ConductivityBase):
if cv < 1e-10:
continue
self._mfp[i_sigma, i_temp, i, j] = (
-2 * t * np.sqrt(get_physical_units().Kb / cv) * f / (2 * np.pi)
-2 * t * np.sqrt(get_physical_units().KB / cv) * f / (2 * np.pi)
)
def _show_log(self, i):

View File

@ -75,7 +75,7 @@ class ConductivityKuboMixIn:
cutoff = self._pp.cutoff_frequency * get_physical_units().THzToEv
for i_temp, temp in enumerate(self._temperatures):
if (freqs / (temp * get_physical_units().Kb) > 100).any():
if (freqs / (temp * get_physical_units().KB) > 100).any():
continue
cvm = mode_cv_matrix(temp, freqs, cutoff=cutoff)
self._cv_mat[i_temp, i_data] = cvm[self._pp.band_indices, :]

View File

@ -38,6 +38,7 @@ import warnings
from abc import abstractmethod
import numpy as np
from phonopy.physical_units import get_physical_units
from phono3py.conductivity.base import ConductivityBase
from phono3py.file_IO import read_pp_from_hdf5
@ -328,6 +329,10 @@ class ConductivityRTABase(ConductivityBase):
)
# It is assumed that self._sigmas = [None].
temperatures_THz = np.array(
self._temperatures * get_physical_units().KB / get_physical_units().THzToEv,
dtype="double",
)
for j, sigma in enumerate(self._sigmas):
self._collision.set_sigma(sigma)
if self._is_N_U:
@ -378,7 +383,7 @@ class ConductivityRTABase(ConductivityBase):
p2s,
s2p,
band_indices,
self._temperatures,
temperatures_THz,
self._is_N_U * 1,
self._pp.symmetrize_fc3q * 1,
self._pp.make_r0_average * 1,
@ -409,7 +414,7 @@ class ConductivityRTABase(ConductivityBase):
p2s,
s2p,
band_indices,
self._temperatures,
temperatures_THz,
self._is_N_U * 1,
self._pp.symmetrize_fc3q * 1,
self._pp.make_r0_average * 1,

View File

@ -315,7 +315,7 @@ def load(
cell.cell = cell.cell * factor_to_A
if factor is None:
_factor = get_physical_units().defaultToTHz
_factor = get_physical_units().DefaultToTHz
else:
_factor = factor
ph3py = Phono3py(

View File

@ -390,7 +390,7 @@ def get_default_values(settings):
temperatures = settings.temperatures # For others
if settings.frequency_conversion_factor is None:
frequency_factor_to_THz = get_physical_units().defaultToTHz
frequency_factor_to_THz = get_physical_units().DefaultToTHz
else:
frequency_factor_to_THz = settings.frequency_conversion_factor
@ -730,7 +730,7 @@ def run_gruneisen_then_exit(phono3py, settings, output_filename, log_level):
nac_params=phono3py.nac_params,
nac_q_direction=settings.nac_q_direction,
ion_clamped=settings.ion_clamped,
factor=get_physical_units().defaultToTHz,
factor=get_physical_units().DefaultToTHz,
symprec=phono3py.symmetry.tolerance,
output_filename=output_filename,
log_level=log_level,

View File

@ -123,7 +123,7 @@ class Isotope:
else:
self._cutoff_frequency = cutoff_frequency
if frequency_factor_to_THz is None:
self._frequency_factor_to_THz = get_physical_units().defaultToTHz
self._frequency_factor_to_THz = get_physical_units().DefaultToTHz
else:
self._frequency_factor_to_THz = frequency_factor_to_THz
self._lapack_zheev_uplo = lapack_zheev_uplo

View File

@ -63,7 +63,7 @@ def bose_einstein(x, T):
"""
return 1.0 / (
np.exp(get_physical_units().THzToEv * x / (get_physical_units().Kb * T)) - 1
np.exp(get_physical_units().THzToEv * x / (get_physical_units().KB * T)) - 1
)

View File

@ -67,8 +67,8 @@ def mode_cv_matrix(temp, freqs, cutoff=1e-4):
shape=(num_band, num_band), dtype='double', order='C'.
"""
Kb = get_physical_units().Kb
x = freqs / Kb / temp
KB = get_physical_units().KB
x = freqs / KB / temp
shape = (len(freqs), len(freqs))
cvm = np.zeros(shape, dtype="double", order="C")
for i, j in np.ndindex(shape):
@ -78,5 +78,5 @@ def mode_cv_matrix(temp, freqs, cutoff=1e-4):
sub = x[i] - x[j]
add = x[i] + x[j]
n_inv = np.exp([x[i], x[j], sub]) - 1
cvm[i, j] = Kb * n_inv[2] / sub * (add / 2) ** 2 / n_inv[0] * (1 / n_inv[1] + 1)
cvm[i, j] = KB * n_inv[2] / sub * (add / 2) ** 2 / n_inv[0] * (1 / n_inv[1] + 1)
return cvm

View File

@ -85,7 +85,7 @@ def run_phonon_solver_c(
import phono3py._phononcalc as phononcalc
if frequency_conversion_factor is None:
_frequency_conversion_factor = get_physical_units().defaultToTHz
_frequency_conversion_factor = get_physical_units().DefaultToTHz
else:
_frequency_conversion_factor = frequency_conversion_factor

View File

@ -76,7 +76,7 @@ class VelocityOperator(GroupVelocity):
self._q_length = 5e-6
self._symmetry = symmetry
if frequency_factor_to_THz is None:
self._factor = get_physical_units().defaultToTHz
self._factor = get_physical_units().DefaultToTHz
else:
self._factor = frequency_factor_to_THz
self._cutoff_frequency = cutoff_frequency

View File

@ -164,7 +164,7 @@ class CollisionMatrix(ImagSelfEnergy):
self._ir_map_at_q,
self._rot_grid_points, # in GRGrid
self._rotations_cartesian,
self._temperature,
self._temperature * get_physical_units().KB / get_physical_units().THzToEv,
self._unit_conversion,
self._cutoff_frequency,
)
@ -180,7 +180,7 @@ class CollisionMatrix(ImagSelfEnergy):
self._triplets_at_q,
self._triplets_map_at_q,
self._ir_map_at_q,
self._temperature,
self._temperature * get_physical_units().KB / get_physical_units().THzToEv,
self._unit_conversion,
self._cutoff_frequency,
)
@ -314,7 +314,7 @@ class CollisionMatrix(ImagSelfEnergy):
np.sinh(
freqs
* get_physical_units().THzToEv
/ (2 * get_physical_units().Kb * self._temperature)
/ (2 * get_physical_units().KB * self._temperature)
),
-1.0,
)

View File

@ -143,7 +143,7 @@ class Gruneisen:
self._pcell = primitive
self._ion_clamped = ion_clamped
if factor is None:
self._factor = get_physical_units().defaultToTHz
self._factor = get_physical_units().DefaultToTHz
else:
self._factor = factor
self._symprec = symprec

View File

@ -292,7 +292,7 @@ class ImagSelfEnergy:
self._temperature = float(temperature)
def set_temperature(self, temperature):
"""Set temperatures where calculation will be performed."""
"""Set temperature where calculation will be performed."""
warnings.warn(
"Use attribute, ImagSelfEnergy.temperature "
"instead of ImagSelfEnergy.set_temperature().",
@ -391,7 +391,7 @@ class ImagSelfEnergy:
self._triplets_at_q,
self._weights_at_q,
self._frequencies,
self._temperature,
self._temperature * get_physical_units().KB / get_physical_units().THzToEv,
self._g,
_g_zero,
self._cutoff_frequency,
@ -416,7 +416,7 @@ class ImagSelfEnergy:
self._weights_at_q,
self._pp.bz_grid.addresses,
self._frequencies,
self._temperature,
self._temperature * get_physical_units().KB / get_physical_units().THzToEv,
self._g,
_g_zero,
self._cutoff_frequency,
@ -440,7 +440,9 @@ class ImagSelfEnergy:
self._triplets_at_q,
self._weights_at_q,
self._frequencies,
self._temperature,
self._temperature
* get_physical_units().KB
/ get_physical_units().THzToEv,
self._g,
self._g_zero,
self._cutoff_frequency,
@ -475,7 +477,9 @@ class ImagSelfEnergy:
self._weights_at_q,
self._pp.bz_grid.addresses,
self._frequencies,
self._temperature,
self._temperature
* get_physical_units().KB
/ get_physical_units().THzToEv,
g,
_g_zero,
self._cutoff_frequency,

View File

@ -116,7 +116,7 @@ class Interaction:
self._set_band_indices(band_indices)
self._constant_averaged_interaction = constant_averaged_interaction
if frequency_factor_to_THz is None:
self._frequency_factor_to_THz = get_physical_units().defaultToTHz
self._frequency_factor_to_THz = get_physical_units().DefaultToTHz
else:
self._frequency_factor_to_THz = frequency_factor_to_THz
self._frequency_scale_factor = frequency_scale_factor

View File

@ -91,7 +91,7 @@ class JointDos:
else:
self._cutoff_frequency = cutoff_frequency
if frequency_factor_to_THz is None:
self._frequency_factor_to_THz = get_physical_units().defaultToTHz
self._frequency_factor_to_THz = get_physical_units().DefaultToTHz
else:
self._frequency_factor_to_THz = frequency_factor_to_THz
self._frequency_scale_factor = frequency_scale_factor
@ -391,7 +391,9 @@ class JointDos:
self._triplets_at_q,
self._weights_at_q,
self._frequencies,
self._temperature,
self._temperature
* get_physical_units().KB
/ get_physical_units().THzToEv,
g,
self._g_zero,
self._cutoff_frequency,

View File

@ -245,7 +245,7 @@ class RealSelfEnergy:
self._weights_at_q,
self._frequencies,
self._band_indices,
self._temperature,
self._temperature * get_physical_units().KB / get_physical_units().THzToEv,
self._epsilon,
self._unit_conversion,
self._cutoff_frequency,
@ -282,7 +282,9 @@ class RealSelfEnergy:
self._weights_at_q,
self._frequencies,
self._band_indices,
self._temperature,
self._temperature
* get_physical_units().KB
/ get_physical_units().THzToEv,
self._epsilon,
self._unit_conversion,
self._cutoff_frequency,

View File

@ -125,7 +125,7 @@ class SupercellPhonon:
eigvals, eigvecs = np.linalg.eigh(dynmat)
freqs = np.sqrt(np.abs(eigvals)) * np.sign(eigvals)
if frequency_factor_to_THz is None:
freqs *= get_physical_units().defaultToTHz
freqs *= get_physical_units().DefaultToTHz
else:
freqs *= frequency_factor_to_THz
self._eigenvalues = np.array(eigvals, dtype="double", order="C")

View File

@ -194,7 +194,7 @@ def test_gv_operator_nacl(ph_nacl: Phonopy):
eigvals, eigvecs = np.linalg.eigh(dm)
np.testing.assert_allclose(
eigvals * get_physical_units().defaultToTHz * get_physical_units().THzToCm,
eigvals * get_physical_units().DefaultToTHz * get_physical_units().THzToCm,
eigvals_NaCl_Ref,
atol=0.00001,
rtol=0.00001,
@ -406,7 +406,7 @@ def test_gv_operator_si(ph_si: Phonopy):
eigvals, eigvecs = np.linalg.eigh(dm)
np.testing.assert_allclose(
eigvals * get_physical_units().defaultToTHz * get_physical_units().THzToCm,
eigvals * get_physical_units().DefaultToTHz * get_physical_units().THzToCm,
eigvals_si_Ref,
atol=0.00001,
rtol=0.00001,