28#ifndef _chemistry_qc_basis_intparams_h
29#define _chemistry_qc_basis_intparams_h
33#include <util/state/state.h>
34#include <util/state/statein.h>
35#include <util/state/stateout.h>
48 void set_position(
double*);
49 void set_vector(
double*);
57 const double *charges_;
58 const double *
const*positions_;
59 double *alloced_charges_;
60 double **alloced_positions_;
66 const double *
const*positions,
const double *charges,
70 int ncharges()
const {
return ncharges_; }
71 const double *charges()
const {
return charges_; }
72 const double *
const*positions()
const {
return positions_; }
91 template <
typename T>
const T* downcast(
const IntParams& p)
const {
92 const T* castptr =
dynamic_cast<const T*
>(&p);
97 unsigned int nparams_;
102 inline bool operator==(
const IntParams& p1,
const IntParams& p2) {
122 template <
typename Real>
explicit IntParamsOrigin(
const Real* O) : O_(3) {
123 std::copy(O, O+3, O_.begin());
129 const double* r()
const;
130 double r(
unsigned int xyz)
const;
133 std::vector<double> O_;
148 typedef std::vector<PrimitiveGeminal> ContractedGeminal;
158 const ContractedGeminal& ket);
164 const ContractedGeminal& bra()
const;
165 const ContractedGeminal& ket()
const;
169 static ContractedGeminal product(
const ContractedGeminal& A,
170 const ContractedGeminal& B);
176 static double null_exponent;
178 ContractedGeminal bra_;
179 ContractedGeminal ket_;
Definition intparams.h:40
Used to pass params to Integral::g12().
Definition intparams.h:144
std::pair< double, double > PrimitiveGeminal
std::pair< g, c > as in c * exp( - g*r12^2)
Definition intparams.h:147
IntParamsG12(const ContractedGeminal &bra, const ContractedGeminal &ket)
Request integrals with 2 geminals (g12*g12', [g12,[T1,g12']], [Ti,g12*g12'])
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
IntParamsG12(const ContractedGeminal &bra)
Request integrals with only 1 geminal (g12, g12/r12, [Ti,g12])
static ContractedGeminal zero_exponent_geminal
1 = e^(-0.0 * r_{12}^2)
Definition intparams.h:150
static ContractedGeminal null_geminal
null (i.e., invalid) geminal
Definition intparams.h:152
Passes params to Integral::dipole() and other factory methods which need r information.
Definition intparams.h:118
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
Passes params to Integral::electron_repulsion() and other factory methods which do not need parameter...
Definition intparams.h:107
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
This class passes optional operator parameters.
Definition intparams.h:80
unsigned int nparams() const
Some IntParams implementations can have a variable number of params; otherwise this will return 0.
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
Definition intparams.h:54
The base class for all reference counted objects.
Definition ref.h:192
Base class for objects that can save/restore state.
Definition state.h:45
Restores fundamental and user-defined types from images created with StateOut.
Definition statein.h:79
Serializes fundamental and user-defined types.
Definition stateout.h:71
SpinCase1 other(SpinCase1 S)
given 1-spin return the other 1-spin
bool operator==(const Atom &a, const Atom &b)
Contains all MPQC code up to version 3.
Definition mpqcin.h:14