namespace ewalena  0.2.15
ewalena is not an acronym
include/ewalena/numerics/basis_sto.h
Go to the documentation of this file.
00001 // -------------------------------------------------------------------
00002 // @author Toby D. Young
00003 // @version $Id: basis_sto.h 702 2012-02-13 02:08:58Z oneliefleft $
00004 //
00005 // Copyright 2012 namespace ewalena authors. All rights reserved.
00006 //
00007 // Redistribution and use in source and binary forms, with or without
00008 // modification, are permitted provided that the following conditions
00009 // are met:
00010 //
00011 // 1. Redistributions of source code must retain the above copyright
00012 //    notice, this list of conditions and the following disclaimer.
00013 //
00014 // 2. Redistributions in binary form must reproduce the above
00015 //    copyright notice, this list of conditions and the following
00016 //    disclaimer in the documentation and/or other materials provided
00017 //    with the distribution.
00018 //
00019 // THIS SOFTWARE IS PROVIDED BY THE NAMEPSACE EWALENA AUTHORS ``AS
00020 // IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
00021 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
00022 // FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
00023 // NAMESPACE EWALENA AUTHORS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
00024 // INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
00025 // (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
00026 // SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
00027 // HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
00028 // STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
00029 // ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
00030 // OF THE POSSIBILITY OF SUCH DAMAGE.
00031 //
00032 // The views and conclusions contained in the software and
00033 // documentation are those of the authors and should not be
00034 // interpreted as representing official policies, either expressed or
00035 // implied, of the namespace ewalena authors.
00036 // -------------------------------------------------------------------
00037 
00038 #include <ewalena/numerics/basis_base.h>
00039 
00040 #ifndef __ewalena_basis_sto_h
00041 #define __ewalena_basis_sto_h
00042 
00043 #ifdef EWALENA_HAVE_CONFIG_H
00044 #include <ewalena/base/config.h>
00045 #endif
00046 
00047 #include <ewalena/base/utilities.h>
00048 #include <ewalena/base/orbital_type.h>
00049 #include <ewalena/numerics/spherical_harmonic_function.h>
00050 
00051 
00052 namespace ewalena
00053 {
00066   template <int dim, typename ValueType = double>
00067     class SlaterTypeOrbital
00068     : 
00069     public BasisBase<dim, ValueType> 
00070     {
00071     public:
00072     
00077     SlaterTypeOrbital () /* const unsigned int n_contractions */
00078     :
00079     BasisBase<3, ValueType> (BasisData<ValueType> ("Slater-type orbital"))
00080     {};
00081     
00085     ~SlaterTypeOrbital ();
00086     
00091     void reinit_alpha (const ValueType &alpha);
00092     
00096     ValueType value (const OrbitalType           &orbital,
00097                      const Point<dim, ValueType> &p);
00098     
00102     ValueType radial_value (const OrbitalType           &orbital,
00103                             const Point<dim, ValueType> &p) const;
00104     
00108     ValueType radial_grad (const Point<dim, ValueType> &p) const;
00109     
00113     ValueType radial_laplacian (const Point<dim, ValueType> &p) const;
00114     
00118     ValueType alpha () const;
00119     
00120     private:
00121     
00125     ValueType __alpha;
00126     
00127     
00128     }; /* SlaterTypeOrbital */
00129 
00130 
00131   /*-------------- Inline and Other Functions -----------------------*/
00132   
00133 } /* namespace ewalena */
00134 
00135 #endif /* __ewalena_basis_gto_h */
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines