ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
Public Member Functions | List of all members
hamilt::cal_stress_nl_op< FPTYPE, Device > Struct Template Reference

#include <stress_op.h>

Collaboration diagram for hamilt::cal_stress_nl_op< FPTYPE, Device >:

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)
 

Member Function Documentation

◆ operator()() [1/4]

template<typename FPTYPE , typename Device >
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 
)

◆ operator()() [2/4]

template<typename FPTYPE , typename Device >
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 
)

◆ operator()() [3/4]

template<typename FPTYPE , typename Device >
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

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

Parameters
stress- output stresses

◆ operator()() [4/4]

template<typename FPTYPE , typename Device >
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 
)

The documentation for this struct was generated from the following file: