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
|
|
@ -85,6 +85,7 @@ MODULE moduleMesh2DCart
|
|||
PROCEDURE, PASS:: elemF => elemFQuad
|
||||
PROCEDURE, NOPASS:: inside => insideQuad
|
||||
PROCEDURE, PASS:: gatherEF => gatherEFQuad
|
||||
PROCEDURE, PASS:: gatherMF => gatherMFQuad
|
||||
PROCEDURE, PASS:: getNodes => getNodesQuad
|
||||
PROCEDURE, PASS:: phy2log => phy2logQuad
|
||||
PROCEDURE, PASS:: nextElement => nextElementQuad
|
||||
|
|
@ -114,6 +115,7 @@ MODULE moduleMesh2DCart
|
|||
PROCEDURE, PASS:: elemF => elemFTria
|
||||
PROCEDURE, NOPASS:: inside => insideTria
|
||||
PROCEDURE, PASS:: gatherEF => gatherEFTria
|
||||
PROCEDURE, PASS:: gatherMF => gatherMFTria
|
||||
PROCEDURE, PASS:: getNodes => getNodesTria
|
||||
PROCEDURE, PASS:: phy2log => phy2logTria
|
||||
PROCEDURE, PASS:: nextElement => nextElementTria
|
||||
|
|
@ -505,6 +507,33 @@ MODULE moduleMesh2DCart
|
|||
|
||||
END FUNCTION gatherEFQuad
|
||||
|
||||
PURE FUNCTION gatherMFQuad(self,xi) RESULT(MF)
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshVol2DCartQuad), INTENT(in):: self
|
||||
REAL(8), INTENT(in):: xi(1:3)
|
||||
REAL(8):: fPsi(1:4)
|
||||
REAL(8):: MF_Nodes(1:4,1:3)
|
||||
REAL(8):: MF(1:3)
|
||||
|
||||
MF_Nodes(1:4,1) = (/self%n1%emData%B(1), &
|
||||
self%n2%emData%B(1), &
|
||||
self%n3%emData%B(1), &
|
||||
self%n4%emData%B(1) /)
|
||||
MF_Nodes(1:4,2) = (/self%n1%emData%B(2), &
|
||||
self%n2%emData%B(2), &
|
||||
self%n3%emData%B(2), &
|
||||
self%n4%emData%B(2) /)
|
||||
MF_Nodes(1:4,3) = (/self%n1%emData%B(3), &
|
||||
self%n2%emData%B(3), &
|
||||
self%n3%emData%B(3), &
|
||||
self%n4%emData%B(3) /)
|
||||
|
||||
fPsi = self%fPsi(xi)
|
||||
MF = MATMUL(fPsi(:), MF_Nodes)
|
||||
|
||||
END FUNCTION gatherMFQuad
|
||||
|
||||
!Gets nodes from quadrilateral element
|
||||
PURE FUNCTION getNodesQuad(self) RESULT(n)
|
||||
IMPLICIT NONE
|
||||
|
|
@ -816,6 +845,30 @@ MODULE moduleMesh2DCart
|
|||
|
||||
END FUNCTION gatherEFTria
|
||||
|
||||
PURE FUNCTION gatherMFTria(self,xi) RESULT(MF)
|
||||
IMPLICIT NONE
|
||||
|
||||
CLASS(meshVol2DCartTria), INTENT(in):: self
|
||||
REAL(8), INTENT(in):: xi(1:3)
|
||||
REAL(8):: fPsi(1:3)
|
||||
REAL(8):: MF_Nodes(1:3,1:3)
|
||||
REAL(8):: MF(1:3)
|
||||
|
||||
MF_Nodes(1:3,1) = (/self%n1%emData%B(1), &
|
||||
self%n2%emData%B(1), &
|
||||
self%n3%emData%B(1) /)
|
||||
MF_Nodes(1:3,2) = (/self%n1%emData%B(2), &
|
||||
self%n2%emData%B(2), &
|
||||
self%n3%emData%B(2) /)
|
||||
MF_Nodes(1:3,3) = (/self%n1%emData%B(3), &
|
||||
self%n2%emData%B(3), &
|
||||
self%n3%emData%B(3) /)
|
||||
|
||||
fPsi = self%fPsi(xi)
|
||||
MF = MATMUL(fPsi, MF_Nodes)
|
||||
|
||||
END FUNCTION gatherMFTria
|
||||
|
||||
!Gets node indexes from triangular element
|
||||
PURE FUNCTION getNodesTria(self) RESULT(n)
|
||||
IMPLICIT NONE
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue