| Both sides previous revision Previous revision | |
| program_control [2025/10/27 06:52] – [Global Thresholds (GTHRESH)] werner | program_control [2026/01/27 16:45] (current) – doll |
|---|
| ===== One-electron operators and expectation values (GEXPEC) ===== | ===== One-electron operators and expectation values (GEXPEC) ===== |
| |
| The operators for which expectation values are requested, are specified by keywords on the global ''GEXPEC'' directive. By default, only dipole moments are computed. The first letter ''G'' is optional, but should be used to avoid confusion with program specific ''EXPEC'' cards, which have the same form as ''GEXPEC''. For all operators specified on the ''GEXPEC'' card, expectation values are computed in all subsequent programs that generate the first-order density matix. This is always the case for variational wavefunctions, i.e., HF, DFT, MCSCF, MRCI. For non-variational wavefunctions such as MP2, MP3, QCISD, QCISD(T), CCSD, or CCSD(T) the density matix is not computed by default, since this requires considerable additional effort (solving z-vector equations). The GEXPEC directive does not affect such programs. In some cases [currently for MP2, MP3, QCISD, QCISD(T), and CCSD] the ''EXPEC'' directive that is specific to those programs can be used to request the property calculation. | The operators for which expectation values are requested, are specified by keywords on the global ''GEXPEC'' directive. By default, only dipole moments are computed. The first letter ''G'' is optional, but should be used to avoid confusion with program specific ''EXPEC'' cards, which have the same form as ''GEXPEC''. For all operators specified on the ''GEXPEC'' card, expectation values are computed in all subsequent programs that generate the first-order density matrix. This is always the case for variational wavefunctions, i.e., HF, DFT, MCSCF, MRCI. For non-variational wavefunctions such as MP2, MP3, QCISD, QCISD(T), CCSD, or CCSD(T) the density matix is not computed by default, since this requires considerable additional effort (solving z-vector equations). The GEXPEC directive does not affect such programs. In some cases [currently for MP2, MP3, QCISD, QCISD(T), and CCSD] the ''EXPEC'' directive that is specific to those programs can be used to request the property calculation. |
| |
| For a number of operators it is possible to use //generic// operator names, e.g., ''DM'' for dipole moments, which means that all three components ''DMX'', ''DMY'', and ''DMZ'' are computed. Alternatively, individual components may be requested. | For a number of operators it is possible to use //generic// operator names, e.g., ''DM'' for dipole moments, which means that all three components ''DMX'', ''DMY'', and ''DMZ'' are computed. Alternatively, individual components may be requested. |
| r=1 ang !bond length | r=1 ang !bond length |
| theta=104 !bond angle | theta=104 !bond angle |
| gexpec,dm,sm,qm !compute dipole and quarupole moments | gexpec,dm,sm,qm !compute dipole and quadrupole moments |
| $methods=[hf,multi,ci] !do hf, casscf, mrci | $methods=[hf,multi,ci] !do hf, casscf, mrci |
| do i=1,#methods !loop over methods | do i=1,#methods !loop over methods |
| e(i)=energy | e(i)=energy |
| dip(i)=dmz !save dipole moment in variable dip | dip(i)=dmz !save dipole moment in variable dip |
| quadxx(i)=qmxx !save quadrupole momemts | quadxx(i)=qmxx !save quadrupole moments |
| quadyy(i)=qmyy | quadyy(i)=qmyy |
| quadzz(i)=qmzz | quadzz(i)=qmzz |
| smxx(i)=xx !save second momemts | smxx(i)=xx !save second moments |
| smyy(i)=yy | smyy(i)=yy |
| smzz(i)=zz | smzz(i)=zz |
| geometry={ar1;ar2,ar1,r} !geometry definition | geometry={ar1;ar2,ar1,r} !geometry definition |
| r=2.5 ang !bond distance | r=2.5 ang !bond distance |
| {hf; !non-relativisitic scf calculation | {hf; !non-relativistic scf calculation |
| expec,rel,darwin,massv} !compute relativistic correction using Cowan-Griffin operator | expec,rel,darwin,massv} !compute relativistic correction using Cowan-Griffin operator |
| e_nrel=energy !save non-relativistic energy in variable enrel | e_nrel=energy !save non-relativistic energy in variable enrel |