MADNESS 0.10.1
atomutil.h
Go to the documentation of this file.
1/*
2 This file is part of MADNESS.
3
4 Copyright (C) 2007,2010 Oak Ridge National Laboratory
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10
11 This program is distributed in the hope that it will be useful,
12 but WITHOUT ANY WARRANTY; without even the implied warranty of
13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14 GNU General Public License for more details.
15
16 You should have received a copy of the GNU General Public License
17 along with this program; if not, write to the Free Software
18 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19
20 For more information please contact:
21
22 Robert J. Harrison
23 Oak Ridge National Laboratory
24 One Bethel Valley Road
25 P.O. Box 2008, MS-6367
26
27 email: harrisonrj@ornl.gov
28 tel: 865-241-3937
29 fax: 865-572-0680
30
31
32 $Id$
33*/
34
35
36#ifndef MADNESS_CHEM_ATOMUTIL_H__INCLUDED
37#define MADNESS_CHEM_ATOMUTIL_H__INCLUDED
38
39#include <string>
40
41/// \file atomutil.h
42/// \brief Declaration of utility class and functions for atom
43
44namespace madness {
45struct AtomicData {
46 // !!! The order of declaration here must match the order in the initializer !!!
47
48 // Nuclear info from L. Visscher and K.G. Dyall, Dirac-Fock
49 // atomic electronic structure calculations using different
50 // nuclear charge distributions, Atom. Data Nucl. Data Tabl., 67,
51 // (1997), 207.
52 //
53 // http://dirac.chem.sdu.dk/doc/FiniteNuclei/FiniteNuclei.shtml
54 const char* const symbol;
55 const char* const symbol_lowercase;
56 const unsigned int atomic_number;
57 const int isotope_number;
58 const double nuclear_radius; ///< Radius of the nucleus for the finite nucleus models (in atomic units).
59 const double nuclear_half_charge_radius; ///< Half charge radius in the Fermi Model (in atomic units).
60 const double nuclear_gaussian_exponent; ///< Exponential parameter in the Gaussian Model (in atomic units).
61
62 /// Covalent radii stolen without shame from NWChem
63 const double covalent_radius;
64 const double mass; ///< the atomic mass
65
66
67};
68
69const AtomicData& get_atomic_data(unsigned int atn);
70
71unsigned int symbol_to_atomic_number(const std::string& symbol);
72std::string atomic_number_to_symbol(const unsigned int atomic_number);
73
74bool check_if_pseudo_atom(const std::string& symbol);
75
76double smoothing_parameter(double Z, double eprec);
77double smoothed_potential(double r);
78double dsmoothed_potential(double r);
79double d2smoothed_potential(double r);
80double smoothed_density(double r);
81}
82#endif
83
static const double eprec
Definition hatom_sf_dirac.cc:18
Namespace for all elements and tools of MADNESS.
Definition DFParameters.h:10
double smoothed_potential(double r)
Smoothed 1/r potential.
Definition atomutil.cc:220
double dsmoothed_potential(double r)
Derivative of the regularized 1/r potential.
Definition atomutil.cc:333
double smoothing_parameter(double Z, double eprec)
Returns radius for smoothing nuclear potential with energy precision eprec.
Definition atomutil.cc:203
double d2smoothed_potential(double r)
second radial derivative of the regularized 1/r potential
Definition atomutil.cc:448
const AtomicData & get_atomic_data(unsigned int atomic_number)
Definition atomutil.cc:167
double smoothed_density(double r)
Charge density corresponding to smoothed 1/r potential.
Definition atomutil.cc:475
unsigned int symbol_to_atomic_number(const std::string &symbol)
Definition atomutil.cc:173
std::string atomic_number_to_symbol(const unsigned int atomic_number)
return the lower-case element symbol corresponding to the atomic number
Definition atomutil.cc:188
bool check_if_pseudo_atom(const std::string &symbol)
Definition atomutil.cc:193
static double Z
Definition rk.cc:35
Definition atomutil.h:45
const int isotope_number
Definition atomutil.h:57
const double nuclear_half_charge_radius
Half charge radius in the Fermi Model (in atomic units).
Definition atomutil.h:59
const double covalent_radius
Covalent radii stolen without shame from NWChem.
Definition atomutil.h:63
const double nuclear_radius
Radius of the nucleus for the finite nucleus models (in atomic units).
Definition atomutil.h:58
const double nuclear_gaussian_exponent
Exponential parameter in the Gaussian Model (in atomic units).
Definition atomutil.h:60
const double mass
the atomic mass
Definition atomutil.h:64
const char *const symbol_lowercase
Definition atomutil.h:55
const unsigned int atomic_number
Definition atomutil.h:56
const char *const symbol
Definition atomutil.h:54