Commit graph

161 commits

Author SHA1 Message Date
1c5b887a6d Small bugfix when testing examples
While testing the examples distributed with the code, a few errors were
found and fixed, mostly related with the K matrix in 1D geometry and
reading values from initial conditions for species.
2023-01-07 10:47:18 +01:00
22dff9ed69 Small style correction 2023-01-06 22:36:55 +01:00
600480f5d5 Reduce overhead of probes
I noticed that doProbes was causing some overhead even if no probes were
being used. Now it should be fixed.
2023-01-06 21:37:26 +01:00
746c5bea09 First step of performance improvement
Finalysing first step of performance improvement focusing on reducing
iteration CPU time by improving calculation of basic element functions,
which took a lot of the CPU time
2023-01-06 21:02:54 +01:00
7b7a5c45ca Small improvement
Very small improvement in performance.

Still, partialDer takes too long to compute.
Trying to find ways to improve it.
2023-01-06 15:18:04 +01:00
ba272de4e3 DOES NOT COMPILE: Break
Small break of changing functions.
Still some geometries to change.
2023-01-06 12:16:54 +01:00
7f6afd6a87 Mark_1
First thing that I am kinda happy with.

Still some things to improve but at least push is good.
2023-01-05 22:43:51 +01:00
15d64f3e68 Passing nNodes as argument
It seems that this improves results as passing the size of the arrays as
an argument is better than getting it from self.
2023-01-05 21:22:13 +01:00
6f24b5f1f6 Small changes before trying something big
I think that creating arrays with self%nNodes takes a lot of time.
I'm trying now to pass the number of nodes as argument.
2023-01-05 20:32:45 +01:00
26bd73597d Small improvement for 2DCyl
Nothing important, but overhead in dPsi has been reduced.
2023-01-05 18:47:33 +01:00
2486ef6316 Reduction in pushing
Reduction in 10-20% of time spend in pushing in 2DCyl thanks to
rewriting fPsi and dPsi.
2023-01-05 16:47:13 +01:00
0db76083ec fPsi no longer allocates memory
I noticed that phy2logquad had a lot of overhead. Trying to reducing it
by simplifying calls to fPsi, dPsi and such.

The function for fPsi has been made so no memory is allocated and works
under the assumption that the input array has the right size (1:numNodes)
2023-01-01 12:12:06 +01:00
c82cd50cf9 Merge branch 'issue/collisionWeight' into 'development'
Adjusting weights for collisions

See merge request JorgeGonz/fpakc!32
2022-12-31 10:25:33 +00:00
8199a228c8 Locks for particle lists are now inside the type.
The lock of a particle list is no longer an external variable, it is now
part of the type.

New procedures have been added to set and unset the lock.
2022-12-31 11:22:02 +01:00
0677684f85 Adjusting weights for collisions
Ionization and recombination collisions have been modified to have the
right products accounting for the possibility that primary electron and
target particle have different weight.
2022-12-31 10:46:25 +01:00
061dcafafe Merge branch 'feature/weighting' into 'development'
Trying to fix weighting scheme

See merge request JorgeGonz/fpakc!31
2022-12-29 18:35:02 +00:00
905d3f94a5 Trying to fix weighting scheme
Now particles can be split to increase statistics when they enter a
smaller cell. However, this only has an effect for collisions.

Still, I have to rethink a lot about this feature.
2022-12-29 19:32:38 +01:00
7c2c4ae884 Merge branch 'issue/organizeSolvers' into 'development'
Reorganization of modules

See merge request JorgeGonz/fpakc!30
2022-12-24 12:27:47 +00:00
9484502d0b Most of modules organized
Most of the modules are organized in subfolders.

Maybe some big re-organization is needed in the future, but for now I am
happy.
2022-12-24 13:26:10 +01:00
d9a1869564 Reorganization of solver
I started grouping similar modules in subfolders to ease the expansion
process.
2022-12-24 12:59:23 +01:00
37dccb2d11 Merge branch 'feature/average' into 'development'
Average scheme

See merge request JorgeGonz/fpakc!29
2022-12-24 10:42:34 +00:00
a8bea6102f Final commit for volume nodes
1D Rad is fixed.

Still there might be an issue with the triangles in 2D Cyl.
2022-12-24 11:41:12 +01:00
78763bbd84 Merge branch 'issue/volumeNode' into 'feature/average'
Fix for node volume

See merge request JorgeGonz/fpakc!28
2022-12-24 10:32:08 +00:00
e9c86b4678 Modification of Weighting scheme
The weighting scheme has been modified so that particles are splitted
without modifying the weight.

I have to look a bit more into this.
2022-12-24 11:30:20 +01:00
dd1fca3fee Fix for node volume
An issue in the node volume calculation in cylindrical coordinates was
found. This was causing wrong conservation of current. Still to test
with ALPHIE_Grid case.

Still to check triangular element.
Still to theck 1D radial geometry
2022-12-20 15:51:43 +01:00
cab07447b5 Averge scheme documented
Documentation of the average scheme for species properties.
2022-12-16 19:27:10 +01:00
5509332980 Output of standard deviation
The output for the standard deviation (still Gmsh2 only) was added.

Change in the output routines to reduce code repetition.
2022-12-15 11:40:24 +01:00
38d28887ff Implementation of average scheme and testing
New input variables to activate the average scheme.
Still only computing the mean, no the standard deviation.

Output checked  with ALPHIE Grid example. Looks good.

No impact on CPU time, although testing is still required.
2022-12-15 08:35:00 +01:00
c5c4cbefbf Output ready
Output for Gmsh2 ready.

Unfortunatly, code repetition was required.
2022-12-14 18:30:14 +01:00
b2eb7c5622 First commit for average scheme
New module defined that will take care of averaging the output in the
nodes.
2022-12-14 16:22:59 +01:00
239552f715 Merge branch 'feature/electromagnetic' into 'development'
Restructuring pushsers and addition to first electromagnetic pusher

See merge request JorgeGonz/fpakc!27
2022-12-12 18:20:34 +00:00
c7d205e4dd fix possible issue in particle injection 2022-12-12 17:57:18 +01:00
2ee58b6b77 Small change to ionization boundary
Very small change in formats to better account the ionization processes.
Minimum impact in results.
2022-12-12 17:36:10 +01:00
924ba4e20e Alphie grid case and issues
Output for the example ALPHIE_Grid.

Found an issue when multiple injections were used with species with
different time steps.

Modification to the way to compute the ionization boundary:
  The maximum number of ionizations is computed by eRel/eThreshold
  (relative energy / threshold of ionization)
  For each possible ionization, the probability of ionization is
  computed based on the density of neutrals, cross section and effective
  time divided by the number of maximum ionizations.
  If an ionization takes place, the ionization energy is substracted
  from the relative energy.
2022-12-11 22:39:28 +01:00
1587d57cc7 Readme for ALPHIE_Grid example 2022-12-10 11:16:07 +01:00
2850f37551 Test of examples
As all pushers and geometries have change, I'm testing all examples,
   adding a README.txt and a reference output for each case.
2022-12-10 10:37:14 +01:00
8dd3023bc0 Documentation change and testing examples
Documentation adapted to the new way to define geometry and pushers.

Examples are currently being tested and small modifications are being
done to include a reference output.
2022-12-09 16:05:32 +01:00
ae8aa9075e Change in calculation of reduced mass and relative energy
Now reduced mass and relative energy are calculated on the fly per
collision.
2022-12-09 09:54:44 +01:00
50705292a7 Changes in Cross Sections
Changes in cross-sections for Ar, particularly e-Ar process.
2022-12-08 16:37:44 +01:00
23e2fe9bae I'm dying with hay fever but I have to commit
I'm feeling awful but I have work in my desktop that I need to commit so
I can work with my laptop while I'm at the IEPC 2022 in Boston.
2022-06-10 16:07:14 +02:00
cbb5fe0bf2 Merge branch 'feature/collisionPairs' into feature/electromagnetic
Merging branches and fixing a number of important issues:

- Initial particles were not being assigned to the list of particles.

- List of particles was being erased every iteration, even if species
  was not pushed.

These caused issues with the calculation of collisions when a species
was frozen.

Now, things should work properly. All particles are properly added to
the volume list and the list is erased ONLY if the species has been
updated.

I hope that collisions are now properly accounted for per species pair.
2022-04-23 20:48:34 +02:00
4e9514876e Number of collisions per collision pair
Now the number of collisions is calculated per species pair. This allows
that the randomly particles selected for collisions do not have
collisions assigned.
2022-04-23 19:00:33 +02:00
78a97ed7a0 Improve to collisions
Improvement into the collision model to better compute number of
particles collisions.
2022-04-23 18:57:27 +02:00
97718209cc Setting pushers as PURE
Pushers were not set to PURE after testing.
2022-04-09 09:00:40 +02:00
8006f9d768 First EM pusher
First implementation of Electromagnetic pusher.

Some testing is still required.

Documentation needs to be upgraded to match the changes in this branch.
2022-04-09 08:57:06 +02:00
771e336f87 Cart pusher combined
Now, all Cart pushers push particles in 3D, regardless the geometry.
2022-04-08 19:16:41 +02:00
5b5dadce39 Restructuring the geometry and pushers
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.
2022-04-08 19:06:12 +02:00
562dba1694 Merge branch 'issue/makefile' into 'development'
Fixing issue with makefile

See merge request JorgeGonz/fpakc!26
2021-10-18 14:39:20 +00:00
90e667f0a5 Fixing issue with makefile
The dependencies of the modules have been streamlined.
2021-10-18 16:36:19 +02:00
4c7ffa946c Merge branch 'feature/probe' into 'development'
Modification to Probes to use all particles

See merge request JorgeGonz/fpakc!25
2021-10-18 14:07:50 +00:00