From bb73a08cf4c39a7c6d1e604e0c2f7170d89efc13 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Sun, 24 Nov 2019 07:26:21 +0100 Subject: [PATCH] better encapsulation for results operations, do not rely directly on HDF5 module --- src/discretization.f90 | 5 +---- src/mesh_marc.f90 | 4 +++- src/results.f90 | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/discretization.f90 b/src/discretization.f90 index dfcad48a3..873148666 100644 --- a/src/discretization.f90 +++ b/src/discretization.f90 @@ -6,9 +6,6 @@ module discretization use prec use results -#if defined(PETSc) || defined(DAMASK_HDF5) - use HDF5_utilities -#endif implicit none private @@ -84,7 +81,7 @@ subroutine discretization_results #if defined(PETSc) || defined(DAMASK_HDF5) real(pReal), dimension(:,:), allocatable :: u - call HDF5_closeGroup(results_addGroup(trim('current/geometry'))) + call results_closeGroup(results_addGroup(trim('current/geometry'))) u = discretization_NodeCoords (1:3,:discretization_sharedNodesBeginn) & - discretization_NodeCoords0(1:3,:discretization_sharedNodesBeginn) diff --git a/src/mesh_marc.f90 b/src/mesh_marc.f90 index e67d5e0d1..51b9465b3 100644 --- a/src/mesh_marc.f90 +++ b/src/mesh_marc.f90 @@ -119,15 +119,17 @@ subroutine mesh_init(ip,el) reshape(connectivity_cell,[elem%NcellNodesPerCell,elem%nIPs*nElems]),& node0_cell,ip_reshaped) +!-------------------------------------------------------------------------------------------------- +! geometry information required by the nonlocal CP model call geometry_plastic_nonlocal_setIPvolume(IPvolume(elem,node0_cell,connectivity_cell)) unscaledNormals = IPareaNormal(elem,nElems,connectivity_cell,node0_cell) call geometry_plastic_nonlocal_setIParea(norm2(unscaledNormals,1)) call geometry_plastic_nonlocal_setIPareaNormal(unscaledNormals/spread(norm2(unscaledNormals,1),1,3)) call geometry_plastic_nonlocal_results - end subroutine mesh_init + !-------------------------------------------------------------------------------------------------- !> @brief Writes all information needed for the DADF5 geometry !-------------------------------------------------------------------------------------------------- diff --git a/src/results.f90 b/src/results.f90 index 471f994d6..93355b6c4 100644 --- a/src/results.f90 +++ b/src/results.f90 @@ -50,6 +50,7 @@ module results results_addIncrement, & results_addGroup, & results_openGroup, & + results_closeGroup, & results_writeDataset, & results_setLink, & results_addAttribute, & @@ -120,6 +121,7 @@ subroutine results_addIncrement(inc,time) end subroutine results_addIncrement + !-------------------------------------------------------------------------------------------------- !> @brief open a group from the results file !-------------------------------------------------------------------------------------------------- @@ -144,6 +146,18 @@ integer(HID_T) function results_addGroup(groupName) end function results_addGroup +!-------------------------------------------------------------------------------------------------- +!> @brief close a group +!-------------------------------------------------------------------------------------------------- +subroutine results_closeGroup(group_id) + + integer(HID_T), intent(in) :: group_id + + call HDF5_closeGroup(group_id) + +end subroutine results_closeGroup + + !-------------------------------------------------------------------------------------------------- !> @brief set link to object in results file !--------------------------------------------------------------------------------------------------