28 #ifndef _chemistry_qc_wfn_wfn_h
29 #define _chemistry_qc_wfn_wfn_h
33 #include <util/misc/compute.h>
34 #include <math/scmat/matrix.h>
35 #include <math/scmat/vector3.h>
36 #include <chemistry/molecule/energy.h>
37 #include <chemistry/qc/basis/basis.h>
38 #include <chemistry/qc/basis/integral.h>
39 #include <chemistry/qc/basis/orthog.h>
40 #include <chemistry/qc/wfn/orbitalspace.h>
41 #ifdef MPQC_NEW_FEATURES
42 #include <util/misc/xml.h>
43 #endif // MPQC_NEW_FEATURES
73 double * atom_basis_coef_;
85 mutable double magnetic_moment_;
89 void set_up_charge_types(std::vector<int> &q_pc,
90 std::vector<int> &q_cd,
91 std::vector<int> &n_pc,
92 std::vector<int> &n_cd);
94 double nuc_rep_pc_pc(
const std::vector<int>&,
const std::vector<int>&,
bool);
95 double nuc_rep_pc_cd(
const std::vector<int>&,
const std::vector<int>&);
96 double nuc_rep_cd_cd(
const std::vector<int>&,
const std::vector<int>&,
bool);
97 void scale_atom_basis_coef();
99 void nuc_rep_grad_pc_pc(
double **grad,
100 const std::vector<int>&c1,
101 const std::vector<int>&c2,
103 void nuc_rep_grad_pc_cd(
double **grad,
104 const std::vector<int>&c1,
105 const std::vector<int>&c2);
106 void nuc_rep_grad_cd_cd(
double **grad,
107 const std::vector<int>&c1,
108 const std::vector<int>&c2,
133 bool nonzero_efield_supported()
const;
139 double min_orthog_res();
140 double max_orthog_res();
182 #ifdef MPQC_NEW_FEATURES
183 virtual boost::property_tree::ptree& write_xml(boost::property_tree::ptree& parent,
const XMLWriter& writer);
187 double density_gradient(
const SCVector3&,
double*);
188 double natural_orbital(
const SCVector3& r,
int iorb);
189 double natural_orbital_density(
const SCVector3& r,
190 int orb,
double* orbval = 0);
196 const std::vector<SCVector3>& r,
197 std::vector<double>& values);
199 double orbital_density(
const SCVector3& r,
232 int dk()
const {
return dk_; }
const double * atom_basis_coef() const
Returns the coefficients of the nuclear charge distribution basis functions.
virtual RefSCMatrix natural_orbitals()
Returns the natural orbitals, in SO basis.
virtual RefSCMatrix nao(double *atom_charges=0)
returns the ao to nao transformation matrix
Ref< GaussianBasisSet > atom_basis() const
Returns the basis set describing the nuclear charge distributions.
virtual double magnetic_moment() const
Computes the S (or J) magnetic moment of the target state(s), in units of .
The RefSymmSCMatrix class is a smart pointer to an SCSymmSCMatrix specialization.
Definition: matrix.h:265
double lindep_tol() const
Returns the tolerance for linear dependencies.
OrthogMethod
An enum for the types of orthogonalization.
Definition: orthog.h:42
The RefSCMatrix class is a smart pointer to an SCMatrix specialization.
Definition: matrix.h:135
A template class that maintains references counts.
Definition: ref.h:361
Ref< Integral > integral()
Returns the integral evaluator.
virtual RefSymmSCMatrix beta_ao_density()
Return beta electron densities in the AO basis.
virtual RefSymmSCMatrix beta_density()
Return beta electron densities in the SO basis.
A Wavefunction is a MolecularEnergy that utilizies a GaussianBasisSet.
Definition: wfn.h:52
RefSCMatrix so_to_orthog_so()
Returns a matrix which does the default transform from SO's to orthogonal SO's.
virtual RefSymmSCMatrix core_hamiltonian()
Returns the SO core Hamiltonian.
The RefDiagSCMatrix class is a smart pointer to an DiagSCMatrix specialization.
Definition: matrix.h:389
virtual double nuclear_repulsion_energy()
Returns the nuclear repulsion energy.
RefSCDimension so_dimension()
Symmetry adapted orbital dimension.
Ref< SCMatrixKit > basis_matrixkit()
Matrix kit for AO, SO, orthogonalized SO, and MO dimensioned matrices.
void symmetry_changed()
Call this if you have changed the molecular symmetry of the molecule contained by this MolecularEnerg...
virtual RefSymmSCMatrix ao_density()
Returns the AO density.
virtual RefDiagSCMatrix natural_density()
Returns the natural density (a diagonal matrix).
virtual RefSymmSCMatrix alpha_ao_density()
Return alpha electron densities in the AO basis.
int dk() const
Returns the level the of the Douglas-Kroll approximation.
Definition: wfn.h:232
The RefSCDimension class is a smart pointer to an SCDimension specialization.
Definition: dim.h:152
int spin_polarized()
Return 1 if the magnetic moment != 0.
Definition: wfn.h:229
void obsolete()
Marks all results as being out of date.
The MolecularEnergy abstract class inherits from the Function class.
Definition: energy.h:50
void writeorbitals()
output orbitals to some files to facilitate plotting, with the help of the WriteOrbital class.
void nuclear_repulsion_energy_gradient(double *g)
Computes the nuclear repulsion gradient.
Ref< GaussianBasisSet > basis() const
Returns the basis set.
virtual RefSymmSCMatrix core_hamiltonian_for_basis(const Ref< GaussianBasisSet > &bas, const Ref< GaussianBasisSet > &pbas=0)
Returns the SO core Hamiltonian in the given basis and momentum basis.
virtual RefSymmSCMatrix alpha_density()
Return alpha electron densities in the SO basis.
void set_lindep_tol(double)
Re(Sets) the tolerance for linear dependencies.
RefSCDimension ao_dimension()
Atomic orbital dimension.
virtual void set_orthog_method(const OverlapOrthog::OrthogMethod &)
(Re)Sets the orthogonalization method and makes this obsolete.
OverlapOrthog::OrthogMethod orthog_method() const
Returns the orthogonalization method.
The RefSCVector class is a smart pointer to an SCVector specialization.
Definition: matrix.h:55
Ref< Molecule > molecule() const
Returns the Molecule.
Definition: stateout.h:71
Definition: xmlwriter.h:215
void save_data_state(StateOut &)
Save the base classes (with save_data_state) and the members in the same order that the StateIn CTOR ...
virtual RefSymmSCMatrix overlap()
Returns the SO overlap matrix.
double total_charge() const
Returns the total charge of the system.
a 3-element version of SCVector
Definition: vector3.h:43
static std::ostream & out0()
Return an ostream that writes from node 0.
virtual int nelectron()=0
Returns the number of electrons.
RefSCDimension oso_dimension()
Orthogonalized symmetry adapted orbital dimension.
RefSCMatrix so_to_orthog_so_inverse()
Returns the inverse of the transformation returned by so_to_orthog_so.
Ref< GaussianBasisSet > momentum_basis() const
Returns the basis used for p^2 in the DK correction.
virtual RefSymmSCMatrix density()=0
Returns the SO density.
Contains all MPQC code up to version 3.
Definition: mpqcin.h:14
void print(std::ostream &=ExEnv::out0()) const
Print information about the object.
Generated at Sun Jan 26 2020 23:24:00 for MPQC
3.0.0-alpha using the documentation package Doxygen
1.8.16.