From 07d837931386ac7de4115f58e662318b68798e9a Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Fri, 25 Oct 2019 07:55:23 +0200 Subject: [PATCH] further untangling --- src/grid/DAMASK_grid.f90 | 6 ++++++ src/grid/grid_mech_FEM.f90 | 6 +++--- src/grid/grid_mech_spectral_basic.f90 | 6 +++--- src/grid/grid_mech_spectral_polarisation.f90 | 21 ++++++++++---------- 4 files changed, 22 insertions(+), 17 deletions(-) diff --git a/src/grid/DAMASK_grid.f90 b/src/grid/DAMASK_grid.f90 index 09e46aec7..6f65973d0 100644 --- a/src/grid/DAMASK_grid.f90 +++ b/src/grid/DAMASK_grid.f90 @@ -94,6 +94,8 @@ program DAMASK_spectral mech_forward procedure(grid_mech_spectral_basic_solution), pointer :: & mech_solution + procedure(grid_mech_spectral_basic_age), pointer :: & + mech_age procedure(grid_mech_spectral_basic_restartWrite), pointer :: & mech_restartWrite @@ -123,6 +125,7 @@ program DAMASK_spectral mech_init => grid_mech_spectral_basic_init mech_forward => grid_mech_spectral_basic_forward mech_solution => grid_mech_spectral_basic_solution + mech_age => grid_mech_spectral_basic_age mech_restartWrite => grid_mech_spectral_basic_restartWrite case ('polarisation') @@ -131,7 +134,9 @@ program DAMASK_spectral mech_init => grid_mech_spectral_polarisation_init mech_forward => grid_mech_spectral_polarisation_forward mech_solution => grid_mech_spectral_polarisation_solution + mech_age => grid_mech_spectral_polarisation_age mech_restartWrite => grid_mech_spectral_polarisation_restartWrite + case ('fem') if(iand(debug_level(debug_spectral),debug_levelBasic)/= 0) & @@ -139,6 +144,7 @@ program DAMASK_spectral mech_init => grid_mech_FEM_init mech_forward => grid_mech_FEM_forward mech_solution => grid_mech_FEM_solution + mech_age => grid_mech_FEM_age mech_restartWrite => grid_mech_FEM_restartWrite case default diff --git a/src/grid/grid_mech_FEM.f90 b/src/grid/grid_mech_FEM.f90 index 7f1401fe2..0d4cda158 100644 --- a/src/grid/grid_mech_FEM.f90 +++ b/src/grid/grid_mech_FEM.f90 @@ -72,6 +72,7 @@ module grid_mech_FEM grid_mech_FEM_init, & grid_mech_FEM_solution, & grid_mech_FEM_forward, & + grid_mech_FEM_age, & grid_mech_FEM_restartWrite contains @@ -331,9 +332,7 @@ subroutine grid_mech_FEM_forward(guess,timeinc,timeinc_old,loadCaseTime,deformat endif call VecCopy(solution_current,solution_lastInc,ierr); CHKERRQ(ierr) - F_lastInc = F ! winding F forward - materialpoint_F0 = reshape(F_lastInc, [3,3,1,product(grid(1:2))*grid3]) ! set starting condition for materialpoint_stressAndItsTangent - + F_lastInc = F ! winding F forward endif !-------------------------------------------------------------------------------------------------- @@ -352,6 +351,7 @@ end subroutine grid_mech_FEM_forward !-------------------------------------------------------------------------------------------------- subroutine grid_mech_FEM_age() + materialpoint_F0 = reshape(F, [3,3,1,product(grid(1:2))*grid3]) call CPFEM_age ! age state and kinematics call utilities_updateCoords(F) diff --git a/src/grid/grid_mech_spectral_basic.f90 b/src/grid/grid_mech_spectral_basic.f90 index 63f03e0ac..cf4816848 100644 --- a/src/grid/grid_mech_spectral_basic.f90 +++ b/src/grid/grid_mech_spectral_basic.f90 @@ -76,6 +76,7 @@ module grid_mech_spectral_basic grid_mech_spectral_basic_init, & grid_mech_spectral_basic_solution, & grid_mech_spectral_basic_forward, & + grid_mech_spectral_basic_age, & grid_mech_spectral_basic_restartWrite contains @@ -294,12 +295,10 @@ subroutine grid_mech_spectral_basic_forward(guess,timeinc,timeinc_old,loadCaseTi F_aimDot + deformation_BC%maskFloat * (deformation_BC%values - F_aim_lastInc)/loadCaseTime endif - Fdot = utilities_calculateRate(guess, & F_lastInc,reshape(F,[3,3,grid(1),grid(2),grid3]),timeinc_old, & math_rotate_backward33(F_aimDot,rotation_BC)) - F_lastInc = reshape(F, [3,3,grid(1),grid(2),grid3]) ! winding F forward - materialpoint_F0 = reshape(F_lastInc, [3,3,1,product(grid(1:2))*grid3]) ! set starting condition for materialpoint_stressAndItsTangent + F_lastInc = reshape(F,[3,3,grid(1),grid(2),grid3]) ! winding F forward endif !-------------------------------------------------------------------------------------------------- @@ -321,6 +320,7 @@ subroutine grid_mech_spectral_basic_age() PetscScalar, dimension(:,:,:,:), pointer :: F call DMDAVecGetArrayF90(da,solution_vec,F,ierr); CHKERRQ(ierr) + materialpoint_F0 = reshape(F, [3,3,1,product(grid(1:2))*grid3]) call CPFEM_age ! age state and kinematics call utilities_updateCoords(F) call DMDAVecRestoreArrayF90(da,solution_vec,F,ierr); CHKERRQ(ierr) diff --git a/src/grid/grid_mech_spectral_polarisation.f90 b/src/grid/grid_mech_spectral_polarisation.f90 index 8360f1f1e..c06b8eec3 100644 --- a/src/grid/grid_mech_spectral_polarisation.f90 +++ b/src/grid/grid_mech_spectral_polarisation.f90 @@ -82,6 +82,7 @@ module grid_mech_spectral_polarisation grid_mech_spectral_polarisation_init, & grid_mech_spectral_polarisation_solution, & grid_mech_spectral_polarisation_forward, & + grid_mech_spectral_polarisation_age, & grid_mech_spectral_polarisation_restartWrite contains @@ -318,17 +319,14 @@ subroutine grid_mech_spectral_polarisation_forward(guess,timeinc,timeinc_old,loa F_aimDot + deformation_BC%maskFloat * (deformation_BC%values - F_aim_lastInc)/loadCaseTime endif - - Fdot = utilities_calculateRate(guess, & - F_lastInc,reshape(F,[3,3,grid(1),grid(2),grid3]),timeinc_old, & - math_rotate_backward33(F_aimDot,rotation_BC)) - F_tauDot = utilities_calculateRate(guess, & - F_tau_lastInc,reshape(F_tau,[3,3,grid(1),grid(2),grid3]), timeinc_old, & - math_rotate_backward33(F_aimDot,rotation_BC)) - F_lastInc = reshape(F, [3,3,grid(1),grid(2),grid3]) ! winding F forward - F_tau_lastInc = reshape(F_tau, [3,3,grid(1),grid(2),grid3]) ! winding F_tau forward - materialpoint_F0 = reshape(F_lastInc, [3,3,1,product(grid(1:2))*grid3]) ! set starting condition for materialpoint_stressAndItsTangent - + Fdot = utilities_calculateRate(guess, & + F_lastInc,reshape(F,[3,3,grid(1),grid(2),grid3]),timeinc_old, & + math_rotate_backward33(F_aimDot,rotation_BC)) + F_tauDot = utilities_calculateRate(guess, & + F_tau_lastInc,reshape(F_tau,[3,3,grid(1),grid(2),grid3]), timeinc_old, & + math_rotate_backward33(F_aimDot,rotation_BC)) + F_lastInc = reshape(F, [3,3,grid(1),grid(2),grid3]) ! winding F forward + F_tau_lastInc = reshape(F_tau,[3,3,grid(1),grid(2),grid3]) ! winding F_tau forward endif !-------------------------------------------------------------------------------------------------- @@ -367,6 +365,7 @@ subroutine grid_mech_spectral_polarisation_age() call DMDAVecGetArrayF90(da,solution_vec,FandF_tau,ierr); CHKERRQ(ierr) F => FandF_tau(0: 8,:,:,:) + materialpoint_F0 = reshape(F,[3,3,1,product(grid(1:2))*grid3]) call CPFEM_age ! age state and kinematics call utilities_updateCoords(F) call DMDAVecRestoreArrayF90(da,solution_vec,FandF_tau,ierr); CHKERRQ(ierr)