I declare that the thesis entitled Object Oriented Nonlinear Finite Element Analysis Framework for Implementation of Modified Cam clay Model. I conducted at the Department of Civil Engineering, Indian Institute of Technology Guwahati, India under the supervision of Dr. 146]: Axial strain (εa) versus deviatoric stress (q)166 9.12 Comparison of the results of drainage triaxial tests by the method of arc length z. 191 9.30 Finite element mesh (Mesh2) for the analysis of a single foundation using the RK method 191 9.31 Comparison of all methods, drained: displacement of foundation against foundation.
ABSTRACT
Introduction
- General
- Motivation of the research
- Numerical integration of MCCM
- Nonlinear solution techniques and load stepping schemes
- Interpretation of nonlinear finite element analysis as DAEs and its implementation to MCCM
- Objective
- Layout of the thesis
- Introduction
- Object-oriented programming in FEM
- Soil constitutive models
- Numerical integration of constitutive relations
- Numerical integration: Cam clay group of models
- Numerical integration: constitutive relations for soil
- Numerical integration: general plasticity models
- Nonlinear solution techniques and load step- ping schemes for critical state modelsping schemes for critical state models
- Interpretation of nonlinear finite element as DAEsDAEs
- Summary
- Introduction
- State of stress and strain in soil mechanics
- Critical state soil mechanics
- Basic formulation of critical state models in triaxial stress space
- Critical state parameters
- Volume-pressure relations
- Critical state line
- Yielding of Cam clay
- Hardening rule
- Volumetric response of Cam clay
- Strain for triaxial stress space
- Modified Cam clay model
- Constitutive relations used in the present study
- Summary
- Introduction
- Integration algorithm for MCCM
- Preliminaries
- Stress integration algorithm in the elastic region
- Stress integration algorithm in the elasto-plastic re- giongion
- Summary
- Introduction
- Newton-Raphson method
- Modified Newton-Raphson method
- Arclength method
- Accelerated modified Newton-Raphson method
- Modified Newton-Raphson method with Chen accel- eratorerator
- Modified Newton-Raphson method with modified Thomas acceleratorThomas accelerator
- Automatic schemes
- Automatic incremental scheme
- Automatic iterative scheme
- Summary
- Introduction
- Global algorithm
- DIRK method
- Solution of coupled system of equations using multi- level Newton-Raphson methodlevel Newton-Raphson method
- Application to MCCM
- Application of α method
- Backward Euler method
- Trapezoidal rule
- Summary
- Introduction
- Object-oriented programming paradigm
- Key concepts of object-oriented programming
- Modeling finite element through object-oriented programming conceptprogramming concept
- Designing finite element classes
- Modeling classes
- Finite element model classes
An implicit integration algorithm for this model is presented by considering the nonlinearity in the elastic region of the model. Several groups of models are non-linear in nature in the elastic as well as in the plastic parts of the constitutive relationship. Chapter 4 explains an implicit integration algorithm developed for integrating the rate-constitutive equation for MCCM.
In the next section a brief overview is given of the available literature in this direction. The concept of the object-oriented approach is discussed in the context of simple finite element implementation. In the second part of the article, the structure of the proposed environment was described.
Here attention should be focused on the integration of the local constitutive equations as it plays the main role in the calculations. 146] has discussed some practical aspects of the finite element implementation of critical state models. They also showed that the structure of the consistent tangent approximation was preserved in the proposed method.
The concept of interpreting non-linear finite elements as DAEs is also used to integrate the MCCM equations. Critical state models are inherently nonlinear in both the elastic and plastic parts of the constitutive relation. In this study, some of the loading rate schemes discussed by Sheng and Sloan [147] are presented.
This chapter presents some solution techniques and load level schemes. Separate input files are created and opened in the constructor of the Input class.

Geometry
Analysis classes
The matrix B denotes an operator which, when applied to the node variable vector, yields some physical quantities related to the analysis, such as the gradient of the strain. The object of the Analysis class forms and solves the governing equations for the finite element model. The Problem Type class is a representation of the analysis module that contains information about the nature of the analysis, associated strain-displacement relationships, and associated data.
The data stored in the Problem Type class is the information required for describing equations of the physical problem to be analyzed. The functionCart derivative Shape() is responsible for transforming the derivative of the shape functions from natural coordinate to cartesian coordinate. The function CB-matrix() is responsible for calculating the product of constitutive matrix and stress-displacement matrix (CB), where C can be elastic or elastoplastic, depending on the type of problem and loading stage.
The Solution class is a representation of the analysis module that contains information about various equation solving algorithms, available material models, and corresponding stress integration algorithms along with the associated data. The function Assemble f() assembles the global forcing vector, which is the right-hand side of the global equations. The functions Strain calcul() and Stress calcul() calculate the strains and stresses corresponding to a known displacement, and they must be defined in the subclasses of the Mat Model class.
The main data members of the Solver class include the arrays K mat and T load, which store the global stiffness and global force vectors, respectively.

