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

Orbital Class Reference

The Orbital class, which stores orbitals, SCF energies, etc. for a single timestep. More...

#include <Orbital.h>

List of all members.

Public Methods

 Orbital (const float *atompos, const float *wave_function, const float *basis, const basis_atom_t *bset, const int *types, const int *atom_sort, const int *atom_basis, const float **norm_factors, const int *num_shells_per_atom, const int *num_prim_per_shell, const int *orbital_symmetry, int numatoms, int numtypes, int num_wave_f, int num_basis_funcs, int orbid)
 constructor. More...

 ~Orbital (void)
 destructor. More...

int total_shells ()
int num_types (void)
int max_primitives (void)
 Return the max number of primitives that occur in a basis function. More...

int max_shell_type (void)
 Return maximum shell type contained in the orbital. More...

int max_wave_f_count (void)
 Count the max number of wave_f accesses for the shell types contained in this orbital. More...

const float * get_origin ()
 Get the grid origin. More...

const float * get_gridsize ()
 Get the side lengths of the grid in Angstrom. More...

const int * get_numvoxels ()
 Get the number of voxels in each dimension. More...

void get_grid_axes (float xaxis[3], float yaxis[3], float zaxis[3])
 Get the axes of the volumetric grid as defined in volumetric_t. More...

float get_resolution ()
 Get the grid resolution, i.e. the side length of a voxel. More...

void set_grid (float newori[3], float newdim[3], float voxelsize)
 Set the grid size and resolution The given grid dimensions will be rounded to a multiple of the voxel size. More...

void set_resolution (float voxelsize)
 Change the resolution of the grid. More...

float * get_grid_data ()
 Get a pointer to the raw volumetric data. More...

int set_grid_to_bbox (const float *pos, float padding, float resolution)
 Sets the grid dimensions to the bounding box of the given set of atoms *pos including a padding in all dimensions. The resulting grid dimensions will be rounded to a multiple of the voxel size. More...

void find_optimal_grid (float threshold, int minstepsize, int maxstepsize)
 Optimize position and dimension of current grid so that all orbital values higher than threshold are contained in the grid. More...

int check_plane (int w, float threshold, int minstepsize, int &stepsize)
 Check if all values in the boundary plane given by dir are below threshold. If not, jump back, decrease the stepsize and test again. Helper function for find_optimal_grid(). More...

void normalize_wavefunction (const float *wfn)
 Multiply wavefunction coefficients with the basis set normalization factors. More...

int calculate_mo (DrawMolecule *mol, int density)
 Compute the volumetric data for the orbital. More...

float evaluate_grid_point (float grid_x, float grid_y, float grid_z)
 Compute the volumetric data for given point in space. More...

double flops_per_gridpoint ()
 Compute total FLOPS executed for a single gridpoint. More...

void print_wavefunction ()


Detailed Description

The Orbital class, which stores orbitals, SCF energies, etc. for a single timestep.

Definition at line 31 of file Orbital.h.


Constructor & Destructor Documentation

Orbital::Orbital const float *    atompos,
const float *    wave_function,
const float *    basis,
const basis_atom_t   bset,
const int *    types,
const int *    atom_sort,
const int *    atom_basis,
const float **    norm_factors,
const int *    num_shells_per_atom,
const int *    num_prim_per_shell,
const int *    orbital_symmetry,
int    numatoms,
int    numtypes,
int    num_wave_f,
int    num_basis_funcs,
int    orbid
 

constructor.

Definition at line 167 of file Orbital.C.

References normalize_wavefunction, and NULL.

Orbital::~Orbital void   
 

destructor.

Definition at line 207 of file Orbital.C.


Member Function Documentation

int Orbital::calculate_mo DrawMolecule   mol,
int    density
 

Compute the volumetric data for the orbital.

Definition at line 501 of file Orbital.C.

References DrawMolecule::app, CPU_AVX2, CPU_AVX512ER, CPU_AVX512F, DrawMolecule::cpu_threadpool, VMDApp::cpucaps, DrawMolecule::cuda_devpool, evaluate_grid_fast, wkf_cpu_caps_struct::flags, flops_per_gridpoint, G_SHELL, max_primitives, max_shell_type, NULL, PROFILE_POP_RANGE, PROFILE_PUSH_RANGE, total_shells, VECPADMASK, vmd_cl_get_platform_index, vmd_cuda_evaluate_orbital_grid, vmd_opencl_create_orbital_handle, vmd_opencl_destroy_orbital_handle, vmd_opencl_evaluate_orbital_grid, VMDORBUSETHRPOOL, wkf_thread_numprocessors, wkf_timer_create, wkf_timer_destroy, wkf_timer_start, wkf_timer_stop, wkf_timer_time, and wkf_timerhandle.

