Main Page   Namespace List   Class Hierarchy   Alphabetical List   Compound List   File List   Namespace Members   Compound Members   File Members   Related Pages  

Orbital.C File Reference

Orbital class manages orbitals, SCF energies, etc, for a Timestep. More...

#include <math.h>
#include <stdio.h>
#include "VMDApp.h"
#include "Orbital.h"
#include "DrawMolecule.h"
#include "utilities.h"
#include "Inform.h"
#include "WKFThreads.h"
#include "WKFUtils.h"
#include "ProfileHooks.h"

Go to the source code of this file.

Compounds

union  flint_t
struct  orbthrparms

Defines

#define VECPADSZ   1
#define VECPADMASK   (VECPADSZ - 1)
#define ANGS_TO_BOHR   1.88972612478289694072f
#define XNEG   0
#define YNEG   1
#define ZNEG   2
#define XPOS   3
#define YPOS   4
#define ZPOS   5
#define MLOG2EF   -1.44269504088896f
#define SCEXP0   1.0000000000000000f
#define SCEXP1   0.6987082824680118f
#define SCEXP2   0.2633174272827404f
#define SCEXP3   0.0923611991471395f
#define SCEXP4   0.0277520543324108f
#define EXPOBIAS   127
#define EXPOSHIFT   23
#define ACUTOFF   -10
#define S_SHELL   0
#define P_SHELL   1
#define D_SHELL   2
#define F_SHELL   3
#define G_SHELL   4
#define H_SHELL   5

Typedefs

typedef flint_t flint

Functions

int evaluate_grid_avx512er (int numatoms, const float *wave_f, const float *basis_array, const float *atompos, const int *atom_basis, const int *num_shells_per_atom, const int *num_prim_per_shell, const int *shell_types, const int *numvoxels, float voxelsize, const float *origin, int density, float *orbitalgrid)
int evaluate_grid_avx512f (int numatoms, const float *wave_f, const float *basis_array, const float *atompos, const int *atom_basis, const int *num_shells_per_atom, const int *num_prim_per_shell, const int *shell_types, const int *numvoxels, float voxelsize, const float *origin, int density, float *orbitalgrid)
int evaluate_grid_avx2 (int numatoms, const float *wave_f, const float *basis_array, const float *atompos, const int *atom_basis, const int *num_shells_per_atom, const int *num_prim_per_shell, const int *shell_types, const int *numvoxels, float voxelsize, const float *origin, int density, float *orbitalgrid)
int evaluate_grid_neon (int numatoms, const float *wave_f, const float *basis_array, const float *atompos, const int *atom_basis, const int *num_shells_per_atom, const int *num_prim_per_shell, const int *shell_types, const int *numvoxels, float voxelsize, const float *origin, int density, float *orbitalgrid)
int evaluate_grid_sve (int numatoms, const float *wave_f, const float *basis_array, const float *atompos, const int *atom_basis, const int *num_shells_per_atom, const int *num_prim_per_shell, const int *shell_types, const int *numvoxels, float voxelsize, const float *origin, int density, float *orbitalgrid)
float cephesfastexpf (float x)
float aexpfnx (float x)
int evaluate_grid (int numatoms, const float *wave_f, const float *basis_array, const float *atompos, const int *atom_basis, const int *num_shells_per_atom, const int *num_prim_per_shell, const int *shell_types, const int *numvoxels, float voxelsize, const float *origin, int density, float *orbitalgrid)
void * orbitalthread (void *voidparms)
int evaluate_grid_fast (wkf_cpu_caps_t *cpucaps, wkf_threadpool_t *thrpool, int numatoms, const float *wave_f, const float *basis_array, const float *atompos, const int *atom_basis, const int *num_shells_per_atom, const int *num_prim_per_shell, const int *shell_types, const int *numvoxels, float voxelsize, const float *origin, int density, float *orbitalgrid)

Variables

const float MAXNUMF = 3.4028234663852885981170418348451692544e38f
const float MAXLOGF = 88.72283905206835f
const float MINLOGF = -103.278929903431851103f
const float LOG2EF = 1.44269504088896341f
const float C1 = 0.693359375f
const float C2 = -2.12194440e-4f


Detailed Description

Orbital class manages orbitals, SCF energies, etc, for a Timestep.

Definition in file Orbital.C.


Define Documentation

#define ACUTOFF   -10
 

Definition at line 997 of file Orbital.C.

Referenced by aexpfnx.

#define ANGS_TO_BOHR   1.88972612478289694072f
 

Definition at line 164 of file Orbital.C.

Referenced by evaluate_grid, and Orbital::evaluate_grid_point.

#define D_SHELL   2
 

Definition at line 1030 of file Orbital.C.

Referenced by evaluate_grid, and Orbital::flops_per_gridpoint.

#define EXPOBIAS   127
 

Definition at line 993 of file Orbital.C.

Referenced by aexpfnx.

#define EXPOSHIFT   23
 

Definition at line 994 of file Orbital.C.

Referenced by aexpfnx.

#define F_SHELL   3
 

Definition at line 1031 of file Orbital.C.

Referenced by evaluate_grid, and Orbital::flops_per_gridpoint.

#define G_SHELL   4
 

Definition at line 1032 of file Orbital.C.

Referenced by Orbital::calculate_mo, evaluate_grid, and Orbital::flops_per_gridpoint.

#define H_SHELL   5
 

Definition at line 1033 of file Orbital.C.

#define MLOG2EF   -1.44269504088896f
 

Definition at line 980 of file Orbital.C.

Referenced by aexpfnx.

#define P_SHELL   1
 

Definition at line 1029 of file Orbital.C.

Referenced by evaluate_grid, and Orbital::flops_per_gridpoint.

#define S_SHELL   0
 

Definition at line 1028 of file Orbital.C.

Referenced by evaluate_grid, and Orbital::flops_per_gridpoint.

#define SCEXP0   1.0000000000000000f
 

Definition at line 986 of file Orbital.C.

Referenced by aexpfnx.

#define SCEXP1   0.6987082824680118f
 

Definition at line 987 of file Orbital.C.

Referenced by aexpfnx.

#define SCEXP2   0.2633174272827404f
 

Definition at line 988 of file Orbital.C.

Referenced by aexpfnx.

#define SCEXP3   0.0923611991471395f
 

Definition at line 989 of file Orbital.C.

Referenced by aexpfnx.

#define SCEXP4   0.0277520543324108f
 

Definition at line 990 of file Orbital.C.

Referenced by aexpfnx.

#define VECPADMASK   (VECPADSZ - 1)
 

Definition at line 67 of file Orbital.C.

Referenced by Orbital::calculate_mo.

#define VECPADSZ   1
 

Definition at line 63 of file Orbital.C.

#define XNEG   0
 

Definition at line 325 of file Orbital.C.

Referenced by Orbital::find_optimal_grid.

#define XPOS   3
 

Definition at line 328 of file Orbital.C.

Referenced by Orbital::find_optimal_grid.

#define YNEG   1
 

Definition at line 326 of file Orbital.C.

Referenced by Orbital::find_optimal_grid.

#define YPOS   4
 

Definition at line 329 of file Orbital.C.

Referenced by Orbital::find_optimal_grid.

#define ZNEG   2
 

Definition at line 327 of file Orbital.C.

Referenced by Orbital::find_optimal_grid.

#define ZPOS   5
 

Definition at line 330 of file Orbital.C.

Referenced by Orbital::find_optimal_grid.


Typedef Documentation

typedef union flint_t flint
 


Function Documentation

float aexpfnx float    x
 

Definition at line 1004 of file Orbital.C.

References ACUTOFF, EXPOBIAS, EXPOSHIFT, flint_t::f, MLOG2EF, flint_t::n, SCEXP0, SCEXP1, SCEXP2, SCEXP3, and SCEXP4.

Referenced by evaluate_grid.

float cephesfastexpf float    x [inline, static]
 

Definition at line 912 of file Orbital.C.

References C1, C2, LOG2EF, MAXLOGF, MAXNUMF, MINLOGF, n, and z.

Referenced by evaluate_grid.

int evaluate_grid int    numatoms,
const float *    wave_f,
const float *    basis_array,
const float *    atompos,
const int *    atom_basis,
const int *    num_shells_per_atom,
const int *    num_prim_per_shell,
const int *    shell_types,
const int *    numvoxels,
float    voxelsize,
const float *    origin,
int    density,
float *    orbitalgrid
 

Definition at line 1035 of file Orbital.C.

References aexpfnx, ANGS_TO_BOHR, cephesfastexpf, D_SHELL, F_SHELL, G_SHELL, P_SHELL, and S_SHELL.

int evaluate_grid_avx2 int    numatoms,
const float *    wave_f,
const float *    basis_array,
const float *    atompos,
const int *    atom_basis,
const int *    num_shells_per_atom,
const int *    num_prim_per_shell,
const int *    shell_types,
const int *    numvoxels,
float    voxelsize,
const float *    origin,
int    density,
float *    orbitalgrid
 

Referenced by orbitalthread.

int evaluate_grid_avx512er int    numatoms,
const float *    wave_f,
const float *    basis_array,
const float *    atompos,
const int *    atom_basis,
const int *    num_shells_per_atom,
const int *    num_prim_per_shell,
const int *    shell_types,
const int *    numvoxels,
float    voxelsize,
const float *    origin,
int    density,
float *    orbitalgrid
 

