|
tblite
Light-weight tight-binding framework
|
Effective, Klopman-Ohno-type, second-order electrostatics. More...
Public Member Functions | |
| procedure | get_coulomb_matrix (self, mol, cache, amat) |
| Evaluate Coulomb matrix. | |
| procedure | get_coulomb_blocks (self, mol, cache, pairs, blocks) |
| Evaluate the locally owned Coulomb blocks directly. | |
| procedure | get_coulomb_derivs (self, mol, cache, qat, qsh, dadr, dadl, atrace) |
| Evaluate uncontracted derivatives of Coulomb matrix. | |
| procedure | get_coulomb_derivs_contracted (self, mol, cache, qat, qsh, gradient, sigma) |
| Contract derivatives directly for gradients and strain. | |
| Public Member Functions inherited from tblite_coulomb_charge_type::coulomb_charge_type | |
| procedure | update (self, mol, cache) |
| Update container cache. | |
| procedure | variable_info (self) |
| Get information about density dependent quantities used in the energy. | |
| procedure | get_energy (self, mol, cache, wfn, energies) |
| Evaluate selfconsistent energy of the interaction. | |
| procedure | get_potential (self, mol, cache, wfn, pot) |
| Evaluate charge dependent potential shift from the interaction. | |
| procedure | get_potential_gradient (self, mol, cache, wfn, pot) |
| Evaluate gradient of the charge dependent potential shift from the interaction. | |
| procedure | get_gradient (self, mol, cache, wfn, gradient, sigma) |
| Evaluate gradient contributions from the selfconsistent interaction. | |
| procedure(get_coulomb_matrix), deferred | get_coulomb_matrix (self, mol, cache, amat) |
| Evaluate Coulomb matrix. | |
| procedure | get_coulomb_blocks (self, mol, cache, pairs, blocks) |
| Evaluate local Coulomb blocks; the default packs the full matrix. | |
| procedure(get_coulomb_derivs), deferred | get_coulomb_derivs (self, mol, cache, qat, qsh, dadr, dadl, atrace) |
| Evaluate uncontracted derivatives of Coulomb matrix. | |
| procedure | get_coulomb_derivs_contracted (self, mol, cache, qat, qsh, gradient, sigma) |
| Accumulate charge-contracted derivatives into the gradient and strain. | |
| Public Member Functions inherited from tblite_container_type::container_type | |
| procedure | set_partition (self, partition) |
| Assign an externally managed share of the interaction loops. | |
| procedure | update (self, mol, cache) |
| Update container cache. | |
| procedure | variable_info (self) |
| Get information about density dependent quantities used in the energy. | |
| procedure | get_engrad (self, mol, cache, energies, gradient, sigma) |
| Evaluate non-selfconsistent part of the interaction. | |
| procedure | get_energy (self, mol, cache, wfn, energies) |
| Evaluate selfconsistent energy of the interaction. | |
| procedure | get_potential (self, mol, cache, wfn, pot) |
| Evaluate charge dependent potential shift from the interaction. | |
| procedure | get_potential_gradient (self, mol, cache, wfn, pot) |
| Evaluate gradient of charge dependent potential shift from the interaction. | |
| procedure | get_gradient (self, mol, cache, wfn, gradient, sigma) |
| Evaluate gradient contributions from the selfconsistent interaction. | |
| procedure | info (self, verbosity, indent) |
| Information on container. | |
Data Fields | |
| real(wp), dimension(:, :, :, :), allocatable | hubbard |
| Hubbard parameter for each shell and species. | |
| real(wp) | gexp |
| Exponent of Coulomb kernel. | |
| Data Fields inherited from tblite_coulomb_charge_type::coulomb_charge_type | |
| logical | shell_resolved |
| Whether the third order contribution is shell-dependent. | |
| integer, dimension(:), allocatable | nshell |
| Number of shells for each atom. | |
| integer, dimension(:), allocatable | offset |
| Index offset for each shell. | |
| Data Fields inherited from tblite_container_type::container_type | |
| character(len=:), allocatable | label |
| Label identifying this contribution. | |
| type(work_partition) | partition = serial_work_partition |
| Share of the interaction loops evaluated by this instance. | |
Effective, Klopman-Ohno-type, second-order electrostatics.
| procedure tblite_coulomb_charge_effective::effective_coulomb::get_coulomb_blocks | ( | class(effective_coulomb), intent(in) | self, |
| type(structure_type), intent(in) | mol, | ||
| type(coulomb_cache), intent(inout) | cache, | ||
| type(pair_list), intent(in) | pairs, | ||
| real(wp), dimension(:, :, :), intent(out), contiguous | blocks ) |
Evaluate the locally owned Coulomb blocks directly.
| [in] | self | Instance of the electrostatic container |
| [in] | mol | Molecular structure data |
| [in,out] | cache | Reusable data container |
| [in] | pairs | Locally owned atom pairs in row order |
| [out] | blocks | Coulomb blocks indexed by row shell, neighbour shell, and local pair |
| procedure tblite_coulomb_charge_effective::effective_coulomb::get_coulomb_derivs | ( | class(effective_coulomb), intent(in) | self, |
| type(structure_type), intent(in) | mol, | ||
| type(coulomb_cache), intent(inout) | cache, | ||
| real(wp), dimension(:), intent(in) | qat, | ||
| real(wp), dimension(:), intent(in) | qsh, | ||
| real(wp), dimension(:, :, :), intent(out), contiguous | dadr, | ||
| real(wp), dimension(:, :, :), intent(out), contiguous | dadl, | ||
| real(wp), dimension(:, :), intent(out), contiguous | atrace ) |
Evaluate uncontracted derivatives of Coulomb matrix.
| [in] | self | Instance of the electrostatic container |
| [in] | mol | Molecular structure data |
| [in,out] | cache | Reusable data container |
| [in] | qat | Atomic partial charges |
| [in] | qsh | Shell-resolved partial charges |
| [out] | dadr | Derivative of interactions with respect to cartesian displacements |
| [out] | dadl | Derivative of interactions with respect to strain deformations |
| [out] | atrace | On-site derivatives with respect to cartesian displacements |
| procedure tblite_coulomb_charge_effective::effective_coulomb::get_coulomb_derivs_contracted | ( | class(effective_coulomb), intent(in) | self, |
| type(structure_type), intent(in) | mol, | ||
| type(coulomb_cache), intent(inout) | cache, | ||
| real(wp), dimension(:), intent(in) | qat, | ||
| real(wp), dimension(:), intent(in) | qsh, | ||
| real(wp), dimension(:, :), intent(inout), contiguous | gradient, | ||
| real(wp), dimension(:, :), intent(inout), contiguous | sigma ) |
Contract derivatives directly for gradients and strain.
| [in] | self | Instance of the electrostatic container |
| [in] | mol | Molecular structure data |
| [in,out] | cache | Reusable data container |
| [in] | qat | Atomic partial charges |
| [in] | qsh | Shell-resolved partial charges |
| [in,out] | gradient | Molecular gradient to accumulate into |
| [in,out] | sigma | Strain derivatives to accumulate into |
| procedure tblite_coulomb_charge_effective::effective_coulomb::get_coulomb_matrix | ( | class(effective_coulomb), intent(in) | self, |
| type(structure_type), intent(in) | mol, | ||
| type(coulomb_cache), intent(inout) | cache, | ||
| real(wp), dimension(:, :), intent(out), contiguous | amat ) |
Evaluate Coulomb matrix.
| [in] | self | Instance of the electrostatic container |
| [in] | mol | Molecular structure data |
| [in,out] | cache | Reusable data container |
| [out] | amat | Coulomb matrix |