PICLas Documentation Logo

User Guide

  • User Guide
    • 1. Installation
      • 1.1. AppImage executable download
      • 1.2. Prerequisites
      • 1.3. Required Libraries
        • 1.3.1. Installing GCC
        • 1.3.2. Installing OpenMPI
        • 1.3.3. Installing HDF5
        • 1.3.4. Installing PETSc
      • 1.4. Obtaining the source
      • 1.5. Compiling the code
        • 1.5.1. Directory paths
    • 2. Mesh Generation
      • 2.1. Mesh generation with HOPR
      • 2.2. Mesh conversion with HOPR
        • 2.2.1. Mesh generation with Gmsh
        • 2.2.2. Mesh generation with Coreform Cubit
        • 2.2.3. Mesh generation with OMNIS/HEXPRESS
        • 2.2.4. Mesh generation with GridPro
        • 2.2.5. Mesh generation with CENTAUR
        • 2.2.6. Mesh generation with MeshGems/SALOME
    • 3. Workflow
      • 3.1. Compiler options
      • 3.2. Solver settings
      • 3.3. Setup of parameter file(s)
      • 3.4. Simulation
        • 3.4.1. Parallel execution
      • 3.5. Post-processing
    • 4. Features & Models
      • 4.1. Particle Tracking
        • 4.1.1. DoRefMapping
        • 4.1.2. Tracing
        • 4.1.3. Parameters for DoRefMapping and Tracing (NEEDS UPDATING)
        • 4.1.4. Rotating Frame of Reference
      • 4.2. Field Solver - Poisson Equation
        • 4.2.1. CG Solver
        • 4.2.2. PETSc Solver
      • 4.3. Boundary Conditions - Field Solver
        • 4.3.1. Maxwell’s Equations
        • 4.3.2. Poisson’s Equation
        • 4.3.3. Dielectric Materials
      • 4.4. Boundary Conditions - Particle Solver
        • 4.4.1. Reflective Wall
        • 4.4.2. Rotational Periodicity
        • 4.4.3. Porous Wall / Pump
        • 4.4.4. Surface Chemistry
        • 4.4.5. Deposition of Charges on Dielectric Surfaces
      • 4.5. Particle Initialization & Emission
        • 4.5.1. Initialization
        • 4.5.2. Surface Flux
      • 4.6. Particle-In-Cell
        • 4.6.1. Charge and Current Deposition
      • 4.7. Magnetic Background Field
        • 4.7.1. Variable External Field
        • 4.7.2. superB
      • 4.8. Direct Simulation Monte Carlo
        • 4.8.1. Species Definition
        • 4.8.2. Pairing & Collision Modelling
        • 4.8.3. Inelastic Collisions & Relaxation
        • 4.8.4. Chemistry & Ionization
        • 4.8.5. Additional Features
        • 4.8.6. Ensuring Physical Simulation Results
      • 4.9. Background Gas
        • 4.9.1. Distribution from DSMC result
        • 4.9.2. Regions
        • 4.9.3. Trace species
        • 4.9.4. Cross-section based collision probability
        • 4.9.5. Cross-section based vibrational relaxation probability
        • 4.9.6. Cross-section based electronic relaxation probability
      • 4.10. Fokker-Planck Collision Operator
      • 4.11. Bhatnagar-Gross-Krook Collision Operator
      • 4.12. Features of the Particle Solver
        • 4.12.1. Macroscopic Restart
        • 4.12.2. Variable Time Step
        • 4.12.3. Symmetric Simulations
        • 4.12.4. Virtual Cell Merge
    • 5. Visualization & Output
      • 5.1. Particle Data
      • 5.2. Field Solver and PIC
        • 5.2.1. Element-polynomial field properties
        • 5.2.2. Element-constant field/particle properties
        • 5.2.3. Time-averaged Fields
      • 5.3. Particle Flow and Surface Sampling
      • 5.4. Integral Variables
        • 5.4.1. Field Variables
        • 5.4.2. Particle Variables
        • 5.4.3. Surface Variables
      • 5.5. Dynamic Mode Decomposition
        • 5.5.1. Ritz spectrum (coaxial_DMD_Spec.dat)
        • 5.5.2. Mode visualization (coaxial_DMD.h5)
    • 6. Tools
      • 6.1. Collision cross-section database
      • 6.2. Userblock
        • 6.2.1. extract_userblock.py
        • 6.2.2. rebuild.py
    • 7. Tutorials
      • 7.1. Plasma Wave (PIC, Poisson’s Equation)
        • 7.1.1. Mesh Generation with HOPR (pre-processing)
        • 7.1.2. PIC Simulation with PICLas
        • 7.1.3. Visualization (post-processing)
      • 7.2. Adiabatic Box/Reservoir (DSMC, Relaxation/Chemistry)
        • 7.2.1. Mesh Generation with HOPR (pre-processing)
        • 7.2.2. Simulation: Chemistry disabled
        • 7.2.3. Visualization, chemistry disabled (post-processing)
        • 7.2.4. Simulation: Chemistry enabled
        • 7.2.5. Visualization, chemistry enabled (post-processing)
      • 7.3. Hypersonic Flow around the 70° Cone (DSMC) - 2D Mesh
        • 7.3.1. Mesh Generation with HOPR (pre-processing)
        • 7.3.2. Flow simulation with DSMC
        • 7.3.3. Run the simulation
        • 7.3.4. Visualization (post-processing)
      • 7.4. Hypersonic Flow around the 70° Cone (DSMC) - 3D Mesh with Gmsh
        • 7.4.1. Mesh generation with Gmsh
        • 7.4.2. Flow simulation with DSMC
    • 8. Cluster Guidelines
      • 8.1. Simulating at HLRS
        • 8.1.1. Cloning with the SSH protocol
        • 8.1.2. Compiling and executing PICLas
    • 9. Appendix
      • 9.1. Tested compiler combinations

