The program genpartnew.c, whose listing is provided in Appendix A, is used to place digitized spherical particles of a user specified PSD into a three-dimensional computational volume, typically 100 elements on a side. Periodic boundaries are employed such that a particle that extends outward through one or more faces of the 3-D microstructure is completed extending inward through the opposite face(s). Additionally, the particles can be dispersed by specifying a minimum particle to particle separation distance or flocculated by moving all particles at random and flocculating those that impact one another. The major changes from version 2.0 to version 3.0 of CEMHYD3D for the genpartnew.c program have been the incorporation of additional particle types (limestone, slag, and dicalcium silicate) and implementation of a revised distribution algorithm for the various calcium sulfate phases (gypsum, hemihydrate, and anhydrite) that more closely matches the user-requested distribution.
The genpartnew.c program is menu-driven and detailed descriptions of the menu selections, taken from the version 2.0 manual [2] and repeated here for completeness, are as follows:
1) Exit: exit the program
2) Add spherical particles (cement, gypsum, pozzolans, etc.) to microstructure: allows the user to specify the discretized particle size distribution that should be used, the number of particles to place, the proportion of "cement" particles that should be calcium sulfate (gypsum, hemihydrate, and/or anhydrite), and whether the particles should be dispersed during placement. The PSD should be provided on a number basis. A useful tool for computing the number-based PSD for various cements can be found at http://ciks.cbt.nist.gov/cgi-bin/vcctl/vcctl11/gpf/listcementpsd.pl. Particles are typically at least 3 pixels (voxels2) in diameter and are added in order from largest to smallest. One-pixel monophase particles are added in the hydration program disrealnew, just prior to executing the hydration simulation (see section 5.2).
3) Flocculate system by reducing number of particle clusters: allows the user to create any desired number of flocs (clusters) by randomly moving each particle (cluster) centroid in one-pixel increments and aggregating any particles (clusters) that contact one another during this process. The only input required is the user requested number of clusters (flocs) to be present at the end of the execution of the routine. Typically, if no superplasticizer or water-reducing agent is used, the cement particles will have a large tendency to flocculate together, perhaps even into a single floc structure.
4) Measure global phase fractions: outputs the numbers of voxels of each phase currently present in the 3-D microstructure.
5) Add an aggregate to the microstructure: allows the user to add a single flat plate aggregate to the 3-D microstructure for studying the development of microstructure in the interfacial transition zone (ITZ). The only required input is the thickness of the aggregate to be placed, which must be an even integer. Typically, the user should place an aggregate (if desired) into the microstructure before placing any of the cement or other particles. Otherwise, the aggregate will simply overlap and replace any solid particle pixels contained within its boundaries.
6) Measure single phase connectivity (pores or solids): allows the user to employ a burning algorithm [3] to determine the percolation characteristics of either the porosity or the solids present in the 3-D microstructure. The user must specify the phase in which they are interested and the routine returns the number of voxels of that phase which are accessible from the top of the 3-D microstructure, along with the number of voxels that are contained in pathways that traverse (span) the microstructure.
7) Measure phase fractions vs. distance from aggregate: outputs a listing of the number of voxels of each phase present in parallel planes at various fixed distances (one pixel increments) from the aggregate surface. When this menu selection is executed, the results are reported to the standard output (screen) and are also written to a datafile named agglist.out. If the user wishes to preserve this output file, they must rename it to a name of their choosing immediately upon leaving the genpartnew program.
8) Output microstructure to file: allows the user to save the created microstructure to files. The user must supply two filenames, one for the storage of the actual microstructure (cement, calcium sulfate, porosity, etc.) and the second for the storage of the individual particle IDs (to be used in assessing the setting of the cement during hydration using the disrealnew program).
When adding calcium sulfate to the cement, the user has two choices. If only the composite PSD for the cement and gypsum (sulfate) is known, the user can simply specify the volume fraction of particles that should be randomly assigned to be calcium sulfate (in its three forms of gypsum, hemihydrate, and anhydrite). Conversely, if the actual separate PSD of the calcium sulfate is known, the user can use a value of 0.0 for the randomly-assigned volume fraction and specify the actual numbers of each size calcium sulfate particle to be placed, in a manner analogous to that used for cement. When the separate cement and calcium sulfate PSDs are "merged" in this fashion, the user should be sure to add all the largest radius particles (e.g., first the cement, then the calcium sulfate) first before proceeding to the next smaller radius particles, etc. If this second option is to be utilized, in the program <genpartnew, a phase ID of 1 corresponds to cement, 5 to gypsum, 6 to hemihydrate, and 7 to anhydrite, as indicated in the program listing provided in Appendix A.
An example annotated datafile for using genpartnew is as follows:
-3034 random number seed 2 menu choice to place particles 16 number of size classes to place 0 dispersion distance between particles in pixels 0.0604 calcium sulfate (total) volume fraction 0.515 0.041 fractions of calcium sulfate that are hemihydrate and anhydrite 1 number of spheres of size class 1 17 radius of spheres of size class 1 1 phase ID of spheres of size class 1 (1 = cement) 1 number of spheres of size class 2 15 radius of spheres of size class 2 1 phase ID of spheres of size class 2 (1 = cement) 1 number of spheres of size class 3 14 radius of spheres of size class 3 1 phase ID of spheres of size class 3 (1 = cement) 1 number of spheres of size class 4 13 radius of spheres of size class 4 1 phase ID of spheres of size class 4 (1 = cement) 2 number of spheres of size class 5 12 radius of spheres of size class 5 1 phase ID of spheres of size class 5 (1 = cement) 2 number of spheres of size class 6 11 radius of spheres of size class 6 1 phase ID of spheres of size class 6 (1 = cement) 4 number of spheres of size class 7 10 radius of spheres of size class 7 1 phase ID of spheres of size class 7 (1 = cement) 5 number of spheres of size class 8 9 radius of spheres of size class 8 1 phase ID of spheres of size class 8 (1 = cement) 8 number of spheres of size class 9 8 radius of spheres of size class 9 1 phase ID of spheres of size class 9 (1 = cement) 13 number of spheres of size class 10 7 radius of spheres of size class 10 1 phase ID of spheres of size class 10 (1 = cement) 21 number of spheres of size class 11 6 radius of spheres of size class 11 1 phase ID of spheres of size class 11 (1 = cement) 38 number of spheres of size class 12 5 radius of spheres of size class 12 1 phase ID of spheres of size class 12 (1 = cement) 73 number of spheres of size class 13 4 radius of spheres of size class 13 1 phase ID of spheres of size class 13 (1 = cement) 174 number of spheres of size class 14 3 radius of spheres of size class 14 1 phase ID of spheres of size class 14 (1 = cement) 450 number of spheres of size class 15 2 radius of spheres of size class 15 1 phase ID of spheres of size class 15 (1 = cement) 2674 number of spheres of size class 16 1 radius of spheres of size class 16 1 phase ID of spheres of size class 16 (1 = cement) 4 menu selection to report phase counts 3 menu selection to flocculate particles 1 number of separate flocs (particle clusters) to create 8 menu selection to output current microstructure to file cem152w04floc.img filename to save image to pcem152w04floc.img filename to save particle IDs to 1 menu selection to exit program (end)
The output created by executing the program genpartnew with the above input datafile (using a command such as genpartnew <genpartnew.dat >genpartnew.out at the command line prompt of a Linux or UNIX-based system) is as follows (user inputs are in boldface):
Enter random number seed value (a negative integer)
-3034
Input User Choice
1) Exit
2) Add spherical particles (cement, gypsum, pozzolans, etc.) to microstructure
3) Flocculate system by reducing number of particle clusters
4) Measure global phase fractions
5) Add an aggregate to the microstructure
6) Measure single phase connectivity (pores or solids)
7) Measure phase fractions vs. distance from aggregate surface
8) Output current microstructure to file
2
Enter number of different size spheres to use(max. is 200)
16
Enter dispersion factor (separation distance in pixels) for spheres (0-2)
0 corresponds to totally random placement
1
Enter probability for gypsum particles on a random particle basis (0.0-1.0)
0.060400
Enter probabilities for hemihydrate and anhydrite forms of gypsum (0.0-1.0)
0.515000 0.041000
Enter number, radius, and phase ID for each sphere class (largest radius 1st)
Phases are 1- Cement and (random) calcium sulfate, 2- C2S, 5- Gypsum, 6- hemihydrate 7- anhydrite 8- Pozzolanic, 9- Inert, 10- Slag, 26- CaCO3 30- Fly Ash
Enter number of spheres of class 1
1
Enter radius of spheres of class 1
(Integer <=33 please)
17
Enter phase of spheres of class 1
1
Enter number of spheres of class 2
1
Enter radius of spheres of class 2
(Integer <=33 please)
15
Enter phase of spheres of class 2
1
Enter number of spheres of class 3
1
Enter radius of spheres of class 3
(Integer <=33 please)
14
Enter phase of spheres of class 3
1
Enter number of spheres of class 4
1
Enter radius of spheres of class 4
(Integer <=33 please)
13
Enter phase of spheres of class 4
1
Enter number of spheres of class 5
2
Enter radius of spheres of class 5
(Integer <=33 please)
12
Enter phase of spheres of class 5
1
Enter number of spheres of class 6
2
Enter radius of spheres of class 6
(Integer <=33 please)
11
Enter phase of spheres of class 6
1
Enter number of spheres of class 7
4
Enter radius of spheres of class 7
(Integer <=33 please)
10
Enter phase of spheres of class 7
1
Enter number of spheres of class 8
5
Enter radius of spheres of class 8
(Integer <=33 please)
9
Enter phase of spheres of class 8
1
Enter number of spheres of class 9
8
Enter radius of spheres of class 9
(Integer <=33 please)
8
Enter phase of spheres of class 9
1
Enter number of spheres of class 10
13
Enter radius of spheres of class 10
(Integer <=33 please)
7
Enter phase of spheres of class 10
1
Enter number of spheres of class 11
21
Enter radius of spheres of class 11
(Integer <=33 please)
6
Enter phase of spheres of class 11
1
Enter number of spheres of class 12
38
Enter radius of spheres of class 12
(Integer <=33 please)
5
Enter phase of spheres of class 12
1
Enter number of spheres of class 13
73
Enter radius of spheres of class 13
(Integer <=33 please)
4
Enter phase of spheres of class 13
1
Enter number of spheres of class 14
174
Enter radius of spheres of class 14
(Integer <=33 please)
3
Enter phase of spheres of class 14
1
Enter number of spheres of class 15
450
Enter radius of spheres of class 15
(Integer <=33 please)
2
Enter phase of spheres of class 15
1
Enter number of spheres of class 16
2674
Enter radius of spheres of class 16
(Integer <=33 please)
1
Enter phase of spheres of class 16
1
Input User Choice
1) Exit
2) Add spherical particles (cement, gypsum, pozzolans, etc.) to microstructure
3) Flocculate system by reducing number of particle clusters
4) Measure global phase fractions
5) Add an aggregate to the microstructure
6) Measure single phase connectivity (pores or solids)
7) Measure phase fractions vs. distance from aggregate surface
8) Output current microstructure to file
4
Phase counts are:
Porosity= 627570
Cement= 349940
C2S= 0
Gypsum= 10662
Anhydrite= 247
Hemihydrate= 11581
Pozzolan= 0
Inert= 0
Slag= 0
CaCO3= 0
Fly Ash= 0
Aggregate= 0
Input User Choice
1) Exit
2) Add spherical particles (cement, gypsum, pozzolans, etc.) to microstructure
3) Flocculate system by reducing number of particle clusters
4) Measure global phase fractions
5) Add an aggregate to the microstructure
6) Measure single phase connectivity (pores or solids)
7) Measure phase fractions vs. distance from aggregate surface
8) Output current microstructure to file
3
Enter number of flocs desired at end of routine (>0)
1
Number left was 0 but number of clusters is 3322
Number left was 339 but number of clusters is 2937
Number left was 711 but number of clusters is 2557
Number left was 1080 but number of clusters is 2214
Number left was 1387 but number of clusters is 1938
Number left was 1652 but number of clusters is 1688
Number left was 1883 but number of clusters is 1453
Number left was 2102 but number of clusters is 1260
Number left was 2285 but number of clusters is 1093
Number left was 2457 but number of clusters is 932
Number left was 2594 but number of clusters is 806
Number left was 2713 but number of clusters is 706
Number left was 2794 but number of clusters is 624
Number left was 2873 but number of clusters is 545
Number left was 2948 but number of clusters is 489
Number left was 2998 but number of clusters is 435
Number left was 3052 but number of clusters is 394
Number left was 3085 but number of clusters is 355
Number left was 3128 but number of clusters is 312
Number left was 3166 but number of clusters is 282
Number left was 3191 but number of clusters is 253
Number left was 3223 but number of clusters is 225
Number left was 3250 but number of clusters is 208
Number left was 3263 but number of clusters is 199
Number left was 3273 but number of clusters is 181
Number left was 3291 but number of clusters is 158
Number left was 3314 but number of clusters is 148
Number left was 3324 but number of clusters is 141
Number left was 3330 but number of clusters is 128
Number left was 3342 but number of clusters is 117
Number left was 3354 but number of clusters is 108
Number left was 3362 but number of clusters is 96
Number left was 3374 but number of clusters is 85
Number left was 3385 but number of clusters is 74
Number left was 3396 but number of clusters is 66
Number left was 3404 but number of clusters is 59
Number left was 3411 but number of clusters is 53
Number left was 3417 but number of clusters is 47
Number left was 3422 but number of clusters is 44
Number left was 3425 but number of clusters is 40
Number left was 3429 but number of clusters is 38
Number left was 3431 but number of clusters is 35
Number left was 3433 but number of clusters is 34
Number left was 3435 but number of clusters is 33
Number left was 3436 but number of clusters is 31
Number left was 3438 but number of clusters is 27
Number left was 3442 but number of clusters is 24
Number left was 3445 but number of clusters is 23
Number left was 3446 but number of clusters is 22
Number left was 3447 but number of clusters is 21
Number left was 3448 but number of clusters is 19
Number left was 3449 but number of clusters is 16
Number left was 3453 but number of clusters is 15
Number left was 3453 but number of clusters is 14
Number left was 3454 but number of clusters is 13
Number left was 3455 but number of clusters is 13
Number left was 3455 but number of clusters is 13
Number left was 3455 but number of clusters is 11
Number left was 3458 but number of clusters is 10
Number left was 3458 but number of clusters is 10
Number left was 3458 but number of clusters is 9
Number left was 3459 but number of clusters is 9
Number left was 3459 but number of clusters is 9
Number left was 3459 but number of clusters is 9
Number left was 3459 but number of clusters is 9
Number left was 3460 but number of clusters is 8
Number left was 3461 but number of clusters is 7
Number left was 3461 but number of clusters is 6
Number left was 3463 but number of clusters is 4
Number left was 3464 but number of clusters is 4
Number left was 3464 but number of clusters is 4
Number left was 3464 but number of clusters is 4
Number left was 3464 but number of clusters is 3
Number left was 3465 but number of clusters is 3
Number left was 3465 but number of clusters is 3
Number left was 3465 but number of clusters is 3
Number left was 3466 but number of clusters is 2
Number left was 3466 but number of clusters is 2
Number left was 3466 but number of clusters is 2
Number left was 3466 but number of clusters is 2
Number left was 3466 but number of clusters is 2
Number left was 3466 but number of clusters is 2
Number left was 3466 but number of clusters is 2
Number left was 3466 but number of clusters is 2
Number left was 3466 but number of clusters is 2
Number left was 3466 but number of clusters is 1
Input User Choice
1) Exit
2) Add spherical particles (cement, gypsum, pozzolans, etc.) to microstructure
3) Flocculate system by reducing number of particle clusters
4) Measure global phase fractions
5) Add an aggregate to the microstructure
6) Measure single phase connectivity (pores or solids)
7) Measure phase fractions vs. distance from aggregate surface
8) Output current microstructure to file
8
Enter name of file to save microstructure to
cem152w04floc.img
Enter name of file to save particle IDs to
pcem152w04floc.img
Input User Choice
1) Exit
2) Add spherical particles (cement, gypsum, pozzolans, etc.) to microstructure
3) Flocculate system by reducing number of particle clusters
4) Measure global phase fractions
5) Add an aggregate to the microstructure
6) Measure single phase connectivity (pores or solids)
7) Measure phase fractions vs. distance from aggregate surface
8) Output current microstructure to file
1
[2] The reader should note that the terms pixel and voxel are used interchangeably throughout this document. A voxel is basically just a three-dimensional pixel (pixel being a short form of picture element).