28#include <util/ref/ref.h>
29#include <math/distarray4/distarray4.h>
30#include <chemistry/qc/basis/intparams.h>
32#ifndef _chemistry_qc_basis_operator_h
33#define _chemistry_qc_basis_operator_h
45 virtual unsigned int num_particles()
const =0;
50 virtual int perm_symm(
unsigned int i,
unsigned int j)
const =0;
63 int perm_symm(
unsigned int i,
unsigned int j)
const;
79 int perm_symm(
unsigned int i,
unsigned int j)
const;
197 static const int size = 1;
199 static std::string key;
202 static const int size = 1;
204 static std::string key;
207 static const int size = 1;
209 static std::string key;
212 static const int size = 1;
214 static std::string key;
217 static const int size = 3;
219 static std::string key;
222 static const int size = 6;
224 static std::string key;
227 static const int size = 1;
229 static std::string key;
232 static const int size = 1;
234 static std::string key;
237 static const int size = 1;
239 static std::string key;
242 static const int size = 3;
244 static std::string key;
247 static const int size = 6;
249 static std::string key;
256 int size()
const {
return size_; }
259 std::string key()
const {
return key_; }
264 size_(size), value_(value), key_(key) { }
370 static const int size = 1;
372 static std::string key;
375 static const int size = 4;
377 static std::string key;
380 static const int size = 6;
382 static std::string key;
385 static const int size = 5;
387 static std::string key;
390 static const int size = 1;
392 static std::string key;
395 static const int size = 1;
397 static std::string key;
400 static const int size = 1;
402 static std::string key;
405 static const int size = 1;
407 static std::string key;
410 static const int size = 1;
412 static std::string key;
424 int size()
const {
return size_; }
427 std::string key()
const {
return key_; }
431 const std::string& key);
Used to pass params to Integral::g12().
Definition intparams.h:144
Passes params to Integral::dipole() and other factory methods which need r information.
Definition intparams.h:118
Passes params to Integral::electron_repulsion() and other factory methods which do not need parameter...
Definition intparams.h:107
Describes permutational properties (hermiticity) of one-body operators.
Definition operator.h:54
int perm_symm(unsigned int i) const
Implementation of OperatorDescr::perm_symm()
int perm_symm(unsigned int i, unsigned int j) const
Implementation of OperatorDescr::perm_symm()
unsigned int num_particles() const
Implementation of OperatorDescr::num_particles()
runtime version of OneBodyOperSetProperties
Definition operator.h:253
For an operator (e.g.
Definition operator.h:40
virtual int perm_symm(unsigned int p) const =0
Reports symmetry with respect to the permutation of function in bra with function in ket for particle...
virtual int perm_symm(unsigned int i, unsigned int j) const =0
Reports symmetry with respect to permutation of particles i and j in bra, or ket.
The base class for all reference counted objects.
Definition ref.h:192
A template class that maintains references counts.
Definition ref.h:361
Describes permutational properties (hermiticity, Bose/Fermi) of a two-body operator.
Definition operator.h:70
unsigned int num_particles() const
Implementation of OperatorDescr::num_particles()
int perm_symm(unsigned int i, unsigned int j) const
Implementation of OperatorDescr::perm_symm()
int perm_symm(unsigned int i) const
Implementation of OperatorDescr::perm_symm()
Describes sets of two-body operator.
Definition operator.h:421
Contains all MPQC code up to version 3.
Definition mpqcin.h:14
which parameter set needed to specify the operator set?
Definition operator.h:272
Describes sets of two-body operators (.
Definition operator.h:195
Describes sets of one-body operator.
Definition operator.h:164
type
one-body operator sets (
Definition operator.h:168
@ pVp
{pVp}
Definition operator.h:178
@ V
{V}
Definition operator.h:171
@ p4
{p4}
Definition operator.h:179
@ ddphi
{ddphi_xx, ddphi_xy, ddphi_xz, ddphi_yy, ddphi_yz, ddphi_zz}
Definition operator.h:177
@ phi
{phi}
Definition operator.h:175
@ T
{T}
Definition operator.h:170
@ S
{S}
Definition operator.h:169
@ mu
{mu_x, mu_y, mu_z}
Definition operator.h:173
@ q
{q_xx, q_xy, q_xz, q_yy, q_yz, q_zz}
Definition operator.h:174
@ h
{h}
Definition operator.h:172
@ dphi
{dphi_x, dphi_y, dphi_z}
Definition operator.h:176
static type to_type(const std::string &key)
converts string representation to type
static type to_type(OneBodyOper::type oper)
maps TwoBodyOper::type to type
static std::string to_string(type t)
converts type to string representation
Describes one-body operators.
Definition operator.h:98
static int max_ntypes
The max number of such types.
Definition operator.h:147
static type to_type(const std::string &key)
converts string representation to type
static Ref< OneBodyOperDescr > descr(OneBodyOper::type t)
Returns a descriptor for integral type t.
static std::string to_string(type t)
converts type to string
type
Types of one-body operators, includes various context-dependent "projectors", such as 1-RDM,...
Definition operator.h:103
@ dphi_y
electric field along y
Definition operator.h:134
@ iL_x
x component of negative imaginary part of angular momentum ( )
Definition operator.h:129
@ V
nuclear (Coulomb) potential
Definition operator.h:106
@ Nabla_y
y component of Nabla operator ( )
Definition operator.h:127
@ dphi_x
electric field along x
Definition operator.h:133
@ dphi_z
electric field along z
Definition operator.h:135
@ F
Fock operator.
Definition operator.h:110
@ K
(electronic) exchange
Definition operator.h:109
@ h
core Hamiltonian = T+V
Definition operator.h:107
@ Nabla_x
x component of Nabla operator ( )
Definition operator.h:126
@ hJ
h+J
Definition operator.h:111
@ gamma
1-body reduced density matrix
Definition operator.h:104
@ q_yy
yy component of quadrupole moment
Definition operator.h:118
@ mu_z
z component of electric dipole moment
Definition operator.h:114
@ p4
Definition operator.h:125
@ mu_y
y component of electric dipole moment
Definition operator.h:113
@ pxVp_z
z component of $f \underline{\hat{p}} \cross V \underline{\hat{p}}
Definition operator.h:124
@ ddphi_xy
electric field along x, gradient along y
Definition operator.h:137
@ mu_x
x component of electric dipole moment
Definition operator.h:112
@ ddphi_yy
electric field along y, gradient along y
Definition operator.h:139
@ S
identity kernel, i.e. overlap
Definition operator.h:142
@ q_xy
xy component of quadrupole moment
Definition operator.h:116
@ q_xz
xz component of quadrupole moment
Definition operator.h:117
@ ddphi_xx
electric field along x, gradient along x
Definition operator.h:136
@ pxVp_x
x component of $f \underline{\hat{p}} \cross V \underline{\hat{p}}
Definition operator.h:122
@ q_xx
xx component of quadrupole moment
Definition operator.h:115
@ iL_y
y component of negative imaginary part of angular momentum ( )
Definition operator.h:130
@ ddphi_zz
electric field along z, gradient along z
Definition operator.h:141
@ q_yz
yz component of quadrupole moment
Definition operator.h:119
@ ddphi_xz
electric field along x, gradient along z
Definition operator.h:138
@ phi
electrostatic potential
Definition operator.h:132
@ q_zz
zz component of quadrupole moment
Definition operator.h:120
@ pxVp_y
y component of $f \underline{\hat{p}} \cross V \underline{\hat{p}}
Definition operator.h:123
@ J
(electronic) Coulomb
Definition operator.h:108
@ ddphi_yz
electric field along y, gradient along z
Definition operator.h:140
@ pVp
$f \underline{\hat{p}} \cdot V \underline{\hat{p}}
Definition operator.h:121
@ iL_z
z component of negative imaginary part of angular momentum ( )
Definition operator.h:131
@ T
(nonrelativitic) kinetic energy
Definition operator.h:105
@ Nabla_z
z component of Nabla operator ( )
Definition operator.h:128
which parameter set needed to specify the operator set?
Definition operator.h:438
Describes sets of two-body operators (.
Definition operator.h:368
Known two-body operator sets.
Definition operator.h:343
static std::string to_string(type t)
converts type to string representation
type
Definition operator.h:344
@ G12
{eri, r12_0_g12, r12_m1_g12, t1g12, t2g12, g12t1g12}
Definition operator.h:347
@ R12
{eri, r12, r12t1, r12t2}
Definition operator.h:346
@ R12_0_G12
{r12_0_g12}
Definition operator.h:350
@ G12DKH
{g12p4g12_m_g12t1g12t1}
Definition operator.h:349
@ ERI
{eri}
Definition operator.h:345
@ R12_m1_G12
{r12_m1_g12}
Definition operator.h:351
@ G12_T1_G12
{g12t1g12}
Definition operator.h:352
@ G12NC
{eri, r12_0_g12, r12_m1_g12, g12t1g12, anti_g12g12}
Definition operator.h:348
@ DeltaFunction
{delta}
Definition operator.h:353
static type to_type(TwoBodyOper::type oper)
maps TwoBodyOper::type to type
static type to_type(const std::string &key)
converts string representation to type
Describes two-body operators.
Definition operator.h:314
static std::string to_string(type t)
converts type to string representation
static int max_ntypes
The max number of such types.
Definition operator.h:333
static Ref< TwoBodyOperDescr > descr(TwoBodyOper::type t)
Returns a descriptor for integral type t.
static type to_type(const std::string &key)
converts string representation to type
type
types of known two-body operators
Definition operator.h:318
@ r12t1
Definition operator.h:321
@ g12p4g12_m_g12t1g12t1
Definition operator.h:328
@ g12t1g12
Definition operator.h:327
@ r12t2
Definition operator.h:322
@ r12
interelectronic distance
Definition operator.h:320
@ delta
Definition operator.h:330
@ eri
two-body Coulomb
Definition operator.h:319
@ t1g12
Definition operator.h:325
@ r12_0_g12
(contracted) Gaussian geminal,
Definition operator.h:323
@ anti_g12g12
anti_g12g12
Definition operator.h:329
@ r12_m1_g12
(contracted) Gaussian geminal over Coulomb,
Definition operator.h:324
@ t2g12
Definition operator.h:326