Adding a time step for collisions

A new option has been added in which MCC are computed with its own time
step.

If no time is provided, then the minimum time step of the simulation is
employed.
This commit is contained in:
Jorge Gonzalez 2021-06-15 10:40:13 +02:00
commit b6a7eb9ced
9 changed files with 88 additions and 53 deletions

View file

@ -40,6 +40,11 @@ MODULE moduleInput
CALL readSpecies(config)
CALL checkStatus(config, "readSpecies")
!Reads case parameters
CALL verboseError('Reading Case parameters...')
CALL readCase(config)
CALL checkStatus(config, "readCase")
!Read interactions between species
CALL verboseError('Reading interaction between species...')
CALL readInteractions(config)
@ -55,10 +60,10 @@ MODULE moduleInput
CALL readGeometry(config)
CALL checkStatus(config, "readGeometry")
!Reads case parameters
CALL verboseError('Reading Case parameters...')
CALL readCase(config)
CALL checkStatus(config, "readCase")
!Read initial state for species
CALL verboseError('Reading Initial state...')
CALL readInitial(config)
CALL checkStatus(config, "readInitial")
!Read injection of particles
CALL verboseError('Reading injection of particles from boundaries...')
@ -233,11 +238,6 @@ MODULE moduleInput
WRITE(tString, '(I1)') iterationDigits
iterationFormat = "(I" // tString // "." // tString // ")"
!Read initial state for species
CALL verboseError('Reading Initial state...')
CALL readInitial(config)
CALL checkStatus(config, "readInitial")
END SUBROUTINE readCase
!Reads the initial information for the species
@ -558,6 +558,8 @@ MODULE moduleInput
USE moduleCollisions
USE moduleErrors
USE moduleMesh
USE moduleCaseParam
USE moduleRefParam
USE OMP_LIB
USE json_module
IMPLICIT NONE
@ -595,6 +597,24 @@ MODULE moduleInput
END IF
!Reads collision time step
CALL config%info('interactions.timeStep', found)
IF (found) THEN
CALL config%get('interactions.timeStep', tauColl, found)
tauColl = tauColl / ti_ref
ELSE
tauColl = tauMin
END IF
IF (tauColl < tauMin) THEN
CALL criticalError('Collisional time step below minimum time step.', 'readInteractions')
END IF
everyColl = NINT(tauColl / tauMin)
!Inits the MCC matrix
CALL initInteractionMatrix(interactionMatrix)