Merged branch development into development
This commit is contained in:
commit
b39915afe1
|
@ -1,126 +0,0 @@
|
||||||
! $Id$
|
|
||||||
! -*- f90 -*-
|
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
! Note: the syntax of this file is case sensitive.
|
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
! This file was auto-generated with f2py (version:2_5972).
|
|
||||||
! See http://cens.ioc.ee/projects/f2py2e/
|
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
! The auto-generated file is quite heavily corrected
|
|
||||||
! For modifying, notice the following hints:
|
|
||||||
! - if the dimension of an array depend on a array that is itself an input, use the C-Syntax: (1) becomes [0] etc.
|
|
||||||
! - be sure that the precision defined is integer, real*8, and complex*16
|
|
||||||
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
|
||||||
python module core ! in
|
|
||||||
interface ! in :core
|
|
||||||
|
|
||||||
module prec
|
|
||||||
subroutine prec_init
|
|
||||||
end subroutine prec_init
|
|
||||||
end module prec
|
|
||||||
|
|
||||||
module damask_interface ! in :damask_interface:DAMASK_spectral_interface.f90
|
|
||||||
subroutine DAMASK_interface_init(loadcaseParameterIn,geometryParameterIn) ! in :damask_interface:DAMASK_spectral_interface.f90
|
|
||||||
character(len=1024), intent(in) :: loadcaseParameterIn
|
|
||||||
character(len=1024), intent(in) :: geometryParameterIn
|
|
||||||
end subroutine DAMASK_interface_init
|
|
||||||
end module damask_interface
|
|
||||||
|
|
||||||
module io
|
|
||||||
subroutine IO_init
|
|
||||||
end subroutine IO_init
|
|
||||||
end module io
|
|
||||||
|
|
||||||
module numerics
|
|
||||||
subroutine numerics_init
|
|
||||||
end subroutine numerics_init
|
|
||||||
end module numerics
|
|
||||||
|
|
||||||
module debug
|
|
||||||
subroutine debug_init
|
|
||||||
end subroutine debug_init
|
|
||||||
end module debug
|
|
||||||
|
|
||||||
module math ! in :math:math.f90
|
|
||||||
subroutine math_init
|
|
||||||
end subroutine math_init
|
|
||||||
|
|
||||||
function math_tensorAvg(field) ! in :math:math.f90
|
|
||||||
! input variables
|
|
||||||
real*8 dimension(:,:,:,:,:), intent(in), :: field
|
|
||||||
! function definition
|
|
||||||
real*8 dimension(3,3), :: math_tensorAvg
|
|
||||||
end function math_tensorAvg
|
|
||||||
|
|
||||||
end module math
|
|
||||||
|
|
||||||
module fesolving
|
|
||||||
subroutine FE_init
|
|
||||||
end subroutine FE_init
|
|
||||||
end module fesolving
|
|
||||||
|
|
||||||
module mesh ! in :mesh:mesh.f90
|
|
||||||
subroutine mesh_init(ip,element)
|
|
||||||
integer, parameter :: ip = 1
|
|
||||||
integer, parameter :: element = 1
|
|
||||||
end subroutine mesh_init
|
|
||||||
|
|
||||||
function mesh_nodesAroundCentres(gDim,Favg,centres) ! in :mesh:mesh.f90
|
|
||||||
real*8, dimension(:,:,:,:), intent(in) :: centres
|
|
||||||
real*8, dimension(3), intent(in) :: gDim
|
|
||||||
real*8, dimension(3,3), intent(in) :: Favg
|
|
||||||
real*8, dimension(3,size(centres,2)+1,size(centres,3)+1,size(centres,4)+1), depend(centres) :: mesh_nodesAroundCentres
|
|
||||||
real*8, dimension(3,size(centres,2)+1,size(centres,3)+1,size(centres,4)+1), depend(centres) :: wrappedCentres
|
|
||||||
end function mesh_nodesAroundCentres
|
|
||||||
|
|
||||||
function mesh_deformedCoordsFFT(gDim,F,FavgIn,scalingIn) ! in :mesh:mesh.f90
|
|
||||||
real*8, dimension(:,:,:,:,:), intent(in) :: F
|
|
||||||
real*8, dimension(3), intent(in) :: gDim
|
|
||||||
real*8, dimension(3,3), intent(in), optional :: FavgIn = -1.0
|
|
||||||
real*8, dimension(3), intent(in), optional :: scalingIn = -1.0
|
|
||||||
real*8, dimension(3,size(F,3),size(F,4),size(F,5)), depend(F) :: mesh_deformedCoordsFFT
|
|
||||||
end function mesh_deformedCoordsFFT
|
|
||||||
|
|
||||||
function mesh_volumeMismatch(gDim,F,nodes) ! in :mesh:mesh.f90
|
|
||||||
real*8, dimension(:,:,:,:,:), intent(in) :: F
|
|
||||||
real*8, dimension(:,:,:,:), intent(in) :: nodes
|
|
||||||
real*8, dimension(3), intent(in) :: gDim
|
|
||||||
real*8, dimension(size(F,3),size(F,4),size(F,5)), depend(F) :: mesh_volumeMismatch
|
|
||||||
end function mesh_volumeMismatch
|
|
||||||
|
|
||||||
function mesh_shapeMismatch(gDim,F,nodes,centres) ! in :mesh:mesh.f90
|
|
||||||
real*8, dimension(:,:,:,:,:), intent(in) :: F
|
|
||||||
real*8, dimension(:,:,:,:), intent(in) :: nodes
|
|
||||||
real*8, dimension(:,:,:,:), intent(in) :: centres
|
|
||||||
real*8, dimension(3), intent(in) :: gDim
|
|
||||||
real*8, dimension(size(F,3),size(F,4),size(F,5)), depend(F) :: mesh_shapeMismatch
|
|
||||||
end function mesh_shapeMismatch
|
|
||||||
|
|
||||||
function mesh_init_postprocessing(filepath) ! in :mesh:mesh.f90
|
|
||||||
character(len=*), intent(in) :: filepath
|
|
||||||
end function mesh_init_postprocessing
|
|
||||||
|
|
||||||
function mesh_build_cellnodes(nodes,Ncellnodes) ! in :mesh:mesh.f90
|
|
||||||
integer, intent(in) :: Ncellnodes
|
|
||||||
real*8, dimension(3,:), intent(in) :: nodes
|
|
||||||
real*8, dimension(3,Ncellnodes), depend(Ncellnodes) :: mesh_build_cellnodes
|
|
||||||
end function mesh_build_cellnodes
|
|
||||||
|
|
||||||
function mesh_get_Ncellnodes() ! in :mesh:mesh.f90
|
|
||||||
integer :: mesh_get_Ncellnodes
|
|
||||||
end function mesh_get_Ncellnodes
|
|
||||||
|
|
||||||
function mesh_get_unitlength() ! in :mesh:mesh.f90
|
|
||||||
real*8 :: mesh_get_unitlength
|
|
||||||
end function mesh_get_unitlength
|
|
||||||
|
|
||||||
function mesh_get_nodeAtIP(elemtypeFE,ip) ! in :mesh:mesh.f90
|
|
||||||
character(len=*), intent(in) :: elemtypeFE
|
|
||||||
integer, intent(in) :: ip
|
|
||||||
integer :: mesh_get_nodeAtIP
|
|
||||||
end function mesh_get_nodeAtIP
|
|
||||||
|
|
||||||
end module mesh
|
|
||||||
end interface
|
|
||||||
end python module core
|
|
||||||
|
|
|
@ -0,0 +1,94 @@
|
||||||
|
[Ni_nonlocal]
|
||||||
|
|
||||||
|
elasticity hooke
|
||||||
|
plasticity nonlocal
|
||||||
|
/nonlocal/
|
||||||
|
|
||||||
|
(output) rho
|
||||||
|
(output) rho_sgl_mobile
|
||||||
|
(output) rho_sgl_immobile
|
||||||
|
(output) rho_sgl_edge_pos
|
||||||
|
(output) rho_sgl_edge_neg
|
||||||
|
(output) rho_sgl_screw_pos
|
||||||
|
(output) rho_sgl_screw_neg
|
||||||
|
(output) rho_dip_edge
|
||||||
|
(output) rho_dip_screw
|
||||||
|
(output) rho_forest
|
||||||
|
(output) excess_rho_edge
|
||||||
|
(output) excess_rho_screw
|
||||||
|
(output) accumulatedshear
|
||||||
|
(output) shearrate
|
||||||
|
(output) resolvedstress
|
||||||
|
(output) resistance
|
||||||
|
(output) velocity_edge_pos
|
||||||
|
(output) rho_dot_gen
|
||||||
|
(output) rho_dot_sgl2dip_edge
|
||||||
|
(output) rho_dot_sgl2dip_screw
|
||||||
|
(output) rho_dot_ann_ath
|
||||||
|
(output) rho_dot_ann_the_edge
|
||||||
|
(output) rho_dot_ann_the_screw
|
||||||
|
(output) rho_dot_edgejogs
|
||||||
|
(output) rho_dot_flux_edge
|
||||||
|
(output) rho_dot_flux_screw
|
||||||
|
(output) slipdirection.x
|
||||||
|
(output) slipdirection.y
|
||||||
|
(output) slipdirection.z
|
||||||
|
(output) slipnormal.x
|
||||||
|
(output) slipnormal.y
|
||||||
|
(output) slipnormal.z
|
||||||
|
(output) fluxdensity_edge_pos.x
|
||||||
|
(output) fluxdensity_edge_pos.y
|
||||||
|
(output) fluxdensity_edge_pos.z
|
||||||
|
(output) fluxdensity_edge_neg.x
|
||||||
|
(output) fluxdensity_edge_neg.y
|
||||||
|
(output) fluxdensity_edge_neg.z
|
||||||
|
(output) fluxdensity_screw_pos.x
|
||||||
|
(output) fluxdensity_screw_pos.y
|
||||||
|
(output) fluxdensity_screw_pos.z
|
||||||
|
(output) fluxdensity_screw_neg.x
|
||||||
|
(output) fluxdensity_screw_neg.y
|
||||||
|
(output) fluxdensity_screw_neg.z
|
||||||
|
|
||||||
|
lattice_structure fcc
|
||||||
|
Nslip 12 # number of slip systems per family
|
||||||
|
c11 246.5e9
|
||||||
|
c12 147.3e9
|
||||||
|
c44 124.7e9
|
||||||
|
burgers 2.48e-10 0 0 0 # Burgers vector in m
|
||||||
|
rhoSglEdgePos0 6e10 # Initial positive edge single dislocation density in m/m**3
|
||||||
|
rhoSglEdgeNeg0 6e10 # Initial negative edge single dislocation density in m/m**3
|
||||||
|
rhoSglScrewPos0 6e10 # Initial positive screw single dislocation density in m/m**3
|
||||||
|
rhoSglScrewNeg0 6e10 # Initial negative screw single dislocation density in m/m**3
|
||||||
|
rhoDipEdge0 0 # Initial edge dipole dislocation density in m/m**3
|
||||||
|
rhoDipScrew0 0 # Initial screw dipole dislocation density in m/m**3
|
||||||
|
rhoSglScatter 0
|
||||||
|
minimumDipoleHeightEdge 2.6e-9 # 3.0e-9 # minimum distance for stable edge dipoles in m
|
||||||
|
minimumDipoleHeightScrew 12.0e-9 # 50e-9 # minimum distance for stable screw dipoles in m
|
||||||
|
lambda0 45 # 33 # prefactor for mean free path
|
||||||
|
edgeMultiplication 0.1
|
||||||
|
randomMultiplication 0
|
||||||
|
atomicVolume 1.2e-29
|
||||||
|
selfdiffusionPrefactor 1.9e-4 # Gottstein p.168 # prefactor for self-diffusion coefficient
|
||||||
|
selfdiffusionEnergy 5.1e-19 # Gottstein p.168 # activation energy self-diffusion
|
||||||
|
solidSolutionEnergy 1.8e-19 # activation energy of solid solution particles in J
|
||||||
|
solidSolutionConcentration 5e-7 # 1e-7
|
||||||
|
solidSolutionSize 1.0
|
||||||
|
peierlsStressEdge 1e5 # Peierls stress for edges in Pa (per slip family)
|
||||||
|
peierlsStressScrew 1e5 # Peierls stress for screws in Pa (per slip family)
|
||||||
|
doublekinkWidth 10 # width of double kinks in multiples of burgers vector length b
|
||||||
|
viscosity 1e-3 # viscosity for dislocation glide in Pa s
|
||||||
|
p 1 # exponent for thermal barrier profile
|
||||||
|
q 1 # exponent for thermal barrier profile
|
||||||
|
attackFrequency 50e9 # attack frequency in Hz
|
||||||
|
surfaceTransmissivity 1.0 # transmissivity of free surfaces for dislocation flux
|
||||||
|
grainBoundaryTransmissivity 0.0
|
||||||
|
aTol_rho 1e100 # absolute tolerance for dislocation density in m/m**3
|
||||||
|
aTol_shear 1e10 # absolute tolerance for dislocation density in m/m**3
|
||||||
|
significantRho 1e8 # dislocation density considered relevant in m/m**3
|
||||||
|
significantN 1
|
||||||
|
shortRangeStressCorrection 0
|
||||||
|
CFLfactor 1.1 # safety factor for CFL flux check (numerical parameter)
|
||||||
|
r 1
|
||||||
|
interaction_SlipSlip 0 0 0.625 0.07 0.137 0.122 # Dislocation interaction coefficient
|
||||||
|
linetension 0.8
|
||||||
|
edgejog 0.01 # 0.2
|
|
@ -11,7 +11,7 @@ scriptName = os.path.splitext(os.path.basename(__file__))[0]
|
||||||
scriptID = ' '.join([scriptName,damask.version])
|
scriptID = ' '.join([scriptName,damask.version])
|
||||||
|
|
||||||
def mostFrequent(arr):
|
def mostFrequent(arr):
|
||||||
return np.argmax(np.bincount(arr))
|
return np.argmax(np.bincount(arr.astype('int')))
|
||||||
|
|
||||||
|
|
||||||
#--------------------------------------------------------------------------------------------------
|
#--------------------------------------------------------------------------------------------------
|
||||||
|
@ -72,7 +72,13 @@ for name in filenames:
|
||||||
|
|
||||||
# --- do work ------------------------------------------------------------------------------------
|
# --- do work ------------------------------------------------------------------------------------
|
||||||
|
|
||||||
microstructure = ndimage.filters.generic_filter(microstructure,mostFrequent,size=(options.stencil,)*3)
|
microstructure = ndimage.filters.generic_filter(microstructure,mostFrequent,size=(options.stencil,)*3).astype('int_')
|
||||||
|
newInfo = {'microstructures': microstructure.max()}
|
||||||
|
|
||||||
|
# --- report ---------------------------------------------------------------------------------------
|
||||||
|
if ( newInfo['microstructures'] != info['microstructures']):
|
||||||
|
damask.util.croak('--> microstructures: %i'%newInfo['microstructures'])
|
||||||
|
info['microstructures'] == newInfo['microstructures']
|
||||||
|
|
||||||
# --- write header ---------------------------------------------------------------------------------
|
# --- write header ---------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue