00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
#ifdef __GNUC__
00029
#pragma interface
00030
#endif
00031
00032
#ifndef _chemistry_qc_basis_dercent_h
00033
#define _chemistry_qc_basis_dercent_h
00034
00035
#include <chemistry/qc/basis/basis.h>
00036
00037
namespace sc {
00038
00041 class DerivCenters {
00042
private:
00043
int center_[4];
00044
int atom_[4];
00045
int ncenter_;
00046
int omitted_center_;
00047
int omitted_atom_;
00048
public:
00051
DerivCenters();
00053
void clear();
00055
void add_center(
int center,
const Ref<GaussianBasisSet> &,
int shell);
00057
void add_omitted(
int center,
const Ref<GaussianBasisSet> &,
int shell);
00059
void add_center(
int center,
int atom);
00061
void add_omitted(
int center,
int atom);
00062
00064 int n()
const {
return ncenter_; }
00066 int center(
int i)
const {
return center_[i]; }
00068 int atom(
int i)
const {
return atom_[i]; }
00070 int omitted_center()
const {
return omitted_center_; }
00072 int has_omitted_center()
const {
return omitted_center_ >= 0; }
00074 int omitted_atom()
const {
return omitted_atom_; }
00075 };
00076
00077 }
00078
00079
#endif
00080
00081
00082
00083
00084