int Orbital::check_plane int    w,
float    threshold,
int    minstepsize,
int &    stepsize
 

Check if all values in the boundary plane given by dir are below threshold. If not, jump back, decrease the stepsize and test again. Helper function for find_optimal_grid().

Definition at line 335 of file Orbital.C.

References threshold.

Referenced by find_optimal_grid.

float Orbital::evaluate_grid_point float    grid_x,
float    grid_y,
float    grid_z
 

Compute the volumetric data for given point in space.

Definition at line 718 of file Orbital.C.

References ANGS_TO_BOHR.

Referenced by evaluate_grid_sve.

void Orbital::find_optimal_grid float    threshold,
int    minstepsize,
int    maxstepsize
 

Optimize position and dimension of current grid so that all orbital values higher than threshold are contained in the grid.

Definition at line 439 of file Orbital.C.

References check_plane, threshold, XNEG, XPOS, YNEG, YPOS, ZNEG, and ZPOS.

double Orbital::flops_per_gridpoint  
 

Compute total FLOPS executed for a single gridpoint.

Definition at line 854 of file Orbital.C.

References D_SHELL, F_SHELL, G_SHELL, P_SHELL, and S_SHELL.

Referenced by calculate_mo.

void Orbital::get_grid_axes float    xaxis[3],
float    yaxis[3],
float    zaxis[3]
[inline]
 

Get the axes of the volumetric grid as defined in volumetric_t.

Definition at line 130 of file Orbital.h.

float* Orbital::get_grid_data   [inline]
 

Get a pointer to the raw volumetric data.

Definition at line 149 of file Orbital.h.

const float* Orbital::get_gridsize   [inline]
 

Get the side lengths of the grid in Angstrom.

Definition at line 124 of file Orbital.h.

const int* Orbital::get_numvoxels   [inline]
 

Get the number of voxels in each dimension.

Definition at line 127 of file Orbital.h.

const float* Orbital::get_origin   [inline]
 

Get the grid origin.

Definition at line 121 of file Orbital.h.

float Orbital::get_resolution   [inline]
 

Get the grid resolution, i.e. the side length of a voxel.

Definition at line 138 of file Orbital.h.

int Orbital::max_primitives void   
 

Return the max number of primitives that occur in a basis function.

Definition at line 786 of file Orbital.C.

Referenced by calculate_mo.

int Orbital::max_shell_type void   
 

Return maximum shell type contained in the orbital.

Definition at line 805 of file Orbital.C.

Referenced by calculate_mo.

int Orbital::max_wave_f_count void   
 

Count the max number of wave_f accesses for the shell types contained in this orbital.

Definition at line 826 of file Orbital.C.

void Orbital::normalize_wavefunction const float *    wfn
 

Multiply wavefunction coefficients with the basis set normalization factors.

Definition at line 220 of file Orbital.C.

References shell_t::num_cart_func, basis_atom_t::numshells, basis_atom_t::shell, and shell_t::type.

Referenced by Orbital.

int Orbital::num_types void    [inline]
 

Definition at line 108 of file Orbital.h.

void Orbital::print_wavefunction  
 

Definition at line 2173 of file Orbital.C.

References basis_atom_t::shell, and shell_t::type.

void Orbital::set_grid float    newori[3],
float    newdim[3],
float    voxelsize
 

Set the grid size and resolution The given grid dimensions will be rounded to a multiple of the voxel size.

Definition at line 305 of file Orbital.C.

References set_resolution.

int Orbital::set_grid_to_bbox const float *    pos,
float    padding,
float    resolution
 

Sets the grid dimensions to the bounding box of the given set of atoms *pos including a padding in all dimensions. The resulting grid dimensions will be rounded to a multiple of the voxel size.

Definition at line 264 of file Orbital.C.

References set_resolution.

void Orbital::set_resolution float    voxelsize
 

Change the resolution of the grid.

Definition at line 316 of file Orbital.C.

Referenced by set_grid, and set_grid_to_bbox.

int Orbital::total_shells   [inline]
 

Definition at line 97 of file Orbital.h.

Referenced by calculate_mo.


The documentation for this class was generated from the following files:
Generated on Thu Apr 18 02:47:18 2024 for VMD (current) by doxygen1.2.14 written by Dimitri van Heesch, © 1997-2002