Skip to content

Commit

Permalink
Merge branch 'feature.PCoupl.power.input' into 'master.dev'
Browse files Browse the repository at this point in the history
[feature.PCoupl.power.input] Controlled power input

See merge request piclas/piclas!674
  • Loading branch information
scopplestone committed Oct 11, 2022
2 parents 5ea01c4 + b47d786 commit 3ed3780
Show file tree
Hide file tree
Showing 25 changed files with 675 additions and 244 deletions.
15 changes: 8 additions & 7 deletions REGGIE.md
Original file line number Diff line number Diff line change
Expand Up @@ -296,13 +296,14 @@ Testing PIC compiled with Leapfrog integration (poisson,Leapfrog), solving Poiss
| 1 | 2D_innerBC_dielectric_surface_charge | PICLAS_MPI = OFF,ON | Poisson-PIC,Dielectric surface charging,Cartesian geometry | nProcs=1,2,5,7,12 | DG_Source,DG_SourceExt,ElemData | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/2D_innerBC_dielectric_surface_charge/readme.md) |
| 2 | parallel_plates | - | Poisson-PIC,CalcCoupledPower,Part-LorentzType=non-relativistic (0), linear potential BC | nProcs=1 | PartAnalyzeLeapfrog_ref.csv | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/parallel_plates/readme.md) |
| 3 | parallel_plates_AC | - | Poisson-PIC,CalcCoupledPower | nProcs=1 | PartAnalyzeLeapfrog_ref.csv | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/parallel_plates_AC/readme.md) |
| 4 | parallel_plates_SEE_Dunaevsky2003 | - | Poisson-PIC (no deposition), secondary electron emission (SEE-E model by Dunaevsky) | nProcs=1,2,5,8,10 | different SEE yields depending on bombarding e- energy on quartz (SiO2) | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/parallel_plates_SEE_Dunaevsky2003/readme.md) |
| 5 | parallel_plates_SEE-I | - | Poisson-PIC (no deposition), CalcCoupledPower, secondary electron emission (SEE-I model) | nProcs=1,2,5,10 | 13 % and 1 % of bombarding ions create secondary electrons | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/parallel_plates_AC/readme.md) |
| 6 | parallel_plates_SEE_Morozov2004 | - | Poisson-PIC (no deposition), secondary electron emission (SEE-E model by Morozov) | nProcs=1,2,5,8,10 | 1 and 2 SEE from bombarding electrons on dielectric surfaces | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/parallel_plates_SEE_Morozov2004/parameter.ini) |
| 7 | parallel_plates_SEE_Phelps1999 | - | Poisson-PIC (no deposition), secondary electron emission (SEE-E model by Phelps) | nProcs=1,2,5,8,10 | different SEE yields depending on bombarding Ar+ energy on copper | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/parallel_plates_SEE_Phelps1999/parameter.ini) |
| 8 | Dielectric_sphere_surface_charging | - | Poisson-PIC,Dielectric surface charging | nProcs=1,2,3,7,12 | DG_Source,DG_SourceExt,ElemData,DielectricGlobal | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/Dielectric_sphere_surface_charging/readme.md) |
| 9 | Dielectric_sphere_surface_charging_mortar | - | Poisson-PIC,Dielectric surface charging,mortars | nProcs=1,2,3,7,12 | DG_Source,DG_SourceExt,ElemData,DielectricGlobal | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/Dielectric_sphere_surface_charging_mortar/readme.md) |
| 10 | Dielectric_sphere_surface_charging_PStateBound | - | Poisson-PIC,Dielectric surface charging,PartStateBoundary | nProcs=1,2 | PartStateBoundary,DSMCSurfState,DG_Source,DG_SourceExt,ElemData,DielectricGlobal | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/Dielectric_sphere_surface_charging_PStateBound/readme.md) |
| 4 | parallel_plates_fixed_power_input | - | Poisson-PIC,CalcCoupledPower+fixed input power (via potential BC) | nProcs=1,2,4,5 | PartAnalyzeLeapfrog_ref.csv | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/parallel_plates_fixed_power_input/readme.md) |
| 5 | parallel_plates_SEE_Dunaevsky2003 | - | Poisson-PIC (no deposition), secondary electron emission (SEE-E model by Dunaevsky) | nProcs=1,2,5,8,10 | different SEE yields depending on bombarding e- energy on quartz (SiO2) | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/parallel_plates_SEE_Dunaevsky2003/readme.md) |
| 6 | parallel_plates_SEE-I | - | Poisson-PIC (no deposition), CalcCoupledPower, secondary electron emission (SEE-I model) | nProcs=1,2,5,10 | 13 % and 1 % of bombarding ions create secondary electrons | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/parallel_plates_AC/readme.md) |
| 7 | parallel_plates_SEE_Morozov2004 | - | Poisson-PIC (no deposition), secondary electron emission (SEE-E model by Morozov) | nProcs=1,2,5,8,10 | 1 and 2 SEE from bombarding electrons on dielectric surfaces | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/parallel_plates_SEE_Morozov2004/parameter.ini) |
| 8 | parallel_plates_SEE_Phelps1999 | - | Poisson-PIC (no deposition), secondary electron emission (SEE-E model by Phelps) | nProcs=1,2,5,8,10 | different SEE yields depending on bombarding Ar+ energy on copper | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/parallel_plates_SEE_Phelps1999/parameter.ini) |
| 9 | Dielectric_sphere_surface_charging | - | Poisson-PIC,Dielectric surface charging | nProcs=1,2,3,7,12 | DG_Source,DG_SourceExt,ElemData,DielectricGlobal | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/Dielectric_sphere_surface_charging/readme.md) |
| 10 | Dielectric_sphere_surface_charging_mortar | - | Poisson-PIC,Dielectric surface charging,mortars | nProcs=1,2,3,7,12 | DG_Source,DG_SourceExt,ElemData,DielectricGlobal | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/Dielectric_sphere_surface_charging_mortar/readme.md) |
| 11 | Dielectric_sphere_surface_charging_PStateBound | - | Poisson-PIC,Dielectric surface charging,PartStateBoundary | nProcs=1,2 | PartStateBoundary,DSMCSurfState,DG_Source,DG_SourceExt,ElemData,DielectricGlobal | [Link](regressioncheck/NIG_PIC_poisson_Leapfrog/Dielectric_sphere_surface_charging_PStateBound/readme.md) |

### NIG_PIC_poisson_Boris-Leapfrog

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,8 +66,9 @@ as detailed in the following table.
| (/1,-1/) | 1: periodic | -1: negative (opposite) direction of the 1st periodicity vector |
| | | |
| (/2,0/) | 2: Dirichlet | 0: Phi=0 |
| (/2,1/) | 2: Dirichlet | 1: linear function for Phi, see {ref}`sec:linear-potential` |
| (/2,1001/) | 2: Dirichlet | 1001: linear potential y-z via Phi = 2340y + 2340z |
| (/2,1/) | 2: Dirichlet | 1: linear function for Phi, see {ref}`sec:linear-potential` |
| (/2,2/) | 2: Dirichlet | 2: Automatic adjustment for Phi to meet const. input power, see {ref}`sec:fixed-coupled-power` |
| (/2,1001/) | 2: Dirichlet | 1001: linear potential y-z via Phi = 2340y + 2340z |
| (/2,101/) | 2: Dirichlet | 101: linear in z-direction: z=-1: 0, z=1, 1000 |
| (/2,103/) | 2: Dirichlet | 103: dipole |
| (/2,104/) | 2: Dirichlet | 104: solution to Laplace's equation: Phi_xx + Phi_yy + Phi_zz = 0 |
Expand Down Expand Up @@ -134,6 +135,26 @@ same direction.
LinPhiHeight = 10e-3
LinPhi = 1000.

(sec:fixed-coupled-power)=
### Fixed coupled power (const. input power)

An automatic adjustment of the electric potential to ensure that a fixed power input to the system is achieved requires the
following parameters

BoundaryName = BC_WALL ! BC name in the mesh.h5 file
BoundaryType = (/2,2/) ! all BCs with this type will be adjusted to the same electric potential that is adjusted over time

Additionally, a starting value for the potential, lower and upper boundaries and a relaxation factor are required
as well as the target input power, which is set via

CoupledPowerPotential = (/10. , 1000. , 2000./) ! lower, starting and maximum values for the electric potential
CoupledPowerRelaxFac = 0.05 ! the new potential is updated by 5% in each time step
CoupledPowerTarget = 1e-10 ! target power of 1e-10 Watt

The values in `CoupledPowerPotential` correspond to the lower boundary, the starting value and the upper boundary, respectively.
When a simulation is restarted from a state file, the last known value of the BC will be used instead of the starting value, which
is only applied when starting a fresh simulation from scratch.

### Zero potential enforcement

It is important to note that when no Dirichlet boundary conditions are selected by the user, the code automatically enforces mixed
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -31,13 +31,17 @@ CalcCoupledPower = T
! =============================================================================== !
! CALCULATION
! =============================================================================== !
DoLoadBalance = F
ManualTimeStep= 4.58E-11
tend = 6.87E-008
Analyze_dt = 4.58E-8
CFLscale = 0.1 ! Scaling of theoretical CFL number
IterDisplayStep = 50
Part-AnalyzeStep = 1
Part-TrackPosition = T
DoLoadBalance = T
DoInitialAutoRestart = T
ManualTimeStep = 4.58E-11
tend = 6.87E-008
Analyze_dt = 4.58E-8
CFLscale = 0.1 ! Scaling of theoretical CFL number
IterDisplayStep = 1
Part-AnalyzeStep = 10
TimeStampLength = 15
VisuParticles = T
! =============================================================================== !
! Field Boundaries
! =============================================================================== !
Expand All @@ -46,7 +50,8 @@ BoundaryName = BC_right
!RefState = (/1000.0, 0.0, 0.0/) ! RefState Nbr 1: Voltage and Frequency
BoundaryType = (/2,1/) ! 2: Dirichlet with linear ramp

