Modify the MPIFace process send-recv in HexMesh and MPIFace. Add test case for MLRK#271
Modify the MPIFace process send-recv in HexMesh and MPIFace. Add test case for MLRK#271hmarbona wants to merge 16 commits into
Conversation
This commit allow a better MPI partitioning for MLRK explicit time integration for both METIS and SFC method
Destruct BC is moved inside the mesh%destruct
The MPI communication subroutines (MPIFace.f90 and UpdateMPIFaces...) are modified - Checked for memory leak. A new subroutine is added into Utilities.f90 (log_mem) for debug memory leak
New memory monitor is added into residual (optional) and Cylinder_MLRK test case is available in NS
| if (allocated(weights)) deallocate(weights) | ||
| if (allocated(tpwgt)) deallocate(tpwgt) | ||
| if (allocated(vsize)) deallocate(vsize) | ||
| if (associated(vwgt)) nullify(vwgt) ! vwgt is a pointer to a target. nullify is enough |
There was a problem hiding this comment.
Nullify(vwgt) must be placed before deallocate(weights). If not, there might be a memmory leak because the pointer is pointing to a void memmory.
There was a problem hiding this comment.
This is a good suggestion. I missed it. Thanks
| if (allocated(weights)) deallocate(weights) | ||
| if (allocated(tpwgt)) deallocate(tpwgt) | ||
| if (allocated(vsize)) deallocate(vsize) | ||
| if (associated(vwgt)) nullify(vwgt) ! vwgt is a pointer to a target. nullify is enough |
There was a problem hiding this comment.
Same here, nullify(vwgt) before deallocate(weights)
There was a problem hiding this comment.
This is a good suggestion. I missed it. Thanks
|
|
||
| call convPoints% destruct() | ||
|
|
||
| nullify(p, p1) |
There was a problem hiding this comment.
Nullify must go before the destruction of the target convPoints.
There was a problem hiding this comment.
this is okay, but I move it above as requested
| @@ -73,6 +74,7 @@ subroutine ConstructZones( faces , zones ) | |||
| call ConstructBoundaryConditions(no_of_markers, zoneNames) | |||
|
|
|||
| deallocate (zoneNames) | |||
There was a problem hiding this comment.
Are you sure we want to deallocate? What we are deallocating is zoneNameDictionary % allKeys(). Is it a function that returns an independent array, or is it a reference to something else? If it's an independent array, it should be replaced with an allocatable array if posible. In case it's a reference, maybe we only want to nullify the pointer, not deallocate. It should be checked anyway.
There was a problem hiding this comment.
I didnt do anything on above code
| @@ -113,6 +115,7 @@ subroutine ReassignZones( faces , zones ) | |||
| call Zone_AssignFaces(faces,zones,no_of_markers,zoneNames) | |||
|
|
|||
| deallocate (zoneNames) | |||
There was a problem hiding this comment.
same here didnt do anything
Dhueper
left a comment
There was a problem hiding this comment.
I've included some comments that you should check before merging.
|
I will wait for edu pull then open new request to make things easier for him |
This commit reduce the work in the MLRK and MU (prolongsolutionintofaces)
This pull request modify the MPI face process to send and recv data of MPIfaces. The modification is to prevent memory leaking and communication mismatch in the solver. Mainly tested for multiphase for long run. A new monitor is added to monitor the total memory (see Cylinder_MLRK test).
A new test case, Cylinder_MLRK is added in the NavierStokes test case to check MLRK time scheme.