# Warning regarding MATLAB version MATLAB R2021a or later is required to run the code with full capabilities. For an older version, the code still runs but the stresses and strains cannot be computed. In such a case, please adapt the code as follows: 1) In the main file “internodesx”, (with x=1,2,3,…) in the function call to “setNumericalParameters(Mesh, Data, PostProcessing,…” remove the last argument-value pair “‘quantity’, {‘stress’, ‘strain’}” 2) In the main file “internodesx”, in the function call to “plotSolution(Mesh, Data, Solution,…” remove the last argument-value pair “‘stress’, ‘sigma_yy’” # List of folders - INTERNODES_small: Code for small size problems. Explicit assemblage of the INTERNODES matrix and solution to the linear systems using backslash (direct method). - INTERNODES_medium: Code for medium to large 2D applications. The linear systems are solved using right preconditioned GMRES. The algorithm relies on a single complete Cholesky factorization. - INTERNODES_large: Code for very large 2D and potentially 3D applications. The algorithm implements inexact solves with the preconditioning matrix based on an incomplete Cholesky factorization coupled with inner iterations. **Beware: the incomplete factorization might fail !** - Westergaard: Folder used to run the experiments for the Westergaard problem. # List of main files: - internodes1: Classical Hertzian contact problem with Dirichlet boundary conditions applied to both bodies. - internodes2: Classical Hertzian contact problem with Dirichlet boundary conditions applied to the lower body and Neumann boundary conditions applied to the upper body. - internodes3: Contact problem between two rectangular blocks with Dirichlet boundary conditions applied to both bodies. - internodes4: Elastic contact between a sphere and a half space. Dirichlet boundary conditions are applied to both bodies. - internodes5: Structure with asperities and multiple contact points. Dirichlet boundary conditions are applied to the lower body and Neumann boundary conditions are applied to the upper body. - conforming1: Rectangular blocks with conforming meshes. Dirichlet boundary conditions are applied to both bodies. - conforming2: Rectangular blocks with conforming meshes. Dirichlet boundary conditions are applied to the lower body and Neumann boundary conditions are applied to the upper body. - westergaard: Comparison of INTERNODES with the Westergaard solution.