|
ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
|
#include <stress_op.h>
Public Member Functions | |
| void | operator() (const Device *ctx, const bool &nondiagonal, const int &ipol, const int &jpol, const int &nkb, const int &nbands_occ, const int &ntype, const int &spin, const int &deeq_2, const int &deeq_3, const int &deeq_4, const int *atom_nh, const int *atom_na, const FPTYPE *d_wg, const bool &occ, const FPTYPE *d_ekb, const FPTYPE *qq_nt, const FPTYPE *deeq, const std::complex< FPTYPE > *becp, const std::complex< FPTYPE > *dbecp, FPTYPE *stress) |
| Calculate the final stresses for multi-device. | |
| void | operator() (const Device *ctx, const int &ipol, const int &jpol, const int &nkb, const int &nbands_occ, const int &ntype, const int &deeq_2, const int &deeq_3, const int &deeq_4, const int *atom_nh, const int *atom_na, const FPTYPE *d_wg, const bool &occ, const FPTYPE *d_ekb, const FPTYPE *qq_nt, const std::complex< FPTYPE > *deeq_nc, const std::complex< FPTYPE > *becp, const std::complex< FPTYPE > *dbecp, FPTYPE *stress) |
| void | operator() (const base_device::DEVICE_CPU *ctx, const int &nkb, const int &nbands_occ, const int &ntype, const int &wg_nc, const int &ik, const int *atom_nh, const int *atom_na, const FPTYPE *d_wg, const std::complex< FPTYPE > *vu, const int *orbital_corr, const std::complex< FPTYPE > *becp, const std::complex< FPTYPE > *dbecp, FPTYPE *stress) |
| void | operator() (const base_device::DEVICE_CPU *ctx, const int &nkb, const int &nbands_occ, const int &ntype, const int &wg_nc, const int &ik, const int *atom_nh, const int *atom_na, const FPTYPE *d_wg, const double *lambda, const std::complex< FPTYPE > *becp, const std::complex< FPTYPE > *dbecp, FPTYPE *stress) |
| void hamilt::cal_stress_nl_op< FPTYPE, Device >::operator() | ( | const base_device::DEVICE_CPU * | ctx, |
| const int & | nkb, | ||
| const int & | nbands_occ, | ||
| const int & | ntype, | ||
| const int & | wg_nc, | ||
| const int & | ik, | ||
| const int * | atom_nh, | ||
| const int * | atom_na, | ||
| const FPTYPE * | d_wg, | ||
| const double * | lambda, | ||
| const std::complex< FPTYPE > * | becp, | ||
| const std::complex< FPTYPE > * | dbecp, | ||
| FPTYPE * | stress | ||
| ) |
| void hamilt::cal_stress_nl_op< FPTYPE, Device >::operator() | ( | const base_device::DEVICE_CPU * | ctx, |
| const int & | nkb, | ||
| const int & | nbands_occ, | ||
| const int & | ntype, | ||
| const int & | wg_nc, | ||
| const int & | ik, | ||
| const int * | atom_nh, | ||
| const int * | atom_na, | ||
| const FPTYPE * | d_wg, | ||
| const std::complex< FPTYPE > * | vu, | ||
| const int * | orbital_corr, | ||
| const std::complex< FPTYPE > * | becp, | ||
| const std::complex< FPTYPE > * | dbecp, | ||
| FPTYPE * | stress | ||
| ) |
| void hamilt::cal_stress_nl_op< FPTYPE, Device >::operator() | ( | const Device * | ctx, |
| const bool & | nondiagonal, | ||
| const int & | ipol, | ||
| const int & | jpol, | ||
| const int & | nkb, | ||
| const int & | nbands_occ, | ||
| const int & | ntype, | ||
| const int & | spin, | ||
| const int & | deeq_2, | ||
| const int & | deeq_3, | ||
| const int & | deeq_4, | ||
| const int * | atom_nh, | ||
| const int * | atom_na, | ||
| const FPTYPE * | d_wg, | ||
| const bool & | occ, | ||
| const FPTYPE * | d_ekb, | ||
| const FPTYPE * | qq_nt, | ||
| const FPTYPE * | deeq, | ||
| const std::complex< FPTYPE > * | becp, | ||
| const std::complex< FPTYPE > * | dbecp, | ||
| FPTYPE * | stress | ||
| ) |
Calculate the final stresses for multi-device.
Input Parameters
| ctx | - which device this function runs on |
| nondiagonal | - control flag |
| ipol | - loop of 0, 1, 2 |
| jpol | - loop of 0, 1, 2 |
| nkb | - number of k point |
| nbands_occ | - number of occupied bands |
| ntype | - total atomic type |
| spin | - current spin |
| deeq_2 | - the second dimension of deeq |
| deeq_3 | - the third dimension of deeq |
| deeq_4 | - the forth dimension of deeq |
| atom_nh | - ucell.atoms[ii].ncpp.nh |
| atom_na | - ucell.atoms[ii].na |
| d_wg | - input parameter wg |
| occ | - if use the occupation of the bands |
| d_ekb | - input parameter ekb |
| qq_nt | - ppcell.qq_nt |
| deeq | - ppcell.deeq |
| becp | - intermediate matrix with PARAM.inp.nbands * nkb |
| dbecp | - intermediate matrix with 3 * PARAM.inp.nbands * nkb |
Output Parameters
| stress | - output stresses |
| void hamilt::cal_stress_nl_op< FPTYPE, Device >::operator() | ( | const Device * | ctx, |
| const int & | ipol, | ||
| const int & | jpol, | ||
| const int & | nkb, | ||
| const int & | nbands_occ, | ||
| const int & | ntype, | ||
| const int & | deeq_2, | ||
| const int & | deeq_3, | ||
| const int & | deeq_4, | ||
| const int * | atom_nh, | ||
| const int * | atom_na, | ||
| const FPTYPE * | d_wg, | ||
| const bool & | occ, | ||
| const FPTYPE * | d_ekb, | ||
| const FPTYPE * | qq_nt, | ||
| const std::complex< FPTYPE > * | deeq_nc, | ||
| const std::complex< FPTYPE > * | becp, | ||
| const std::complex< FPTYPE > * | dbecp, | ||
| FPTYPE * | stress | ||
| ) |