User guide# 1. Getting started 2. Fundamentals 2.1. Software design 2.2. Module/method overview 2.3. Viewer interface 3. Data 3.1. What is a pyGIMLi DataContainer? 3.2. Creating Sensors in DataContainer 3.3. File export 3.4. File format import 3.5. Processing 3.6. Visualization 4. Meshes 4.1. Basics of the mesh class 4.2. Mesh creation 4.2.1. Creating a regular mesh / grid in 2D 4.2.2. Creating an irregular mesh with pyGIMLi 4.3. Utilizing markers 4.3.1. Region markers 4.3.2. Boundary markers 4.4. Mesh import 4.4.1. Import options for meshes in pyGIMLi 4.4.2. Example: mesh generation using Gmsh 4.5. Mesh modification 4.5.1. Merging meshes 4.5.2. Translating meshes 4.5.3. Scaling meshes 4.5.4. Rotating meshes 4.6. Mesh export 5. Inversion 5.1. Theory 5.1.1. Gauss-Newton inversion 5.2. Input data 5.2.1. Data weights / errors 5.2.2. Data transforms 5.3. Model parametrization 5.3.1. Mesh-free inversion (0-D) 5.3.2. Mesh inversion 5.3.2.1. 1-D 5.3.2.2. 2-D 5.3.2.3. 3-D 5.4. Regularization - Including prior information 5.4.1. Starting model 5.4.2. Reference model 5.4.3. Parameter limits 5.4.4. Damping 5.4.5. Smoothing 5.4.6. Advanced regularization 5.5. Region concept 5.6. Model appraisal 5.6.1. Data misfit 5.6.2. Cumulative sensitivity 5.6.3. Resolution 6. Modelling 6.1. Theory (Finite Element Analysis) 6.2. Parameterizing a mesh with physical properties 6.3. Boundary conditions (BC) 7. Visualization 7.1. Plotting in 2D 7.1.1. Plotting meshes and models 7.2. Plotting in 3D 7.2.1. Plotting meshes and models in 3D 7.3. External plotting 8. Advanced topics 8.1. Setting up your own inversion with custom forward operator 8.2. Matrices 8.3. HPC & Parallel computing 8.4. Caching