[skip sc] Fdot --> dotF

This commit is contained in:
Sharan Roongta 2020-10-15 23:02:47 +02:00
parent 6455627af9
commit 6c79093a75
9 changed files with 19 additions and 19 deletions

@ -1 +1 @@
Subproject commit 256c0d23c005c82987954d7f8bbf996e033f7821 Subproject commit 1364de0521afa348acde95e282ab7aab4d470768

View File

@ -1,6 +1,6 @@
step: step:
- mech: - mech:
Fdot: [0, 0, 0, 1e-3, 0, 0, 0, 0, 0] dotF: [0, 0, 0, 1e-3, 0, 0, 0, 0, 0]
P: [x, x, x, x, x, x, x, x, x] P: [x, x, x, x, x, x, x, x, x]
discretization: discretization:
t: 60 t: 60

View File

@ -1,6 +1,6 @@
step: step:
- mech: - mech:
Fdot: [0, 0, 1e-3, 0, 0, 0, 0, 0, 0] dotF: [0, 0, 1e-3, 0, 0, 0, 0, 0, 0]
P: [x, x, x, x, x, x, x, x, x] P: [x, x, x, x, x, x, x, x, x]
discretization: discretization:
t: 60 t: 60

View File

@ -1,13 +1,13 @@
step: step:
- mech: - mech:
Fdot: [1.0e-3,0,0, 0,x,0, 0,0,x] dotF: [1.0e-3,0,0, 0,x,0, 0,0,x]
P: [ x,x,x, x,0,x, x,x,0] P: [ x,x,x, x,0,x, x,x,0]
discretization: discretization:
t: 10 t: 10
N: 40 N: 40
f_out: 4 f_out: 4
- mech: - mech:
Fdot: [1.0e-3,0,0, 0,x,0, 0,0,x] dotF: [1.0e-3,0,0, 0,x,0, 0,0,x]
P: [ x,x,x, x,0,x, x,x,0] P: [ x,x,x, x,0,x, x,x,0]
discretization: discretization:
t: 60 t: 60

View File

@ -173,7 +173,7 @@ program DAMASK_grid
step_discretization => load_step%get('discretization') step_discretization => load_step%get('discretization')
do m = 1, step_mech%length do m = 1, step_mech%length
select case (step_mech%getKey(m)) select case (step_mech%getKey(m))
case('L','Fdot','F') case('L','dotF','F')
N_def = N_def + 1 N_def = N_def + 1
end select end select
enddo enddo
@ -196,10 +196,10 @@ program DAMASK_grid
readMech: do m = 1, step_mech%length readMech: do m = 1, step_mech%length
select case (step_mech%getKey(m)) select case (step_mech%getKey(m))
case('Fdot','L','F') ! assign values for the deformation BC matrix case('dotF','L','F') ! assign values for the deformation BC matrix
temp_valueVector = 0.0_pReal temp_valueVector = 0.0_pReal
if (step_mech%getKey(m) == 'Fdot') then ! in case of Fdot, set type to fdot if (step_mech%getKey(m) == 'dotF') then ! in case of dotF, set type to dotf
newLoadCase%deformation%myType = 'fdot' newLoadCase%deformation%myType = 'dotf'
else if (step_mech%getKey(m) == 'F') then else if (step_mech%getKey(m) == 'F') then
newLoadCase%deformation%myType = 'f' newLoadCase%deformation%myType = 'f'
else else

View File

