mirror of https://github.com/phonopy/phonopy.git
Minor refactoring for positions and G_list
This commit is contained in:
parent
236ba5a882
commit
ce7cb0fd0f
30
c/_phonopy.c
30
c/_phonopy.c
|
@ -665,19 +665,19 @@ static PyObject * py_get_dipole_dipole(PyObject *self, PyObject *args)
|
|||
PyArrayObject* q_direction_py;
|
||||
PyArrayObject* py_born;
|
||||
PyArrayObject* py_dielectric;
|
||||
PyArrayObject* pos_py;
|
||||
PyArrayObject* py_positions;
|
||||
double factor;
|
||||
double lambda;
|
||||
double tolerance;
|
||||
|
||||
double* dd;
|
||||
double* dd_q0;
|
||||
double* G_list;
|
||||
double (*G_list)[3];
|
||||
double* q_vector;
|
||||
double* q_direction;
|
||||
double (*born)[3][3];
|
||||
double (*dielectric)[3];
|
||||
double *pos;
|
||||
double (*pos)[3];
|
||||
int num_patom, num_G;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "OOOOOOOOddd",
|
||||
|
@ -688,7 +688,7 @@ static PyObject * py_get_dipole_dipole(PyObject *self, PyObject *args)
|
|||
&q_direction_py,
|
||||
&py_born,
|
||||
&py_dielectric,
|
||||
&pos_py,
|
||||
&py_positions,
|
||||
&factor,
|
||||
&lambda,
|
||||
&tolerance))
|
||||
|
@ -697,18 +697,18 @@ static PyObject * py_get_dipole_dipole(PyObject *self, PyObject *args)
|
|||
|
||||
dd = (double*)PyArray_DATA(dd_py);
|
||||
dd_q0 = (double*)PyArray_DATA(dd_q0_py);
|
||||
G_list = (double*)PyArray_DATA(G_list_py);
|
||||
G_list = (double(*)[3])PyArray_DATA(G_list_py);
|
||||
if ((PyObject*)q_direction_py == Py_None) {
|
||||
q_direction = NULL;
|
||||
} else {
|
||||
q_direction = (double*)PyArray_DATA(q_direction_py);
|
||||
}
|
||||
q_vector = (double*)PyArray_DATA(q_vector_py);
|
||||
born = (double*)PyArray_DATA(py_born);
|
||||
born = (double(*)[3][3])PyArray_DATA(py_born);
|
||||
dielectric = (double(*)[3])PyArray_DATA(py_dielectric);
|
||||
pos = (double*)PyArray_DATA(pos_py);
|
||||
pos = (double(*)[3])PyArray_DATA(py_positions);
|
||||
num_G = PyArray_DIMS(G_list_py)[0];
|
||||
num_patom = PyArray_DIMS(pos_py)[0];
|
||||
num_patom = PyArray_DIMS(py_positions)[0];
|
||||
|
||||
dym_get_dipole_dipole(dd, /* [natom, 3, natom, 3, (real, imag)] */
|
||||
dd_q0, /* [natom, 3, 3, (real, imag)] */
|
||||
|
@ -732,32 +732,32 @@ static PyObject * py_get_dipole_dipole_q0(PyObject *self, PyObject *args)
|
|||
PyArrayObject* dd_q0_py;
|
||||
PyArrayObject* G_list_py;
|
||||
PyArrayObject* py_dielectric;
|
||||
PyArrayObject* pos_py;
|
||||
PyArrayObject* py_positions;
|
||||
double lambda;
|
||||
double tolerance;
|
||||
|
||||
double* dd_q0;
|
||||
double* G_list;
|
||||
double (*G_list)[3];
|
||||
double (*dielectric)[3];
|
||||
double *pos;
|
||||
double (*pos)[3];
|
||||
int num_patom, num_G;
|
||||
|
||||
if (!PyArg_ParseTuple(args, "OOOOdd",
|
||||
&dd_q0_py,
|
||||
&G_list_py,
|
||||
&py_dielectric,
|
||||
&pos_py,
|
||||
&py_positions,
|
||||
&lambda,
|
||||
&tolerance))
|
||||
return NULL;
|
||||
|
||||
|
||||
dd_q0 = (double*)PyArray_DATA(dd_q0_py);
|
||||
G_list = (double*)PyArray_DATA(G_list_py);
|
||||
G_list = (double(*)[3])PyArray_DATA(G_list_py);
|
||||
dielectric = (double(*)[3])PyArray_DATA(py_dielectric);
|
||||
pos = (double*)PyArray_DATA(pos_py);
|
||||
pos = (double(*)[3])PyArray_DATA(py_positions);
|
||||
num_G = PyArray_DIMS(G_list_py)[0];
|
||||
num_patom = PyArray_DIMS(pos_py)[0];
|
||||
num_patom = PyArray_DIMS(py_positions)[0];
|
||||
|
||||
dym_get_dipole_dipole_q0(dd_q0, /* [natom, 3, 3, (real, imag)] */
|
||||
G_list, /* [num_kvec, 3] */
|
||||
|
|
|
@ -67,13 +67,13 @@ static void get_dm(double dm_real[3][3],
|
|||
static double get_dielectric_part(const double q_cart[3],
|
||||
PHPYCONST double dielectric[3][3]);
|
||||
static void get_KK(double *dd_part, /* [natom, 3, natom, 3, (real, imag)] */
|
||||
const double *G_list, /* [num_G, 3] */
|
||||
PHPYCONST double (*G_list)[3], /* [num_G, 3] */
|
||||
const int num_G,
|
||||
const int num_patom,
|
||||
const double q_cart[3],
|
||||
const double q_direction[3],
|
||||
PHPYCONST double dielectric[3][3],
|
||||
const double *pos, /* [natom, 3] */
|
||||
PHPYCONST double (*pos)[3], /* [num_patom, 3] */
|
||||
const double lambda,
|
||||
const double tolerance);
|
||||
|
||||
|
@ -148,14 +148,14 @@ int dym_get_dynamical_matrix_at_q(double *dynamical_matrix,
|
|||
|
||||
void dym_get_dipole_dipole(double *dd, /* [natom, 3, natom, 3, (real, imag)] */
|
||||
const double *dd_q0, /* [natom, 3, 3, (real, imag)] */
|
||||
const double *G_list, /* [num_G, 3] */
|
||||
PHPYCONST double (*G_list)[3], /* [num_G, 3] */
|
||||
const int num_G,
|
||||
const int num_patom,
|
||||
const double q_cart[3],
|
||||
const double q_direction[3],
|
||||
PHPYCONST double (*born)[3][3],
|
||||
PHPYCONST double dielectric[3][3],
|
||||
const double *pos, /* [natom, 3] */
|
||||
PHPYCONST double (*pos)[3], /* [num_patom, 3] */
|
||||
const double factor, /* 4pi/V*unit-conv */
|
||||
const double lambda,
|
||||
const double tolerance)
|
||||
|
@ -221,11 +221,11 @@ void dym_get_dipole_dipole(double *dd, /* [natom, 3, natom, 3, (real, imag)] */
|
|||
}
|
||||
|
||||
void dym_get_dipole_dipole_q0(double *dd_q0, /* [natom, 3, 3, (real, imag)] */
|
||||
const double *G_list, /* [num_G, 3] */
|
||||
PHPYCONST double (*G_list)[3], /* [num_G, 3] */
|
||||
const int num_G,
|
||||
const int num_patom,
|
||||
PHPYCONST double dielectric[3][3],
|
||||
const double *pos, /* [natom, 3] */
|
||||
PHPYCONST double (*pos)[3], /* [num_patom, 3] */
|
||||
const double lambda,
|
||||
const double tolerance)
|
||||
{
|
||||
|
@ -496,13 +496,13 @@ static double get_dielectric_part(const double q_cart[3],
|
|||
}
|
||||
|
||||
static void get_KK(double *dd_part, /* [natom, 3, natom, 3, (real, imag)] */
|
||||
const double *G_list, /* [num_G, 3] */
|
||||
PHPYCONST double (*G_list)[3], /* [num_G, 3] */
|
||||
const int num_G,
|
||||
const int num_patom,
|
||||
const double q_cart[3],
|
||||
const double q_direction[3],
|
||||
PHPYCONST double dielectric[3][3],
|
||||
const double *pos, /* [natom, 3] */
|
||||
PHPYCONST double (*pos)[3], /* [num_patom, 3] */
|
||||
const double lambda,
|
||||
const double tolerance)
|
||||
{
|
||||
|
@ -519,7 +519,7 @@ static void get_KK(double *dd_part, /* [natom, 3, natom, 3, (real, imag)] */
|
|||
for (g = 0; g < num_G; g++) {
|
||||
norm = 0;
|
||||
for (i = 0; i < 3; i++) {
|
||||
q_K[i] = G_list[g * 3 + i] + q_cart[i];
|
||||
q_K[i] = G_list[g][i] + q_cart[i];
|
||||
norm += q_K[i] * q_K[i];
|
||||
}
|
||||
|
||||
|
@ -549,9 +549,9 @@ static void get_KK(double *dd_part, /* [natom, 3, natom, 3, (real, imag)] */
|
|||
phase = 0;
|
||||
for (k = 0; k < 3; k++) {
|
||||
/* For D-type dynamical matrix */
|
||||
/* phase += (pos[i * 3 + k] - pos[j * 3 + k]) * q_K[k]; */
|
||||
/* phase += (pos[i][k] - pos[j][k]) * q_K[k]; */
|
||||
/* For C-type dynamical matrix */
|
||||
phase += (pos[i * 3 + k] - pos[j * 3 + k]) * G_list[g * 3 + k];
|
||||
phase += (pos[i][k] - pos[j][k]) * G_list[g][k];
|
||||
}
|
||||
phase *= 2 * PI;
|
||||
cos_phase = cos(phase);
|
||||
|
|
|
@ -51,23 +51,23 @@ int dym_get_dynamical_matrix_at_q(double *dynamical_matrix,
|
|||
const int with_openmp);
|
||||
void dym_get_dipole_dipole(double *dd, /* [natom, 3, natom, 3, (real, imag)] */
|
||||
const double *dd_q0, /* [natom, 3, 3, (real, imag)] */
|
||||
const double *G_list, /* [num_G, 3] */
|
||||
PHPYCONST double (*G_list)[3], /* [num_G, 3] */
|
||||
const int num_G,
|
||||
const int num_patom,
|
||||
const double q_cart[3],
|
||||
const double q_direction[3],
|
||||
PHPYCONST double (*born)[3][3],
|
||||
PHPYCONST double dielectric[3][3],
|
||||
const double *pos, /* [natom, 3] */
|
||||
PHPYCONST double (*pos)[3], /* [num_patom, 3] */
|
||||
const double factor, /* 4pi/V*unit-conv */
|
||||
const double lambda,
|
||||
const double tolerance);
|
||||
void dym_get_dipole_dipole_q0(double *dd_q0, /* [natom, 3, 3, (real, imag)] */
|
||||
const double *G_list, /* [num_G, 3] */
|
||||
PHPYCONST double (*G_list)[3], /* [num_G, 3] */
|
||||
const int num_G,
|
||||
const int num_patom,
|
||||
PHPYCONST double dielectric[3][3],
|
||||
const double *pos, /* [natom, 3] */
|
||||
PHPYCONST double (*pos)[3], /* [natom, 3] */
|
||||
const double lambda,
|
||||
const double tolerance);
|
||||
void dym_get_charge_sum(double (*charge_sum)[3][3],
|
||||
|
|
Loading…
Reference in New Issue