1: |
Initialize the system at the time t = 0 and choose a final time tf. Choose a time step Δtsplit for the operator splitting. |
2: |
Divide the set of all molecules into subsets of one or two molecules such that pairs are formed by molecules that are each others nearest neighbor. Set tloc = 0. |
3: |
whiletloc < Δtsplitdo
|
4: |
Choose a time step Δt ⩽ Δtsplit − tloc such that molecules are unlikely to interact with more than one other molecule during that time step. Δt should also be chosen such that no molecule is likely to interact with a two-dimensional boundary or a one-dimensional curve and a neighbor during the time step. To fulfill this requirement certain pairs and single molecules may have to be updated in several smaller steps during Δt. |
5: |
Pairs of molecules are updated according to the PDF obtained by solving the three-dimensional Smoluchowski equation 1, as described in Sec. 2A. |
6: |
Molecules close to a line are updated according to the PDF obtained by solving the two-dimensional Smoluchowski equation 10, as described in Sec. 3A. |
7: |
Molecules on a line are updated according to the PDF obtained by solving the one-dimensional Smoluchowski equation 6, as described in Sec. 2A. |
8: |
Molecules that dissociate from the cylinder at time τ < Δt are placed at the reaction radius of the molecule and the cylinder. If a molecule in free space dissociates we place the products at a distance equal to the sum of the reaction radii of the two molecules. |
9: |
Update tloc = tloc + Δt. |
10: |
end while |
11: |
Update the linear segments according to the transformation T. |
12: |
Update the time t = t + Δtsplit. |
13: |
Repeat (2)–(12) until the final time tf. |