@ -345,7 +345,7 @@ subroutine grid_mech_FEM_forward(cutBack,guess,timeinc,timeinc_old,loadCaseTime,
if (deformation_BC%myType=='l') then ! calculate F_aimDot from given L and current F if (deformation_BC%myType=='l') then ! calculate F_aimDot from given L and current F
F_aimDot = F_aimDot & F_aimDot = F_aimDot &
+ merge(matmul(deformation_BC%values, F_aim_lastInc),.0_pReal,deformation_BC%mask) + merge(matmul(deformation_BC%values, F_aim_lastInc),.0_pReal,deformation_BC%mask)
elseif(deformation_BC%myType=='fdot') then ! F_aimDot is prescribed elseif(deformation_BC%myType=='dotf') then ! F_aimDot is prescribed
F_aimDot = F_aimDot & F_aimDot = F_aimDot &
+ merge(deformation_BC%values,.0_pReal,deformation_BC%mask) + merge(deformation_BC%values,.0_pReal,deformation_BC%mask)
elseif (deformation_BC%myType=='f') then ! aim at end of load case is prescribed elseif (deformation_BC%myType=='f') then ! aim at end of load case is prescribed
@ -372,7 +372,7 @@ subroutine grid_mech_FEM_forward(cutBack,guess,timeinc,timeinc_old,loadCaseTime,
F_aim = F_aim_lastInc + F_aimDot * timeinc F_aim = F_aim_lastInc + F_aimDot * timeinc
if (stress_BC%myType=='p') then if (stress_BC%myType=='p') then
P_aim = P_aim + merge((stress_BC%values - P_aim)/loadCaseTime*timeinc,.0_pReal,stress_BC%mask) P_aim = P_aim + merge((stress_BC%values - P_aim)/loadCaseTime*timeinc,.0_pReal,stress_BC%mask)
elseif (stress_BC%myType=='pdot') then !UNTESTED elseif (stress_BC%myType=='dotp') then !UNTESTED
P_aim = P_aim + merge(stress_BC%values*timeinc,.0_pReal,stress_BC%mask) P_aim = P_aim + merge(stress_BC%values*timeinc,.0_pReal,stress_BC%mask)
endif endif

View File

@ -308,13 +308,13 @@ subroutine grid_mech_spectral_basic_forward(cutBack,guess,timeinc,timeinc_old,lo
!----------------------------------------------------------------------------------------------- !-----------------------------------------------------------------------------------------------
! calculate rate for aim ! calculate rate for aim
if (deformation_BC%myType=='l') then ! calculate F_aimDot from given L and current F if (deformation_BC%myType=='l') then ! calculate F_aimDot from given L and current F
F_aimDot = F_aimDot & F_aimDot = F_aimDot &
+ merge(matmul(deformation_BC%values, F_aim_lastInc),.0_pReal,deformation_BC%mask) + merge(matmul(deformation_BC%values, F_aim_lastInc),.0_pReal,deformation_BC%mask)
elseif(deformation_BC%myType=='fdot') then ! F_aimDot is prescribed elseif(deformation_BC%myType=='dotf') then ! F_aimDot is prescribed
F_aimDot = F_aimDot & F_aimDot = F_aimDot &
+ merge(deformation_BC%values,.0_pReal,deformation_BC%mask) + merge(deformation_BC%values,.0_pReal,deformation_BC%mask)
elseif (deformation_BC%myType=='f') then ! aim at end of load case is prescribed elseif (deformation_BC%myType=='f') then ! aim at end of load case is prescribed
F_aimDot = F_aimDot & F_aimDot = F_aimDot &
+ merge((deformation_BC%values - F_aim_lastInc)/loadCaseTime,.0_pReal,deformation_BC%mask) + merge((deformation_BC%values - F_aim_lastInc)/loadCaseTime,.0_pReal,deformation_BC%mask)
endif endif
@ -332,11 +332,11 @@ subroutine grid_mech_spectral_basic_forward(cutBack,guess,timeinc,timeinc_old,lo
F_aim = F_aim_lastInc + F_aimDot * timeinc F_aim = F_aim_lastInc + F_aimDot * timeinc
if (stress_BC%myType=='p') then if (stress_BC%myType=='p') then
P_aim = P_aim + merge((stress_BC%values - P_aim)/loadCaseTime*timeinc,.0_pReal,stress_BC%mask) P_aim = P_aim + merge((stress_BC%values - P_aim)/loadCaseTime*timeinc,.0_pReal,stress_BC%mask)
elseif (stress_BC%myType=='pdot') then !UNTESTED elseif (stress_BC%myType=='dotp') then !UNTESTED
P_aim = P_aim + merge(stress_BC%values*timeinc,.0_pReal,stress_BC%mask) P_aim = P_aim + merge(stress_BC%values*timeinc,.0_pReal,stress_BC%mask)
endif endif
F = reshape(utilities_forwardField(timeinc,F_lastInc,Fdot, & ! estimate of F at end of time+timeinc that matches rotated F_aim on average F = reshape(utilities_forwardField(timeinc,F_lastInc,Fdot, & ! estimate of F at end of time+timeinc that matches rotated F_aim on average
rotation_BC%rotate(F_aim,active=.true.)),[9,grid(1),grid(2),grid3]) rotation_BC%rotate(F_aim,active=.true.)),[9,grid(1),grid(2),grid3])
call DMDAVecRestoreArrayF90(da,solution_vec,F,ierr); CHKERRQ(ierr) call DMDAVecRestoreArrayF90(da,solution_vec,F,ierr); CHKERRQ(ierr)

View File

@ -347,7 +347,7 @@ subroutine grid_mech_spectral_polarisation_forward(cutBack,guess,timeinc,timeinc
if (deformation_BC%myType=='l') then ! calculate F_aimDot from given L and current F if (deformation_BC%myType=='l') then ! calculate F_aimDot from given L and current F
F_aimDot = F_aimDot & F_aimDot = F_aimDot &
+ merge(matmul(deformation_BC%values, F_aim_lastInc),.0_pReal,deformation_BC%mask) + merge(matmul(deformation_BC%values, F_aim_lastInc),.0_pReal,deformation_BC%mask)
elseif(deformation_BC%myType=='fdot') then ! F_aimDot is prescribed elseif(deformation_BC%myType=='dotf') then ! F_aimDot is prescribed
F_aimDot = F_aimDot & F_aimDot = F_aimDot &
+ merge(deformation_BC%values,.0_pReal,deformation_BC%mask) + merge(deformation_BC%values,.0_pReal,deformation_BC%mask)
elseif (deformation_BC%myType=='f') then ! aim at end of load case is prescribed elseif (deformation_BC%myType=='f') then ! aim at end of load case is prescribed
@ -372,7 +372,7 @@ subroutine grid_mech_spectral_polarisation_forward(cutBack,guess,timeinc,timeinc
F_aim = F_aim_lastInc + F_aimDot * timeinc F_aim = F_aim_lastInc + F_aimDot * timeinc
if (stress_BC%myType=='p') then if (stress_BC%myType=='p') then
P_aim = P_aim + merge((stress_BC%values - P_aim)/loadCaseTime*timeinc,.0_pReal,stress_BC%mask) P_aim = P_aim + merge((stress_BC%values - P_aim)/loadCaseTime*timeinc,.0_pReal,stress_BC%mask)
elseif (stress_BC%myType=='pdot') then !UNTESTED elseif (stress_BC%myType=='dotp') then !UNTESTED
P_aim = P_aim + merge(stress_BC%values*timeinc,.0_pReal,stress_BC%mask) P_aim = P_aim + merge(stress_BC%values*timeinc,.0_pReal,stress_BC%mask)
endif endif

View File

@ -90,7 +90,7 @@ module spectral_utilities
type, public :: tLoadCase type, public :: tLoadCase
type(rotation) :: rot !< rotation of BC type(rotation) :: rot !< rotation of BC
type(tBoundaryCondition) :: stress, & !< stress BC type(tBoundaryCondition) :: stress, & !< stress BC
deformation !< deformation BC (Fdot or L) deformation !< deformation BC (dotF or L)
real(pReal) :: time !< length of increment real(pReal) :: time !< length of increment
integer :: incs, & !< number of increments integer :: incs, & !< number of increments
outputfrequency, & !< frequency of result writes outputfrequency, & !< frequency of result writes