Moliere

class hoomd.md.pair.Moliere(nlist, default_r_cut=None, default_r_on=0.0, mode='none')

Bases: Pair

Moliere pair force.

Parameters:
  • nlist (hoomd.md.nlist.NeighborList) – Neighbor list.

  • default_r_cut (float) – Default cutoff radius [length][\mathrm{length}].

  • default_r_on (float) – Default turn-on radius [length][\mathrm{length}].

  • mode (str) – Energy shifting/smoothing mode.

Moliere computes the Moliere pair force on every particle in the simulation state:

U(r)=ZiZje24πϵ0rij[0.35exp(0.3rijaF)+0.55exp(1.2rijaF)+0.10exp(6.0rijaF)]U(r) = \frac{Z_i Z_j e^2}{4 \pi \epsilon_0 r_{ij}} \left[ 0.35 \exp \left( -0.3 \frac{r_{ij}}{a_F} \right) + \\ 0.55 \exp \left( -1.2 \frac{r_{ij}}{a_F} \right) + 0.10 \exp \left( -6.0 \frac{r_{ij}}{a_F} \right) \right]

Where each parameter is defined as:

  • ZiZ_i - Z_i - Atomic number of species i [dimensionless][\mathrm{dimensionless}]

  • ZjZ_j - Z_j - Atomic number of species j [dimensionless][\mathrm{dimensionless}]

  • ee - elementary_charge - The elementary charge [charge][\mathrm{charge}]

  • aF=0.8853a0(Zi+Zj)2/3a_F = \frac{0.8853 a_0}{\left( \sqrt{Z_i} + \sqrt{Z_j} \right)^{2/3}}, where a0a_0 is the Bohr radius [length][\mathrm{length}]

Example:

nl = nlist.Cell()
moliere = pair.Moliere(default_r_cut = 3.0, nlist=nl)

Zi = 54
Zj = 7
e = 1
a0 = 1
aF = 0.8853 * a0 / (np.sqrt(Zi) + np.sqrt(Zj))**(2/3)

moliere.params[('A', 'B')] = dict(qi=Zi*e, qj=Zj*e, aF=aF)

Members inherited from AutotunedObject:

property kernel_parameters

Kernel parameters. Read more...

property is_tuning_complete

Check if kernel parameter tuning is complete. Read more...

tune_kernel_parameters()

Start tuning kernel parameters. Read more...


Members inherited from Force:

additional_energy

Additional energy term. Read more...

additional_virial

Additional virial tensor term WadditionalW_\mathrm{additional}. Read more...

cpu_local_force_arrays

Local force arrays on the CPU. Read more...

energies

Energy contribution UiU_i from each particle. Read more...

energy

The potential energy UU of the system from this force. Read more...

forces

The force Fi\vec{F}_i applied to each particle. Read more...

gpu_local_force_arrays

Local force arrays on the GPU. Read more...

torques

The torque τi\vec{\tau}_i applied to each particle. Read more...

virials

Virial tensor contribution WiW_i from each particle. Read more...


Members inherited from Pair:

nlist

Neighbor list used to compute the pair force. Read more...

mode

Energy smoothing/cutoff mode. Read more...

r_cut

Cuttoff radius beyond which the energy and force are 0. Read more...

r_on

Radius at which the XPLOR smoothing function starts. Read more...

compute_energy()

Compute the energy between two sets of particles. Read more...


Members defined in Moliere:

params

The potential parameters. The dictionary has the following keys:

  • qi (float, required) - qi=Zie4πϵ0q_i = Z_i \frac{e}{\sqrt{4 \pi \epsilon_0}} [charge][\mathrm{charge}]

  • qj (float, required) - qj=Zje4πϵ0q_j = Z_j \frac{e}{\sqrt{4 \pi \epsilon_0}} [charge][\mathrm{charge}]

  • aF (float, required) - aF=0.8853a0(Zi+Zj)2/3a_F = \frac{0.8853 a_0}{\left( \sqrt{Z_i} + \sqrt{Z_j} \right)^{2/3}} [length][\mathrm{length}]

Type: TypeParameter [tuple [particle_type, particle_type], dict]