Referenced by orbitalthread.

int evaluate_grid_avx512f int    numatoms,
const float *    wave_f,
const float *    basis_array,
const float *    atompos,
const int *    atom_basis,
const int *    num_shells_per_atom,
const int *    num_prim_per_shell,
const int *    shell_types,
const int *    numvoxels,
float    voxelsize,
const float *    origin,
int    density,
float *    orbitalgrid
 

Referenced by orbitalthread.

int evaluate_grid_fast wkf_cpu_caps_t   cpucaps,
wkf_threadpool_t   thrpool,
int    numatoms,
const float *    wave_f,
const float *    basis_array,
const float *    atompos,
const int *    atom_basis,
const int *    num_shells_per_atom,
const int *    num_prim_per_shell,
const int *    shell_types,
const int *    numvoxels,
float    voxelsize,
const float *    origin,
int    density,
float *    orbitalgrid
 

Definition at line 2120 of file Orbital.C.

References orbthrparms::atom_basis, orbthrparms::atompos, orbthrparms::basis_array, orbthrparms::cpucaps, orbthrparms::density, wkf_tasktile_struct::end, orbthrparms::num_prim_per_shell, orbthrparms::num_shells_per_atom, orbthrparms::numatoms, orbthrparms::numvoxels, orbthrparms::orbitalgrid, orbitalthread, orbthrparms::origin, orbthrparms::shell_types, wkf_tasktile_struct::start, VMDORBUSETHRPOOL, orbthrparms::voxelsize, orbthrparms::wave_f, wkf_threadlaunch, wkf_threadpool_launch, and wkf_threadpool_sched_dynamic.

int evaluate_grid_neon int    numatoms,
const float *    wave_f,
const float *    basis_array,
const float *    atompos,
const int *    atom_basis,
const int *    num_shells_per_atom,
const int *    num_prim_per_shell,
const int *    shell_types,
const int *    numvoxels,
float    voxelsize,
const float *    origin,
int    density,
float *    orbitalgrid
 

Referenced by orbitalthread.

int evaluate_grid_sve int    numatoms,
const float *    wave_f,
const float *    basis_array,
const float *    atompos,
const int *    atom_basis,
const int *    num_shells_per_atom,
const int *    num_prim_per_shell,
const int *    shell_types,
const int *    numvoxels,
float    voxelsize,
const float *    origin,
int    density,
float *    orbitalgrid
 

Definition at line 350 of file Orbital_SVE.C.

References Orbital::evaluate_grid_point, and threshold.

void* orbitalthread void *    voidparms
 

Definition at line 1925 of file Orbital.C.

References orbthrparms::atom_basis, orbthrparms::atompos, orbthrparms::basis_array, CPU_ARM64_ASIMD, CPU_ARM64_SVE, CPU_AVX2, CPU_AVX512ER, CPU_AVX512F, orbthrparms::cpucaps, orbthrparms::density, wkf_tasktile_struct::end, evaluate_grid, evaluate_grid_avx2, evaluate_grid_avx512er, evaluate_grid_avx512f, evaluate_grid_neon, evaluate_grid_sve, wkf_cpu_caps_struct::flags, NULL, orbthrparms::num_prim_per_shell, orbthrparms::num_shells_per_atom, orbthrparms::numatoms, orbthrparms::numvoxels, orbthrparms::orbitalgrid, orbthrparms::origin, orbthrparms::shell_types, wkf_tasktile_struct::start, orbthrparms::voxelsize, orbthrparms::wave_f, WKF_SCHED_DONE, wkf_threadlaunch_getdata, wkf_threadlaunch_next_tile, wkf_threadpool_next_tile, and wkf_threadpool_worker_getdata.

Referenced by evaluate_grid_fast.


Variable Documentation

const float C1 = 0.693359375f [static]
 

Definition at line 909 of file Orbital.C.

Referenced by cephesfastexpf.

const float C2 = -2.12194440e-4f [static]
 

Definition at line 910 of file Orbital.C.

Referenced by cephesfastexpf.

const float LOG2EF = 1.44269504088896341f [static]
 

Definition at line 908 of file Orbital.C.

Referenced by cephesfastexpf.

const float MAXLOGF = 88.72283905206835f [static]
 

Definition at line 906 of file Orbital.C.

Referenced by cephesfastexpf.

const float MAXNUMF = 3.4028234663852885981170418348451692544e38f [static]
 

Definition at line 905 of file Orbital.C.

Referenced by cephesfastexpf.

const float MINLOGF = -103.278929903431851103f [static]
 

Definition at line 907 of file Orbital.C.

Referenced by cephesfastexpf.


Generated on Fri Mar 29 02:46:46 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002