Coulomb’s Law

Charge-Charge Interaction via Coulomb’s Law

Let \(Q\) be a set of \(N_Q\) point charges such that the \(i\)-th point charge has charge \(q_i\) and position \(\mathbf{r_i}\). The electrostatic potential at the point \(\mathbf{r}\) generated by \(Q\), \(E_Q(\mathbf{r})\) is given by:

\[E_Q(\mathbf{r}) = \sum_{i=1}^{N_Q} \frac{q_i}{\left|\mathbf{r} - \mathbf{r_i}\right|}\]

Let \(S\) be a set of \(N_S\) point charges that is disjoint with \(Q\), then the interaction of \(S\) with \(Q\), \(V_{SQ}\) is given by:

\[\begin{split}V_{SQ} =& \sum_{i=1}^{N_S} q_i E_Q(\mathbf{r_i})\\ =& \sum_{i=1}^{N_S}\sum_{j=1}^{N_Q} \frac{q_i q_j}{\left|\mathbf{r_i} - \mathbf{r_j}\right|}\end{split}\]

This module will compute \(V_{SQ}\), including in the common scenario where \(S\) equals \(Q\) (in which case terms for which the denominator is zero are skipped).

Please Cite

No citations

Property Types

The following is a list of property types that this module satisfies.

  • simde::ElectrostaticEnergy<chemist::Charges<double>, chemist::Charges<double>>

Module Inputs

This section details the full list of inputs that the module accepts. Inputs that are not listed as optional must have their value set before the module can be run. Inputs can be set manually by calling the module’s change_input function or by passing arguments to a property type.

Quick Reference

The following table provides a quick summary of the inputs available to this module. The columns are:

  • Key: The key used to retrieve the option,

  • Default : The initial value, if one exists, and

  • Description : A human readable description of what the option is used for.

Key

Default

Description

Objects

N/A

The objects interacting with the potential

Potential

N/A

The electrostatic potential (or the objects generating the potential)

Detailed Descriptions

The following subsections provide detailed descriptions of each input recognized by this module. The subsection headings are the name of the input. Within each subsection we list:

  • Description : A human readable description of what the option is used for.

  • Default Value : The initial value, if one exists.

  • Optional? : Whether the value must be set inorder for the module to run.

  • Opaque? : Does the value of the input influence memoization?.

  • Domain Restrictions : Criteria a value must obey to be deemed valid.

Objects

  • Description : The objects interacting with the potential

  • Default Value : N/A

  • Optional? : False

  • Opaque? : True

  • Domain Restrictions :

    • Type == chemist::Charges<double>

Potential

  • Description : The electrostatic potential (or the objects generating the potential)

  • Default Value : N/A

  • Optional? : False

  • Opaque? : True

  • Domain Restrictions :

    • Type == chemist::Charges<double>

Module Results

This section tabulates the full list of results that the module returns. The columns respectively are:

  • Key: What the result is called

  • Type: The C++ type of the result

  • Description: What the result is/how it was computed.

Note

A given property type will only return a subset of the available results. Additional results can be accessed by using other property types or by using the Module class’s advanced API.

Key

Type

Description

Energy

tensorwrapper::Tensor

N/A

Submodules

The module defines no submodules.