From 4942304ee830922a2ffd282926d2a827774f0500 Mon Sep 17 00:00:00 2001 From: Sharan Roongta Date: Thu, 18 Jun 2020 17:43:25 +0200 Subject: [PATCH] extended for grid --- src/grid/DAMASK_grid.f90 | 12 +++++++----- src/grid/discretization_grid.f90 | 10 +++++++++- src/grid/grid_mech_FEM.f90 | 9 +++++++-- src/grid/grid_mech_spectral_basic.f90 | 9 +++++++-- src/grid/grid_mech_spectral_polarisation.f90 | 9 +++++++-- src/grid/spectral_utilities.f90 | 11 +++++++---- 6 files changed, 44 insertions(+), 16 deletions(-) diff --git a/src/grid/DAMASK_grid.f90 b/src/grid/DAMASK_grid.f90 index c2ac2ea58..d10c4badc 100644 --- a/src/grid/DAMASK_grid.f90 +++ b/src/grid/DAMASK_grid.f90 @@ -93,7 +93,8 @@ program DAMASK_grid quit class (tNode), pointer :: & num_grid, & - num_generic + num_generic, & + debug_grid !-------------------------------------------------------------------------------------------------- ! init DAMASK (all modules) @@ -124,8 +125,9 @@ program DAMASK_grid !-------------------------------------------------------------------------------------------------- ! assign mechanics solver depending on selected type + debug_grid => debug_root%get('grid',defaultVal=emptyList) num_grid => numerics_root%get('grid',defaultVal=emptyDict) - + select case (trim(num_grid%get_asString('solver', defaultVal = 'Basic'))) case ('Basic') mech_init => grid_mech_spectral_basic_init @@ -135,7 +137,7 @@ program DAMASK_grid mech_restartWrite => grid_mech_spectral_basic_restartWrite case ('Polarisation') - if(iand(debug_level(debug_spectral),debug_levelBasic)/= 0) & + if(debug_grid%contains('basic')) & call IO_warning(42, ext_msg='debug Divergence') mech_init => grid_mech_spectral_polarisation_init mech_forward => grid_mech_spectral_polarisation_forward @@ -144,7 +146,7 @@ program DAMASK_grid mech_restartWrite => grid_mech_spectral_polarisation_restartWrite case ('FEM') - if(iand(debug_level(debug_spectral),debug_levelBasic)/= 0) & + if(debug_grid%contains('basic')) & call IO_warning(42, ext_msg='debug Divergence') mech_init => grid_mech_FEM_init mech_forward => grid_mech_FEM_forward @@ -343,7 +345,7 @@ program DAMASK_grid writeHeader: if (interface_restartInc < 1) then open(newunit=statUnit,file=trim(getSolverJobName())//'.sta',form='FORMATTED',status='REPLACE') write(statUnit,'(a)') 'Increment Time CutbackLevel Converged IterationsNeeded' ! statistics file - if (iand(debug_level(debug_spectral),debug_levelBasic) /= 0) & + if (debug_grid%contains('basic')) & write(6,'(/,a)') ' header of statistics file written out' flush(6) else writeHeader diff --git a/src/grid/discretization_grid.f90 b/src/grid/discretization_grid.f90 index 5cea99550..0189289d3 100644 --- a/src/grid/discretization_grid.f90 +++ b/src/grid/discretization_grid.f90 @@ -57,7 +57,10 @@ subroutine discretization_grid_init(restart) microstructureAt, & homogenizationAt - integer :: j + integer :: & + j, & + debug_e, & + debug_i integer(C_INTPTR_T) :: & devNull, z, z_offset @@ -83,6 +86,11 @@ subroutine discretization_grid_init(restart) myGrid = [grid(1:2),grid3] mySize = [geomSize(1:2),size3] +!------------------------------------------------------------------------------------------------- +! debug parameters + debug_e = debug_root%get_asInt('element',defaultVal=1) + debug_i = debug_root%get_asInt('integrationpoint',defaultVal=1) + !-------------------------------------------------------------------------------------------------- ! general discretization microstructureAt = microstructureAt(product(grid(1:2))*grid3Offset+1: & diff --git a/src/grid/grid_mech_FEM.f90 b/src/grid/grid_mech_FEM.f90 index 03709040f..8a8791151 100644 --- a/src/grid/grid_mech_FEM.f90 +++ b/src/grid/grid_mech_FEM.f90 @@ -505,7 +505,12 @@ subroutine formResidual(da_local,x_local, & itmin, & itmax class(tNode), pointer :: & - num_generic + num_generic, & + debug_grid + +!--------------------------------------------------------------------- +! debug pointer to grid + debug_grid => debug_root%get('grid',defaultVal=emptyList) !---------------------------------------------------------------------- ! read numerical paramteters and do sanity checks @@ -525,7 +530,7 @@ subroutine formResidual(da_local,x_local, & newIteration: if (totalIter <= PETScIter) then totalIter = totalIter + 1 write(6,'(1x,a,3(a,i0))') trim(incInfo), ' @ Iteration ', itmin, '≤',totalIter+1, '≤', itmax - if (iand(debug_level(debug_spectral),debug_spectralRotation) /= 0) & + if (debug_grid%contains('rotation')) & write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim (lab) =', transpose(params%rotation_BC%rotate(F_aim,active=.true.)) write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & diff --git a/src/grid/grid_mech_spectral_basic.f90 b/src/grid/grid_mech_spectral_basic.f90 index e754b0d64..0ae081e37 100644 --- a/src/grid/grid_mech_spectral_basic.f90 +++ b/src/grid/grid_mech_spectral_basic.f90 @@ -474,7 +474,12 @@ subroutine formResidual(in, F, & itmin, & itmax class(tNode), pointer :: & - num_generic + num_generic, & + debug_grid + +!--------------------------------------------------------------------- +! debug pointer to grid + debug_grid => debug_root%get('grid', defaultVal=emptyList) !---------------------------------------------------------------------- ! read numerical paramteter and do sanity checks @@ -493,7 +498,7 @@ subroutine formResidual(in, F, & newIteration: if (totalIter <= PETScIter) then totalIter = totalIter + 1 write(6,'(1x,a,3(a,i0))') trim(incInfo), ' @ Iteration ', itmin, '≤',totalIter, '≤', itmax - if (iand(debug_level(debug_spectral),debug_spectralRotation) /= 0) & + if (debug_grid%contains('rotation')) & write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim (lab) =', transpose(params%rotation_BC%rotate(F_aim,active=.true.)) write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & diff --git a/src/grid/grid_mech_spectral_polarisation.f90 b/src/grid/grid_mech_spectral_polarisation.f90 index 33b84c340..543a9da9c 100644 --- a/src/grid/grid_mech_spectral_polarisation.f90 +++ b/src/grid/grid_mech_spectral_polarisation.f90 @@ -534,7 +534,8 @@ subroutine formResidual(in, FandF_tau, & PetscErrorCode :: ierr class(tNode), pointer :: & num_grid, & - num_generic + num_generic, & + debug_grid real(pReal) :: & polarAlpha, & !< polarization scheme parameter 0.0 < alpha < 2.0. alpha = 1.0 ==> AL scheme, alpha = 2.0 ==> accelerated scheme polarBeta !< polarization scheme parameter 0.0 < beta < 2.0. beta = 1.0 ==> AL scheme, beta = 2.0 ==> accelerated scheme @@ -542,6 +543,10 @@ subroutine formResidual(in, FandF_tau, & i, j, k, e, & itmin, itmax +!-------------------------------------------------------------------------------------------------- +! debug pointer for grid + debug_grid => debug_root%get('grid',defaultVal=emptyList) + !-------------------------------------------------------------------------------------------------- ! read numerical paramteters and do sanity checks num_grid => numerics_root%get('grid',defaultVal = emptyDict) @@ -579,7 +584,7 @@ subroutine formResidual(in, FandF_tau, & newIteration: if (totalIter <= PETScIter) then totalIter = totalIter + 1 write(6,'(1x,a,3(a,i0))') trim(incInfo), ' @ Iteration ', itmin, '≤',totalIter, '≤', itmax - if (iand(debug_level(debug_spectral),debug_spectralRotation) /= 0) & + if(debug_grid%contains('rotation')) & write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & ' deformation gradient aim (lab) =', transpose(params%rotation_BC%rotate(F_aim,active=.true.)) write(6,'(/,a,/,3(3(f12.7,1x)/))',advance='no') & diff --git a/src/grid/spectral_utilities.f90 b/src/grid/spectral_utilities.f90 index d8e922343..30329d6dc 100644 --- a/src/grid/spectral_utilities.f90 +++ b/src/grid/spectral_utilities.f90 @@ -193,7 +193,8 @@ subroutine spectral_utilities_init petsc_options class (tNode) , pointer :: & num_grid, & - num_generic + num_generic, & + debug_grid write(6,'(/,a)') ' <<<+- spectral_utilities init -+>>>' @@ -211,9 +212,11 @@ subroutine spectral_utilities_init !-------------------------------------------------------------------------------------------------- ! set debugging parameters - debugGeneral = iand(debug_level(debug_SPECTRAL),debug_LEVELBASIC) /= 0 - debugRotation = iand(debug_level(debug_SPECTRAL),debug_SPECTRALROTATION) /= 0 - debugPETSc = iand(debug_level(debug_SPECTRAL),debug_SPECTRALPETSC) /= 0 + debug_grid => debug_root%get('grid',defaultVal=emptyList) + debugGeneral = debug_grid%contains('basic') + debugRotation = debug_grid%contains('rotation') + debugPETSc = debug_grid%contains('petsc') + if(debugPETSc) write(6,'(3(/,a),/)') & ' Initializing PETSc with debug options: ', &