clearer name
This commit is contained in:
parent
ef5fe61ff6
commit
535ccf1378
|
@ -365,7 +365,7 @@ subroutine grid_mechanical_spectral_basic_forward(cutBack,guess,Delta_t,Delta_t_
|
||||||
if (stress_BC%myType=='dot_P') P_aim = P_aim &
|
if (stress_BC%myType=='dot_P') P_aim = P_aim &
|
||||||
+ merge(.0_pREAL,stress_BC%values,stress_BC%mask)*Delta_t
|
+ merge(.0_pREAL,stress_BC%values,stress_BC%mask)*Delta_t
|
||||||
|
|
||||||
F = reshape(utilities_forwardField(Delta_t,F_lastInc,Fdot, & ! estimate of F at end of time+Delta_t that matches rotated F_aim on average
|
F = reshape(utilities_forwardTensorField(Delta_t,F_lastInc,Fdot, & ! estimate of F at end of time+Delta_t that matches rotated F_aim on average
|
||||||
rotation_BC%rotate(F_aim,active=.true.)),[9,cells(1),cells(2),cells3])
|
rotation_BC%rotate(F_aim,active=.true.)),[9,cells(1),cells(2),cells3])
|
||||||
call DMDAVecRestoreArrayF90(DM_mech,F_PETSc,F,err_PETSc)
|
call DMDAVecRestoreArrayF90(DM_mech,F_PETSc,F,err_PETSc)
|
||||||
CHKERRQ(err_PETSc)
|
CHKERRQ(err_PETSc)
|
||||||
|
|
|
@ -408,11 +408,11 @@ subroutine grid_mechanical_spectral_polarization_forward(cutBack,guess,Delta_t,D
|
||||||
if (stress_BC%myType=='dot_P') P_aim = P_aim &
|
if (stress_BC%myType=='dot_P') P_aim = P_aim &
|
||||||
+ merge(.0_pREAL,stress_BC%values,stress_BC%mask)*Delta_t
|
+ merge(.0_pREAL,stress_BC%values,stress_BC%mask)*Delta_t
|
||||||
|
|
||||||
F = reshape(utilities_forwardField(Delta_t,F_lastInc,Fdot, & ! estimate of F at end of time+Delta_t that matches rotated F_aim on average
|
F = reshape(utilities_forwardTensorField(Delta_t,F_lastInc,Fdot, & ! estimate of F at end of time+Delta_t that matches rotated F_aim on average
|
||||||
rotation_BC%rotate(F_aim,active=.true.)),&
|
rotation_BC%rotate(F_aim,active=.true.)),&
|
||||||
[9,cells(1),cells(2),cells3])
|
[9,cells(1),cells(2),cells3])
|
||||||
if (guess) then
|
if (guess) then
|
||||||
F_tau = reshape(Utilities_forwardField(Delta_t,F_tau_lastInc,F_taudot), &
|
F_tau = reshape(Utilities_forwardTensorField(Delta_t,F_tau_lastInc,F_taudot), &
|
||||||
[9,cells(1),cells(2),cells3]) ! does not have any average value as boundary condition
|
[9,cells(1),cells(2),cells3]) ! does not have any average value as boundary condition
|
||||||
else
|
else
|
||||||
do k = 1, cells3; do j = 1, cells(2); do i = 1, cells(1)
|
do k = 1, cells3; do j = 1, cells(2); do i = 1, cells(1)
|
||||||
|
|
|
@ -124,7 +124,7 @@ module spectral_utilities
|
||||||
utilities_maskedCompliance, &
|
utilities_maskedCompliance, &
|
||||||
utilities_constitutiveResponse, &
|
utilities_constitutiveResponse, &
|
||||||
utilities_calculateRate, &
|
utilities_calculateRate, &
|
||||||
utilities_forwardField, &
|
utilities_forwardTensorField, &
|
||||||
utilities_updateCoords
|
utilities_updateCoords
|
||||||
|
|
||||||
contains
|
contains
|
||||||
|
@ -864,7 +864,7 @@ end function utilities_calculateRate
|
||||||
!> @brief forwards a field with a pointwise given rate, if aim is given,
|
!> @brief forwards a field with a pointwise given rate, if aim is given,
|
||||||
!> ensures that the average matches the aim
|
!> ensures that the average matches the aim
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function utilities_forwardField(Delta_t,field_lastInc,rate,aim)
|
function utilities_forwardTensorField(Delta_t,field_lastInc,rate,aim)
|
||||||
|
|
||||||
real(pREAL), intent(in) :: &
|
real(pREAL), intent(in) :: &
|
||||||
Delta_t !< Delta_t of current step
|
Delta_t !< Delta_t of current step
|
||||||
|
@ -875,22 +875,22 @@ function utilities_forwardField(Delta_t,field_lastInc,rate,aim)
|
||||||
aim !< average field value aim
|
aim !< average field value aim
|
||||||
|
|
||||||
real(pREAL), dimension(3,3,cells(1),cells(2),cells3) :: &
|
real(pREAL), dimension(3,3,cells(1),cells(2),cells3) :: &
|
||||||
utilities_forwardField
|
utilities_forwardTensorField
|
||||||
real(pREAL), dimension(3,3) :: fieldDiff !< <a + adot*t> - aim
|
real(pREAL), dimension(3,3) :: fieldDiff !< <a + adot*t> - aim
|
||||||
integer(MPI_INTEGER_KIND) :: err_MPI
|
integer(MPI_INTEGER_KIND) :: err_MPI
|
||||||
|
|
||||||
|
|
||||||
utilities_forwardField = field_lastInc + rate*Delta_t
|
utilities_forwardTensorField = field_lastInc + rate*Delta_t
|
||||||
if (present(aim)) then !< correct to match average
|
if (present(aim)) then !< correct to match average
|
||||||
fieldDiff = sum(sum(sum(utilities_forwardField,dim=5),dim=4),dim=3)*wgt
|
fieldDiff = sum(sum(sum(utilities_forwardTensorField,dim=5),dim=4),dim=3)*wgt
|
||||||
call MPI_Allreduce(MPI_IN_PLACE,fieldDiff,9_MPI_INTEGER_KIND,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD,err_MPI)
|
call MPI_Allreduce(MPI_IN_PLACE,fieldDiff,9_MPI_INTEGER_KIND,MPI_DOUBLE,MPI_SUM,MPI_COMM_WORLD,err_MPI)
|
||||||
if (err_MPI /= 0_MPI_INTEGER_KIND) error stop 'MPI error'
|
if (err_MPI /= 0_MPI_INTEGER_KIND) error stop 'MPI error'
|
||||||
fieldDiff = fieldDiff - aim
|
fieldDiff = fieldDiff - aim
|
||||||
utilities_forwardField = utilities_forwardField &
|
utilities_forwardTensorField = utilities_forwardTensorField &
|
||||||
- spread(spread(spread(fieldDiff,3,cells(1)),4,cells(2)),5,cells3)
|
- spread(spread(spread(fieldDiff,3,cells(1)),4,cells(2)),5,cells3)
|
||||||
end if
|
end if
|
||||||
|
|
||||||
end function utilities_forwardField
|
end function utilities_forwardTensorField
|
||||||
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
|
|
Loading…
Reference in New Issue