Skip to content

Commit

Permalink
Merge branch 'feature.axisymmetric.HDG' into 'master.dev'
Browse files Browse the repository at this point in the history
[feature.axisymmetric.HDG] Axisymmetric 2D HDG

See merge request piclas/piclas!770
  • Loading branch information
scopplestone committed Jul 10, 2024
2 parents d372cb1 + 8b615e7 commit 23b2eb3
Show file tree
Hide file tree
Showing 87 changed files with 1,878 additions and 903 deletions.
6 changes: 6 additions & 0 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -752,6 +752,12 @@ NIG_PIC_poisson_Boris-Leapfrog:
stage: reggie_nightly
script:
- cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_Boris-Leapfrog/

NIG_PIC_poisson_Boris-Leapfrog_PETSC:
<<: *defaults_nightly
stage: reggie_nightly
script:
- cd build ; python ../reggie/reggie.py ../regressioncheck/NIG_PIC_poisson_Boris-Leapfrog_PETSC/

NIG_PIC_poisson_Leapfrog:
<<: *defaults_nightly
Expand Down
21 changes: 15 additions & 6 deletions REGGIE.md
Original file line number Diff line number Diff line change
Expand Up @@ -339,12 +339,21 @@ Testing PIC compiled with Leapfrog integration (poisson,Leapfrog), solving Poiss

Testing PIC compiled with Boris-Leapfrog integration (poisson,Boris-Leapfrog), solving Poisson's equation: [Link to build](regressioncheck/NIG_PIC_poisson_Boris-Leapfrog/builds.ini).

| **No.** | **Case** | **CMAKE-CONFIG** | **Feature** | **Execution** | **Comparing** | **Readme** |
| :-----: | :-------------------------------: | :------------------------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------: | :--------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------: |
| 1 | 2D_HET_Liu2010 | CMAKE_BUILD_TYPE = Release,Debug | 2D Poisson-PIC, BGGas distribution, null collision on/off, pre-defined external magnetic field, neutralization BC, SEE model with variable electron bulk temperature, particle flux, total electric current and emitted SEE over time into SurfaceAnalyze.csv | nProcs=3,6,12 | integrate number of electrons impinging the anode (SurfaceAnalyze.csv) | [Link](regressioncheck/NIG_PIC_poisson_Boris-Leapfrog/2D_HET_Liu2010/readme.md) |
| 2 | 2D_Landmark | CMAKE_BUILD_TYPE = Release,Debug | 2D Poisson-PIC, emission models for Landmark (volumetric ionization and neutralizer) | nProcs=4 | integrate number of electrons impinging the anode (SurfaceAnalyze.csv) | [Link](regressioncheck/NIG_PIC_poisson_Boris-Leapfrog/2D_Landmark/readme.md) |
| 3 | 3D_HET_Liu2010 | CMAKE_BUILD_TYPE = Release,Debug | 3D Poisson-PIC, BGGas distribution, null collision on/off, pre-defined external magnetic field, neutralization BC, SEE model with variable electron bulk temperature, dielectric surface charging (hollow cylinder), vMPF=T restart from vMPF=F restart file | nProcs=6 | integrate number of electrons impinging the anode (SurfaceAnalyze.csv) | [Link](regressioncheck/NIG_PIC_poisson_Boris-Leapfrog/3D_HET_Liu2010/readme.md) |
| 4 | MCC_EBeam_SpeciesSpecificTimestep | CMAKE_BUILD_TYPE = Release,Debug | 1D-PIC-MCC electron beam, emission current surface flux and species-specific time step for electrons, using ManualTimeStep for MCC | nProcs=4 | Number density (PartAnalyze.csv) | [Link](regressioncheck/NIG_PIC_poisson_Boris-Leapfrog/MCC_EBeam_SpeciesSpecificTimestep/readme.md) |
| **No.** | **Case** | **CMAKE-CONFIG** | **Feature** | **Execution** | **Comparing** | **Readme** |
| :-----: | :-------------------------------: | :--------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------: | :--------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------: |
| 1 | 2D_HET_Liu2010 | | 2D Poisson-PIC, BGGas distribution, null collision on/off, pre-defined external magnetic field, neutralization BC, SEE model with variable electron bulk temperature, particle flux, total electric current and emitted SEE over time into SurfaceAnalyze.csv | nProcs=3,6,12 | integrate number of electrons impinging the anode (SurfaceAnalyze.csv) | [Link](regressioncheck/NIG_PIC_poisson_Boris-Leapfrog/2D_HET_Liu2010/readme.md) |
| 2 | 2D_Landmark | | 2D Poisson-PIC, emission models for Landmark (volumetric ionization and neutralizer) | nProcs=4 | integrate number of electrons impinging the anode (SurfaceAnalyze.csv) | [Link](regressioncheck/NIG_PIC_poisson_Boris-Leapfrog/2D_Landmark/readme.md) |
| 3 | 3D_HET_Liu2010 | | 3D Poisson-PIC, BGGas distribution, null collision on/off, pre-defined external magnetic field, neutralization BC, SEE model with variable electron bulk temperature, dielectric surface charging (hollow cylinder), vMPF=T restart from vMPF=F restart file | nProcs=6 | integrate number of electrons impinging the anode (SurfaceAnalyze.csv) | [Link](regressioncheck/NIG_PIC_poisson_Boris-Leapfrog/3D_HET_Liu2010/readme.md) |
| 4 | MCC_EBeam_3D_and_2D-axisym | | 1D-PIC-MCC electron beam, emission current surface flux, using ManualTimeStep for MCC, 3D cylinder geometry or 2D axisymmetric HDG | nProcs=4 | Number density (PartAnalyze.csv) | [Link](regressioncheck/NIG_PIC_poisson_Boris-Leapfrog/MCC_EBeam_3D_and_2D-axisym/readme.md) |
| 5 | MCC_EBeam_SpeciesSpecificTimestep | | 1D-PIC-MCC electron beam, emission current surface flux and species-specific time step for electrons, using ManualTimeStep for MCC | nProcs=4 | Number density (PartAnalyze.csv) | [Link](regressioncheck/NIG_PIC_poisson_Boris-Leapfrog/MCC_EBeam_SpeciesSpecificTimestep/readme.md) |

### NIG_PIC_poisson_Boris-Leapfrog_PETSC

Testing PIC compiled with Boris-Leapfrog integration (poisson,Boris-Leapfrog) and PETSC, solving Poisson's equation: [Link to build](regressioncheck/NIG_PIC_poisson_Boris-Leapfrog_PETSC/builds.ini).

| **No.** | **Case** | **CMAKE-CONFIG** | **Feature** | **Execution** | **Comparing** | **Readme** |
| :-----: | :-------------------------------: | :--------------: | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-----------: | :--------------------------------------------------------------------: | :------------------------------------------------------------------------------------------------: |
| 1 | 2D_axisymmetricHDG_OConner | | 2D Poisson-PIC with axisymmetric HDG, electron beam expanding over time, testing of different depositions (cell_mean, cell_volweight, cell_volweight_mean), with PETSC (Precond-T) | nProcs=1,2 | kinetic energy (PartAnalyze.csv) and potential energy (FieldAnalyze.csv) of electrons over time | [Link](regressioncheck/NIG_PIC_poisson_Boris-Leapfrog_PETSC/2D_axisymmetricHDG_OConner/readme.md) |

### NIG_PIC_poisson_RK3

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,19 +28,6 @@ To see the available parameter input file options, simply run

./bin/piclas --help HDG

## CG Solver
The default numerical method for solving the resulting system of linear equations, is the Conjugate Gradient Method. The following
input parameter can be set to control the simulation

epsCG = 1e-6 ! default value for the abort residual
MaxIterCG = 500 ! default value for the number of CG solver iterations

where `epsCG` is the residual of the CG solver and `MaxIterCG` are the maximum number of iteration performed in one time step to
solve the system.
Furthermore, the residual can be either set absolute (default) or relative via

useRelativeAbortCrit = F ! default

## PETSc Solver
A multitude of different numerical methods to solve the resulting system of linear equations is given by the implemented PETSc
library {cite}`petsc-web-page`, {cite}`petsc-user-ref`, {cite}`petsc-efficient`. For detailed installation steps of PETSc within PICLas, see Section {ref}`sec:petsc-installation`.
Expand All @@ -61,7 +48,33 @@ where the following options are possible
| `3` | iterative | Krylov subspace |
| `10` | direct | |

Note that the same parameter setting for `epsCG` will result in a smaller residual with PETSc as compared with the default CG solver
without using the PETSc library.

## CG Solver
The formerly used numerical method for solving the resulting system of linear equations, is the Conjugate Gradient Method. The following
input parameter can be set to control the simulation

epsCG = 1e-6 ! default value for the abort residual
MaxIterCG = 500 ! default value for the number of CG solver iterations

where `epsCG` is the residual of the CG solver and `MaxIterCG` are the maximum number of iteration performed in one time step to
solve the system.
Furthermore, the residual can be either set absolute (default) or relative via

useRelativeAbortCrit = F ! default

Note that the same parameter setting for `epsCG` will result in a higher residual without the PETSC library as compared with PETSC solver.

## Symmetric Simulations

The Poisson solver is suitable for 2D/1D and axially symmetric 2D simulations. Use the following parameter for these types of simulations:

! 2D
Particles-Symmetry-Order = 2

! 2D axisymmetrc
Particles-Symmetry-Order = 2
Particles-Symmetry2DAxisymmetric = true

! 1D
Particles-Symmetry-Order = 1

Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
001-TIME,002-Charge,003-Charge-absError,004-Charge-relError
0.1000000000000000E-011,0.1069379900794236E+002,0.1369025896277520E-001,0.1281846401056845E-002
0.0000000000000000E+000,0.0000000000000000E+000,0.0000000000000000E+000,0.0000000000000000E+000
0.1000000000000000E-011,0.1068010874898000E+002,0.4121147867408581E-012,0.3858713393533871E-013
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
001-TIME,002-NumDens-Spec-001,003-NumDens-Spec-002,004-NumDens-Spec-003,005-NumDens-Spec-004,006-Current-Spec-001-SF-001
0,0,2E+019,0,2E+019,0
1E-09,3028100000000000,2E+019,6600000000000,2.00030347E+019,0.000201073154515
2.00000000000007E-09,3029000000000000,2E+019,13500000000000,2.00030425E+019,0.00020027206625
2.99999999999997E-09,3029500000000000,2E+019,19300000000000,2.00030488E+019,0.000199470977985
3.99999999999997E-09,3028700000000000,2E+019,25900000000000,2.00030546E+019,0.00020027206625
5.00000000000028E-09,3028000000000000,2E+019,33700000000000,2.00030617E+019,0.00020027206625
6.00000000000059E-09,3028700000000000,2E+019,41500000000000,2.00030702E+019,0.000199470977985
7.0000000000009E-09,3029100000000000,2E+019,47900000000000,2.0003077E+019,0.00020027206625
8.00000000000075E-09,3027400000000000,2E+019,54800000000000,2.00030822E+019,0.00020027206625
9.00000000000023E-09,3027900000000000,2E+019,62700000000000,2.00030906E+019,0.000199470977985
0.00000001,3027100000000000,2E+019,70000000000000,2.00030971E+019,0.00020027206619146
0.00000002,3027600000000000,2E+019,133300000000000,2.00031609E+019,0.000200272066896514
0.00000003,3027300000000000,2E+019,197700000000000,2.0003225E+019,0.000199470980245914
0.00000004,3025900000000000,2E+019,265700000000000,2.00032916E+019,0.000200272068521319
0.00000005,3024000000000000,2E+019,326300000000000,2.00033503E+019,0.000200272068521319
0.00000006,3024200000000000,2E+019,392200000000000,2.00034164E+019,0.000200272068518668
0.00000007,3023700000000000,2E+019,457800000000000,2.00034815E+019,0.000200272068521319
0.00000008,3022200000000000,2E+019,523400000000000,2.00035456E+019,0.000200272068521319
0.00000009,3022000000000000,2E+019,585700000000000,2.00036077E+019,0.000199470980247234
0.0000001,3021400000000000,2E+019,655700000000000,2.00036771E+019,0.000200272068521319
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
! compare the last line of PartAnalyze.csv with a reference file
compare_data_file_name = PartAnalyze.csv
compare_data_file_reference = PartAnalyze_ref.csv
compare_data_file_tolerance = 15e-2
compare_data_file_tolerance_type = relative
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
MPI=4
database = ../../../SpeciesDatabase.h5
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
! --- Externals Tool Reggie
MPI = 1 , 1 ! Single execution
externalbinary = ./hopr/build/bin/hopr , ./hopr/build/bin/hopr ! Relative binary path in build directory
externaldirectory = pre-hopr-3D-cylinder , pre-hopr-2D-axisym ! Directory name, where the files are located for the external tool reggie
externalruntime = pre , pre ! Run after piclas is completed (post: after, pre: before)
nocrosscombination:MPI,externalbinary,externaldirectory,externalruntime
Loading

0 comments on commit 23b2eb3

Please sign in to comment.