PICLas Documentation
latest
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.4.2. Profile-guided optimization (PGO)
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. Catalytic Surfaces
4.4.6. 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. Unified Species Database
4.10.1. Species data
4.10.2. Reaction data
4.10.3. Cross-section data
4.11. Fokker-Planck Collision Operator
4.12. Bhatnagar-Gross-Krook Collision Operator
4.13. Features of the Particle Solver
4.13.1. Macroscopic Restart
4.13.2. Variable Time Step
4.13.3. Symmetric Simulations
4.13.4. Virtual Cell Merge
4.14. Radiation
4.14.1. Radiation Coupling
4.14.2. Raytracing
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.3.1. Electronic excitation
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. Unified Species Database (USD)
6.1.1. Maintain and edit database
6.1.2. Collision cross-sections
6.1.3. Surface chemistry
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
9.2. Unified Species Database (USD)
9.2.1. Electronic database
9.2.2. Reactions
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. Best Practices
4.1. MPI
4.2. Shared Memory Windows
4.3. Hawk
4.3.1. Striping
4.3.2. Species-zero bug
5. Troubleshooting
5.1. WriteArrayToHDF5() and the collective flag
5.2. Seemingly meaningless change in code triggers segmentation fault or slow down of the code
5.3. Possible memory leak detection when using MPICH
6. Code Extension
6.1. Surface Sampling & Output
6.2. Arrays with size of PDM%maxParticleNumber
6.3. Insert new particles
7. Useful Functions
7.1. General Functions and Subroutines
7.2. Particle Functions and Subroutines
8. MPI Implementation
8.1. General Remarks: Things to consider
8.2. Construction of Halo Region (MPI 3.0 Shared Memory)
8.2.1. Mesh Geometry
8.2.2. Element/Side Mappings
8.2.3. Particle Element Mappings
8.3. Custom communicators
8.3.1. Available communicators
9. Regression Testing
9.1. Reggie2.0 Tool
9.2. Local Testing of GitLab CI
9.3. Regression Server
Gitlab Runner
Setup
9.3.1. Required Installation of Software on Clean Ubuntu Setup (18.04)
9.3.2. Installation Steps for Gitlab Runners
9.3.3.
Configuration files
9.3.4. Automatic Deployment to other platforms
10. Unit tests
10.1. Integration of unit test with CTest
10.2. Implementation of unit tests
10.2.1. CMakeLists.txt
10.2.2. General unit test structure
10.2.3. Generation of reference mesh data
11. Compiler Options
12. Developer Tools
12.1. WarningsCheck
12.2. Remove trailing white spaces
12.3. Module Environment
12.3.1. FAQ: Common Problems
13. Performance Analysis
13.1. Extrae and Paraver
13.1.1. Installation
13.1.2. Code Instrumentation
13.1.3. Tracing the code
13.1.4. User functions
13.2. Intel® VTune™
13.2.1. VTune Installation
13.2.2. Batch jobs
13.2.3. Usage
13.3. Valgrind
13.3.1. Installation of Valgrind
13.3.2. Execution of Valgrind
14. Building the AppImage Executable
14.1. piclas
14.2. piclas2vtk and other tools
14.3. Troubleshooting
15. Markdown Examples
15.1. hyperlinks
15.2. Code environment
15.3. Equations
15.4. Bibtex, cite
15.5. section references
15.6. Figures, caption
15.7. tables
15.8. unnumbered section headings
15.9. Code blocks for various languages
References
References
PICLas Documentation
Index
Edit on GitHub
Index
Read the Docs
v: latest
Versions
latest
stable
Downloads
pdf
html
epub
On Read the Docs
Project Home
Builds