Passing nNodes as argument

It seems that this improves results as passing the size of the arrays as
an argument is better than getting it from self.
This commit is contained in:
Jorge Gonzalez 2023-01-05 21:22:13 +01:00
commit 15d64f3e68
8 changed files with 159 additions and 143 deletions

View file

@ -215,19 +215,21 @@ MODULE moduleMesh
END FUNCTION getNodesVol_interface
PURE FUNCTION fPsi_interface(self, Xi) RESULT(fPsi)
PURE FUNCTION fPsi_interface(self, Xi, nNodes) RESULT(fPsi)
IMPORT:: meshCell
CLASS(meshCell), INTENT(in):: self
REAL(8), INTENT(in):: Xi(1:3)
REAL(8):: fPsi(1:self%nNodes)
INTEGER, INTENT(in):: nNodes
REAL(8):: fPsi(1:nNodes)
END FUNCTION fPsi_interface
PURE FUNCTION dPsi_interface(self, Xi) RESULT(dPsi)
PURE FUNCTION dPsi_interface(self, Xi, nNodes) RESULT(dPsi)
IMPORT:: meshCell
CLASS(meshCell), INTENT(in):: self
REAL(8), INTENT(in):: Xi(1:3)
REAL(8):: dPsi(1:3, 1:self%nNodes)
INTEGER, INTENT(in):: nNodes
REAL(8):: dPsi(1:3, 1:nNodes)
END FUNCTION dPsi_interface
@ -530,7 +532,7 @@ MODULE moduleMesh
REAL(8):: f
REAL(8):: fPsi(1:self%nNodes)
fPsi = self%fPsi(Xi)
fPsi = self%fPsi(Xi, self%nNodes)
f = DOT_PRODUCT(fPsi, valNodes)
END FUNCTION gatherF_scalar
@ -546,7 +548,7 @@ MODULE moduleMesh
REAL(8):: f(1:n)
REAL(8):: fPsi(1:self%nNodes)
fPsi = self%fPsi(Xi)
fPsi = self%fPsi(Xi, self%nNodes)
f = MATMUL(fPsi, valNodes)
END FUNCTION gatherF_array
@ -563,7 +565,7 @@ MODULE moduleMesh
REAL(8):: dPsiR(1:3, 1:self%nNodes)
REAL(8):: invJ(1:3, 1:3), detJ
dPsi = self%dPsi(Xi)
dPsi = self%dPsi(Xi, self%nNodes)
detJ = self%detJac(Xi, dPsi)
invJ = self%invJac(Xi, dPsi)
dPsiR = MATMUL(invJ, dPsi)/detJ
@ -590,7 +592,7 @@ MODULE moduleMesh
CLASS(meshNode), POINTER:: node
cellNodes = self%getNodes()
fPsi = self%fPsi(part%Xi)
fPsi = self%fPsi(part%Xi, self%nNodes)
tensorS = outerProduct(part%v, part%v)