⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ukstmpl.h

📁 大型并行量子化学软件;支持密度泛函(DFT)。可以进行各种量子化学计算。支持CHARMM并行计算。非常具有应用价值。
💻 H
字号:
namespace sc {class LocalUKSContribution {  private:    double * const gmata;    double * const gmatb;    double * const pmata;    double * const pmatb;    double a0;  public:    LocalUKSContribution(double *ga, double *pa, double *gb, double *pb,                         double a) :      gmata(ga), gmatb(gb), pmata(pa), pmatb(pb), a0(a) {}    ~LocalUKSContribution() {}    void set_bound(double, double) {}    inline void cont1(int ij, int kl, double val) {      gmata[ij] += val*(pmata[kl]+pmatb[kl]);      gmata[kl] += val*(pmata[ij]+pmatb[ij]);      gmatb[ij] += val*(pmata[kl]+pmatb[kl]);      gmatb[kl] += val*(pmata[ij]+pmatb[ij]);    }        inline void cont2(int ij, int kl, double val) {      val *= a0*0.5;      gmata[ij] -= val*pmata[kl];      gmata[kl] -= val*pmata[ij];      gmatb[ij] -= val*pmatb[kl];      gmatb[kl] -= val*pmatb[ij];    }        inline void cont3(int ij, int kl, double val) {      val *= a0;      gmata[ij] -= val*pmata[kl];      gmata[kl] -= val*pmata[ij];      gmatb[ij] -= val*pmatb[kl];      gmatb[kl] -= val*pmatb[ij];    }        inline void cont4(int ij, int kl, double val) {      cont1(ij,kl,val);      cont2(ij,kl,val);    }        inline void cont5(int ij, int kl, double val) {      cont1(ij,kl,val);      cont3(ij,kl,val);    }};class LocalUKSEnergyContribution {  private:    double * const pmata;    double * const pmatb;    double a0;  public:    double ec;    double ex;        LocalUKSEnergyContribution(double *a, double *b, double an) :      pmata(a), pmatb(b), a0(an) {      ec=ex=0;    }    ~LocalUKSEnergyContribution() {}    void set_bound(double, double) {}    inline void cont1(int ij, int kl, double val) {      ec += val*(pmata[ij]+pmatb[ij])*(pmata[kl]+pmatb[kl]);    }        inline void cont2(int ij, int kl, double val) {      ex -= a0*0.5*val*(pmata[ij]*pmata[kl]+pmatb[ij]*pmatb[kl]);    }        inline void cont3(int ij, int kl, double val) {      ex -= a0*val*(pmata[ij]*pmata[kl]+pmatb[ij]*pmatb[kl]);    }        inline void cont4(int ij, int kl, double val) {      cont1(ij,kl,val);      cont2(ij,kl,val);    }        inline void cont5(int ij, int kl, double val) {      cont1(ij,kl,val);      cont3(ij,kl,val);    }};}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -