00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef included_MPQC_GaussianBasis_Molecular_Impl_hh
00014 #define included_MPQC_GaussianBasis_Molecular_Impl_hh
00015
00016 #ifndef included_sidl_cxx_hh
00017 #include "sidl_cxx.hh"
00018 #endif
00019 #ifndef included_MPQC_GaussianBasis_Molecular_IOR_h
00020 #include "MPQC_GaussianBasis_Molecular_IOR.h"
00021 #endif
00022
00023
00024
00025 #ifndef included_Chemistry_Molecule_hh
00026 #include "Chemistry_Molecule.hh"
00027 #endif
00028 #ifndef included_Chemistry_QC_GaussianBasis_AngularType_hh
00029 #include "Chemistry_QC_GaussianBasis_AngularType.hh"
00030 #endif
00031 #ifndef included_Chemistry_QC_GaussianBasis_Atomic_hh
00032 #include "Chemistry_QC_GaussianBasis_Atomic.hh"
00033 #endif
00034 #ifndef included_MPQC_GaussianBasis_Molecular_hh
00035 #include "MPQC_GaussianBasis_Molecular.hh"
00036 #endif
00037 #ifndef included_sidl_BaseInterface_hh
00038 #include "sidl_BaseInterface.hh"
00039 #endif
00040 #ifndef included_sidl_ClassInfo_hh
00041 #include "sidl_ClassInfo.hh"
00042 #endif
00043
00044
00045
00046 #include <chemistry/qc/basis/basis.h>
00047 #include <Chemistry_Chemistry_Molecule.hh>
00048 #include <MPQC_GaussianBasis_Atomic_Impl.hh>
00049 using namespace std;
00050 using namespace Chemistry::QC::GaussianBasis;
00051 using namespace Chemistry;
00052 using namespace sc;
00053
00054
00055 namespace MPQC {
00056
00060 class GaussianBasis_Molecular_impl
00061
00062
00073
00074
00075 {
00076
00077 private:
00078
00079
00080 GaussianBasis_Molecular self;
00081
00082
00083 GaussianBasisSet *gbs_ptr_;
00084 Ref<GaussianBasisSet> sc_gbs_;
00085 string label_;
00086 AngularType angular_type_;
00087 Chemistry_Molecule molecule_;
00088 MPQC::GaussianBasis_Atomic *atomic_array_;
00089 int natom_;
00090
00091
00092 private:
00093
00094 GaussianBasis_Molecular_impl()
00095 {}
00096
00097 public:
00098
00099
00100
00101 GaussianBasis_Molecular_impl( struct MPQC_GaussianBasis_Molecular__object *
00102 s ) : self(s,true) { _ctor(); }
00103
00104
00105 void _ctor();
00106
00107
00108 virtual ~GaussianBasis_Molecular_impl() { _dtor(); }
00109
00110
00111 void _dtor();
00112
00113
00114 static void _load();
00115
00116 public:
00117
00121 void
00122 initialize (
00123 void* scbasis,
00124 const ::std::string& label
00125 )
00126 throw ()
00127 ;
00128
00132 void*
00133 sc_gbs_pointer() throw ()
00134 ;
00135
00140 ::std::string
00141 get_label() throw ()
00142 ;
00143
00148 int64_t
00149 get_n_basis() throw ()
00150 ;
00151
00156 int64_t
00157 get_n_shell() throw ()
00158 ;
00159
00164 int64_t
00165 get_max_angular_momentum() throw ()
00166 ;
00167
00172 ::Chemistry::QC::GaussianBasis::AngularType
00173 get_angular_type() throw ()
00174 ;
00175
00181 ::Chemistry::QC::GaussianBasis::Atomic
00182 get_atomic (
00183 int64_t atomnum
00184 )
00185 throw ()
00186 ;
00187
00188
00193 ::Chemistry::Molecule
00194 get_molecule() throw ()
00195 ;
00196
00200 void
00201 print_molecular() throw ()
00202 ;
00203 };
00204
00205 }
00206
00207
00208
00209
00210
00211 #endif