!BoundaryName = BC_left

BoundaryName = BC_left
!BoundaryType = (/4,0/) ! 4: Dirichlet with zero potential
BoundaryType = (/2,1/) ! 2: Dirichlet with linear ramp

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
001-TIME,002-PCoupled,003-PCoupledMoAv,004-CoupledPowerPotential-[V]
0.4100000000000000E-007,0.1008849463872631E-009,0.1028420650314355E-009,0.2060499015699924E+003
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
! Compare last line in file with ref. file
compare_data_file_name = PartAnalyze.csv
compare_data_file_reference = PartAnalyzeLeapfrog_ref.csv
compare_data_file_tolerance = 0.01
compare_data_file_tolerance_type = relative

! integrate columns x:y in a data file as integral(y(x), x, x(1), x(end))
integrate_line_file = PartAnalyze.csv ! data file name
integrate_line_columns = 0:1 ! columns x:y [001-TIME:002-PCoupled]
integrate_line_integral_value = 4.266453016107365e-18 ! from MPI=1 run
integrate_line_tolerance_value = 1.0e-2 ! tolerance
integrate_line_tolerance_type = relative ! special option
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
MPI=1,2,4,5
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
DEFVAR=(INT): iz = 1 ! no. of nFineHexa
!DEFVAR=(REAL): li = 6.7 ! length
DEFVAR=(REAL): li = 1 ! length
DEFVAR=(REAL): lx = 1 ! length
! MAKEFILE PARAMETER (put a "#" in front, NO blanks!)
!=============================================================================== !
! This is only a dummy parameter needed for the regression check
#MPI=

!=============================================================================== !
! OUTPUT
!=============================================================================== !
ProjectName = parallel_plates ! name of the project (used for filenames)
Debugvisu =T ! Write debug mesh to tecplot file
Logging =F ! Write log files

!=============================================================================== !
! MESH
!=============================================================================== !
Mode =1 ! 1 Cartesian 2 gambit file 3 CGNS
nZones =1 ! number of zones
Corner =(/0.,0.,0.0,,li,0.,0.0,,li,lx,0.0,,0.,lx,0.0 ,,0.,0.,lx,,li,0.,lx,,li,lx,lx,,0.,lx,lx/) ! [-3,3]x[-3,3]x[-3,3]
nElems =(/5,1,1/) ! Anzahl der Elemente in jede Richtung
BCIndex =(/1,3,6,4,5,2/) ! Indices of Boundary Conditions for six Boundary Faces (z-,y-,x+,y+,x-,z+)
elemtype =108 ! Elementform (108: Hexaeder)
useCurveds =F ! T if curved boundaries defined
SpaceQuandt =1. ! characteristic length of the mesh
ConformConnect=T

!postScaleMesh = T
!MeshScale = 1e-2
!=============================================================================== !
! BOUNDARY CONDITIONS
!=============================================================================== !
nUserDefinedBoundaries=6


BoundaryName=BC_periodicz- ! BC index 1 (from position in parameterfile)
BoundaryType=(/1,0,0,1/) ! (/ Type, curveIndex, State, alpha /)
BoundaryName=BC_periodicz+ ! BC index 2
BoundaryType=(/1,0,0,-1/) ! here the direction of the vector 1 is changed, because it is the opposite side
vv=(/0.,0.,lx/) ! vector for periodic BC in z direction (zminus,zplus), index=1

BoundaryName=BC_periodicy- ! BC index 3
BoundaryType=(/1,0,0,2/)
BoundaryName=BC_periodicy+ ! BC index 4
BoundaryType=(/1,0,0,-2/) ! (/ BCType=1: periodic, 0, 0, Index of second vector vv in parameter file /)
vv=(/0.,lx,0./) ! vector for periodic BC in y direction (yminus,yplus), index=2


BoundaryName=BC_left
BoundaryType=(/4,0,0,0/) ! ideal conductor
BoundaryName=BC_right
BoundaryType=(/4,0,0,0/) ! ideal conductor

!=============================================================================== !
! BASIS
!=============================================================================== !
NVisu = 4

!=============================================================================== !
! SEARCH
!=============================================================================== !
! nElemsNodeSearch=50
! RefineSideSearch=50
Binary file not shown.
Loading

0 comments on commit 3ed3780

Please sign in to comment.