CP2K 2.4 (Revision 12889)
Namespaces | Defines | Functions | Variables

gauss_colloc.f90 File Reference

#include "cp_common_uses.h"
#include "colloc_int_body.f90"
Include dependency graph for gauss_colloc.f90:

Go to the source code of this file.

Namespaces

namespace  gauss_colloc
 

Routines to efficently collocate and integrate gaussians on a grid These use most of Joost's tricks and a couple more... result is *speed* and genericity.


Defines

#define IF_CHECK(x, y)   y
#define FM_FLAT_GRID
#define FMG_INTEGRATE
#define FMG_INTEGRATE_FULL
#define FM_FLAT_GRID
#define FMG_INTEGRATE_FULL

Functions

REAL(dp), public gauss_colloc::calc_max_r2 (poly, poly_shift, alpha, epsilon, error, scale)
 finds square radius of a gaussian time a polynomial with a gaussian in poly_shift (wrt. the reference system of the polynomial)
REAL(dp), public gauss_colloc::calcRadius2 (poly, alpha, epsilon)
 calculates the radius of polynomial times a gaussian in 0,0,0
REAL(dp), public gauss_colloc::sphRad2 (coeff, l, alpha, epsilon)
 finds the largest real solution for r^2 of the equation coeff*r^l*exp(-alpha*r^2)
INTEGER, dimension(2, 0:2), public gauss_colloc::calcBox (h, h_inv, posi, max_r2, periodic, gdim, error, guarantee_nearest)
 finds a box on the grid that contains a sphere of the given radius. If guarantee_nearest is true at least the nearest points on the grid are included by enlarging the radius
subroutine, public gauss_colloc::collocGauss (h, h_inv, grid, poly, alphai, posi, max_r2, periodic, gdim, local_bounds, local_shift, poly_shift, scale, lgrid, error)
 collocate a periodically repeated gaussian on a non orthormbic grid
subroutine, public gauss_colloc::collocGaussFlat (h, h_inv, grid, ngpts, ldim, poly, alphai, posi, max_r2, periodic, gdim, local_bounds, local_shift, poly_shift, scale, error)
 collocate a periodically repeated gaussian on a non orthormbic grid
subroutine, public gauss_colloc::integrateGauss (h, h_inv, grid, poly, alphai, posi, max_r2, periodic, npoly, res, gdim, local_bounds, local_shift, poly_shift, scale, error)
 integrates a gaussian times a polynomial.
subroutine, public gauss_colloc::integrateGaussFull (h, h_inv, grid, poly, alphai, posi, max_r2, periodic, gdim, local_bounds, local_shift, poly_shift, scale, error)
 integrates a gaussian times any polynomial up to a give order.
subroutine, public gauss_colloc::integrateGaussFullFlat (h, h_inv, grid, ngpts, ldim, poly, alphai, posi, max_r2, periodic, gdim, local_bounds, local_shift, poly_shift, scale, error)
 integrates a gaussian times any polynomial up to a give order.
subroutine, public gauss_colloc::collocGauss_safe (h, h_inv, grid, poly, alphai, posi, max_r2, periodic, gdim, local_bounds, local_shift, error)
 collocate a periodically repeated gaussian on a non orthormbic grid (reference function)

Variables

CHARACTER(len=*), parameter,
private 
gauss_colloc::moduleN = 'gauss_colloc'
REAL(dp), parameter gauss_colloc::small = TINY(1.0_dp)
INTEGER(KIND=int_8), parameter gauss_colloc::unused_import_of_int_8 = 1

Define Documentation

#define FM_FLAT_GRID
#define FM_FLAT_GRID
#define FMG_INTEGRATE
#define FMG_INTEGRATE_FULL
#define FMG_INTEGRATE_FULL
#define IF_CHECK (   x,
 
)    y