Abstraction of elements from the framework
The M-Cam-clay class contains virtual functions such as Update stress(), Tstress Update(), Elastic moduli update(), etc. The Print Output class is defined at the last level of the hierarchy, which prints the required results in a output file . The Solver class can be divided into abstract subclasses such as Skyline Solver, Band Solver, etc., which are responsible for using specific equation solving algorithms.
TheSolve() function defines the equation solving algorithm used to solve the global set of linear equations. The format of storing the stiffness matrix in K mat and the force vector in the load T depends on the solution algorithm used to solve the resulting algebraic equations. Similarly, by adding a new material model or a new integration algorithm to an existing material model, many new elements can be created at once by combining it with all compatible analysis modules and interpolation types in available.
For example, if a four-headed quadrilateral element is defined for performing plane stress analysis using MCCM with a specific integration algorithm, an eight-headed quadrilateral element can be defined for the same type of analysis using the same material model and integration algorithm by simply defining an eight-headed interpolation class and combining it with the previously created plane strain analysis module. Similarly, for the same material model and integration type, by defining an axisymmetric analysis type and combining it with the previously created interpolation type, a four-node quadrilateral axisymmetric element can be created. The element abstraction is quite simple, suppose we want to solve a plane stress problem using eight-headed rectangular element, MCCM with specific integration algorithm, then we will create a module for the element that will inherit the Plane property . Stress class, Rectangular class and Mat Model class.
Now an object of this element module will be responsible for solving the entire finite element problem.

Analysis flowchart
Create an object of class Problem_Type and store [B], [BC] and [BCB] and the element stiffness matrix Create an object of type Interpolation and store the data. The Estif matrix() function of the Problem Type class is used to calculate the stiffness matrix for each element in the Element abstract class. The element stiffness matrix is then assembled to the correct place in the global stiffness matrix.
Obviously, the assembly algorithm should not change when new elements are added to extend the software. After assembling the stiffness matrix, the right-hand side of the global equation is calculated using the Assemble f() function, before the equation is solved using the solve() member function. The stress and strain are calculated by the element function of the Solution class and finally the element.

Summary
Introduction
To retain the widespread advantages of Cam clay group models, as explained in Chapter 2, the MCCM is selected for the present study and implemented in the proposed framework. Different integration algorithms have been developed in the past to integrate the rate constitutive equations of MCCM. The new integration algorithm presented in Chapter 4 is implemented in the object-oriented programming framework.
The Stress Integ1 class is derived from the M-Cam-clay class to include this integration algorithm. Another Stress Integ2 class (not shown in the figure) is derived from the same M-Cam-clay class to incorporate the integration algorithm according to the Runge-Kutta method, which is explained in Chapter 6.

Object-oriented approach of modeling plane strain analysis
- Plane strain analysis with eight nodded isoparametric quadrilateral elementquadrilateral element
Several class interfaces have been created to analyze different types of plane strain problems, several Element classes have been defined, which form the last level of the hierarchy. The abstraction of the element classes (only Element01 and Element06 are shown) for Plane strain analysis is depicted in Figure 8.3. The classes (Element01through Element05) are derived from the classes Rectangular, Plane Strain and Print Output, and thus inherit the properties of these classes.
The class interface for the deformation element of eight noded isoparametric quadrilateral planes with the Newton-Raphson method using the new integration algorithm for MCCM (Element01) is shown in Figure 8.4. The Element01 class interface consists of eight functions that have been declared as pure virtual functions in the FE Modeling class. The Get OCR() function calculates the initial stresses and overconsolidation ratio at each Gaussian point of the soil profile.
The functions Tension In(.) and Elastic Moduli input(.) are called in the function Global f() to provide the information regarding the initial stresses, strains, void ratio and elastic moduli at each gauss point of the finite element mesh . They must be defined in the subclass of the M-Cam-clay class for a specific stress integration algorithm. A constructor is defined (Figure 8.5) that stores the reference of the objects of the TwoD 8Node interpolation class as the array of the object of the Rect Shapefn class.
Pseudo codes for some important abstraction functions are presented here.

Summary
Introduction
Triaxial tests
- Sample preparation for triaxial tests
- Drained compression tests
- Undrained compression tests
In this case, the initial stress state of the sample will lie to the right of the critical state line on the (p, v) graph. In the initial part of the test, before the EP S intersects the current yield location at point B, the behavior of the soil is elastic. Then, after yielding, it moves back down the EP S to point F on the critical state line, which is accompanied by a contraction of the initial yield point.
The test results presented to show the load response and stress load response of the specimen include: (a) Axial load vs deviator stress (q); (b) Effective mean stress vs deviator stress; (c) Axial deformation vs. specific volume (v); (d) Effective mean voltage vs. specific volume. 147]: Volumetric tension (p) vs. Specific volume (v) Figures 9.13 to Figure 9.16 show the results of drained triaxial tests using other iterative schemes, which include the Newton-Raphson method, modified Newton-Raphson method (with Chen accelerator and modified Thomas accelerator) and automatic iteration method. The results with the auto-increment method are not shown as there is significant deviation between the results compared to the others.
The undrained compression test is performed in the same manner as the drained compression test, except that no water is allowed to flow into or out of the specimen during this test. Therefore, throughout the undrained test, the specific volume must remain constant and therefore the total volumetric load must be zero. In the case of OC clays, the specimen undergoes strain softening with contraction of the yield point.
For both soils, the pore water pressure increases linearly in the initial elastic part of the tests.
