better readable
This commit is contained in:
parent
c8f3808dab
commit
9dfe71aa06
|
@ -27,10 +27,8 @@ module crystallite
|
||||||
use geometry_plastic_nonlocal, only: &
|
use geometry_plastic_nonlocal, only: &
|
||||||
nIPneighbors => geometry_plastic_nonlocal_nIPneighbors, &
|
nIPneighbors => geometry_plastic_nonlocal_nIPneighbors, &
|
||||||
IPneighborhood => geometry_plastic_nonlocal_IPneighborhood
|
IPneighborhood => geometry_plastic_nonlocal_IPneighborhood
|
||||||
#if defined(PETSc) || defined(DAMASK_HDF5)
|
|
||||||
use HDF5_utilities
|
use HDF5_utilities
|
||||||
use results
|
use results
|
||||||
#endif
|
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
private
|
private
|
||||||
|
@ -854,11 +852,6 @@ end subroutine crystallite_orientations
|
||||||
!> @brief Map 2nd order tensor to reference config
|
!> @brief Map 2nd order tensor to reference config
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function crystallite_push33ToRef(ipc,ip,el, tensor33)
|
function crystallite_push33ToRef(ipc,ip,el, tensor33)
|
||||||
use math, only: &
|
|
||||||
math_inv33, &
|
|
||||||
math_EulerToR
|
|
||||||
use material, only: &
|
|
||||||
material_EulerAngles ! ToDo: Why stored? We also have crystallite_orientation0
|
|
||||||
|
|
||||||
real(pReal), dimension(3,3) :: crystallite_push33ToRef
|
real(pReal), dimension(3,3) :: crystallite_push33ToRef
|
||||||
real(pReal), dimension(3,3), intent(in) :: tensor33
|
real(pReal), dimension(3,3), intent(in) :: tensor33
|
||||||
|
@ -1065,10 +1058,6 @@ subroutine crystallite_results
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function select_tensors(dataset,instance)
|
function select_tensors(dataset,instance)
|
||||||
|
|
||||||
use material, only: &
|
|
||||||
homogenization_maxNgrains, &
|
|
||||||
material_phaseAt
|
|
||||||
|
|
||||||
integer, intent(in) :: instance
|
integer, intent(in) :: instance
|
||||||
real(pReal), dimension(:,:,:,:,:), intent(in) :: dataset
|
real(pReal), dimension(:,:,:,:,:), intent(in) :: dataset
|
||||||
real(pReal), allocatable, dimension(:,:,:) :: select_tensors
|
real(pReal), allocatable, dimension(:,:,:) :: select_tensors
|
||||||
|
@ -1096,10 +1085,6 @@ subroutine crystallite_results
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function select_rotations(dataset,instance)
|
function select_rotations(dataset,instance)
|
||||||
|
|
||||||
use material, only: &
|
|
||||||
homogenization_maxNgrains, &
|
|
||||||
material_phaseAt
|
|
||||||
|
|
||||||
integer, intent(in) :: instance
|
integer, intent(in) :: instance
|
||||||
type(rotation), dimension(:,:,:), intent(in) :: dataset
|
type(rotation), dimension(:,:,:), intent(in) :: dataset
|
||||||
type(rotation), allocatable, dimension(:) :: select_rotations
|
type(rotation), allocatable, dimension(:) :: select_rotations
|
||||||
|
|
|
@ -9,14 +9,17 @@ module grid_damage_spectral
|
||||||
#include <petsc/finclude/petscdmda.h>
|
#include <petsc/finclude/petscdmda.h>
|
||||||
use PETScdmda
|
use PETScdmda
|
||||||
use PETScsnes
|
use PETScsnes
|
||||||
use prec, only: &
|
|
||||||
pReal
|
use prec
|
||||||
use spectral_utilities, only: &
|
use spectral_utilities
|
||||||
tSolutionState, &
|
use mesh
|
||||||
tSolutionParams
|
use damage_nonlocal
|
||||||
|
use numerics
|
||||||
|
use damage_nonlocal
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
private
|
private
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! derived types
|
! derived types
|
||||||
type(tSolutionParams), private :: params
|
type(tSolutionParams), private :: params
|
||||||
|
@ -51,18 +54,6 @@ contains
|
||||||
! ToDo: Restart not implemented
|
! ToDo: Restart not implemented
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine grid_damage_spectral_init
|
subroutine grid_damage_spectral_init
|
||||||
use spectral_utilities, only: &
|
|
||||||
wgt
|
|
||||||
use mesh, only: &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
use damage_nonlocal, only: &
|
|
||||||
damage_nonlocal_getDiffusion33, &
|
|
||||||
damage_nonlocal_getMobility
|
|
||||||
use numerics, only: &
|
|
||||||
worldrank, &
|
|
||||||
worldsize, &
|
|
||||||
petsc_options
|
|
||||||
|
|
||||||
PetscInt, dimension(worldsize) :: localK
|
PetscInt, dimension(worldsize) :: localK
|
||||||
integer :: i, j, k, cell
|
integer :: i, j, k, cell
|
||||||
|
@ -153,15 +144,6 @@ end subroutine grid_damage_spectral_init
|
||||||
!> @brief solution for the spectral damage scheme with internal iterations
|
!> @brief solution for the spectral damage scheme with internal iterations
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function grid_damage_spectral_solution(timeinc,timeinc_old,loadCaseTime) result(solution)
|
function grid_damage_spectral_solution(timeinc,timeinc_old,loadCaseTime) result(solution)
|
||||||
use numerics, only: &
|
|
||||||
itmax, &
|
|
||||||
err_damage_tolAbs, &
|
|
||||||
err_damage_tolRel
|
|
||||||
use mesh, only: &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
use damage_nonlocal, only: &
|
|
||||||
damage_nonlocal_putNonLocalDamage
|
|
||||||
|
|
||||||
real(pReal), intent(in) :: &
|
real(pReal), intent(in) :: &
|
||||||
timeinc, & !< increment in time for current solution
|
timeinc, & !< increment in time for current solution
|
||||||
|
@ -223,17 +205,7 @@ end function grid_damage_spectral_solution
|
||||||
!> @brief spectral damage forwarding routine
|
!> @brief spectral damage forwarding routine
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine grid_damage_spectral_forward
|
subroutine grid_damage_spectral_forward
|
||||||
use mesh, only: &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
use spectral_utilities, only: &
|
|
||||||
cutBack, &
|
|
||||||
wgt
|
|
||||||
use damage_nonlocal, only: &
|
|
||||||
damage_nonlocal_putNonLocalDamage, &
|
|
||||||
damage_nonlocal_getDiffusion33, &
|
|
||||||
damage_nonlocal_getMobility
|
|
||||||
|
|
||||||
integer :: i, j, k, cell
|
integer :: i, j, k, cell
|
||||||
DM :: dm_local
|
DM :: dm_local
|
||||||
PetscScalar, dimension(:,:,:), pointer :: x_scal
|
PetscScalar, dimension(:,:,:), pointer :: x_scal
|
||||||
|
@ -278,25 +250,6 @@ end subroutine grid_damage_spectral_forward
|
||||||
!> @brief forms the spectral damage residual vector
|
!> @brief forms the spectral damage residual vector
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine formResidual(in,x_scal,f_scal,dummy,ierr)
|
subroutine formResidual(in,x_scal,f_scal,dummy,ierr)
|
||||||
use numerics, only: &
|
|
||||||
residualStiffness
|
|
||||||
use mesh, only: &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
use spectral_utilities, only: &
|
|
||||||
scalarField_real, &
|
|
||||||
vectorField_real, &
|
|
||||||
utilities_FFTvectorForward, &
|
|
||||||
utilities_FFTvectorBackward, &
|
|
||||||
utilities_FFTscalarForward, &
|
|
||||||
utilities_FFTscalarBackward, &
|
|
||||||
utilities_fourierGreenConvolution, &
|
|
||||||
utilities_fourierScalarGradient, &
|
|
||||||
utilities_fourierVectorDivergence
|
|
||||||
use damage_nonlocal, only: &
|
|
||||||
damage_nonlocal_getSourceAndItsTangent,&
|
|
||||||
damage_nonlocal_getDiffusion33, &
|
|
||||||
damage_nonlocal_getMobility
|
|
||||||
|
|
||||||
DMDALocalInfo, dimension(DMDA_LOCAL_INFO_SIZE) :: &
|
DMDALocalInfo, dimension(DMDA_LOCAL_INFO_SIZE) :: &
|
||||||
in
|
in
|
||||||
|
|
|
@ -7,18 +7,23 @@
|
||||||
module grid_mech_spectral_basic
|
module grid_mech_spectral_basic
|
||||||
#include <petsc/finclude/petscsnes.h>
|
#include <petsc/finclude/petscsnes.h>
|
||||||
#include <petsc/finclude/petscdmda.h>
|
#include <petsc/finclude/petscdmda.h>
|
||||||
use DAMASK_interface
|
|
||||||
use HDF5_utilities
|
|
||||||
use PETScdmda
|
use PETScdmda
|
||||||
use PETScsnes
|
use PETScsnes
|
||||||
use prec, only: &
|
|
||||||
pReal
|
use prec
|
||||||
use math, only: &
|
use DAMASK_interface
|
||||||
math_I3
|
use HDF5_utilities
|
||||||
use spectral_utilities, only: &
|
use math
|
||||||
tSolutionState, &
|
use spectral_utilities
|
||||||
tSolutionParams
|
use IO
|
||||||
|
use FEsolving
|
||||||
|
use config
|
||||||
|
use numerics
|
||||||
|
use homogenization
|
||||||
|
use mesh
|
||||||
|
use CPFEM2
|
||||||
|
use debug
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
private
|
private
|
||||||
|
|
||||||
|
@ -81,31 +86,6 @@ contains
|
||||||
!> @brief allocates all necessary fields and fills them with data, potentially from restart info
|
!> @brief allocates all necessary fields and fills them with data, potentially from restart info
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine grid_mech_spectral_basic_init
|
subroutine grid_mech_spectral_basic_init
|
||||||
use IO, only: &
|
|
||||||
IO_intOut, &
|
|
||||||
IO_error, &
|
|
||||||
IO_open_jobFile_binary
|
|
||||||
use FEsolving, only: &
|
|
||||||
restartInc
|
|
||||||
use config, only :&
|
|
||||||
config_numerics
|
|
||||||
use numerics, only: &
|
|
||||||
worldrank, &
|
|
||||||
worldsize, &
|
|
||||||
petsc_options
|
|
||||||
use homogenization, only: &
|
|
||||||
materialpoint_F0
|
|
||||||
use DAMASK_interface, only: &
|
|
||||||
getSolverJobName
|
|
||||||
use spectral_utilities, only: &
|
|
||||||
utilities_constitutiveResponse, &
|
|
||||||
utilities_updateGamma, &
|
|
||||||
utilities_updateIPcoords
|
|
||||||
use mesh, only: &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
use math, only: &
|
|
||||||
math_invSym3333
|
|
||||||
|
|
||||||
real(pReal), dimension(3,3,grid(1),grid(2),grid3) :: P
|
real(pReal), dimension(3,3,grid(1),grid(2),grid3) :: P
|
||||||
real(pReal), dimension(3,3) :: &
|
real(pReal), dimension(3,3) :: &
|
||||||
|
@ -215,13 +195,6 @@ end subroutine grid_mech_spectral_basic_init
|
||||||
!> @brief solution for the basic scheme with internal iterations
|
!> @brief solution for the basic scheme with internal iterations
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function grid_mech_spectral_basic_solution(incInfoIn,timeinc,timeinc_old,stress_BC,rotation_BC) result(solution)
|
function grid_mech_spectral_basic_solution(incInfoIn,timeinc,timeinc_old,stress_BC,rotation_BC) result(solution)
|
||||||
use spectral_utilities, only: &
|
|
||||||
tBoundaryCondition, &
|
|
||||||
utilities_maskedCompliance, &
|
|
||||||
utilities_updateGamma
|
|
||||||
use FEsolving, only: &
|
|
||||||
restartWrite, &
|
|
||||||
terminallyIll
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! input data for solution
|
! input data for solution
|
||||||
|
@ -277,27 +250,6 @@ end function grid_mech_spectral_basic_solution
|
||||||
!> possibly writing restart information, triggering of state increment in DAMASK, and updating of IPcoordinates
|
!> possibly writing restart information, triggering of state increment in DAMASK, and updating of IPcoordinates
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine grid_mech_spectral_basic_forward(guess,timeinc,timeinc_old,loadCaseTime,deformation_BC,stress_BC,rotation_BC)
|
subroutine grid_mech_spectral_basic_forward(guess,timeinc,timeinc_old,loadCaseTime,deformation_BC,stress_BC,rotation_BC)
|
||||||
use math, only: &
|
|
||||||
math_rotate_backward33
|
|
||||||
use numerics, only: &
|
|
||||||
worldrank
|
|
||||||
use homogenization, only: &
|
|
||||||
materialpoint_F0
|
|
||||||
use mesh, only: &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
use CPFEM2, only: &
|
|
||||||
CPFEM_age
|
|
||||||
use spectral_utilities, only: &
|
|
||||||
utilities_calculateRate, &
|
|
||||||
utilities_forwardField, &
|
|
||||||
utilities_updateIPcoords, &
|
|
||||||
tBoundaryCondition, &
|
|
||||||
cutBack
|
|
||||||
use IO, only: &
|
|
||||||
IO_open_jobFile_binary
|
|
||||||
use FEsolving, only: &
|
|
||||||
restartWrite
|
|
||||||
|
|
||||||
logical, intent(in) :: &
|
logical, intent(in) :: &
|
||||||
guess
|
guess
|
||||||
|
@ -387,15 +339,6 @@ end subroutine grid_mech_spectral_basic_forward
|
||||||
!> @brief convergence check
|
!> @brief convergence check
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine converged(snes_local,PETScIter,devNull1,devNull2,devNull3,reason,dummy,ierr)
|
subroutine converged(snes_local,PETScIter,devNull1,devNull2,devNull3,reason,dummy,ierr)
|
||||||
use numerics, only: &
|
|
||||||
itmax, &
|
|
||||||
itmin, &
|
|
||||||
err_div_tolRel, &
|
|
||||||
err_div_tolAbs, &
|
|
||||||
err_stress_tolRel, &
|
|
||||||
err_stress_tolAbs
|
|
||||||
use FEsolving, only: &
|
|
||||||
terminallyIll
|
|
||||||
|
|
||||||
SNES :: snes_local
|
SNES :: snes_local
|
||||||
PetscInt, intent(in) :: PETScIter
|
PetscInt, intent(in) :: PETScIter
|
||||||
|
@ -442,30 +385,6 @@ end subroutine converged
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine formResidual(in, F, &
|
subroutine formResidual(in, F, &
|
||||||
residuum, dummy, ierr)
|
residuum, dummy, ierr)
|
||||||
use numerics, only: &
|
|
||||||
itmax, &
|
|
||||||
itmin
|
|
||||||
use mesh, only: &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
use math, only: &
|
|
||||||
math_rotate_backward33, &
|
|
||||||
math_mul3333xx33
|
|
||||||
use debug, only: &
|
|
||||||
debug_level, &
|
|
||||||
debug_spectral, &
|
|
||||||
debug_spectralRotation
|
|
||||||
use spectral_utilities, only: &
|
|
||||||
tensorField_real, &
|
|
||||||
utilities_FFTtensorForward, &
|
|
||||||
utilities_fourierGammaConvolution, &
|
|
||||||
utilities_FFTtensorBackward, &
|
|
||||||
utilities_constitutiveResponse, &
|
|
||||||
utilities_divergenceRMS
|
|
||||||
use IO, only: &
|
|
||||||
IO_intOut
|
|
||||||
use FEsolving, only: &
|
|
||||||
terminallyIll
|
|
||||||
|
|
||||||
DMDALocalInfo, dimension(DMDA_LOCAL_INFO_SIZE) :: in !< DMDA info (needs to be named "in" for macros like XRANGE to work)
|
DMDALocalInfo, dimension(DMDA_LOCAL_INFO_SIZE) :: in !< DMDA info (needs to be named "in" for macros like XRANGE to work)
|
||||||
PetscScalar, dimension(3,3,XG_RANGE,YG_RANGE,ZG_RANGE), &
|
PetscScalar, dimension(3,3,XG_RANGE,YG_RANGE,ZG_RANGE), &
|
||||||
|
|
|
@ -7,17 +7,22 @@
|
||||||
module grid_mech_spectral_polarisation
|
module grid_mech_spectral_polarisation
|
||||||
#include <petsc/finclude/petscsnes.h>
|
#include <petsc/finclude/petscsnes.h>
|
||||||
#include <petsc/finclude/petscdmda.h>
|
#include <petsc/finclude/petscdmda.h>
|
||||||
use DAMASK_interface
|
|
||||||
use HDF5_utilities
|
|
||||||
use PETScdmda
|
use PETScdmda
|
||||||
use PETScsnes
|
use PETScsnes
|
||||||
use prec, only: &
|
|
||||||
pReal
|
use prec
|
||||||
use math, only: &
|
use DAMASK_interface
|
||||||
math_I3
|
use HDF5_utilities
|
||||||
use spectral_utilities, only: &
|
use math
|
||||||
tSolutionState, &
|
use spectral_utilities
|
||||||
tSolutionParams
|
use IO
|
||||||
|
use FEsolving
|
||||||
|
use config
|
||||||
|
use numerics
|
||||||
|
use homogenization
|
||||||
|
use mesh
|
||||||
|
use CPFEM2
|
||||||
|
use debug
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
private
|
private
|
||||||
|
@ -87,32 +92,7 @@ contains
|
||||||
!> @brief allocates all necessary fields and fills them with data, potentially from restart info
|
!> @brief allocates all necessary fields and fills them with data, potentially from restart info
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine grid_mech_spectral_polarisation_init
|
subroutine grid_mech_spectral_polarisation_init
|
||||||
use IO, only: &
|
|
||||||
IO_intOut, &
|
|
||||||
IO_error, &
|
|
||||||
IO_open_jobFile_binary
|
|
||||||
use FEsolving, only: &
|
|
||||||
restartInc
|
|
||||||
use config, only :&
|
|
||||||
config_numerics
|
|
||||||
use numerics, only: &
|
|
||||||
worldrank, &
|
|
||||||
worldsize, &
|
|
||||||
petsc_options
|
|
||||||
use homogenization, only: &
|
|
||||||
materialpoint_F0
|
|
||||||
use DAMASK_interface, only: &
|
|
||||||
getSolverJobName
|
|
||||||
use spectral_utilities, only: &
|
|
||||||
utilities_constitutiveResponse, &
|
|
||||||
utilities_updateGamma, &
|
|
||||||
utilities_updateIPcoords
|
|
||||||
use mesh, only: &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
use math, only: &
|
|
||||||
math_invSym3333
|
|
||||||
|
|
||||||
real(pReal), dimension(3,3,grid(1),grid(2),grid3) :: P
|
real(pReal), dimension(3,3,grid(1),grid(2),grid3) :: P
|
||||||
real(pReal), dimension(3,3) :: &
|
real(pReal), dimension(3,3) :: &
|
||||||
temp33_Real = 0.0_pReal
|
temp33_Real = 0.0_pReal
|
||||||
|
@ -230,15 +210,6 @@ end subroutine grid_mech_spectral_polarisation_init
|
||||||
!> @brief solution for the Polarisation scheme with internal iterations
|
!> @brief solution for the Polarisation scheme with internal iterations
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function grid_mech_spectral_polarisation_solution(incInfoIn,timeinc,timeinc_old,stress_BC,rotation_BC) result(solution)
|
function grid_mech_spectral_polarisation_solution(incInfoIn,timeinc,timeinc_old,stress_BC,rotation_BC) result(solution)
|
||||||
use math, only: &
|
|
||||||
math_invSym3333
|
|
||||||
use spectral_utilities, only: &
|
|
||||||
tBoundaryCondition, &
|
|
||||||
utilities_maskedCompliance, &
|
|
||||||
utilities_updateGamma
|
|
||||||
use FEsolving, only: &
|
|
||||||
restartWrite, &
|
|
||||||
terminallyIll
|
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! input data for solution
|
! input data for solution
|
||||||
|
@ -298,28 +269,6 @@ end function grid_mech_spectral_polarisation_solution
|
||||||
!> possibly writing restart information, triggering of state increment in DAMASK, and updating of IPcoordinates
|
!> possibly writing restart information, triggering of state increment in DAMASK, and updating of IPcoordinates
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine grid_mech_spectral_polarisation_forward(guess,timeinc,timeinc_old,loadCaseTime,deformation_BC,stress_BC,rotation_BC)
|
subroutine grid_mech_spectral_polarisation_forward(guess,timeinc,timeinc_old,loadCaseTime,deformation_BC,stress_BC,rotation_BC)
|
||||||
use math, only: &
|
|
||||||
math_mul3333xx33, &
|
|
||||||
math_rotate_backward33
|
|
||||||
use numerics, only: &
|
|
||||||
worldrank
|
|
||||||
use homogenization, only: &
|
|
||||||
materialpoint_F0
|
|
||||||
use mesh, only: &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
use CPFEM2, only: &
|
|
||||||
CPFEM_age
|
|
||||||
use spectral_utilities, only: &
|
|
||||||
utilities_calculateRate, &
|
|
||||||
utilities_forwardField, &
|
|
||||||
utilities_updateIPcoords, &
|
|
||||||
tBoundaryCondition, &
|
|
||||||
cutBack
|
|
||||||
use IO, only: &
|
|
||||||
IO_open_jobFile_binary
|
|
||||||
use FEsolving, only: &
|
|
||||||
restartWrite
|
|
||||||
|
|
||||||
logical, intent(in) :: &
|
logical, intent(in) :: &
|
||||||
guess
|
guess
|
||||||
|
@ -434,17 +383,6 @@ end subroutine grid_mech_spectral_polarisation_forward
|
||||||
!> @brief convergence check
|
!> @brief convergence check
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine converged(snes_local,PETScIter,devNull1,devNull2,devNull3,reason,dummy,ierr)
|
subroutine converged(snes_local,PETScIter,devNull1,devNull2,devNull3,reason,dummy,ierr)
|
||||||
use numerics, only: &
|
|
||||||
itmax, &
|
|
||||||
itmin, &
|
|
||||||
err_div_tolRel, &
|
|
||||||
err_div_tolAbs, &
|
|
||||||
err_curl_tolRel, &
|
|
||||||
err_curl_tolAbs, &
|
|
||||||
err_stress_tolRel, &
|
|
||||||
err_stress_tolAbs
|
|
||||||
use FEsolving, only: &
|
|
||||||
terminallyIll
|
|
||||||
|
|
||||||
SNES :: snes_local
|
SNES :: snes_local
|
||||||
PetscInt, intent(in) :: PETScIter
|
PetscInt, intent(in) :: PETScIter
|
||||||
|
@ -496,38 +434,6 @@ end subroutine converged
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine formResidual(in, FandF_tau, &
|
subroutine formResidual(in, FandF_tau, &
|
||||||
residuum, dummy,ierr)
|
residuum, dummy,ierr)
|
||||||
use numerics, only: &
|
|
||||||
itmax, &
|
|
||||||
itmin, &
|
|
||||||
polarAlpha, &
|
|
||||||
polarBeta
|
|
||||||
use mesh, only: &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
use math, only: &
|
|
||||||
math_rotate_forward33, &
|
|
||||||
math_rotate_backward33, &
|
|
||||||
math_mul3333xx33, &
|
|
||||||
math_invSym3333
|
|
||||||
use debug, only: &
|
|
||||||
debug_level, &
|
|
||||||
debug_spectral, &
|
|
||||||
debug_spectralRotation
|
|
||||||
use spectral_utilities, only: &
|
|
||||||
wgt, &
|
|
||||||
tensorField_real, &
|
|
||||||
utilities_FFTtensorForward, &
|
|
||||||
utilities_fourierGammaConvolution, &
|
|
||||||
utilities_FFTtensorBackward, &
|
|
||||||
utilities_constitutiveResponse, &
|
|
||||||
utilities_divergenceRMS, &
|
|
||||||
utilities_curlRMS
|
|
||||||
use IO, only: &
|
|
||||||
IO_intOut
|
|
||||||
use homogenization, only: &
|
|
||||||
materialpoint_dPdF
|
|
||||||
use FEsolving, only: &
|
|
||||||
terminallyIll
|
|
||||||
|
|
||||||
DMDALocalInfo, dimension(DMDA_LOCAL_INFO_SIZE) :: in !< DMDA info (needs to be named "in" for macros like XRANGE to work)
|
DMDALocalInfo, dimension(DMDA_LOCAL_INFO_SIZE) :: in !< DMDA info (needs to be named "in" for macros like XRANGE to work)
|
||||||
PetscScalar, dimension(3,3,2,XG_RANGE,YG_RANGE,ZG_RANGE), &
|
PetscScalar, dimension(3,3,2,XG_RANGE,YG_RANGE,ZG_RANGE), &
|
||||||
|
|
|
@ -9,14 +9,17 @@ module grid_thermal_spectral
|
||||||
#include <petsc/finclude/petscdmda.h>
|
#include <petsc/finclude/petscdmda.h>
|
||||||
use PETScdmda
|
use PETScdmda
|
||||||
use PETScsnes
|
use PETScsnes
|
||||||
use prec, only: &
|
|
||||||
pReal
|
use prec
|
||||||
use spectral_utilities, only: &
|
use spectral_utilities
|
||||||
tSolutionState, &
|
use mesh
|
||||||
tSolutionParams
|
use thermal_conduction
|
||||||
|
use material
|
||||||
|
use numerics
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
private
|
private
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! derived types
|
! derived types
|
||||||
type(tSolutionParams), private :: params
|
type(tSolutionParams), private :: params
|
||||||
|
@ -51,23 +54,6 @@ contains
|
||||||
! ToDo: Restart not implemented
|
! ToDo: Restart not implemented
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine grid_thermal_spectral_init
|
subroutine grid_thermal_spectral_init
|
||||||
use spectral_utilities, only: &
|
|
||||||
wgt
|
|
||||||
use mesh, only: &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
use thermal_conduction, only: &
|
|
||||||
thermal_conduction_getConductivity33, &
|
|
||||||
thermal_conduction_getMassDensity, &
|
|
||||||
thermal_conduction_getSpecificHeat
|
|
||||||
use material, only: &
|
|
||||||
material_homogenizationAt, &
|
|
||||||
temperature, &
|
|
||||||
thermalMapping
|
|
||||||
use numerics, only: &
|
|
||||||
worldrank, &
|
|
||||||
worldsize, &
|
|
||||||
petsc_options
|
|
||||||
|
|
||||||
PetscInt, dimension(worldsize) :: localK
|
PetscInt, dimension(worldsize) :: localK
|
||||||
integer :: i, j, k, cell
|
integer :: i, j, k, cell
|
||||||
|
@ -156,15 +142,6 @@ end subroutine grid_thermal_spectral_init
|
||||||
!> @brief solution for the spectral thermal scheme with internal iterations
|
!> @brief solution for the spectral thermal scheme with internal iterations
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function grid_thermal_spectral_solution(timeinc,timeinc_old,loadCaseTime) result(solution)
|
function grid_thermal_spectral_solution(timeinc,timeinc_old,loadCaseTime) result(solution)
|
||||||
use numerics, only: &
|
|
||||||
itmax, &
|
|
||||||
err_thermal_tolAbs, &
|
|
||||||
err_thermal_tolRel
|
|
||||||
use mesh, only: &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
use thermal_conduction, only: &
|
|
||||||
thermal_conduction_putTemperatureAndItsRate
|
|
||||||
|
|
||||||
real(pReal), intent(in) :: &
|
real(pReal), intent(in) :: &
|
||||||
timeinc, & !< increment in time for current solution
|
timeinc, & !< increment in time for current solution
|
||||||
|
@ -228,18 +205,7 @@ end function grid_thermal_spectral_solution
|
||||||
!> @brief forwarding routine
|
!> @brief forwarding routine
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine grid_thermal_spectral_forward
|
subroutine grid_thermal_spectral_forward
|
||||||
use mesh, only: &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
use spectral_utilities, only: &
|
|
||||||
cutBack, &
|
|
||||||
wgt
|
|
||||||
use thermal_conduction, only: &
|
|
||||||
thermal_conduction_putTemperatureAndItsRate, &
|
|
||||||
thermal_conduction_getConductivity33, &
|
|
||||||
thermal_conduction_getMassDensity, &
|
|
||||||
thermal_conduction_getSpecificHeat
|
|
||||||
|
|
||||||
integer :: i, j, k, cell
|
integer :: i, j, k, cell
|
||||||
DM :: dm_local
|
DM :: dm_local
|
||||||
PetscScalar, dimension(:,:,:), pointer :: x_scal
|
PetscScalar, dimension(:,:,:), pointer :: x_scal
|
||||||
|
@ -289,24 +255,6 @@ end subroutine grid_thermal_spectral_forward
|
||||||
!> @brief forms the spectral thermal residual vector
|
!> @brief forms the spectral thermal residual vector
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine formResidual(in,x_scal,f_scal,dummy,ierr)
|
subroutine formResidual(in,x_scal,f_scal,dummy,ierr)
|
||||||
use mesh, only: &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
use spectral_utilities, only: &
|
|
||||||
scalarField_real, &
|
|
||||||
vectorField_real, &
|
|
||||||
utilities_FFTvectorForward, &
|
|
||||||
utilities_FFTvectorBackward, &
|
|
||||||
utilities_FFTscalarForward, &
|
|
||||||
utilities_FFTscalarBackward, &
|
|
||||||
utilities_fourierGreenConvolution, &
|
|
||||||
utilities_fourierScalarGradient, &
|
|
||||||
utilities_fourierVectorDivergence
|
|
||||||
use thermal_conduction, only: &
|
|
||||||
thermal_conduction_getSourceAndItsTangent, &
|
|
||||||
thermal_conduction_getConductivity33, &
|
|
||||||
thermal_conduction_getMassDensity, &
|
|
||||||
thermal_conduction_getSpecificHeat
|
|
||||||
|
|
||||||
DMDALocalInfo, dimension(DMDA_LOCAL_INFO_SIZE) :: &
|
DMDALocalInfo, dimension(DMDA_LOCAL_INFO_SIZE) :: &
|
||||||
in
|
in
|
||||||
|
|
|
@ -7,6 +7,7 @@ module spectral_utilities
|
||||||
use, intrinsic :: iso_c_binding
|
use, intrinsic :: iso_c_binding
|
||||||
#include <petsc/finclude/petscsys.h>
|
#include <petsc/finclude/petscsys.h>
|
||||||
use PETScSys
|
use PETScSys
|
||||||
|
|
||||||
use prec
|
use prec
|
||||||
use math
|
use math
|
||||||
use IO
|
use IO
|
||||||
|
@ -584,12 +585,6 @@ end subroutine utilities_fourierGreenConvolution
|
||||||
!> @brief calculate root mean square of divergence of field_fourier
|
!> @brief calculate root mean square of divergence of field_fourier
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
real(pReal) function utilities_divergenceRMS()
|
real(pReal) function utilities_divergenceRMS()
|
||||||
use IO, only: &
|
|
||||||
IO_error
|
|
||||||
use mesh, only: &
|
|
||||||
geomSize, &
|
|
||||||
grid, &
|
|
||||||
grid3
|
|
||||||
|
|
||||||
integer :: i, j, k, ierr
|
integer :: i, j, k, ierr
|
||||||
complex(pReal), dimension(3) :: rescaledGeom
|
complex(pReal), dimension(3) :: rescaledGeom
|
||||||
|
@ -924,9 +919,6 @@ end subroutine utilities_constitutiveResponse
|
||||||
!> @brief calculates forward rate, either guessing or just add delta/timeinc
|
!> @brief calculates forward rate, either guessing or just add delta/timeinc
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
pure function utilities_calculateRate(heterogeneous,field0,field,dt,avRate)
|
pure function utilities_calculateRate(heterogeneous,field0,field,dt,avRate)
|
||||||
use mesh, only: &
|
|
||||||
grid3, &
|
|
||||||
grid
|
|
||||||
|
|
||||||
real(pReal), intent(in), dimension(3,3) :: &
|
real(pReal), intent(in), dimension(3,3) :: &
|
||||||
avRate !< homogeneous addon
|
avRate !< homogeneous addon
|
||||||
|
@ -954,9 +946,6 @@ end function utilities_calculateRate
|
||||||
!> ensures that the average matches the aim
|
!> ensures that the average matches the aim
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function utilities_forwardField(timeinc,field_lastInc,rate,aim)
|
function utilities_forwardField(timeinc,field_lastInc,rate,aim)
|
||||||
use mesh, only: &
|
|
||||||
grid3, &
|
|
||||||
grid
|
|
||||||
|
|
||||||
real(pReal), intent(in) :: &
|
real(pReal), intent(in) :: &
|
||||||
timeinc !< timeinc of current step
|
timeinc !< timeinc of current step
|
||||||
|
@ -988,11 +977,6 @@ end function utilities_forwardField
|
||||||
! standard approach
|
! standard approach
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
pure function utilities_getFreqDerivative(k_s)
|
pure function utilities_getFreqDerivative(k_s)
|
||||||
use math, only: &
|
|
||||||
PI
|
|
||||||
use mesh, only: &
|
|
||||||
geomSize, &
|
|
||||||
grid
|
|
||||||
|
|
||||||
integer, intent(in), dimension(3) :: k_s !< indices of frequency
|
integer, intent(in), dimension(3) :: k_s !< indices of frequency
|
||||||
complex(pReal), dimension(3) :: utilities_getFreqDerivative
|
complex(pReal), dimension(3) :: utilities_getFreqDerivative
|
||||||
|
|
11
src/math.f90
11
src/math.f90
|
@ -8,7 +8,9 @@
|
||||||
module math
|
module math
|
||||||
use prec
|
use prec
|
||||||
use future
|
use future
|
||||||
|
use IO
|
||||||
|
use debug
|
||||||
|
use numerics
|
||||||
implicit none
|
implicit none
|
||||||
public
|
public
|
||||||
#if __INTEL_COMPILER >= 1900
|
#if __INTEL_COMPILER >= 1900
|
||||||
|
@ -91,8 +93,6 @@ contains
|
||||||
!> @brief initialization of random seed generator and internal checks
|
!> @brief initialization of random seed generator and internal checks
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine math_init
|
subroutine math_init
|
||||||
use numerics, only: &
|
|
||||||
randomSeed
|
|
||||||
|
|
||||||
integer :: i
|
integer :: i
|
||||||
real(pReal), dimension(4) :: randTest
|
real(pReal), dimension(4) :: randTest
|
||||||
|
@ -133,7 +133,6 @@ end subroutine math_init
|
||||||
!> @brief check correctness of (some) math functions
|
!> @brief check correctness of (some) math functions
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine unitTest
|
subroutine unitTest
|
||||||
use IO, only: IO_error
|
|
||||||
|
|
||||||
character(len=64) :: error_msg
|
character(len=64) :: error_msg
|
||||||
|
|
||||||
|
@ -526,8 +525,6 @@ end subroutine math_invert33
|
||||||
!> @brief Inversion of symmetriced 3x3x3x3 tensor.
|
!> @brief Inversion of symmetriced 3x3x3x3 tensor.
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function math_invSym3333(A)
|
function math_invSym3333(A)
|
||||||
use IO, only: &
|
|
||||||
IO_error
|
|
||||||
|
|
||||||
real(pReal),dimension(3,3,3,3) :: math_invSym3333
|
real(pReal),dimension(3,3,3,3) :: math_invSym3333
|
||||||
|
|
||||||
|
@ -1443,8 +1440,6 @@ end function math_eigenvectorBasisSym33_log
|
||||||
!> @brief rotational part from polar decomposition of 33 tensor m
|
!> @brief rotational part from polar decomposition of 33 tensor m
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function math_rotationalPart33(m)
|
function math_rotationalPart33(m)
|
||||||
use IO, only: &
|
|
||||||
IO_warning
|
|
||||||
|
|
||||||
real(pReal), intent(in), dimension(3,3) :: m
|
real(pReal), intent(in), dimension(3,3) :: m
|
||||||
real(pReal), dimension(3,3) :: math_rotationalPart33
|
real(pReal), dimension(3,3) :: math_rotationalPart33
|
||||||
|
|
|
@ -6,11 +6,18 @@
|
||||||
!> @brief crystal plasticity model for bcc metals, especially Tungsten
|
!> @brief crystal plasticity model for bcc metals, especially Tungsten
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
module plastic_disloUCLA
|
module plastic_disloUCLA
|
||||||
use prec, only: &
|
use prec
|
||||||
pReal
|
use debug
|
||||||
|
use math
|
||||||
|
use IO
|
||||||
|
use material
|
||||||
|
use config
|
||||||
|
use lattice
|
||||||
|
use results
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
private
|
private
|
||||||
|
|
||||||
integer, dimension(:,:), allocatable, target, public :: &
|
integer, dimension(:,:), allocatable, target, public :: &
|
||||||
plastic_disloUCLA_sizePostResult !< size of each post result output
|
plastic_disloUCLA_sizePostResult !< size of each post result output
|
||||||
character(len=64), dimension(:,:), allocatable, target, public :: &
|
character(len=64), dimension(:,:), allocatable, target, public :: &
|
||||||
|
@ -111,20 +118,6 @@ contains
|
||||||
!> @details reads in material parameters, allocates arrays, and does sanity checks
|
!> @details reads in material parameters, allocates arrays, and does sanity checks
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine plastic_disloUCLA_init()
|
subroutine plastic_disloUCLA_init()
|
||||||
use prec, only: &
|
|
||||||
pStringLen
|
|
||||||
use debug, only: &
|
|
||||||
debug_level,&
|
|
||||||
debug_constitutive,&
|
|
||||||
debug_levelBasic
|
|
||||||
use math, only: &
|
|
||||||
math_expand
|
|
||||||
use IO, only: &
|
|
||||||
IO_error
|
|
||||||
use material
|
|
||||||
use config, only: &
|
|
||||||
config_phase
|
|
||||||
use lattice
|
|
||||||
|
|
||||||
integer :: &
|
integer :: &
|
||||||
Ninstance, &
|
Ninstance, &
|
||||||
|
@ -394,12 +387,6 @@ end subroutine plastic_disloUCLA_LpAndItsTangent
|
||||||
!> @brief calculates the rate of change of microstructure
|
!> @brief calculates the rate of change of microstructure
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine plastic_disloUCLA_dotState(Mp,T,instance,of)
|
subroutine plastic_disloUCLA_dotState(Mp,T,instance,of)
|
||||||
use prec, only: &
|
|
||||||
tol_math_check, &
|
|
||||||
dEq0
|
|
||||||
use math, only: &
|
|
||||||
PI, &
|
|
||||||
math_clip
|
|
||||||
|
|
||||||
real(pReal), dimension(3,3), intent(in) :: &
|
real(pReal), dimension(3,3), intent(in) :: &
|
||||||
Mp !< Mandel stress
|
Mp !< Mandel stress
|
||||||
|
@ -489,11 +476,6 @@ end subroutine plastic_disloUCLA_dependentState
|
||||||
!> @brief return array of constitutive results
|
!> @brief return array of constitutive results
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function plastic_disloUCLA_postResults(Mp,T,instance,of) result(postResults)
|
function plastic_disloUCLA_postResults(Mp,T,instance,of) result(postResults)
|
||||||
use prec, only: &
|
|
||||||
dEq, dNeq0
|
|
||||||
use math, only: &
|
|
||||||
PI, &
|
|
||||||
math_mul33xx33
|
|
||||||
|
|
||||||
real(pReal), dimension(3,3), intent(in) :: &
|
real(pReal), dimension(3,3), intent(in) :: &
|
||||||
Mp !< Mandel stress
|
Mp !< Mandel stress
|
||||||
|
@ -548,8 +530,6 @@ end function plastic_disloUCLA_postResults
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine plastic_disloUCLA_results(instance,group)
|
subroutine plastic_disloUCLA_results(instance,group)
|
||||||
#if defined(PETSc) || defined(DAMASK_HDF5)
|
#if defined(PETSc) || defined(DAMASK_HDF5)
|
||||||
use results, only: &
|
|
||||||
results_writeDataset
|
|
||||||
|
|
||||||
integer, intent(in) :: instance
|
integer, intent(in) :: instance
|
||||||
character(len=*), intent(in) :: group
|
character(len=*), intent(in) :: group
|
||||||
|
@ -595,12 +575,6 @@ end subroutine plastic_disloUCLA_results
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
pure subroutine kinetics(Mp,T,instance,of, &
|
pure subroutine kinetics(Mp,T,instance,of, &
|
||||||
dot_gamma_pos,dot_gamma_neg,ddot_gamma_dtau_pos,ddot_gamma_dtau_neg,tau_pos_out,tau_neg_out)
|
dot_gamma_pos,dot_gamma_neg,ddot_gamma_dtau_pos,ddot_gamma_dtau_neg,tau_pos_out,tau_neg_out)
|
||||||
use prec, only: &
|
|
||||||
tol_math_check, &
|
|
||||||
dEq, dNeq0
|
|
||||||
use math, only: &
|
|
||||||
PI, &
|
|
||||||
math_mul33xx33
|
|
||||||
|
|
||||||
real(pReal), dimension(3,3), intent(in) :: &
|
real(pReal), dimension(3,3), intent(in) :: &
|
||||||
Mp !< Mandel stress
|
Mp !< Mandel stress
|
||||||
|
|
|
@ -6,6 +6,10 @@
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
module source_damage_isoDuctile
|
module source_damage_isoDuctile
|
||||||
use prec
|
use prec
|
||||||
|
use debug
|
||||||
|
use IO
|
||||||
|
use material
|
||||||
|
use config
|
||||||
|
|
||||||
implicit none
|
implicit none
|
||||||
private
|
private
|
||||||
|
@ -51,25 +55,6 @@ contains
|
||||||
!> @details reads in material parameters, allocates arrays, and does sanity checks
|
!> @details reads in material parameters, allocates arrays, and does sanity checks
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_damage_isoDuctile_init
|
subroutine source_damage_isoDuctile_init
|
||||||
use debug, only: &
|
|
||||||
debug_level,&
|
|
||||||
debug_constitutive,&
|
|
||||||
debug_levelBasic
|
|
||||||
use IO, only: &
|
|
||||||
IO_error
|
|
||||||
use material, only: &
|
|
||||||
material_allocateSourceState, &
|
|
||||||
phase_source, &
|
|
||||||
phase_Nsources, &
|
|
||||||
phase_Noutput, &
|
|
||||||
SOURCE_damage_isoDuctile_label, &
|
|
||||||
SOURCE_damage_isoDuctile_ID, &
|
|
||||||
material_phase, &
|
|
||||||
sourceState
|
|
||||||
use config, only: &
|
|
||||||
config_phase, &
|
|
||||||
material_Nphase
|
|
||||||
|
|
||||||
|
|
||||||
integer :: Ninstance,phase,instance,source,sourceOffset
|
integer :: Ninstance,phase,instance,source,sourceOffset
|
||||||
integer :: NofMyPhase,p,i
|
integer :: NofMyPhase,p,i
|
||||||
|
@ -164,13 +149,6 @@ end subroutine source_damage_isoDuctile_init
|
||||||
!> @brief calculates derived quantities from state
|
!> @brief calculates derived quantities from state
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_damage_isoDuctile_dotState(ipc, ip, el)
|
subroutine source_damage_isoDuctile_dotState(ipc, ip, el)
|
||||||
use material, only: &
|
|
||||||
phaseAt, phasememberAt, &
|
|
||||||
plasticState, &
|
|
||||||
sourceState, &
|
|
||||||
material_homogenizationAt, &
|
|
||||||
damage, &
|
|
||||||
damageMapping
|
|
||||||
|
|
||||||
integer, intent(in) :: &
|
integer, intent(in) :: &
|
||||||
ipc, & !< component-ID of integration point
|
ipc, & !< component-ID of integration point
|
||||||
|
@ -197,8 +175,6 @@ end subroutine source_damage_isoDuctile_dotState
|
||||||
!> @brief returns local part of nonlocal damage driving force
|
!> @brief returns local part of nonlocal damage driving force
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
subroutine source_damage_isoDuctile_getRateAndItsTangent(localphiDot, dLocalphiDot_dPhi, phi, phase, constituent)
|
subroutine source_damage_isoDuctile_getRateAndItsTangent(localphiDot, dLocalphiDot_dPhi, phi, phase, constituent)
|
||||||
use material, only: &
|
|
||||||
sourceState
|
|
||||||
|
|
||||||
integer, intent(in) :: &
|
integer, intent(in) :: &
|
||||||
phase, &
|
phase, &
|
||||||
|
@ -224,8 +200,6 @@ end subroutine source_damage_isoDuctile_getRateAndItsTangent
|
||||||
!> @brief return array of local damage results
|
!> @brief return array of local damage results
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
function source_damage_isoDuctile_postResults(phase, constituent)
|
function source_damage_isoDuctile_postResults(phase, constituent)
|
||||||
use material, only: &
|
|
||||||
sourceState
|
|
||||||
|
|
||||||
integer, intent(in) :: &
|
integer, intent(in) :: &
|
||||||
phase, &
|
phase, &
|
||||||
|
|
Loading…
Reference in New Issue