better readable
This commit is contained in:
parent
fc15616ef7
commit
ab5177e0be
|
@ -1700,43 +1700,40 @@ module subroutine plastic_nonlocal_updateCompatibility(orientation,i,e)
|
||||||
my_compatibility = 0.0_pReal
|
my_compatibility = 0.0_pReal
|
||||||
forall(s1 = 1:ns) my_compatibility(:,s1,s1,:) = 1.0_pReal
|
forall(s1 = 1:ns) my_compatibility(:,s1,s1,:) = 1.0_pReal
|
||||||
|
|
||||||
!*** Loop thrugh neighbors and check whether there is any compatibility.
|
|
||||||
|
|
||||||
neighbors: do n = 1,nIPneighbors
|
neighbors: do n = 1,nIPneighbors
|
||||||
neighbor_e = IPneighborhood(1,n,i,e)
|
neighbor_e = IPneighborhood(1,n,i,e)
|
||||||
neighbor_i = IPneighborhood(2,n,i,e)
|
neighbor_i = IPneighborhood(2,n,i,e)
|
||||||
|
|
||||||
|
|
||||||
!* FREE SURFACE
|
|
||||||
!* Set surface transmissivity to the value specified in the material.config
|
|
||||||
if (neighbor_e <= 0 .or. neighbor_i <= 0) then
|
|
||||||
forall(s1 = 1:ns) my_compatibility(:,s1,s1,n) = sqrt(prm%surfaceTransmissivity)
|
|
||||||
cycle
|
|
||||||
endif
|
|
||||||
|
|
||||||
neighbor_phase = material_phaseAt(1,neighbor_e)
|
neighbor_phase = material_phaseAt(1,neighbor_e)
|
||||||
|
|
||||||
|
if (neighbor_e <= 0 .or. neighbor_i <= 0) then
|
||||||
|
!* FREE SURFACE
|
||||||
|
!* Set surface transmissivity to the value specified in the material.config
|
||||||
|
forall(s1 = 1:ns) my_compatibility(:,s1,s1,n) = sqrt(prm%surfaceTransmissivity)
|
||||||
|
cycle neighbors
|
||||||
|
endif
|
||||||
|
|
||||||
|
if (neighbor_phase /= ph) then
|
||||||
!* PHASE BOUNDARY
|
!* PHASE BOUNDARY
|
||||||
!* If we encounter a different nonlocal phase at the neighbor,
|
!* If we encounter a different nonlocal phase at the neighbor,
|
||||||
!* we consider this to be a real "physical" phase boundary, so completely incompatible.
|
!* we consider this to be a real "physical" phase boundary, so completely incompatible.
|
||||||
!* If one of the two phases has a local plasticity law,
|
!* If one of the two phases has a local plasticity law,
|
||||||
!* we do not consider this to be a phase boundary, so completely compatible.
|
!* we do not consider this to be a phase boundary, so completely compatible.
|
||||||
if (neighbor_phase /= ph) then
|
if (.not. phase_localPlasticity(neighbor_phase) .and. .not. phase_localPlasticity(ph)) &
|
||||||
if (.not. phase_localPlasticity(neighbor_phase) .and. .not. phase_localPlasticity(ph))&
|
|
||||||
forall(s1 = 1:ns) my_compatibility(:,s1,s1,n) = 0.0_pReal
|
forall(s1 = 1:ns) my_compatibility(:,s1,s1,n) = 0.0_pReal
|
||||||
cycle
|
cycle neighbors
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
if (prm%grainboundaryTransmissivity >= 0.0_pReal) then
|
||||||
!* GRAIN BOUNDARY !
|
!* GRAIN BOUNDARY !
|
||||||
!* fixed transmissivity for adjacent ips with different texture (only if explicitly given in material.config)
|
!* fixed transmissivity for adjacent ips with different texture (only if explicitly given in material.config)
|
||||||
if (prm%grainboundaryTransmissivity >= 0.0_pReal) then
|
|
||||||
if (material_texture(1,i,e) /= material_texture(1,neighbor_i,neighbor_e)) then
|
if (material_texture(1,i,e) /= material_texture(1,neighbor_i,neighbor_e)) then
|
||||||
if (.not. phase_localPlasticity(neighbor_phase)) then
|
if (.not. phase_localPlasticity(neighbor_phase)) then
|
||||||
forall(s1 = 1:ns) my_compatibility(:,s1,s1,n) = sqrt(prm%grainboundaryTransmissivity)
|
forall(s1 = 1:ns) my_compatibility(:,s1,s1,n) = sqrt(prm%grainboundaryTransmissivity)
|
||||||
endif
|
endif
|
||||||
cycle
|
cycle neighbors
|
||||||
endif
|
endif
|
||||||
|
else
|
||||||
!* GRAIN BOUNDARY ?
|
!* GRAIN BOUNDARY ?
|
||||||
!* Compatibility defined by relative orientation of slip systems:
|
!* Compatibility defined by relative orientation of slip systems:
|
||||||
!* The my_compatibility value is defined as the product of the slip normal projection and the slip direction projection.
|
!* The my_compatibility value is defined as the product of the slip normal projection and the slip direction projection.
|
||||||
|
@ -1746,7 +1743,6 @@ module subroutine plastic_nonlocal_updateCompatibility(orientation,i,e)
|
||||||
!* the number of compatible slip systems is minimized with the sum of the original compatibility values exceeding one.
|
!* the number of compatible slip systems is minimized with the sum of the original compatibility values exceeding one.
|
||||||
!* Finally the smallest compatibility value is decreased until the sum is exactly equal to one.
|
!* Finally the smallest compatibility value is decreased until the sum is exactly equal to one.
|
||||||
!* All values below the threshold are set to zero.
|
!* All values below the threshold are set to zero.
|
||||||
else
|
|
||||||
mis = orientation(1,i,e)%misorientation(orientation(1,neighbor_i,neighbor_e))
|
mis = orientation(1,i,e)%misorientation(orientation(1,neighbor_i,neighbor_e))
|
||||||
mySlipSystems: do s1 = 1,ns
|
mySlipSystems: do s1 = 1,ns
|
||||||
neighborSlipSystems: do s2 = 1,ns
|
neighborSlipSystems: do s2 = 1,ns
|
||||||
|
|
Loading…
Reference in New Issue