diff --git a/Ballistic_decomposition/Ian_edits/tetris_complete.py b/Ballistic_decomposition/Ian_edits/tetris_complete.py
index ee1fb49d..d2e5fb49 100644
--- a/Ballistic_decomposition/Ian_edits/tetris_complete.py
+++ b/Ballistic_decomposition/Ian_edits/tetris_complete.py
@@ -12,30 +12,43 @@
import numpy as np
import random
+import os
+import sys
+import argparse
+# from RD_CLI import Interface_width
+
+# Add the directory containing RD_CLI.py to the Python path
+# script_dir = os.path.dirname(os.path.realpath(__file__))
+# parent_dir = os.path.dirname(script_dir)
+# sys.path.append(parent_dir)
def Tetris_Choice():
"""
Randomly selects a Tetris piece and its orientation.
- There are 7 tetris pieces:
- * 0 is the square
- * 1 is the line
- * 2 is the L
- * 3 is J
- * 4 is the T
- * 5 is the S
- * 6 is the Z
- There are 4 orientations for each piece:
- * 0 is the original orientation
- * 1 is the 90 degree rotation
- * 2 is the 180 degree rotation
- * 3 is the 270 degree rotation
+ There are 7 Tetris pieces:
+ - 0 : the square;
+ - 1 : the line;
+ - 2 : the L;
+ - 3 : J;
+ - 4 : the T;
+ - 5 : the S;
+ - 6 : the Z.
+
+ There are 4 orientations for each piece:
+ - 0 is the original orientation;
+ - 1 is the 90 degree rotation;
+ - 2 is the 180 degree rotation;
+ - 3 is the 270 degree rotation.
Returns:
numpy.ndarray: A 2-element array:
- * the first element is the piece type (0-6)
- * the second element is the orientation (0-3).
+ the first element is the piece type (0-6);
+ the second element is the orientation (0-3).
+
+ To-do:
+ - add input file to specify the probability of each piece.
"""
choice = np.random.randint(1, [7, 4])
return choice
@@ -64,13 +77,24 @@ def ffnz(matrix, height, column):
def Tetris_RD(width, height, steps):
+ """
+ This function simulates the Tetris Decomposition model on a substrate.
+
+ Args:
+ width (int): The width of the substrate.
+ height (int): The height of the matrix.
+ steps (int): The steps to simulate.
+
+ Returns:
+ string : Filename of the output file.
+ """
i = 0
substrate = np.zeros((height, width))
topmost = height - 1
while i < steps:
choice = Tetris_Choice()
- # Square Piece
+ # 0. Square Piece
if choice[0] == 0 and (choice[1] == 0 or choice[1] == 1): # Square, check right boundary
position = random.randint(0, width - 1)
if position != (width - 1):
@@ -100,6 +124,7 @@ def Tetris_RD(width, height, steps):
else:
continue
+ # 1. Line Piece
if choice[0] == 1 and (choice[1] == 0 or choice[1] == 2): # Vertical, check ceiling case
position = random.randint(0, width - 1)
landing_row = ffnz(substrate, height, position) - 1
@@ -112,6 +137,7 @@ def Tetris_RD(width, height, steps):
else:
break
+ # 2. L Piece
if choice[0] == 1 and choice[1] == 1: # Line with right pivot, check left boundary
position = random.randint(0, width - 1)
if position - 3 >= 0:
@@ -139,7 +165,7 @@ def Tetris_RD(width, height, steps):
else:
continue
-# L Case
+ # L Case
if choice[0] == 2 and choice[1] == 0: # L case upright, check right boundary
position = random.randint(0, width - 1)
if position + 1 <= width - 1:
@@ -236,6 +262,7 @@ def Tetris_RD(width, height, steps):
else:
continue
+ # 3. J Piece
if choice[0] == 3 and choice[1] == 0: # J case upright, check left boundary
position = random.randint(0, width - 1)
# position = 6
@@ -288,6 +315,7 @@ def Tetris_RD(width, height, steps):
continue
else:
continue
+
if choice[0] == 3 and choice[1] == 2: # J case long part on the left, check right boundary
position = random.randint(0, width - 1)
if position != width - 1:
@@ -316,6 +344,7 @@ def Tetris_RD(width, height, steps):
i += 1
else:
continue
+
if choice[0] == 3 and choice[1] == 3: # J case long part on the bottom, check right boundary
position = random.randint(0, width - 1)
# position = 7
@@ -335,8 +364,7 @@ def Tetris_RD(width, height, steps):
else:
continue
- # T case
-
+ # 4. T Piece
if choice[0] == 4 and choice[1] == 0: # T case long part on top, check left and right boundaries
position = random.randint(0, width - 1)
# position = 7
@@ -371,6 +399,7 @@ def Tetris_RD(width, height, steps):
continue
else:
continue
+
if choice[0] == 4 and choice[1] == 1: # T case long part on the left, check right boundary
position = random.randint(0, width - 1)
# position = 7
@@ -398,6 +427,7 @@ def Tetris_RD(width, height, steps):
i += 1
else:
continue
+
if choice[0] == 4 and choice[1] == 2: # T case long part on the bottom, check left and right boundaries
position = random.randint(0, width - 1)
# position = 4
@@ -416,6 +446,7 @@ def Tetris_RD(width, height, steps):
break
else:
continue
+
if choice[0] == 4 and choice[1] == 3: # T case long part on the right, check left boundary
position = random.randint(0, width - 1)
# position = 7
@@ -449,8 +480,7 @@ def Tetris_RD(width, height, steps):
landing_row = min(landing_row_right, landing_row_left)
continue
-
-# S Case
+ # 5. S Piece
if choice[0] == 5 and (choice[1] == 0 or choice[1] == 2): # S case laying down, check left and right boundary
position = random.randint(0, width - 1)
if position + 1 <= width - 1 and position - 1 >= 0: # Check left and right bdy
@@ -530,8 +560,8 @@ def Tetris_RD(width, height, steps):
i += 1
else:
continue
-# Z Case
+ # 6. Z Case
if choice[0] == 6 and (choice[1] == 0 or choice[1] == 2): # Z case laying down, check left and right boundary
position = random.randint(0, width - 1)
if position + 1 <= width - 1 and position - 1 >= 0: # Check left and right bdy
@@ -635,12 +665,56 @@ def Tetris_RD(width, height, steps):
return outputfile
-height_str = input('What is the height?')
-width_str = input('What is the width?')
-steps_str = input('How many blocks?')
-height = int(height_str)
-width = int(width_str)
-steps = int(steps_str)
+
+def main():
+ """
+
+ To use the script from terminal, the following options are expected:
+
+ -w, --width : Width of the substrate (default: 100)
+ -e, --height : Maximum height of the substrate (default: 60)
+ -s, --steps : Number of particles to drop (default: 5000)
+
+ It returns:
+
+ 1. A text file representing the substrate state.
+
+ Example:
+
+ ``ptyhon3 tetris_complete.py -w 100 -e 60 -s 5000``
+
+ In this example, the script will simulate Tetris Decomposition on a substrate of size 100x60 for 5000 steps. And the simulation movie will be generated.
+
+ """
+
+ parser = argparse.ArgumentParser(description="""
+
+ Simulate Random Deposition on a substrate.
+ Outputs: 1. Substrate_WIDTHxHEIGHT_Particles=STEPS_[Relaxed/BD].txt
+ A text file for the substrate.
+ 2. Statistical figures, loglog plot for the interface width and the estimated slope.
+
+ Author: Ian Ruau and Mauricio Mountes
+ Date: 2023-12-01
+
+
+ """, formatter_class=argparse.RawTextHelpFormatter)
+ parser.add_argument("-w", "--width", type=int, default=100, help="Width of the substrate (default: 100)")
+ parser.add_argument("-e", "--height", type=int, default=60, help="Maximum height of the substrate (default: 60)")
+ parser.add_argument("-s", "--steps", type=int, default=5000, help="Number of particles to drop (default: 5000)")
+ args = parser.parse_args()
+
+ Outputfile = Tetris_RD(args.width, args.height, args.steps)
+ # print("Computing the interface width...")
+ # interface_width(Outputfile)
-Tetris_RD(width, height, steps)
+if __name__ == "__main__":
+ main()
+ # height_str = input('What is the height?')
+ # width_str = input('What is the width?')
+ # steps_str = input('How many blocks?')
+ # height = int(height_str)
+ # width = int(width_str)
+ # steps = int(steps_str)
+ # Tetris_RD(width, height, steps)
diff --git a/Ballistic_decomposition/RD_CLI.py b/Ballistic_decomposition/RD_CLI.py
index 0d0d8861..85e2903e 100755
--- a/Ballistic_decomposition/RD_CLI.py
+++ b/Ballistic_decomposition/RD_CLI.py
@@ -325,19 +325,25 @@ def main():
To use the script from terminal, the following options are expected:
- -w, --width : Width of the substrate (default: 100)
- -e, --height : Maximum height of the substrate (default: 60)
- -s, --steps : Number of particles to drop (default: 5000)
- --relax : Enable surface relaxation (default: False)
- --BD : Enable ballistic decomposition (default: False)
- -m, --movie : Generate an mp4 movie of the simulation (default: False)
+ -w, --width : Width of the substrate (default: 100)
+ -e, --height : Maximum height of the substrate (default: 60)
+ -s, --steps : Number of particles to drop (default: 5000)
+ -r, --relax : Enable surface relaxation (default: False)
+ -b, --BD : Enable ballistic decomposition (default: False)
+ -m, --movie : Generate an mp4 movie of the simulation (default: False)
It returns:
- 1. A text file representing the substrate state.
- 2. Statistical figures, including a log-log plot for the interface width and the estimated slope.
- 3. (Optional) An mp4 movie of the simulation process.
- By Le Chen (le.chen@auburn.edu, chenle02@gmail.com), 2023-10-22
+ 1. A text file representing the substrate state.
+ 2. Statistical figures, including a log-log plot for the interface width and the estimated slope.
+ 3. (Optional) An mp4 movie of the simulation process.
+
+ Example:
+
+ ``ptyhon3 RD_CLI.py -w 100 -e 60 -s 5000 --BD --movie``
+
+ In this example, the script will simulate Ballistic Decomposition on a substrate of size 100x60 for 5000 steps. And the simulation movie will be generated.
+
"""
parser = argparse.ArgumentParser(description="""
@@ -352,12 +358,12 @@ def main():
""", formatter_class=argparse.RawTextHelpFormatter)
- parser.add_argument("-w", "--width", type=int, default=100, help="Width of the substrate (default: 100)")
- parser.add_argument("-e", "--height", type=int, default=60, help="Maximum height of the substrate (default: 60)")
- parser.add_argument("-s", "--steps", type=int, default=5000, help="Number of particles to drop (default: 5000)")
- parser.add_argument("--relax", action="store_true", help="Surface Relaxation: go to the nearest lowest neighbor (default: False)")
- parser.add_argument("--BD", action="store_true", help="Ballistic decomposition (default: False)")
- parser.add_argument("-m", "--movie", action="store_true", help="Generate the mp4 movie (default: False)")
+ parser.add_argument("-w", "--width", type=int, default=100, help="Width of the substrate (default: 100)")
+ parser.add_argument("-e", "--height", type=int, default=60, help="Maximum height of the substrate (default: 60)")
+ parser.add_argument("-s", "--steps", type=int, default=5000, help="Number of particles to drop (default: 5000)")
+ parser.add_argument("-r", "--relax", action="store_true", help="Surface Relaxation: go to the nearest lowest neighbor (default: False)")
+ parser.add_argument("-b", "--BD", action="store_true", help="Ballistic decomposition (default: False)")
+ parser.add_argument("-m", "--movie", action="store_true", help="Generate the mp4 movie (default: False)")
args = parser.parse_args()
Outputfile = ""
diff --git a/Ballistic_decomposition/Visualize_RD.py b/Ballistic_decomposition/Visualize_RD.py
index e89ea11b..4e4cc0db 100755
--- a/Ballistic_decomposition/Visualize_RD.py
+++ b/Ballistic_decomposition/Visualize_RD.py
@@ -127,12 +127,10 @@ def main():
Example:
- ``python3 Visualize_RD.py -f path/to/substrate.txt -t "Simulation Title" -r 10 --envelop --average --play``
+ ``python3 Visualize_RD.py -f path/to/substrate.txt -t "Simulation Title" -r 10 --envelop --average --play``
This command will run the script on 'substrate.txt', set a title, use a frame rate of 10 fps,
and display both the top envelope and average height in the visualization.
-
- By Le Chen (le.chen@auburn.edu, chenle02@gmail.com), 2023-10-22
"""
parser = argparse.ArgumentParser(description="""
diff --git a/Build_Docs/source/conf.py b/Build_Docs/source/conf.py
index c3a8d36c..ad4fc1f0 100644
--- a/Build_Docs/source/conf.py
+++ b/Build_Docs/source/conf.py
@@ -14,7 +14,7 @@
import os
import sys
sys.path.insert(0, os.path.abspath('../../Ballistic_decomposition/'))
-
+sys.path.insert(0, os.path.abspath('../../Ballistic_decomposition/Ian_edits/'))
# -- Project information -----------------------------------------------------
diff --git a/Build_Docs/source/index.rst b/Build_Docs/source/index.rst
index f5a83513..c265bb22 100644
--- a/Build_Docs/source/index.rst
+++ b/Build_Docs/source/index.rst
@@ -13,6 +13,7 @@ Welcome to Surface Growth Models with Tetris Growth's documentation!
doc_rst/RD_CLI
doc_rst/Visualize_RD
+ doc_rst/tetris_complete
Indices and tables
diff --git a/docs/html/_sources/index.rst.txt b/docs/html/_sources/index.rst.txt
index f5a83513..c265bb22 100644
--- a/docs/html/_sources/index.rst.txt
+++ b/docs/html/_sources/index.rst.txt
@@ -13,6 +13,7 @@ Welcome to Surface Growth Models with Tetris Growth's documentation!
doc_rst/RD_CLI
doc_rst/Visualize_RD
+ doc_rst/tetris_complete
Indices and tables
diff --git a/docs/html/doc_rst/RD_CLI.html b/docs/html/doc_rst/RD_CLI.html
index 0e736f9d..263c4c31 100644
--- a/docs/html/doc_rst/RD_CLI.html
+++ b/docs/html/doc_rst/RD_CLI.html
@@ -179,33 +179,31 @@
Navigation
-w, --width
: Width of the substrate (default: 100)
-
-
-e, –height : Maximum height of the substrate (default: 60)
--s, –steps : Number of particles to drop (default: 5000)
-
-
-
--relax
+
-e, --height
+
: Maximum height of the substrate (default: 60)
+
+
-s, --steps
+
: Number of particles to drop (default: 5000)
+
+
-r, --relax
: Enable surface relaxation (default: False)
-
--BD
+
-b, --BD
: Enable ballistic decomposition (default: False)
-
-
-
-m, --movie
: Generate an mp4 movie of the simulation (default: False)
-
-
It returns:
+
It returns:
+
A text file representing the substrate state.
Statistical figures, including a log-log plot for the interface width and the estimated slope.
(Optional) An mp4 movie of the simulation process.
In this example, the script will simulate Ballistic Decomposition on a substrate of size 100x60 for 5000 steps. And the simulation movie will be generated.
This command will run the script on ‘substrate.txt’, set a title, use a frame rate of 10 fps,
and display both the top envelope and average height in the visualization.
This module simulates the surface growth by Tetris pieces. It includes
+functions to generate random Tetris pieces, calculate their landing positions
+on a substrate, and simulate a game of Tetris for a given number of steps and a
+defined grid size.
To use the script from terminal, the following options are expected:
+
+
-w, --width
+
: Width of the substrate (default: 100)
+
+
-e, --height
+
: Maximum height of the substrate (default: 60)
+
+
-s, --steps
+
: Number of particles to drop (default: 5000)
+
+
+
It returns:
+
+
A text file representing the substrate state.
+
+
Example
+
ptyhon3tetris_complete.py-w100-e60-s5000
+
In this example, the script will simulate Tetris Decomposition on a substrate of size 100x60 for 5000 steps. And the simulation movie will be generated.
diff --git a/docs/html/searchindex.js b/docs/html/searchindex.js
index bb17ea6c..1df3d739 100644
--- a/docs/html/searchindex.js
+++ b/docs/html/searchindex.js
@@ -1 +1 @@
-Search.setIndex({docnames:["doc_rst/RD_CLI","doc_rst/Visualize_RD","doc_rst/tetris_complete","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["doc_rst/RD_CLI.rst","doc_rst/Visualize_RD.rst","doc_rst/tetris_complete.rst","index.rst"],objects:{"":[[0,0,0,"-","RD_CLI"],[1,0,0,"-","Visualize_RD"]],RD_CLI:[[0,1,1,"","Ballistic_Deposition"],[0,1,1,"","Envelop"],[0,1,1,"","Random_Deposition"],[0,1,1,"","Random_Deposition_Surface_Relaxation"],[0,1,1,"","interface_width"],[0,1,1,"","main"]],Visualize_RD:[[1,1,1,"","main"],[1,1,1,"","visualize_simulation"]]},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:function"},terms:{"10":[0,1],"100":0,"2023":[0,1],"22":[0,1],"4":1,"5000":0,"60":0,"default":[0,1],"final":1,"function":[0,1],"int":[0,1],"return":[0,1],A:0,By:[0,1],If:[0,1],In:0,It:[0,1],The:[0,1],To:0,accept:0,adjust:1,after:1,all:0,also:0,an:[0,1],anim:1,anoth:0,ar:0,argument:0,arrai:0,auburn:[0,1],automat:1,averag:1,ballist:0,ballistic_deposit:0,base:[0,1],bd:0,bool:1,both:1,box:0,calcul:0,chen:[0,1],chenle02:[0,1],column:0,com:[0,1],command:[0,1],comput:0,contact:0,contain:[0,1],csv:0,custom:1,data:[0,1],decid:0,decomposit:0,deposit:[0,1],differ:0,displai:1,drop:0,e:[0,1],each:0,edu:[0,1],enabl:0,envelop:[0,1],estim:0,evolut:1,exampl:1,execut:1,expect:0,extens:0,f:1,fals:[0,1],figur:0,file:[0,1],filenam:[0,1],flag:1,follow:0,fp:1,frame:1,from:[0,1],gener:[0,1],given:0,gmail:[0,1],growth:0,height:[0,1],highest:0,imag:0,includ:0,independ:0,index:3,indic:1,input:0,interfac:0,interface_width:0,invok:0,land:0,le:[0,1],left:0,like:0,line:[0,1],load:1,log:0,lowest:0,m:0,main:[0,1],matrix:0,maximum:0,model:0,modul:3,movi:0,mp4:[0,1],name:0,ndarrai:0,neighbor:0,number:0,numpi:0,offer:1,option:[0,1],output:[0,1],over:[0,1],p:1,page:3,paramet:[0,1],particl:[0,1],pass:0,path:1,per:1,perform:0,pile:0,plai:1,playback:1,plot:[0,1],plot_titl:1,png:0,posit:0,proce:0,process:[0,1],provid:[0,1],py:1,python3:1,r:1,random:0,random_deposit:0,random_deposition_surface_relax:0,rate:1,rd_cli:3,read:0,relax:0,repres:0,requir:1,right:0,run:[0,1],s:0,same:0,sand:0,save:1,script:[0,1],search:3,second:1,seek:0,select:0,set:[0,1],sever:1,show:1,show_averag:1,simul:[0,1],slope:0,snowflak:0,state:0,statist:0,step:0,stick:0,str:[0,1],string:0,substrat:[0,1],support:1,surfac:0,t:1,termin:0,text:0,thi:[0,1],time:[0,1],titl:1,top:[0,1],txt:1,type:[0,1],up:0,upon:0,us:[0,1],variou:0,video:1,visual:[0,1],visualize_rd:3,visualize_simul:1,w:0,whether:1,width:0},titles:["RD_CLI module","Visualize_RD module","tetris_complete module","Welcome to Surface Growth Models with Tetris Growth\u2019s documentation!"],titleterms:{document:3,growth:3,indic:3,model:3,modul:[0,1,2],rd_cli:0,s:3,surfac:3,tabl:3,tetri:3,tetris_complet:2,visualize_rd:1,welcom:3}})
\ No newline at end of file
+Search.setIndex({docnames:["doc_rst/RD_CLI","doc_rst/Visualize_RD","doc_rst/tetris_complete","index"],envversion:{"sphinx.domains.c":2,"sphinx.domains.changeset":1,"sphinx.domains.citation":1,"sphinx.domains.cpp":4,"sphinx.domains.index":1,"sphinx.domains.javascript":2,"sphinx.domains.math":2,"sphinx.domains.python":3,"sphinx.domains.rst":2,"sphinx.domains.std":2,sphinx:56},filenames:["doc_rst/RD_CLI.rst","doc_rst/Visualize_RD.rst","doc_rst/tetris_complete.rst","index.rst"],objects:{"":[[0,0,0,"-","RD_CLI"],[1,0,0,"-","Visualize_RD"],[2,0,0,"-","tetris_complete"]],RD_CLI:[[0,1,1,"","Ballistic_Deposition"],[0,1,1,"","Envelop"],[0,1,1,"","Random_Deposition"],[0,1,1,"","Random_Deposition_Surface_Relaxation"],[0,1,1,"","interface_width"],[0,1,1,"","main"]],Visualize_RD:[[1,1,1,"","main"],[1,1,1,"","visualize_simulation"]],tetris_complete:[[2,1,1,"","Tetris_Choice"],[2,1,1,"","Tetris_RD"],[2,1,1,"","ffnz"],[2,1,1,"","main"]]},objnames:{"0":["py","module","Python module"],"1":["py","function","Python function"]},objtypes:{"0":"py:module","1":"py:function"},terms:{"0":2,"1":2,"10":1,"100":[0,2],"100x60":[0,2],"12":2,"180":2,"2":2,"2023":2,"22":[],"270":2,"3":2,"4":[1,2],"5":2,"5000":[0,2],"6":2,"60":[0,2],"7":2,"90":2,"default":[0,1,2],"do":2,"final":1,"function":[0,1,2],"int":[0,1,2],"return":[0,1,2],A:[0,2],And:[0,2],By:2,If:[0,1],In:[0,2],It:[0,1,2],The:[0,1,2],There:2,To:[0,2],accept:0,add:2,adjust:1,after:1,all:0,also:0,an:[0,1],anim:1,anoth:0,ar:[0,2],argument:0,arrai:[0,2],auburn:2,automat:1,averag:1,b:0,ballist:0,ballistic_deposit:0,base:[0,1],bd:0,bool:1,both:1,box:0,calcul:[0,2],chen:[],chenle02:[],column:[0,2],com:[],command:[0,1],comput:0,contact:0,contain:[0,1],csv:0,custom:1,data:[0,1],date:2,decid:0,decomposit:[0,2],defin:2,degre:2,deposit:[0,1],differ:0,displai:1,drop:[0,2],e:[0,1,2],each:[0,2],edu:2,element:2,enabl:0,entri:2,envelop:[0,1],estim:0,evolut:1,exampl:[0,1,2],execut:1,expect:[0,2],extens:0,f:1,fals:[0,1],ffnz:2,figur:0,file:[0,1,2],filenam:[0,1,2],find:2,first:2,flag:1,follow:[0,2],fp:1,frame:1,from:[0,1,2],game:2,gener:[0,1,2],given:[0,2],gmail:[],grid:2,growth:[0,2],height:[0,1,2],highest:0,ian:2,iir0001:2,imag:0,includ:[0,2],independ:0,index:[2,3],indic:1,input:[0,2],interfac:0,interface_width:0,invok:0,its:2,j:2,l:2,land:[0,2],le:[],left:0,like:0,line:[0,1,2],load:1,log:0,lowest:0,m:0,main:[0,1,2],matrix:[0,2],mauricio:2,maximum:[0,2],model:[0,2],modul:3,mont:2,movi:[0,2],mp4:[0,1],name:0,ndarrai:[0,2],neighbor:0,non:2,number:[0,2],numpi:[0,2],offer:1,option:[0,1,2],orient:2,origin:2,output:[0,1,2],over:[0,1],p:1,page:3,paramet:[0,1,2],particl:[0,1,2],pass:0,path:1,per:1,perform:0,piec:2,pile:0,plai:1,playback:1,plot:[0,1],plot_titl:1,png:0,posit:[0,2],probabl:2,proce:0,process:[0,1],provid:[0,1],ptyhon3:[0,2],py:[0,1,2],python3:1,r:[0,1],random:[0,2],random_deposit:0,random_deposition_surface_relax:0,randomli:2,rate:1,rd_cli:3,read:0,relax:0,repres:[0,2],requir:1,right:0,rotat:2,ruau:2,run:[0,1],s:[0,2],same:0,sand:0,save:1,script:[0,1,2],search:[2,3],second:[1,2],seek:0,select:[0,2],set:[0,1],sever:1,show:1,show_averag:1,simplifi:[],simul:[0,1,2],size:[0,2],slope:0,snowflak:0,specifi:2,squar:2,state:[0,2],statist:0,step:[0,2],stick:0,str:[0,1],string:[0,2],substrat:[0,1,2],support:1,surfac:[0,2],t:[1,2],termin:[0,2],tetri:2,tetris_choic:2,tetris_complet:3,tetris_rd:2,text:[0,2],thi:[0,1,2],time:[0,1],titl:1,top:[0,1],txt:1,type:[0,1,2],up:0,upon:0,us:[0,1,2],variou:0,video:1,visual:[0,1],visualize_rd:3,visualize_simul:1,w:[0,2],whether:1,width:[0,2],z:2,zero:2},titles:["RD_CLI module","Visualize_RD module","tetris_complete module","Welcome to Surface Growth Models with Tetris Growth\u2019s documentation!"],titleterms:{document:3,growth:3,indic:3,model:3,modul:[0,1,2],rd_cli:0,s:3,surfac:3,tabl:3,tetri:3,tetris_complet:2,visualize_rd:1,welcom:3}})
\ No newline at end of file
diff --git a/docs/pdf/surfacegrowthwithrandomtetrispieces.pdf b/docs/pdf/surfacegrowthwithrandomtetrispieces.pdf
index 3a00f234..9cf78fca 100644
Binary files a/docs/pdf/surfacegrowthwithrandomtetrispieces.pdf and b/docs/pdf/surfacegrowthwithrandomtetrispieces.pdf differ