New and improved method to calculate collisions per iteration:

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
This commit is contained in:
Jorge Gonzalez 2021-01-02 14:09:27 +01:00
commit 874d573e89
7 changed files with 26 additions and 52 deletions

View file

@ -172,17 +172,6 @@ MODULE moduleInput
END IF
tauMin = MINVAL(tau)
!Calculates iterations between collisions
IF (tauCollisions /= 0.D0) THEN
everyCollisions = INT(tauCollisions/tauMin)
ELSE
CALL warningError('Using minimum time step for collisions')
tauCollisions = tauMin
everyCollisions = 1
END IF
!Gets the simulation time
CALL config%get(object // '.time', time, found)
IF (.NOT. found) CALL criticalError('Required parameter time not found','readCase')
@ -221,7 +210,6 @@ MODULE moduleInput
!Makes tau(s) non-dimensional
tau = tau / ti_ref
tauMin = tauMin / ti_ref
tauCollisions = tauCollisions / ti_ref
!Sets the format of output files accordint to iteration number
iterationDigits = INT(LOG10(REAL(tmax))) + 1
@ -520,8 +508,6 @@ MODULE moduleInput
!Path for collision cross-section data files
CALL config%get('interactions.folderCollisions', pathCollisions, found)
!Collisional time step
CALL config%get('interactions.tauCollisions', tauCollisions, found)
!Inits lock for list of particles
CALL OMP_INIT_LOCK(lockCollisions)