TrialRxVB

class TrialRxVB : public feasst::TrialFactoryNamed

../../../_images/rxnavb.png

Attempt to react a pair of particles, A and B, with a distance bias. When A changes to C, B is chosen in the aggregation volume (AV) of A to change to D, where C and D are given random orientations. This is expected to improve sampling when particles A and B form attractive pairs.

A \(\rightarrow\) C

B(in AV of A) \(\rightarrow\) D

This Trial supports rigid particles only due to how random orientations are implemented.

An AV is defined by a spherical shell of given inner and outer radius about a site in particle A with index of site_index_a. Particle B is in the AV if site_index_b in particle B is inside the AV (e.g., these are site-based definitions of AV).

Because the particle types change, this Trial is derived in the semi-grand canonical ensemble. The derivation of the acceptance criteria is dervied by a similar method as described in https://github.com/usnistgov/best-practices-mc:

Forward event

\(\alpha_{o\rightarrow n}\)

Choose A and B reaction

\(1/2\)

Choose particle of type A

\(1/N_A\)

Choose site_index_b in AV of chosen site_index_a

\(1/N^{AV}_B\)

Change particle A to C and reorient

\(P_{\omega C}\)

Change particle B to D and reorient

\(P_{\omega D}\)

Reverse event

\(\alpha_{n \rightarrow o}\)

Choose C and D reaction

\(1/2\)

Choose particle of type C

\(1/(N_C+1)\)

Choose site_index_d in AV of chosen site_index_c

\(1/(N^{AV}_D+1)\)

Change particle C to A and reorient

\(P_{\omega A}\)

Change particle D to B and reorient

\(P_{\omega B}\)

Application of local detailed balance yields the acceptance probability,

\(\chi = \frac{P_{\omega A} P_{\omega B}}{P_{\omega C} P_{\omega D}} \frac{z_C z_D}{z_A z_B} \frac{N_A N^{AV}_B}{(N_C + 1)(N^{AV}_D+1)} e^{-\beta\Delta U}\)

where \(N^{AV}_D\) is the number of site_index_d of particle type D in the AV in the old configuration (before reaction).

The reverse reaction reaction is implemented as follows:

C \(\rightarrow\) A

D(in AV of C) \(\rightarrow\) B

The acceptance of this reverse move is

\(\chi = \frac{P_{\omega C} P_{\omega D}}{P_{\omega A} P_{\omega B}} \frac{z_A z_B}{z_C z_D} \frac{N_C N^{AV}_D}{(N_A + 1)(N^{AV}_B + 1)} e^{-\beta\Delta U}\)

In order to obey detailed balance, the AV of A and C must be identical. Otherwise, the reverse trial may not be possible.

The current implementation assumes the AVB site is the first on each particle.

Arguments

  • neighbor_index: NeighborCriteria index contained in System (default: 0).

  • Trial arguments.

  • TrialStage arguments.

  • SelectParticleAVB arguments

    • target_particle_type and target_site defines the AV

    • particle_type and site (from TrialSelectParticle) defines particle in AV.

  • target_particle_type_morph: type of particle to change target

  • particle_type_morph: type of particle to change particle in AV

class TrialRxVBHalf : public feasst::Trial

Attempt either A + B(in AV of A) -> C + D or C + D(in AV of C) -> A + B