Added the possibility to have sub-steps
Now per each Coulomb collision process there is the possibility to do sub-steps. This helps in improving accuracy without reducing the time step of the problem.
This commit is contained in:
parent
a891360b7a
commit
28b2bf206a
3 changed files with 55 additions and 43 deletions
|
|
@ -12,6 +12,8 @@ MODULE moduleCoulomb
|
|||
REAL(8):: lnCoulomb !This can be done a function in the future
|
||||
REAL(8):: A_i
|
||||
REAL(8):: l2_j
|
||||
REAL(8):: tauSub
|
||||
INTEGER:: nSubSteps
|
||||
CONTAINS
|
||||
PROCEDURE, PASS:: init => initInteractionCoulomb
|
||||
|
||||
|
|
@ -44,7 +46,7 @@ MODULE moduleCoulomb
|
|||
|
||||
END FUNCTION H
|
||||
|
||||
SUBROUTINE initInteractionCoulomb(self, i, j)
|
||||
SUBROUTINE initInteractionCoulomb(self, i, j, subSteps)
|
||||
USE moduleSpecies
|
||||
USE moduleErrors
|
||||
USE moduleConstParam
|
||||
|
|
@ -52,10 +54,14 @@ MODULE moduleCoulomb
|
|||
IMPLICIT NONE
|
||||
|
||||
CLASS(interactionsCoulomb), INTENT(out):: self
|
||||
INTEGER, INTENT(in):: subSteps
|
||||
INTEGER, INTENT(in):: i, j
|
||||
REAL(8):: Z_i, Z_j
|
||||
REAL(8):: scaleFactor
|
||||
|
||||
self%nSubSteps = subSteps
|
||||
self%tauSub = tauMin / REAL(self%nSubSteps)
|
||||
|
||||
self%sp_i => species(i)%obj
|
||||
self%sp_j => species(j)%obj
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue