Skip to content

Commit 88953b8

Browse files
committed
torque definition is changed to -m \times B
1 parent 7ceef8c commit 88953b8

File tree

1 file changed

+4
-3
lines changed
  • source/module_hamilt_general/module_xc/NCLibxc

1 file changed

+4
-3
lines changed

source/module_hamilt_general/module_xc/NCLibxc/torque.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ namespace NCXC{
6262
}
6363

6464
// gga,input: xc_id, n, mx, my, mz,grad, grad2, grad3, grad4, return xc local torque for each real space grid point
65+
// torque = - m × Bxc, note that there is a minus
6566
std::vector<double> NCLibxc::gga_torque(int xc_id, const std::vector<double>& n,
6667
const std::vector<double>& mx, const std::vector<double>& my, const std::vector<double>& mz,const std::vector<double> gradx_n,const std::vector<double> grady_n,const std::vector<double> gradz_n, const std::vector<double>& gradx_mx, const std::vector<double>& grady_mx, const std::vector<double>& gradz_mx, const std::vector<double>& gradx_my, const std::vector<double>& grady_my, const std::vector<double>& gradz_my, const std::vector<double>& gradx_mz, const std::vector<double>& grady_mz, const std::vector<double>& gradz_mz, const std::vector<double> grad2xx_n, const std::vector<double> grad2yy_n, const std::vector<double> grad2zz_n, const std::vector<double> grad2xy_n, const std::vector<double> grad2yz_n, const std::vector<double> grad2xz_n, const std::vector<double> grad2xx_mx, const std::vector<double> grad2yy_mx, const std::vector<double> grad2zz_mx, const std::vector<double> grad2xy_mx, const std::vector<double> grad2yz_mx, const std::vector<double> grad2xz_mx, const std::vector<double> grad2xx_my, const std::vector<double> grad2yy_my, const std::vector<double> grad2zz_my, const std::vector<double> grad2xy_my, const std::vector<double> grad2yz_my, const std::vector<double> grad2xz_my, const std::vector<double> grad2xx_mz, const std::vector<double> grad2yy_mz, const std::vector<double> grad2zz_mz, const std::vector<double> grad2xy_mz, const std::vector<double> grad2yz_mz, const std::vector<double> grad2xz_mz, const std::vector<double> grad3xxx_n, const std::vector<double> grad3xxy_n, const std::vector<double> grad3xxz_n, const std::vector<double> grad3xyy_n, const std::vector<double> grad3xyz_n, const std::vector<double> grad3xzz_n, const std::vector<double> grad3yyy_n, const std::vector<double> grad3yyz_n, const std::vector<double> grad3yzz_n, const std::vector<double> grad3zzz_n, const std::vector<double> grad3xxx_mx, const std::vector<double> grad3xxy_mx, const std::vector<double> grad3xxz_mx, const std::vector<double> grad3xyy_mx, const std::vector<double> grad3xyz_mx, const std::vector<double> grad3xzz_mx, const std::vector<double> grad3yyy_mx, const std::vector<double> grad3yyz_mx, const std::vector<double> grad3yzz_mx, const std::vector<double> grad3zzz_mx, const std::vector<double> grad3xxx_my, const std::vector<double> grad3xxy_my, const std::vector<double> grad3xxz_my, const std::vector<double> grad3xyy_my, const std::vector<double> grad3xyz_my, const std::vector<double> grad3xzz_my, const std::vector<double> grad3yyy_my, const std::vector<double> grad3yyz_my, const std::vector<double> grad3yzz_my, const std::vector<double> grad3zzz_my, const std::vector<double> grad3xxx_mz, const std::vector<double> grad3xxy_mz, const std::vector<double> grad3xxz_mz, const std::vector<double> grad3xyy_mz, const std::vector<double> grad3xyz_mz, const std::vector<double> grad3xzz_mz, const std::vector<double> grad3yyy_mz, const std::vector<double> grad3yyz_mz, const std::vector<double> grad3yzz_mz, const std::vector<double> grad3zzz_mz, const std::vector<double> grad4xxxx_n, const std::vector<double> grad4xxxy_n, const std::vector<double> grad4xxxz_n, const std::vector<double> grad4xxyy_n, const std::vector<double> grad4xxyz_n, const std::vector<double> grad4xxzz_n, const std::vector<double> grad4xyyy_n, const std::vector<double> grad4xyyz_n, const std::vector<double> grad4xyzz_n, const std::vector<double> grad4xzzz_n, const std::vector<double> grad4yyyy_n, const std::vector<double> grad4yyyz_n, const std::vector<double> grad4yyzz_n, const std::vector<double> grad4yzzz_n, const std::vector<double> grad4zzzz_n, const std::vector<double> grad4xxxx_mx, const std::vector<double> grad4xxxy_mx, const std::vector<double> grad4xxxz_mx, const std::vector<double> grad4xxyy_mx, const std::vector<double> grad4xxyz_mx, const std::vector<double> grad4xxzz_mx, const std::vector<double> grad4xyyy_mx, const std::vector<double> grad4xyyz_mx, const std::vector<double> grad4xyzz_mx, const std::vector<double> grad4xzzz_mx, const std::vector<double> grad4yyyy_mx, const std::vector<double> grad4yyyz_mx, const std::vector<double> grad4yyzz_mx, const std::vector<double> grad4yzzz_mx, const std::vector<double> grad4zzzz_mx, const std::vector<double> grad4xxxx_my, const std::vector<double> grad4xxxy_my, const std::vector<double> grad4xxxz_my, const std::vector<double> grad4xxyy_my, const std::vector<double> grad4xxyz_my, const std::vector<double> grad4xxzz_my, const std::vector<double> grad4xyyy_my, const std::vector<double> grad4xyyz_my, const std::vector<double> grad4xyzz_my, const std::vector<double> grad4xzzz_my, const std::vector<double> grad4yyyy_my, const std::vector<double> grad4yyyz_my, const std::vector<double> grad4yyzz_my, const std::vector<double> grad4yzzz_my, const std::vector<double> grad4zzzz_my, const std::vector<double> grad4xxxx_mz, const std::vector<double> grad4xxxy_mz, const std::vector<double> grad4xxxz_mz, const std::vector<double> grad4xxyy_mz, const std::vector<double> grad4xxyz_mz, const std::vector<double> grad4xxzz_mz, const std::vector<double> grad4xyyy_mz, const std::vector<double> grad4xyyz_mz, const std::vector<double> grad4xyzz_mz, const std::vector<double> grad4xzzz_mz, const std::vector<double> grad4yyyy_mz, const std::vector<double> grad4yyyz_mz, const std::vector<double> grad4yyzz_mz, const std::vector<double> grad4yzzz_mz, const std::vector<double> grad4zzzz_mz){
6768
auto Bxc = gga_Bxc(xc_id, n, mx, my, mz,
@@ -103,11 +104,11 @@ std::vector<double> NCLibxc::gga_torque(int xc_id, const std::vector<double>& n,
103104
double Bz = Bxc[3*i+2];
104105

105106
// (m×Bxc)_x = my_i*Bz - mz_i*By
106-
torque[3*i] = my[i]*Bz - mz[i]*By;
107+
torque[3*i] = -my[i]*Bz - mz[i]*By;
107108
// (m×Bxc)_y = mz_i*Bx - mx_i*Bz
108-
torque[3*i+1] = mz[i]*Bx - mx[i]*Bz;
109+
torque[3*i+1] = -mz[i]*Bx - mx[i]*Bz;
109110
// (m×Bxc)_z = mx_i*By - my_i*Bx
110-
torque[3*i+2] = mx[i]*By - my[i]*Bx;
111+
torque[3*i+2] = -mx[i]*By - my[i]*Bx;
111112
}
112113

113114
return torque;

0 commit comments

Comments
 (0)