ChemiQ

Overview

Detailed Documentation

Global Functions

get the electron number of the atom.

Parameters:

std::string& atom

Returns:

size_t atom's electorn number

Jordan-Wigner transform of one fermion term, like "3+ 1 2+ 0".

Parameters:

OrbitalActVec& fermion term

Returns:

PauliOperator

See also:

OrbitalActVec

PauliOperator

Jordan-Wigner transform from FermionOperator to PauliOperator.

Parameters:

FermionOperator& fermion operator

Returns:

PauliOperator

See also:

FermionOperator

PauliOperator

Jordan-Wigner transform from VarFermionOperator to VarPauliOperator.

Parameters:

VarFermionOperator& variational fermion operator

Returns:

VarPauliOperator

See also:

VarFermionOperator

VarPauliOperator

Parity transform of one fermion term, like "3+ 1 2+ 0".

Parameters:

OrbitalActVec& fermion term
size_t maxqubit

Returns:

PauliOperator

See also:

OrbitalActVec

PauliOperator

Parity transform from FermionOperator to PauliOperator.

Parameters:

FermionOperator& fermion operator

Returns:

PauliOperator

See also:

FermionOperator

PauliOperator

Parity transform from VarFermionOperator to VarPauliOperator.

Parameters:

VarFermionOperator& variational fermion operator

Returns:

VarPauliOperator

See also:

VarFermionOperator

VarPauliOperator

BKMatrix required by BravyiKitaev transform.

Parameters:

size_t qn quantum number

BravyiKitaev transform of one fermion term, like "3+ 1 2+ 0".

Parameters:

OrbitalActVec& fermion term
size_t maxqubit
std::vector<Eigen::MatrixXi> BK

Returns:

PauliOperator

See also:

OrbitalActVec

PauliOperator

BravyiKitaev transform from VarFermionOperator to VarPauliOperator.

Parameters:

VarFermionOperator& variational fermion operator
std::vector<Eigen::MatrixXi> BK

Returns:

VarPauliOperator

See also:

VarFermionOperator

VarPauliOperator

get CCS term number.

Coupled cluster single model. e.g. 4 qubits, 2 electrons then 0 and 1 are occupied,just consider 0->2,0->3,1->2,1->3

Parameters:

size_t quantum number(orbital number)
size_t electron number

Returns:

size_t CCS term number

get CCSD term number.

Coupled cluster single and double model. e.g. 4 qubits, 2 electrons then 0 and 1 are occupied,just consider 0->2,0->3,1->2,1->3,01->23

Parameters:

size_t quantum number(orbital number)
size_t electron number

Returns:

size_t CCSD term number

get Coupled cluster single model.

Coupled cluster single model. e.g. 4 qubits, 2 electrons then 0 and 1 are occupied,just consider 0->2,0->3,1->2,1->3. returned FermionOperator like this: {{"2+ 0":para0},{"3+ 0":para1},{"2+ 1":para2},{"3+ 1":para3}}

Parameters:

size_t quantum number(orbital number)
size_t electron number
vector_d& parameters

Returns:

FermionOperator

get Coupled cluster single model with variational parameters.

Coupled cluster single model. e.g. 4 qubits, 2 electrons then 0 and 1 are occupied,just consider 0->2,0->3,1->2,1->3. returned FermionOperator like this: {{"2+ 0":var[0]},{"3+ 0":var[1]},{"2+ 1":var[2]},{"3+ 1":var[3]}}

Parameters:

size_t quantum number(orbital number)
size_t electron number
var parameters

Returns:

VarFermionOperator

get Coupled cluster single model with variational parameters.

Coupled cluster single model. e.g. 4 qubits, 2 electrons then 0 and 1 are occupied,just consider 0->2,0->3,1->2,1->3. returned FermionOperator like this: {{"2+ 0":var[0]},{"3+ 0":var[1]},{"2+ 1":var[2]},{"3+ 1":var[3]}}

Parameters:

size_t quantum number(orbital number)
size_t electron number
std::vector<var>& parameters

Returns:

VarFermionOperator

get Coupled cluster single and double model.

Coupled cluster single and double model. e.g. 4 qubits, 2 electrons then 0 and 1 are occupied,just consider 0->2,0->3,1->2,1->3,01->23. returned FermionOperator like this: {{"2+ 0":para0},{"3+ 0":para1},{"2+ 1":para2},{"3+ 1":para3}, {"3+ 2+ 1 0":para5}}

Parameters:

size_t quantum number(orbital number)
size_t electron number
vector_d& parameters

Returns:

FermionOperator

get Coupled cluster single and double model with variational parameters.

Coupled cluster single and double model. e.g. 4 qubits, 2 electrons then 0 and 1 are occupied,just consider 0->2,0->3,1->2,1->3,01->23. returned FermionOperator like this: {{"2+ 0":var[0]},{"3+ 0":var[1]},{"2+ 1":var[2]},{"3+ 1":var[3]}, {"3+ 2+ 1 0":var[4]}}

Parameters:

size_t quantum number(orbital number)
size_t electron number
var& parameters

Returns:

VarFermionOperator

get Coupled cluster single and double model with variational parameters.

Coupled cluster single and double model. e.g. 4 qubits, 2 electrons then 0 and 1 are occupied,just consider 0->2,0->3,1->2,1->3,01->23. returned FermionOperator like this: {{"2+ 0":var[0]},{"3+ 0":var[1]},{"2+ 1":var[2]},{"3+ 1":var[3]}, {"3+ 2+ 1 0":var[4]}}

Parameters:

size_t quantum number(orbital number)
size_t electron number
std::vector<var>& parameters

Returns:

VarFermionOperator

Generate Hamiltonian form of unitary coupled cluster based on coupled cluster,H=1j*(T-dagger(T)), then exp(-jHt)=exp(T-dagger(T)).

Parameters:

PauliOperator& pauli operator

Returns:

PauliOperator

See also:

PauliOperator

Generate Hamiltonian form of unitary coupled cluster based on coupled cluster,H=1j*(T-dagger(T)), then exp(-jHt)=exp(T-dagger(T)).

Parameters:

VarPauliOperator& pauli operator

Returns:

VarPauliOperator

See also:

VarPauliOperator

Simulate a general case of hamiltonian by Trotter-Suzuki approximation. U=exp(-iHt)=(exp(-i H1 t/n)*exp(-i H2 t/n))^n.

Parameters:

QVec& the qubit needed to simulate the Hamiltonian
VarPauliOperator& Hamiltonian
double time
size_t the approximate slices

Returns:

VQC

See also:

QVec

VarPauliOperator

QPanda::Variational::VQC

Simulate a single term of Hamilonian like "X0 Y1 Z2" with coefficient and time. U=exp(-it*coef*H)

Parameters:

QVec& the qubit needed to simulate the Hamiltonian
QTerm& Hamiltonian term, string like "X0 Y1 Z2"
var& the coefficient of hamiltonian
double time

Returns:

VQC

See also:

QVec

QTerm

QPanda::Variational::var

Simulating z-only term like H=coef * (Z0..Zn-1) U=exp(-iHt)

Parameters:

QVec& the qubit needed to simulate the Hamiltonian
var& the coefficient of hamiltonian
double time

Returns:

VQC

See also:

QVec

QPanda::Variational::var

Parse psi4 data to fermion operator.

Parameters:

std::string& fermon str

Returns:

FermionOperator

See also:

FermionOperator