fPsi functions for edges
I need to make a common module for mesh, many functions for elements are shared. Also, try to reduce the 'select type' statements, but I don't know enough Fortran for it.
This commit is contained in:
parent
e7e6e1bece
commit
fbbb0d5d13
7 changed files with 114 additions and 28 deletions
|
|
@ -32,10 +32,11 @@ MODULE moduleMesh2DCyl
|
|||
CLASS(meshNode), POINTER:: n1 => NULL(), n2 => NULL()
|
||||
CONTAINS
|
||||
!meshEdge DEFERRED PROCEDURES
|
||||
PROCEDURE, PASS:: init => initEdge2DCyl
|
||||
PROCEDURE, PASS:: getNodes => getNodes2DCyl
|
||||
PROCEDURE, PASS:: intersection => intersection2DCylEdge
|
||||
PROCEDURE, PASS:: randPos => randPosEdge
|
||||
PROCEDURE, PASS:: init => initEdge2DCyl
|
||||
PROCEDURE, PASS:: getNodes => getNodes2DCyl
|
||||
PROCEDURE, PASS:: intersection => intersection2DCylEdge
|
||||
PROCEDURE, PASS:: randPos => randPosEdge
|
||||
procedure, nopass:: fPsi => fPsiSegm
|
||||
|
||||
END TYPE meshEdge2DCyl
|
||||
|
||||
|
|
@ -243,7 +244,22 @@ MODULE moduleMesh2DCyl
|
|||
|
||||
END FUNCTION randPosEdge
|
||||
|
||||
!VOLUME FUNCTIONS
|
||||
!Compute element functions at point Xi
|
||||
pure function fPsiSegm(Xi, nNodes) RESULT(fPsi)
|
||||
implicit none
|
||||
|
||||
real(8), intent(in):: Xi(1:3)
|
||||
integer, intent(in):: nNodes
|
||||
real(8):: fPsi(1:nNodes)
|
||||
|
||||
fPsi = (/ 1.D0 - Xi(1), &
|
||||
1.D0 + Xi(1) /)
|
||||
|
||||
fPsi = fPsi * 0.50D0
|
||||
|
||||
end function fPsiSegm
|
||||
|
||||
!CELL FUNCTIONS
|
||||
!QUAD FUNCTIONS
|
||||
!Init element
|
||||
SUBROUTINE initCellQuad2DCyl(self, n, p, nodes)
|
||||
|
|
@ -929,7 +945,7 @@ MODULE moduleMesh2DCyl
|
|||
|
||||
END SUBROUTINE volumeTria
|
||||
|
||||
!COMMON FUNCTIONS FOR CYLINDRICAL VOLUME ELEMENTS
|
||||
!COMMON FUNCTIONS FOR CYLINDRICAL CELL ELEMENTS
|
||||
!Compute element Jacobian determinant
|
||||
PURE FUNCTION detJ2DCyl(pDer) RESULT(dJ)
|
||||
IMPLICIT NONE
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue