further untangling

This commit is contained in:
Martin Diehl 2019-10-25 07:55:23 +02:00
parent cf8b16c066
commit 07d8379313
4 changed files with 22 additions and 17 deletions

View File

@ -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

View File

@ -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)

View File

@ -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)

View File

@ -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)