Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 6 additions & 4 deletions env.set.local0
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
#!/bin/bash

#! Note: Hardcoded paths are for use on the Zimmerman lab cluster, Athena, which runs Rocky Linux 8.
#! Note: Hardcoded paths are for use on the Zimmerman lab cluster, Athena, which runs Rocky Linux 8.
#! Other systems may require different paths.

# NVHPC 20.7-21.9, and SDK 24.9-24.11 (and respective openmpi versions) have been found to successfully compile.
Expand All @@ -9,12 +9,14 @@ module load nvidia-sdk/25.5
# Cmake 3.15 and above is required.
module load cmake

# Add libcint to PATH for GTO evaluation.
# Add libcint to PATH for GTO evaluation.
#! Note: Libcint version 5.3.0 is required for SlaterGPU.

#module load libcint
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/ndmeier/libraries/libcint/lib64
export LIBCINT_PATH=/home/ndmeier/libraries/libcint
#export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/ndmeier/libraries/libcint/lib64
#export LIBCINT_PATH=/home/ndmeier/libraries/libcint
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/paulzim/libcint-master/
export LIBCINT_PATH=/home/paulzim/libcint-master/


#OpenBLAS is also required for libcint/libcintw operations. Some systems automatically source this, but you may need to explicitly point to it.
Expand Down
19 changes: 16 additions & 3 deletions include/becke.h
Original file line number Diff line number Diff line change
Expand Up @@ -38,10 +38,21 @@ void compute_rhod(int natoms, int* atno, double* coords, vector<vector<double> >
void compute_rhod(int natoms, int* atno, double* coords, vector<vector<double> > &basis, double* Pao, int nrad, int gsa, float* grid, double* rho, double* drho, int prl);
void compute_rho(bool gbasis, int natoms, int* atno, double* coords, vector<vector<double> > &basis, double* Pao, int nrad, int gsa, float* grid, double* rho, double* drho, int prl);
void compute_rhodg(bool gbasis, int natoms, int* atno, double* coords, vector<vector<double> > &basis, double* Pao, int nrad, int gsa, double* grid, double* rho, double* drho, int prl);
void compute_lap_hessg(bool gbasis, int natoms, int* atno, double* coords, vector<vector<double> > &basis, double* Pao, int nrad, int gsa, double* grid, double* lapl, double* hess, int prl);

void compute_lap_hess(int natoms, int* atno, double* coords, vector<vector<double> > &basis, int nrad, int gsa, double* grid, double* Pao, double* hessw, double* lapl, int htype, double* hessp, int prl);
void compute_delt(int natoms, int* atno, double* coords, vector<vector<double> > &basis, double* Pao, int nrad, int gsa, double* grid, double* delt, int prl);
void compute_B_field(int natoms, int* atno, double* coords, vector<vector<double> > &basis, double* Pao, double* Paodt,

//finite difference Hessian
void get_hessian_fd_grid(const double dx, int gsa, double* grid, double* gridh);
void eval_hessian_fd(double dx, int gsh, double* vals, double* fdvals, int gsa, double* hess);
void eval_grad_hessian_fd(double dx, int gsh, double* vals, double* fdvals, int gsa, double* grad, double* hess);
//finite difference gradient
void get_fd_grid(const double dx, int gsa, double* grid, double* gridh);
void eval_grad_fd(double dx, int gsh, double* fdvals, int gsa, double* valg);


void compute_lap_hess(int natoms, int* atno, double* coords, vector<vector<double> > &basis, int nrad, int gsa, double* grid, double* Pao, double* rhohess, double* hessw, double* lapl, int htype, double* hessp, int prl);
void compute_delt(int natoms, int* atno, double* coords, bool gbasis, vector<vector<double> > &basis, double* Pao, int nrad, int gsa, double* grid, double* delt, int prl);
void compute_B_field(int natoms, int* atno, double* coords, bool gbasis, vector<vector<double> > &basis, double* Pao, double* Paodt,
int nrad, int nang, double* ang_g, double* ang_w, int gsa, double* grid, double* B, int prl);

void compute_fxcd(int natoms, int* atno, double* coords, vector<vector<double> > &basis, bool gga, bool tau, bool need_wt, double* Pao,
Expand All @@ -58,6 +69,8 @@ void compute_fxc (int natoms, int* atno, double* coords, vector<vector<double> >
// float* grid, float* wt, float* vxc, float* vxcs, double* fxc, int prl);
void compute_fxc (bool gbasis, int natoms, int* atno, double* coords, vector<vector<double> > &basis, bool need_wt, bool gga, double* Pao, int gsa,
float* grid, float* wt, double* vxc, double* vxcs, double* fxc, int prl);
void compute_fxcd(bool gbasis, int natoms, int* atno, double* coords, vector<vector<double> > &basis, bool need_wt, bool gga,
double* Pao, int gs, double* grid, double* wt, double* vxc, double* vxcs, double* fxc, int prl);


void compute_delta(int natoms, int* atno, double* coords, vector<vector<double> > &basis1, vector<vector<double> > &basis2, int No, double* jCA, bool gga, bool tau, float* rho, int gsa, float* grid, float* wt, double* diff, int prl);
Expand Down
10 changes: 5 additions & 5 deletions include/cintprep.h
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ class CINTPrep {
int var_dim_ri;
int nbas_ri;
int nenv_ri;

public:
CINTPrep(bool doing_ri = false);
~CINTPrep();
Expand All @@ -50,8 +50,8 @@ class CINTPrep {
void set_atm(int *&atm_in);
void set_bas(int *&bas_in);
void set_env(double *&env_in);
void assign_coords(int natoms, int *atomlist, double *coords, bool in_bohr = true);
void assign_coords(int natoms, int *atomlist, float *coords, bool in_bohr = true);
void assign_coords(int natoms, int *atomlist, double *coords, bool in_bohr = true);
void assign_coords(int natoms, int *atomlist, float *coords, bool in_bohr = true);

//RI funcs
int get_var_dim_ri();
Expand All @@ -65,11 +65,11 @@ class CINTPrep {

void copy_atoms(vector< int > &atoms_copy);
void copy_coord(vector< double > &coord_copy);

unordered_map<short, short> anum_to_N;
};

// TODO
// TODO
// 1. do ri stuff
// 2. probably should have read_xyz/read_bas take in filenames
// and manage memory associated with atm/env
Expand Down
17 changes: 15 additions & 2 deletions include/cintwrapper.h
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ extern "C" {
int *atm, int natm, int *bas, int nbas, double *env);
int cint2e_sph(double *buf, int *shls,
int *atm, int natm, int *bas, int nbas, double *env, CINTOpt *no_opt);

// gradient integrals
// < -ih∇ | Vnuc | -ih∇ >
int cint1e_ipnucip_cart(double *buf, int *shls,
Expand Down Expand Up @@ -71,6 +71,14 @@ extern "C" {

int CINTtot_cgto_spheric(const int *bas, const int nbas);
FINT CINTcgto_spheric(const FINT n, const FINT *bas);

//was CACHE_SIZE_T
int64_t int1e_grids_sph(double *out, FINT *dims, FINT *shls,
FINT *atm, FINT natm, FINT *bas, FINT nbas,
double *env, CINTOpt *opt, double *cache);
int64_t int1e_grids_cart(double *out, FINT *dims, FINT *shls,
FINT *atm, FINT natm, FINT *bas, FINT nbas,
double *env, CINTOpt *opt, double *cache);
}

using namespace std;
Expand All @@ -92,6 +100,11 @@ class BT {

int calc_di(int i, int *bas);

//potential on a grid
void get_vri(double** val, int gs, int N,
int natm, int nbas, int nbas_ri, int nenv,
int* atm, int* bas, double* env);

void get_overlap(double * overlap, int N,
int natm, int nbas, int nenv,
int *atm, int* bas, double *env);
Expand Down Expand Up @@ -157,7 +170,7 @@ void contract_dVne(int natm, int N, int nbas, double *grad_term, double *Pao,
void contract_d2c2e(int natm, int N, int nbas, int Naux, int nbas_ri,
double *grad_term, double *gRS,
int *atm, int *bas, double *env);
void contract_d3c2e(int natm, int N, int nbas, int Naux, int nbas_ri,
void contract_d3c2e(int natm, int N, int nbas, int Naux, int nbas_ri,
double *grad_term, double *gQmunu,
int *atm, int *bas, double *env);
#endif
Expand Down
2 changes: 1 addition & 1 deletion include/elements.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ const string elem_arr[118] = {
};

const map<char, int> angular_mom = {
{'S', 0}, {'P', 1}, {'D', 2}, {'F',3}, {'G',4}, {'H',5}, {'I',6}
{'S', 0}, {'P', 1}, {'D', 2}, {'F',3}, {'G',4}, {'H',5}, {'I',6}, {'J',7}
};

#endif //_ELEMENTS_H_
1 change: 1 addition & 0 deletions include/gauss.h
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ void eval_ghd_ke(int gs, double* grid, double* val1, int n1, int l1, const doubl
//void eval_pdke_gh(int gs, double* grid, double* val1, int n1, int l1, int m1, double norm1, double zeta1);
void eval_p_gh(int gs, float* grid, float* val, int n1, int l1, int m1, float norm1, float zeta1);
void eval_pd_gh(int gs, double* grid, double* val, int n1, int l1, int m1, double norm1, double zeta1);
void eval_hess_ghd(int gs, double* grid, double* val, int n1, int l1, int m1, double norm1, double zeta1);
int eval_gh_full(int gs, float* grid, float** val1, int i1, int natoms, int nbas, int nenv, int N, int* atm, int* bas, double* env);
void wf_to_grid_gh_ke(int natoms, int* atno, double* coords, vector<vector<double> > basis, double* jCA, int gs, float* grid, float* wt, double* TL, int prl);
void wf_to_grid_gh_ke_2(int natoms, int* atno, double* coords, vector<vector<double> > basis, int nbas, int nenv, int N, int* atm, int* bas, double* env,
Expand Down
2 changes: 1 addition & 1 deletion include/integrals.h
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,7 @@ void compute_Enp_para(int ngpu, int natoms, int* atno, float* coords, vector<vec
void compute_Enp_para(int ngpu, int natoms, int* atno, float* coords, vector<vector<double> > &basis, int nrad, int nang, double* ang_g0, double* ang_w0, float* En, float* pVp, int prl);

//electric fields in x,y,z (centered at origin)
void compute_Exyz(int natoms, int* atno, double* coords, vector<vector<double> > &basis, int nrad, int nang, double* ang_g, double* ang_w, double* S, double* E, int prl);
void compute_Exyz(int natoms, int* atno, double* coords, bool gbasis, vector<vector<double> > &basis, int nrad, int nang, double* ang_g, double* ang_w, double* S, double* E, int prl);

void compute_ST(int natoms, int* atno, float* coords, vector<vector<double> > &basis, int nrad, int nang, double* ang_g0, double* ang_w0, double* S, double* T, int prl);
void compute_ST(int natoms, int* atno, float* coords, vector<vector<double> > &basis, int nrad, int nang, double* ang_g0, double* ang_w0, float* S, float* T, int prl);
Expand Down
Loading