ABACUS develop
Atomic-orbital Based Ab-initio Computation at UStc
Loading...
Searching...
No Matches
pulay_force_stress.h
Go to the documentation of this file.
1#pragma once
9#ifndef TGINT_H
10#define TGINT_H
11template <typename T>
12struct TGint;
13template <> struct TGint<double> { using type = Gint_Gamma; };
14template <> struct TGint<std::complex<double>> { using type = Gint_k; };
15#endif
16
22{
24 template<typename TK, typename TR>
29 const UnitCell& ucell,
30 const Parallel_Orbitals& pv,
31 const double* (&dHSx)[3],
32 const double* (&dHSxy)[6],
33 const bool& isforce,
34 const bool& isstress,
35 Record_adj* ra = nullptr,
36 const double& factor_force = 1.0,
37 const double& factor_stress = 1.0);
38
40 template<typename TK, typename TR>
45 const UnitCell& ucell,
46 const Parallel_Orbitals& pv,
47 const double* (&dHSx)[3],
48 const double* dtau,
49 const bool& isforce,
50 const bool& isstress,
51 Record_adj* ra = nullptr,
52 const double& factor_force = 1.0,
53 const double& factor_stress = 1.0);
54
56 template<typename TK, typename TR>
57 void cal_pulay_fs(
61 const UnitCell& ucell,
62 const elecstate::Potential* pot,
63 typename TGint<TK>::type& gint,
64 const bool& isforce,
65 const bool& isstress,
66 const bool& set_dmr_gint = true);
67}
Definition gint_gamma.h:23
Definition gint_k.h:13
Definition matrix.h:19
Definition parallel_orbitals.h:9
Definition record_adj.h:11
Definition unitcell.h:16
Definition density_matrix.h:36
Definition potential_new.h:48
std::complex< double > complex
Definition diago_cusolver.cpp:13
Definition pulay_force_stress.h:22
void cal_pulay_fs(ModuleBase::matrix &f, ModuleBase::matrix &s, const elecstate::DensityMatrix< TK, TR > &dm, const UnitCell &ucell, const Parallel_Orbitals &pv, const double *(&dHSx)[3], const double *(&dHSxy)[6], const bool &isforce, const bool &isstress, Record_adj *ra=nullptr, const double &factor_force=1.0, const double &factor_stress=1.0)
for 2-center-integration terms, provided force and stress derivatives
Definition write_vxc.hpp:16