mirror of https://github.com/phonopy/phonopy.git
Return complex fc3_sum instead of fc3_sum squared. This is for implementing frequency shift of instantaneous phonon.
This commit is contained in:
parent
07749dc45d
commit
120d7abc82
|
@ -4,16 +4,8 @@
|
|||
#include "phonoc_math.h"
|
||||
#include "phonon3_h/reciprocal_to_normal.h"
|
||||
|
||||
static double fc3_sum_squared(const int bi0,
|
||||
const int bi1,
|
||||
const int bi2,
|
||||
const lapack_complex_double *eigvecs0,
|
||||
const lapack_complex_double *eigvecs1,
|
||||
const lapack_complex_double *eigvecs2,
|
||||
const lapack_complex_double *fc3_reciprocal,
|
||||
const double *masses,
|
||||
const int num_atom);
|
||||
void reciprocal_to_normal(double *fc3_normal_squared,
|
||||
void reciprocal_to_normal_squared
|
||||
(double *fc3_normal_squared,
|
||||
const lapack_complex_double *fc3_reciprocal,
|
||||
const double *freqs0,
|
||||
const double *freqs1,
|
||||
|
@ -28,7 +20,8 @@ void reciprocal_to_normal(double *fc3_normal_squared,
|
|||
const double cutoff_frequency)
|
||||
{
|
||||
int i, j, k, bi, num_atom;
|
||||
double fff;
|
||||
double fff, sum_real, sum_imag;
|
||||
lapack_complex_double fc3_sum;
|
||||
|
||||
num_atom = num_band / 3;
|
||||
|
||||
|
@ -40,14 +33,18 @@ void reciprocal_to_normal(double *fc3_normal_squared,
|
|||
for (k = 0; k < num_band; k++) {
|
||||
if (freqs2[k] > cutoff_frequency) {
|
||||
fff = freqs0[bi] * freqs1[j] * freqs2[k];
|
||||
fc3_normal_squared[i * num_band * num_band +
|
||||
j * num_band +
|
||||
k] =
|
||||
fc3_sum_squared(bi, j, k,
|
||||
fc3_sum = fc3_sum_in_reciprocal_to_normal
|
||||
(bi, j, k,
|
||||
eigvecs0, eigvecs1, eigvecs2,
|
||||
fc3_reciprocal,
|
||||
masses,
|
||||
num_atom) / fff;
|
||||
num_atom);
|
||||
sum_real = lapack_complex_double_real(fc3_sum);
|
||||
sum_imag = lapack_complex_double_imag(fc3_sum);
|
||||
fc3_normal_squared[i * num_band * num_band +
|
||||
j * num_band +
|
||||
k] =
|
||||
(sum_real * sum_real + sum_imag * sum_imag) / fff;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
|
@ -65,7 +62,8 @@ void reciprocal_to_normal(double *fc3_normal_squared,
|
|||
}
|
||||
}
|
||||
|
||||
static double fc3_sum_squared(const int bi0,
|
||||
lapack_complex_double fc3_sum_in_reciprocal_to_normal
|
||||
(const int bi0,
|
||||
const int bi1,
|
||||
const int bi2,
|
||||
const lapack_complex_double *eigvecs0,
|
||||
|
@ -110,5 +108,5 @@ static double fc3_sum_squared(const int bi0,
|
|||
}
|
||||
}
|
||||
}
|
||||
return sum_real * sum_real + sum_imag * sum_imag;
|
||||
return lapack_make_complex_double(sum_real, sum_imag);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue