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.
This commit is contained in:
parent
771e336f87
commit
8006f9d768
13 changed files with 331 additions and 57 deletions
|
|
@ -155,6 +155,7 @@ MODULE moduleInput
|
|||
Vol_ref = L_ref**3 !reference volume
|
||||
EF_ref = qe*n_ref*L_ref/eps_0 !reference electric field
|
||||
Volt_ref = EF_ref*L_ref !reference voltage
|
||||
B_ref = m_ref / (ti_ref * qe) !reference magnetic field
|
||||
|
||||
END SUBROUTINE readReference
|
||||
|
||||
|
|
@ -177,8 +178,9 @@ MODULE moduleInput
|
|||
!simulation final and initial times in [t]
|
||||
REAL(8):: finalTime, initialTime
|
||||
CHARACTER(:), ALLOCATABLE:: pusherType, WSType, EMType
|
||||
REAL(8):: B(1:3)
|
||||
INTEGER:: nTau, nSolver
|
||||
INTEGER:: i
|
||||
INTEGER:: i, n
|
||||
CHARACTER(2):: iString
|
||||
CHARACTER(1):: tString
|
||||
|
||||
|
|
@ -267,6 +269,31 @@ MODULE moduleInput
|
|||
!Read BC
|
||||
CALL readEMBoundary(config)
|
||||
|
||||
CASE("ConstantB")
|
||||
!Read BC
|
||||
CALL readEMBoundary(config)
|
||||
!Read constant magnetic field
|
||||
DO i = 1, 3
|
||||
WRITE(istring, '(i2)') i
|
||||
CALL config%get(object // '.B(' // istring // ')', B(i), found)
|
||||
IF (.NOT. found) THEN
|
||||
CALL criticalError('Constant magnetic field not provided in direction ' // iString, 'readSolver')
|
||||
|
||||
END IF
|
||||
|
||||
END DO
|
||||
|
||||
!Non-dimensional magnetic field
|
||||
B = B / B_ref
|
||||
|
||||
!Assign it to the nodes
|
||||
DO n =1, mesh%numNodes
|
||||
mesh%nodes(n)%obj%emData%B(1) = B(1)
|
||||
mesh%nodes(n)%obj%emData%B(2) = B(2)
|
||||
mesh%nodes(n)%obj%emData%B(3) = B(3)
|
||||
|
||||
END DO
|
||||
|
||||
CASE DEFAULT
|
||||
CALL criticalError('EM Solver ' // EMType // ' not found', 'readSolver')
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue