espressopp.interaction.CoulombRSpace¶

Coulomb potential and interaction Objects (R space part)

$\sum^{N}_{i=1} \sum_{j>i \atop r_{ij}<k_{max}} \frac{q_{i}q_{j}}{r_{ij}} erfc(\alpha r_{ij}) - \frac{\alpha}{\sqrt{\pi}} \sum^{N}_{i=1} q_{i}^2$

This is the R space part of potential of Coulomb long range interaction according to the Ewald summation technique. Good explanation of Ewald summation could be found here [Allen89], [Deserno98].

Example:

>>> vl = espressopp.VerletList(system, rspacecutoff+skin)
>>> coulombR_pot = espressopp.interaction.CoulombRSpace(coulomb_prefactor, alpha, rspacecutoff)
>>> coulombR_int = espressopp.interaction.VerletListCoulombRSpace(vl)
>>> coulombR_int.setPotential(type1=0, type2=0, potential = coulombR_pot)


!IMPORTANT Coulomb interaction needs k-space part as well EwaldKSpace.

Definition:

It provides potential object CoulombRSpace and interaction object VerletListCoulombRSpace

The potential is based on parameters: Coulomb prefactor (coulomb_prefactor), Ewald parameter (alpha), and the cutoff in R space (rspacecutoff).

>>> coulombR_pot = espressopp.interaction.CoulombRSpace(coulomb_prefactor, alpha, rspacecutoff)


Potential Properties:

• coulombR_pot.prefactor

The property ‘prefactor’ defines the Coulomb prefactor.

• coulombR_pot.alpha

The property ‘alpha’ defines the Ewald parameter $$\\alpha$$.

• coulombR_pot.cutoff

The property ‘cutoff’ defines the cutoff in R space.

The interaction is based on the Verlet list (VerletList)

>>> vl = espressopp.VerletList(system, rspacecutoff+skin)
>>> coulombR_int = espressopp.interaction.VerletListCoulombRSpace(vl)


It should include at least one potential

>>> coulombR_int.setPotential(type1=0, type2=0, potential = coulombR_pot)


Interaction Methods:

• setPotential(type1, type2, potential)

This method sets the potential for the particles of type1 and type2. It could be a bunch of potentials for the different particle types.

• getVerletListLocal()

Adding the interaction to the system:

>>> system.addInteraction(coulombR_int)

espressopp.interaction.CoulombRSpace(prefactor, alpha, cutoff)
Parameters: prefactor (real) – (default: 1.0) alpha (real) – (default: 1.0) cutoff – (default: infinity)
espressopp.interaction.VerletListCoulombRSpace(vl)
Parameters: vl –
espressopp.interaction.VerletListCoulombRSpace.getPotential(type1, type2)
Parameters: type1 – type2 –
espressopp.interaction.VerletListCoulombRSpace.getVerletList()
Return type: A Python list of lists.
espressopp.interaction.VerletListCoulombRSpace.setPotential(type1, type2, potential)
Parameters: type1 – type2 – potential –