Developer Guide

  • Developer Guide
    • 1. GitLab Workflow
      • 1.1. Issues & Milestones
      • 1.2. Merge Request
      • 1.3. Release and deploy
        • 1.3.1. Release Tag
        • 1.3.2. Collaborative Numerics Group
        • 1.3.3. GitHub
    • 2. Documentation
      • 2.1. Building documentation
      • 2.2. Writing documentation
        • 2.2.1. Figures
    • 3. Style Guide
      • 3.1. Header of Functions and Subroutines
      • 3.2. Variables
      • 3.3. Functions and Control Structures
      • 3.4. Workflow Description
      • 3.5. Special Rules
        • 3.5.1. CALL Allocate_Shared()
        • 3.5.2. USE MOD_Preproc
    • 4. Troubleshooting
      • 4.1. WriteArrayToHDF5() and the collective flag
      • 4.2. Seemingly meaningless change in code triggers segmentation fault or slow down of the code
    • 5. Code Extension
      • 5.1. Surface Sampling & Output
    • 6. Useful Functions
      • 6.1. General Functions and Subroutines
      • 6.2. Particle Functions and Subroutines
    • 7. MPI Implementation
      • 7.1. General Remarks: Things to consider
      • 7.2. Construction of Halo Region (MPI 3.0 Shared Memory)
        • 7.2.1. Mesh Geometry
        • 7.2.2. Element/Side Mappings
        • 7.2.3. Particle Element Mappings
    • 8. Regression Testing
      • 8.1. Reggie2.0 Tool
      • 8.2. Regression Server Gitlab Runner Setup
        • 8.2.1. Required Installation of Software on Clean Ubuntu Setup (18.04)
        • 8.2.2. Installation Steps for Gitlab Runners
        • 8.2.3. Configuration files
        • 8.2.4. Automatic Deployment to other platforms
    • 9. Unit tests
      • 9.1. Integration of unit test with CTest
      • 9.2. Implementation of unit tests
        • 9.2.1. CMakeLists.txt
        • 9.2.2. General unit test structure
        • 9.2.3. Generation of reference mesh data
    • 10. Compiler Options
    • 11. Developer Tools
      • 11.1. WarningsCheck
      • 11.2. Remove trailing white spaces
      • 11.3. Module Environment
        • 11.3.1. FAQ: Common Problems
    • 12. Performance Analysis
      • 12.1. Extrae and Paraver
        • 12.1.1. Installation
        • 12.1.2. Code Instrumentation
        • 12.1.3. Tracing the code
        • 12.1.4. User functions
      • 12.2. Intel® VTune™
        • 12.2.1. VTune Installation
        • 12.2.2. Batch jobs
        • 12.2.3. Usage
      • 12.3. Valgrind
        • 12.3.1. Installation of Valgrind
        • 12.3.2. Execution of Valgrind
    • 13. Building the AppImage Executable
      • 13.1. piclas
      • 13.2. piclas2vtk and other tools
      • 13.3. Troubleshooting
    • 14. Markdown Examples
      • 14.1. hyperlinks
      • 14.2. Code environment
      • 14.3. Equations
      • 14.4. Bibtex, cite
      • 14.5. section references
      • 14.6. Figures, caption
      • 14.7. tables
      • 14.8. unnumbered section headings
      • 14.9. Code blocks for various languages

References

  • References
PICLas Documentation
  • Search


© Copyright 2021, PICLas Developers.

Built with Sphinx using a theme provided by Read the Docs.