Ballistic Deposition On-Lattice
Do you have questions or comments about this model? Ask them here! (You'll first need to log in.)
WHAT IS IT?
The morphological characteristics of a material's surface affect its properties. One of the simplest models to study the surface geometry is the two-dimensional, on-lattice, ballistic deposition model. It is "two-dimensional" because the profile of the surface is considered; "on-lattice" because falling and deposited particles are constrained to exist on a grid's cells; and "ballistic" because the falling particles follow linear, vertical trajectories.
What has been found (e.g., see Family and Vicsek, 1985) is that the internal structure of the aggregate is rather porous and homogeneous. And, on the other hand, the active zone exhibits interesting scaling behavior. Specifically, its width, defined as the standard deviation of the height, increases initially fast, but reaches a plateau as the number of deposited particles becomes large (in respect to the horizontal length of the grid). Additionally, it was shown that the active zone is not a fractal (e.g., in Meakin et al., 1986).
HOW IT WORKS
Resembling the DLA Alternate Linear model found at the NetLogo Library (Wilensky, 2005), this variant simulates on-lattice particles that fall from random positions, and stick to the surface's active zone. The active zone is delimited by the neighborhood of the surface's occupied sites. In the present, you can choose if a particle can stick: either to a nearest neighbor of a surface site, i.e., at its right, left or above neighboring unoccupied sites; or to the diagonally above left or right (next-nearest), or above unoccupied sites. Periodic boundary conditions are at play, i.e., the world is wrapped at its horizontal dimension.
Initially, an even coat of particles is applied to the surface. At each time step, a new particle is created at a random position, and begins its fall. If it enters an active zone site, it sticks, and becomes part of the aggregate.
HOW TO USE IT
Buttons:
SETUP: Sets up the model.
GO: Runs the model. While running, you can press it again to pause the simulation.
Swithes:
SHOOT-NEAR: If "Off", the particles start their fall from the ceiling of the lattice. While "On", they start from the maximum height of the active zone, and the simulation speeds up. You can use this switch while the model is running.
HIDDEN-ZONE: If "Off", you are able to see the active zone sites as red disks. Again, to speed up the simulation, turn this switch "On", and the active zone is not displayed.
NEXT-NEAREST: When the switch is turned "Off", a particle can be deposited only to the nearest neighbors of a surface site. If "On", they can stick to the next-nearest neighbors additionally. You can use the switch during a simulation.
Plots:
AVG. HEIGHT OF ACTIVE ZONE: Plots the average height of the active zone as particles are deposited.
WIDTH OF ACTIVE ZONE: Plots the width versus the number of deposited particles.
STEP SIZES OF ACTIVE ZONE: An histogram that illustrates the frequency distribution of the active zone's step sizes. Step size is defined as the absolute height difference of the active zone between two neighboring columns.
Monitors:
- DENSITY: It monitors the density of the aggregate as time goes on. It is defined as the number of deposited particles, divided by the total number of sites belonging to the aggregate's volume.
THINGS TO NOTICE
The average height of the active zone exhibits a positive linear relationship with the number of deposited particles. This is an indication of the uniform, non-fractal structure of the ballistic aggregate.
On the contrary, width does not grow continuously, but it tends to a limit size, specific to the horizontal length of the grid.
The distribution of step sizes decays exponential-like. Most of the neighboring sites of the active zone are on the same height, or differ by only one lattice unit. And larger step sizes are rare, as their frequency drops dramatically. If the active zone was a fractal, large step sizes would be more frequent.
THINGS TO TRY
Experiment with different horizontal to vertical dimension ratios. How do they affect the behavior of the width, or other quantities?
Find differences, in the quantities measured, between the two neighborhood rules. Which is the most profound change? For a more direct comparison, you can switch between the two rules while the model is running.
EXTENDING THE MODEL
You can modify some of the rules of the present model. For example, you could build the "single step" ballistic-deposition model found in Meakin et al. (1986): "In this model two sites are added at a randomly selected active site, defined such that the height of the deposit is greater at the two neighboring positions".
You could monitor other quantities, such as the total length of the active zone.
Instead of extending, you could simplify the code, to make the simulations run faster. The ballistic deposition model is characterized by its simplicity, since one has only to keep track of the active zone's height, and at each deposition event a maximum of three active zone heights have to be updated. Thus, the model is not computationally intensive at all. The present NetLogo version was built for the illustration of the model's mechanisms in a course presentation. That is the reason for the simulation of the active zone by turtles, and their display as red disks. To make it faster, e.g., you could remove the incorporation of the breed "active sites".
RELATED MODELS
Uri Wilensky's family of DLA models, in the NetLogo Library.
CREDITS AND REFERENCES
Family F. and Vicsek T. (1985) Scaling of the active zone in the Eden process on percolation networks and the ballistic deposition model. J. Phys. A 18, L75.
Meakin P., Ramanlal P., Sander L. M. and Ball R. C. (1986) Ballistic deposition on surfaces. Phys. Rev. A 34(6): 5091-5103.
Wilensky U. (2005) NetLogo DLA Alternate Linear model. http://ccl.northwestern.edu/netlogo/models/DLAAlternateLinear. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
HOW TO CITE
If you mention this model in a publication, we ask that you include these citations for the model itself and for the NetLogo software:
- Kiziridis, D. (2014). NetLogo Ballistic Deposition On-Lattice model. Institute for Cross-Disciplinary Physics and Complex Systems, IFISC (CSIC-UIB), Campus Universitat Illes Balears, Palma de Mallorca, Spain.
- Wilensky, U. (1999). NetLogo. http://ccl.northwestern.edu/netlogo/. Center for Connected Learning and Computer-Based Modeling, Northwestern Institute on Complex Systems, Northwestern University, Evanston, IL.
COPYRIGHT AND LICENSE
Copyright 2014 Danis Kiziridis.
This work is licensed under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc-sa/3.0/ or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.
Commercial licenses are also available. To inquire about commercial licenses, please contact Uri Wilensky at uri@northwestern.edu.
Comments and Questions
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; breed [particles particle] ;;the particles exist until deposition. breed [active-sites active-site] ;;these sites are the active zone's active-sites-own [height] ;;holds the height of the active zone globals [ max-height avg-height ;;the 4 of them regard the active zone width step-size number-of-deposited number-of-pores ] ;;bottom left corner of the world is the origin (0,0) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to setup ca ;;initially I apply an even coat on the surface set step-size n-values (max-pxcor + 1) [0] set avg-height 2 set width 0 set number-of-deposited max-pycor + 1 set number-of-pores 0 create-active-sites max-pxcor + 1 [ if (hidden-zone = true) [hide-turtle] set shape "circle" set size 1.0 set color red set height 2 setxy who 1] ask patches with [pycor = 0] [ set pcolor green] reset-ticks end ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; to go set max-height max [height] of active-sites ;;to end the simulation when the ceiling is reached if max-height = max-pycor + 2 [ stop] make-new-particle ;;it considers earlier the particles with lower height, else ;;they don't stick properly foreach sort particles [ ask ? [ let psi 0 let chi 0 ifelse (next-nearest = false) [ ;;first checks if a particle sticks immediately upon creation if any? neighbors4 with [pcolor = green] [ set pcolor green set psi ycor set chi xcor ;;either the particle is not the last one to be deposited or... ifelse (psi < max-pycor) [ ask active-sites with [xcor = chi] [ setxy chi psi + 1 ;;raise the height of the zone at the column set height psi + 2 ] ask active-sites with [xcor = chi - 1] [ if (ycor < psi) [ setxy xcor psi ;;check if the left neighbor's is raised set height psi + 1 ] ] ask active-sites with [xcor = chi + 1] [ if (ycor < psi) [ setxy xcor psi ;;check if the right neighbor's is raised set height psi + 1 ] ] ;;this code block helps to calculate the density = (green patches)/((green patches)+(gray-4.9 patches)) ask patches with [(pycor < psi) and (pxcor = chi) and (pcolor = black)] [ set pcolor gray - 4.9] ] ;;it is the last particle before the end of the simulation [ ask active-sites with [xcor = chi] [ hide-turtle set height psi + 2 ] ask active-sites with [xcor = chi - 1] [ if (ycor < psi) [ setxy xcor psi set height psi + 1 ] ] ask active-sites with [xcor = chi + 1] [ if (ycor < psi) [ setxy xcor psi set height psi + 1 ] ] ask patches with [(pycor < psi) and (pxcor = chi) and (pcolor = black)] [ set pcolor gray - 4.9] ] die ;;in the end, a stuck particle is killed, been ] ;;"transformed" to a green patch ] [ if any? neighbors with [pcolor = green] [ set pcolor green set psi ycor set chi xcor ifelse (psi < max-pycor) [ ask active-sites with [xcor = chi] [ setxy chi psi + 1 set height psi + 2 ] ask active-sites with [xcor = chi - 1] [ setxy xcor psi + 1 set height psi + 2 ] ask active-sites with [xcor = chi + 1] [ setxy xcor psi + 1 set height psi + 2 ] ask patches with [(pycor < psi) and (pxcor = chi) and (pcolor = black)] [ set pcolor gray - 4.9] ] [ ask active-sites with [xcor = chi] [ hide-turtle set height psi + 2 ] ask active-sites with [xcor = chi - 1] [ hide-turtle set height psi + 2 ] ask active-sites with [xcor = chi + 1] [ hide-turtle set height psi + 2 ] ask patches with [(pycor < psi) and (pxcor = chi) and (pcolor = black)] [ set pcolor gray - 4.9] ] die ] ] ;;if it is not the case of sticking immediately, you let it fall fall ;;and check if it sticks ifelse (next-nearest = false) [ if any? neighbors4 with [pcolor = green] [ set pcolor green set psi ycor set chi xcor ask active-sites with [xcor = chi] [ setxy chi psi + 1 set height psi + 2 ] ask active-sites with [xcor = chi - 1] [ if (ycor < psi) [ setxy xcor psi set height psi + 1 ] ] ask active-sites with [xcor = chi + 1] [ if (ycor < psi) [ setxy xcor psi set height psi + 1 ] ] ask patches with [(pycor <= psi) and (pxcor = chi) and (pcolor = black)] [ set pcolor gray - 4.9] die ] ] [ if any? neighbors with [pcolor = green] [ set pcolor green set psi ycor set chi xcor ask active-sites with [xcor = chi] [ setxy chi psi + 1 set height psi + 2 ] ask active-sites with [xcor = chi - 1] [ setxy xcor psi + 1 set height psi + 2 ] ask active-sites with [xcor = chi + 1] [ setxy xcor psi + 1 set height psi + 2 ] ask patches with [(pycor < psi) and (pxcor = chi) and (pcolor = black)] [ set pcolor gray - 4.9] die ] ] ]] tick update-variables do-plots end to make-new-particle create-particles 1 [ set size 1.5 set shape "square" set color green ifelse (shoot-near = false) [ setxy random-pxcor max-pycor] ;;you can shoot particles from the ceiling, or [setxy random-pxcor max-height - 1] ;;from the heighest of the active zone. set heading 180 ;;particles head down ] end to fall fd 1 end to update-variables set width standard-deviation [height] of active-sites set avg-height mean [height] of active-sites set number-of-deposited (count patches with [pcolor = green]) set number-of-pores (count patches with [pcolor = (gray - 4.9)]) ;;for the distribution of step sizes... set step-size [] let i 0 while [i < (max-pxcor + 1)] [ ;;for each of the columns... let next (i + 1) if (next = max-pxcor + 1) [ set next 0] ;;periodic boundary conditions... let diff (([height] of active-site i) - ([height] of active-site next)) set step-size (lput abs diff step-size) ;;the difference in height is "diff" set i (i + 1) ] end to do-plots if (ticks mod 10 = 1) [ set-current-plot "Avg. Height of Active Zone" set-current-plot-pen "Sur" plotxy number-of-deposited avg-height set-current-plot "Width of Active Zone" set-current-plot-pen "Sur" plotxy number-of-deposited width ] ;; the histogram's code is at its "Edit..." window end
There are 8 versions of this model.
Attached files
File | Type | Description | Last updated | |
---|---|---|---|---|
Ballistic Deposition On-Lattice.png | preview | Preview for 'Ballistic Deposition On-Lattice' | over 10 years ago, by Danis Kiziridis | Download |
This model does not have any ancestors.
This model does not have any descendants.