Renaming of code. New name is FPAKC.

This commit is contained in:
Jorge Gonzalez 2020-11-16 18:25:42 +01:00
commit 7b707e7806
7 changed files with 1591 additions and 12 deletions

2
.gitignore vendored
View file

@ -1,4 +1,4 @@
PPartiC
FPAKC
mod/
obj/
doc/user_manual/

View file

@ -1,10 +1,20 @@
#Introduction
Welcome to PPartiC (Plasma Particle Code), a modern object oriented code for kinetic simulations of plasma. This code works by simulating charged and neutral particles, following their trajectories, collisions and boundary conditions imposed by the usser.
Welcome to FPAKC (Finite element PArticle Kinetic Code), a modern object oriented Fortran open-source code for particle simulations of plasma and gases. This code works by simulating charged and neutral particles, following their trajectories, collisions and boundary conditions imposed by the user.
One of our aims is to make a code easy to maintain as well as easy to use by a variety of reserchers and students.
This code is currenlty in very early steps of development.
The code aims to be easy to maintain and easy to use, allowing its application from complex problems to easy examples that can be used, for example, as teaching exercies.
The code aims to be easy to maintain and easy to use, allowing its application from complex problems to easy examples that can be used, for example, as teaching exercises.
Parallelization techniches as OpenMP, MPI will be used, as well as making the code run in GPU architectures.
Parallelization techniques such as OpenMP, MPI will be used to distribute the cpu load. We aim to make FPAKC GPU compatible in the future.
PPartiC uses Finite Element meshes to adap to complex geometries.
FPAKC makes use of finite elements to generate meshes in complex geometries. Particle properties are deposited in the nodes and cells of the mesh. The electromagnetic field, with the boundary conditions imposed by the user, is solved also in this mesh.
#User Manual
You will find the user manual in the *doc* folder.
#Installation
To install the software ...

View file

@ -18,7 +18,7 @@ VAR := ""
FCFLAGS := -fopenmp -Ofast -J $(MODDIR) -I $(INCDIR) -Wall -g
#Output file
OUTPUT = PPartiC
OUTPUT = FPAKC
export

View file

@ -0,0 +1,51 @@
{
"output": {
"path": "./runs/ALPHIE_Grid/",
"trigger": 500,
"cpuTime": false,
"numColl": false,
"EMField": true
},
"geometry": {
"type": "2DCyl",
"meshType": "gmsh",
"meshFile": "mesh.msh"
},
"species": [
{"name": "Argon+", "type": "charged", "mass": 6.633e-26, "charge": 1.0, "weight": 1.0e1},
{"name": "Electron", "type": "charged", "mass": 9.109e-31, "charge":-1.0, "weight": 1.0e1}
],
"boundary": [
{"name": "Ionization Chanber", "type": "absorption", "physicalSurface": 1},
{"name": "Vacuum Chamber", "type": "absorption", "physicalSurface": 2},
{"name": "Exterior", "type": "reflection", "physicalSurface": 3},
{"name": "Grid Extraction", "type": "absorption", "physicalSurface": 4},
{"name": "Grid Acceleration", "type": "absorption", "physicalSurface": 5},
{"name": "Axis", "type": "axis", "physicalSurface": 6}
],
"boundaryEM": [
{"name": "Ionization Chamber", "type": "dirichlet", "potential": 0.0, "physicalSurface": 1},
{"name": "Extraction Grid", "type": "dirichlet", "potential": -150.0, "physicalSurface": 4},
{"name": "Acceleration Grid", "type": "dirichlet", "potential": -600.0, "physicalSurface": 5}
],
"inject": [
{"name": "Ionization Argon+", "species": "Argon+", "flow": 27.0e-6, "units": "A", "v": 322.0, "T": [ 500.0, 500.0, 500.0], "n": [ 1, 0, 0], "physicalSurface": 1},
{"name": "Ionization Electron", "species": "Electron", "flow": 27.0e-6, "units": "A", "v": 87000.0, "T": [ 500.0, 500.0, 500.0], "n": [ 1, 0, 0], "physicalSurface": 1},
{"name": "Cathode Electron", "species": "Electron", "flow": 9.0e-5, "units": "A", "v": 87000.0, "T": [2500.0, 2500.0, 2500.0], "n": [-1, 0, 0], "physicalSurface": 2}
],
"reference": {
"density": 1.0e16,
"mass": 9.109e-31,
"temperature": 2500.0
},
"case": {
"tau": 1.0e-11,
"time": 2.0e-6,
"solver": "2DCylCharged"
},
"parallel": {
"OpenMP":{
"nThreads": 8
}
}
}

1518
runs/ALPHIE_Grid/mesh.msh Normal file

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
! PPartiC neutral PIC main program.
PROGRAM PPartiC
! FPAKC main program
PROGRAM FPAKC
USE moduleInput
USE moduleErrors
USE OMP_LIB
@ -90,5 +90,5 @@ PROGRAM PPartiC
END DO
!$OMP END PARALLEL
END PROGRAM PPartiC
END PROGRAM FPAKC

View file

@ -79,7 +79,7 @@ MODULE moduleEM
vectorF = 0.D0
!$OMP END SINGLE
!$OMP SINGLE
!$OMP DO REDUCTION(+:vectorF)
DO e = 1, mesh%numVols
nodes = mesh%vols(e)%obj%getNodes()
nNodes = SIZE(nodes)
@ -112,7 +112,7 @@ MODULE moduleEM
DEALLOCATE(nodes, rho)
END DO
!$OMP END SINGLE
!$OMP END DO
!Apply boundary conditions
!$OMP DO