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 
44 namespace madness {
45 struct 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 
69 const AtomicData& get_atomic_data(unsigned int atn);
70 
71 unsigned int symbol_to_atomic_number(const std::string& symbol);
72 std::string atomic_number_to_symbol(const unsigned int atomic_number);
73 
74 bool check_if_pseudo_atom(const std::string& symbol);
75 
76 double smoothing_parameter(double Z, double eprec);
77 double smoothed_potential(double r);
78 double dsmoothed_potential(double r);
79 double d2smoothed_potential(double r);
80 double smoothed_density(double r);
81 }
82 #endif
83 
static const double eprec
Definition: hatom_sf_dirac.cc:18
File holds all helper structures necessary for the CC_Operator and CC2 class.
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