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])
|
||||
|
||||
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 ------------------------------------------------------------------------------------
|
||||
|
||||
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 ---------------------------------------------------------------------------------
|
||||
|
||||
|
|
Loading…
Reference in New Issue