## 2 Generation of Mesostructures and Numerical Models
### The Generation of Aggregate Structure and Pore Structure
Repeat steps 2 and 3 in all other gradation segments, and then the array Aagg containing all aggregate information will be generated, through which the aggregate structure can be established. Generate and place the pore:  
Firstly, set an array, Kpor, which has (n + m) rows and three columns for 2D specimens or four columns for 3D specimens, where n is the number of aggregates and m is the number of pores. The first n rows of array Kpor are the same as array Aagg. Secondly, generate a pore, which starts with the grading segment containing the largest pores. In each grading segment, [ei, ei+1], the pore size is uniformly distributed. Before that, three conditions are checked: (1) all pores should be inside the specimen, and the distance between the pore boundary and the specimen boundary should be greater than \(\psi_{1}\); (2) there is no overlapping/intersection between this pore and any existing aggregates and other pores; (3) the distance between the pore boundary and the boundary of any aggregate is greater than \(\psi_{2}\). If any of these three conditions is not met, the three random numbers (2D)/four random numbers (3D) should be ignored, and a new set of random numbers will be generated to place the pore in a new position. If these conditions are all met, the pore is generated and placed successfully, and the three random numbers (2D)/four random numbers (3D) are stored in the array, Kpor, starting from the (n + 1)th row. Generate and place all pores to form a pore structure:  
Repeat step 4 until the remaining pore area in this gradation segment is less than \(\pi e_{i}^{2}/4\), which is transferred to the next smaller gradation segment. Repeat steps 4 and 5 in all other gradation segments, and then the array, Kpor, containing all aggregate and pore information will be generated, through which the aggregate structure and pore structure in concrete can be established. Using the above generation and placement algorithm, CRAMs that can accurately simulate aggregate and pore structures can be easily established. Change the pore structure parameters in step 1, keep the array, Aagg, in step 3 unchanged, perform steps 4 and 5, and then CRAMs with the same aggregate structure but different pore structures controlled by the pore structure parameters can be established. According to the CVM, 25 concrete specimens with the same aggregate structure and different pore structures were established, and the relevant parameters are shown in Table 2. The size of the concrete specimens established in this paper are all 50 mm \(\times\) 50 mm, and the structural parameters are \(\psi_{1}=\psi_{2}=0.5\)mm. Figure 1 shows some concrete specimens with the same aggregate structure and total porosity of 1%, 2%, 3%, and 4% (aggregate area ratio is 45%). Figure 2 shows some concrete specimens with the same aggregate structure and total porosity but different pore structures as the specimens in Figure 1.  
It can be seen from Table 2 that the pore structure in concrete has the following characteristics. (1) As the total porosity increases, the sub-porosity of each gradation segment of pores increases. (2) As the total porosity increases, the average pore radius decreases, which indicates a large increase in the number of pores. For specimens with the same total porosity, the average pore radius of the L-type specimen is greater than that of the M-type specimen, which is greater than that of the S-type specimen. This indicates that the average pore radius of the specimens with the same total porosity is proportional to the content of large pores. (3) As the total porosity increases, the PSSA increases. For the specimens with the same total porosity, the PSSA of the L-type specimen is smaller