The geometry and push structure has been reworked to allow eassy adding
new pushers.
Documentation not updated yet.
Baseline for merging Cartesian pushers into one.
Fixed an issue in which the position in triangular an thetrahedron
elements were not correctly being computed.
Other minor issues fixed:
- Units in input file now do not use '/'.
- Collisions accuratly conserve momentum.
- Minor improvements in mass calculation in collisions.
Implementation of the 0D grid to test collisional processes.
An OMP_LOCK was added to the nodes to properly write perform the
scattering (it is weird that multiple threads work in the same node at
the same time, but in 0D happens everytime).
Added a new case to test the 0D geometry.
User Manual updated with the new options.
Unification of boundary conditions into one file.
Some changes to input file for reference cases. This should have been
done in another branch but I wanto to commit to save progress and I
don't want to deal with tswitching branches right now, I'm very busy
watching Futurama.
x/r position to avoid huge fields in Radial case when r -> 0 due to
charge accumulation.
Added a Gnuplot script to plot both potential profiles extracted from
Gmsh.
In each iteration, number of collisions are calculate as a REAL variable
(collFrac) and stored in each cell. The number of collisions is
calculated as FLOOR(collFrac) and, if it is >1 collisions are computed
as usual. Per each collision calculated, 1.0 is removed from collFrac
Now collisions can have a different time step.
Added species name to output names as it was starting to get confusing
in Gmsh for multiple species.
Output filenames adapted to match any number of iterations.
A boundary condition for each species must be indicated in the case
file.
This opens the door to use boundary conditions with different parameters
(for example, a wall temperature, coefficients for reflection or
absorption...)
The examples included with the code have been updated accordently.
into account (as in 1D Cartesian case).
The 1D Cathode example case has been modified, having now 2 input files:
- inputCart.json: Used for Cartesian coordinates
- inputRad.json: Used for Radial coordinates
Pusher is a Boris pusher but without z direction.
Maxwellian and Diract Delta distributions have been implemented.
The input for injection of particles should be rewritten to allow more
clear input file.
directional derivative depending on the definition of first node. Trying
to solve it with searching for the right first node but it is very
difficult. A solution is required to allow triangular meshes in charged
simulations.
Now, the solver needs to be an input parameter of the case, to select if
it is for charged or neutral particles.
Resolution of Poisson equation with Dirichlet boundary conditions is
possible. The source vector is the charge density. This resolution is
done in two steps to save computational time:
1. When reading the mesh, the PLU factorization of the K matrix is
computed.
2. In each iteration, the system K*u = f is solved, in which f is the
source vector (charge density) and u is the solution (potential) in
each node.
No case has been added to the repository. This will be done in next
commit.
The 'non-analog' scheme has been commented. It still needs to split
the particle to avoid 'overweight' particles.
Bugs fixed:
- Solved an issue with particles being injected with infinite velocity
resulting in Inf velocity in some cells of the output files.
- Particles are now equally distributed in cylindrical geometry along
the radial direction.
New features:
- Particles now have their own weight that is recalculated when the
particle moves to a new cell. This avoid the reduction of density at
r = 0.
Cases:
- Added a case of Argon flow around a cylinder to measure performance
and future improvements.