# Modelling the Structure and Anisotropy of London Clay Using the SA_BRICK Model
## 3 Developments of the SA_BRICK Model
### Implementation of the SA_BRICK MODEL in Finite Element Programs NAPgeo and PLAXIS  
Prior to the use of the advanced constitutive model for real boundary value problems, the model behaviour had to be carefully verified in terms of numerical stability in the single element setting. The verification was carried out for different stress-strain paths, loading step sizes, loading histories and initial states. A further step in the development of the model was the calibration of the input parameters, which was carried out by a comparison of the model predictions with the results of the laboratory testing for the same boundary conditions. Given that kinematic hardening models consider stress and strain history up to the present state, an important part of the model calibration represents the process of initialisation of state variables. In real boundary value problems, these must be set correctly in the finite element mesh at the beginning of analyses so that the in situ state is correctly modelled, being a consequence of geological history. In order to enable the development of constitutive models following the approach explained above, the single finite element program NAPgeo was created [46] as part of this research. NAPgeo uses a single four-noded quadrilateral finite element in plane strain and in axisymmetric conditions. According to the chosen boundary conditions, which are typically those of the laboratory tests, the prescribed loading is applied in the form of nodal forces or nodal displacements. The modified Newton-Raphson method is used to integrate each loading step. To control the model behaviour at each numerical iteration, it is possible to step-in the model and examine all the variables. NAPgeo was developed to offer full flexibility in terms of arbitrary loading-unloading paths that correspond to different conventional laboratory test simulations (i.e., oedometer, plane direct shear, triaxial compression and extension, drained-undrained shearing, constant \(p^{\prime}\) shearing, etc.). The model parameters and state variables can also be freely manipulated, while the arbitrary sequences of phases can be prescribed, including the changes in boundary conditions for each phase. In each simulation, the values of all internal quantities (i.e., stresses, strains, state variables) are monitored, compared and stored, including the comparisons with the supplied laboratory data. Once the model was numerically checked for accuracy and stability and calibrated against the results of the laboratory test data in NAPgeo, it was appropriately used for real boundary value problems. In order to achieve a direct transition from a single-element model to a model that can be used in purpose-developed finite element software, NAPgeo was coded to support the user-defined model implementation in PLAXIS (user-defined soil model dynamic link library--UDSM); as defined in [19]. To achieve this, it is necessary that the main model routine has a PLAXIS compatible interface and that it is divided into PLAXIS compatible processing tasks. By this approach, any constitutive model developed  
Figure 5: \(\Omega\) value cases for different brick locations (red squares marked with the letters (a) to (e)) according to the strain increment direction. The strain point is marked with the blue dot (after [44]). using the NAPgeo program in single finite element form can be used automatically in PLAXIS without any need for changes of the model source code. This approach enables debugging with stepping in the code during the model development process, which is not possible if the model is directly run using the PLAXIS program. By using this procedure, the errors originating from such model transitions are considerably minimised. The main model input variables at the beginning of each step of loading in the global Newton-Raphson iteration are stress \(\sigma_{i}\), strain \(\varepsilon_{i}\), pore pressure \(u_{w,i}\), state variables \(a_{i}\), as well as the iterative strain increment \(\Delta\varepsilon_{i}\).