New BC for quasi-neutrality

Still, the adjustment it is not iterative.
I need to build new subroutines to gather values of edges.
This commit is contained in:
Jorge Gonzalez 2026-02-05 11:01:15 +01:00
commit e7e6e1bece
3 changed files with 80 additions and 59 deletions

View file

@ -206,11 +206,11 @@ MODULE moduleMesh
!Subroutine to find in which cell a particle is located
PROCEDURE, PASS:: findCell
!Gather value and spatial derivative on the nodes at position Xi
PROCEDURE, PASS, PRIVATE:: gatherF_scalar
PROCEDURE, PASS, PRIVATE:: gatherF_array
PROCEDURE, PASS, PRIVATE:: gatherDF_scalar
GENERIC:: gatherF => gatherF_scalar, gatherF_array
GENERIC:: gatherDF => gatherDF_scalar
PROCEDURE, PASS, PRIVATE:: gatherF_cell_scalar
PROCEDURE, PASS, PRIVATE:: gatherF_cell_array
PROCEDURE, PASS, PRIVATE:: gatherDF_cell_scalar
GENERIC:: gatherF => gatherF_cell_scalar, gatherF_cell_array
GENERIC:: gatherDF => gatherDF_cell_scalar
END TYPE meshCell
@ -546,7 +546,7 @@ MODULE moduleMesh
END SUBROUTINE resetOutput
!Gather the value of valNodes (scalar) at position Xi
PURE FUNCTION gatherF_scalar(self, Xi, nNodes, valNodes) RESULT(f)
PURE FUNCTION gatherF_cell_scalar(self, Xi, nNodes, valNodes) RESULT(f)
IMPLICIT NONE
CLASS(meshCell), INTENT(in):: self
@ -559,10 +559,10 @@ MODULE moduleMesh
fPsi = self%fPsi(Xi, nNodes)
f = DOT_PRODUCT(fPsi, valNodes)
END FUNCTION gatherF_scalar
END FUNCTION gatherF_cell_scalar
!Gather the value of valNodes (array) at position Xi
PURE FUNCTION gatherF_array(self, Xi, nNodes, valNodes) RESULT(f)
PURE FUNCTION gatherF_cell_array(self, Xi, nNodes, valNodes) RESULT(f)
IMPLICIT NONE
CLASS(meshCell), INTENT(in):: self
@ -575,10 +575,10 @@ MODULE moduleMesh
fPsi = self%fPsi(Xi, nNodes)
f = MATMUL(fPsi, valNodes)
END FUNCTION gatherF_array
END FUNCTION gatherF_cell_array
!Gather the spatial derivative of valNodes (scalar) at position Xi
PURE FUNCTION gatherDF_scalar(self, Xi, nNodes, valNodes) RESULT(df)
PURE FUNCTION gatherDF_cell_scalar(self, Xi, nNodes, valNodes) RESULT(df)
IMPLICIT NONE
CLASS(meshCell), INTENT(in):: self
@ -600,7 +600,7 @@ MODULE moduleMesh
DOT_PRODUCT(dPsiR(2,:), valNodes), &
DOT_PRODUCT(dPsiR(3,:), valNodes) /)
END FUNCTION gatherDF_scalar
END FUNCTION gatherDF_cell_scalar
!Scatters particle properties into cell nodes
SUBROUTINE scatter(self, nNodes, part)