MADNESS  version 0.9
DFcode/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_ATOMUTIL_H
37 #define MADNESS_ATOMUTIL_H
38 
39 #include <string>
40 
43 
44 struct AtomicData {
45  // !!! The order of declaration here must match the order in the initializer !!!
46 
47  // Nuclear info from L. Visscher and K.G. Dyall, Dirac-Fock
48  // atomic electronic structure calculations using different
49  // nuclear charge distributions, Atom. Data Nucl. Data Tabl., 67,
50  // (1997), 207.
51  //
52  // http://dirac.chem.sdu.dk/doc/FiniteNuclei/FiniteNuclei.shtml
53  const char* const symbol;
54  const char* const symbol_lowercase;
55  const unsigned int atomic_number;
56  const int isotope_number;
57  const double nuclear_radius;
60 
62  const double covalent_radius;
63 };
64 
65 const AtomicData& get_atomic_data(unsigned int atn);
66 
67 unsigned int symbol_to_atomic_number(const std::string& symbol);
68 
69 double smoothing_parameter(double Z, double eprec);
70 double smoothed_potential(double r);
71 double dsmoothed_potential(double r);
72 double smoothed_density(double r);
73 
74 #endif
75 
const AtomicData & get_atomic_data(unsigned int atn)
Definition: chem/atomutil.cc:160
const char *const symbol_lowercase
Definition: DFcode/atomutil.h:54
double dsmoothed_potential(double r)
Derivative of the regularized 1/r potential.
Definition: chem/atomutil.cc:306
::std::string string
Definition: gtest-port.h:872
double smoothing_parameter(double Z, double eprec)
Returns radius for smoothing nuclear potential with energy precision eprec.
Definition: chem/atomutil.cc:176
const double covalent_radius
Covalent radii stolen without shame from NWChem.
Definition: DFcode/atomutil.h:62
Definition: DFcode/atomutil.h:44
const double nuclear_radius
Radius of the nucleus for the finite nucleus models (in atomic units).
Definition: DFcode/atomutil.h:57
double smoothed_density(double r)
Charge density corresponding to smoothed 1/r potential.
Definition: chem/atomutil.cc:420
const unsigned int atomic_number
Definition: DFcode/atomutil.h:55
double smoothed_potential(double r)
Smoothed 1/r potential.
Definition: chem/atomutil.cc:193
const double nuclear_gaussian_exponent
Exponential parameter in the Gaussian Model (in atomic units).
Definition: DFcode/atomutil.h:59
const double nuclear_half_charge_radius
Half charge radius in the Fermi Model (in atomic units).
Definition: DFcode/atomutil.h:58
unsigned int symbol_to_atomic_number(const std::string &symbol)
Definition: chem/atomutil.cc:166
const char *const symbol
Definition: DFcode/atomutil.h:53
const int isotope_number
Definition: DFcode/atomutil.h:56