Merge remote-tracking branch 'origin/development' into more-flexible-L
This commit is contained in:
commit
b5bf1d525e
2
PRIVATE
2
PRIVATE
|
@ -1 +1 @@
|
|||
Subproject commit 8fec909d1931b092b223b0560dd30c3339c6e5a7
|
||||
Subproject commit a949f5417762bddc551bf99f19a26ea2bdb4e5b4
|
|
@ -79,6 +79,5 @@ commercialFEM:
|
|||
unitlength: 1 # physical length of one computational length unit
|
||||
|
||||
generic:
|
||||
charLength: 1.0 # characteristic length scale for gradient problems.
|
||||
random_seed: 0 # fixed seeding for pseudo-random number generator, Default 0: use random seed.
|
||||
residualStiffness: 1.0e-6 # non-zero residual damage.
|
||||
|
|
|
@ -7,5 +7,5 @@ q: 20
|
|||
|
||||
output: [f_phi]
|
||||
|
||||
K_11: 1.0
|
||||
D_11: 1.0
|
||||
mu: 0.001
|
||||
|
|
|
@ -3,5 +3,5 @@ W_crit: 1400000.0
|
|||
|
||||
output: [f_phi]
|
||||
|
||||
K_11: 1.0
|
||||
D_11: 1.0
|
||||
mu: 0.001
|
||||
|
|
|
@ -1 +1 @@
|
|||
v3.0.0-alpha4-112-gb36da7378
|
||||
v3.0.0-alpha4-114-gb98819a36
|
||||
|
|
|
@ -41,15 +41,6 @@ module homogenization
|
|||
integer(kind(DAMAGE_none_ID)), dimension(:), allocatable :: &
|
||||
damage_type !< nonlocal damage model
|
||||
|
||||
type, private :: tNumerics_damage
|
||||
real(pReal) :: &
|
||||
charLength !< characteristic length scale for gradient problems
|
||||
end type tNumerics_damage
|
||||
|
||||
type(tNumerics_damage), private :: &
|
||||
num_damage
|
||||
|
||||
|
||||
logical, public :: &
|
||||
terminallyIll = .false. !< at least one material point is terminally ill
|
||||
|
||||
|
|
|
@ -37,8 +37,7 @@ module subroutine damage_init()
|
|||
class(tNode), pointer :: &
|
||||
configHomogenizations, &
|
||||
configHomogenization, &
|
||||
configHomogenizationDamage, &
|
||||
num_generic
|
||||
configHomogenizationDamage
|
||||
integer :: ho,Nmembers
|
||||
|
||||
|
||||
|
@ -70,11 +69,6 @@ module subroutine damage_init()
|
|||
end associate
|
||||
enddo
|
||||
|
||||
!------------------------------------------------------------------------------------
|
||||
! read numerics parameter
|
||||
num_generic => config_numerics%get('generic',defaultVal= emptyDict)
|
||||
num_damage%charLength = num_generic%get_asFloat('charLength',defaultVal=1.0_pReal)
|
||||
|
||||
call pass_init()
|
||||
|
||||
end subroutine damage_init
|
||||
|
@ -119,8 +113,7 @@ module function homogenization_K_phi(ce) result(K)
|
|||
real(pReal), dimension(3,3) :: K
|
||||
|
||||
|
||||
K = phase_K_phi(1,ce) &
|
||||
* num_damage%charLength**2
|
||||
K = phase_K_phi(1,ce)
|
||||
|
||||
end function homogenization_K_phi
|
||||
|
||||
|
|
|
@ -5,7 +5,7 @@ submodule(phase) damage
|
|||
|
||||
type :: tDamageParameters
|
||||
real(pReal) :: mu = 0.0_pReal !< viscosity
|
||||
real(pReal), dimension(3,3) :: K = 0.0_pReal !< conductivity/diffusivity
|
||||
real(pReal), dimension(3,3) :: D = 0.0_pReal !< conductivity/diffusivity
|
||||
end type tDamageParameters
|
||||
|
||||
enum, bind(c); enumerator :: &
|
||||
|
@ -18,7 +18,7 @@ submodule(phase) damage
|
|||
|
||||
|
||||
type :: tDataContainer
|
||||
real(pReal), dimension(:), allocatable :: phi, d_phi_d_dot_phi
|
||||
real(pReal), dimension(:), allocatable :: phi
|
||||
end type tDataContainer
|
||||
|
||||
integer(kind(DAMAGE_UNDEFINED_ID)), dimension(:), allocatable :: &
|
||||
|
@ -97,7 +97,6 @@ module subroutine damage_init
|
|||
Nmembers = count(material_phaseID == ph)
|
||||
|
||||
allocate(current(ph)%phi(Nmembers),source=1.0_pReal)
|
||||
allocate(current(ph)%d_phi_d_dot_phi(Nmembers),source=0.0_pReal)
|
||||
|
||||
phase => phases%get(ph)
|
||||
sources => phase%get('damage',defaultVal=emptyList)
|
||||
|
@ -105,10 +104,10 @@ module subroutine damage_init
|
|||
if (sources%length == 1) then
|
||||
damage_active = .true.
|
||||
source => sources%get(1)
|
||||
param(ph)%mu = source%get_asFloat('mu',defaultVal=0.0_pReal) ! ToDo: make mandatory?
|
||||
param(ph)%K(1,1) = source%get_asFloat('K_11',defaultVal=0.0_pReal) ! ToDo: make mandatory?
|
||||
param(ph)%K(3,3) = source%get_asFloat('K_33',defaultVal=0.0_pReal) ! ToDo: depends on symmetry
|
||||
param(ph)%K = lattice_applyLatticeSymmetry33(param(ph)%K,phase_lattice(ph))
|
||||
param(ph)%mu = source%get_asFloat('mu')
|
||||
param(ph)%D(1,1) = source%get_asFloat('D_11')
|
||||
if (any(phase_lattice(ph) == ['hP','tI'])) param(ph)%D(3,3) = source%get_asFloat('D_33')
|
||||
param(ph)%D = lattice_applyLatticeSymmetry33(param(ph)%D,phase_lattice(ph))
|
||||
endif
|
||||
|
||||
enddo
|
||||
|
@ -385,9 +384,10 @@ module function phase_K_phi(co,ce) result(K)
|
|||
|
||||
integer, intent(in) :: co, ce
|
||||
real(pReal), dimension(3,3) :: K
|
||||
real(pReal), parameter :: l = 1.0_pReal
|
||||
|
||||
|
||||
K = crystallite_push33ToRef(co,ce,param(material_phaseID(co,ce))%K)
|
||||
K = crystallite_push33ToRef(co,ce,param(material_phaseID(co,ce))%D) \
|
||||
* l**2.0_pReal
|
||||
|
||||
end function phase_K_phi
|
||||
|
||||
|
|
Loading…
Reference in New Issue