From 2ee58b6b771fdb45e68e8073e528712ad4eac674 Mon Sep 17 00:00:00 2001 From: Jorge Gonzalez Date: Mon, 12 Dec 2022 17:36:10 +0100 Subject: [PATCH] Small change to ionization boundary Very small change in formats to better account the ionization processes. Minimum impact in results. --- src/modules/mesh/moduleMeshBoundary.f90 | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/modules/mesh/moduleMeshBoundary.f90 b/src/modules/mesh/moduleMeshBoundary.f90 index 91edb35..c5f3fc3 100644 --- a/src/modules/mesh/moduleMeshBoundary.f90 +++ b/src/modules/mesh/moduleMeshBoundary.f90 @@ -116,7 +116,7 @@ MODULE moduleMeshBoundary CLASS(meshEdge), INTENT(inout):: edge CLASS(particle), INTENT(inout):: part REAL(8):: vRel, eRel, mRel !relative velocity, energy and mass - REAL(8):: nIonizations !Number of ionizations based on eRel + INTEGER:: nIonizations !Number of ionizations based on eRel REAL(8):: pIonization !Probability of ionization of each event INTEGER:: p REAL(8):: v0(1:3) !random velocity of neutral @@ -130,11 +130,11 @@ MODULE moduleMeshBoundary eRel = mRel*vRel**2*5.D-1 !Maximum number of possible ionizations based on relative energy - nIonizations = eRel/bound%eThreshold + nIonizations = FLOOR(eRel/bound%eThreshold) - DO p = 1, FLOOR(nIonizations) + DO p = 1, nIonizations !Get probability of ionization - pIonization = 1.D0 - DEXP(-bound%n0*bound%crossSection%get(eRel)*vRel*bound%effectiveTime/nIonizations) + pIonization = 1.D0 - DEXP(-bound%n0*bound%crossSection%get(eRel)*vRel*bound%effectiveTime/REAL(nIonizations)) !If a random number is below the probability of ionization, create new pair of ion-electron IF (random() < pIonization) THEN