diff --git a/code/damask.core.pyf b/code/damask.core.pyf deleted file mode 100644 index e6396ee1d..000000000 --- a/code/damask.core.pyf +++ /dev/null @@ -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 - diff --git a/examples/ConfigFiles/Phase_Nonlocal_Nickel.config b/examples/ConfigFiles/Phase_Nonlocal_Nickel.config new file mode 100755 index 000000000..4d4c2d1df --- /dev/null +++ b/examples/ConfigFiles/Phase_Nonlocal_Nickel.config @@ -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 diff --git a/processing/pre/geom_clean.py b/processing/pre/geom_clean.py index c61cf5ef9..408178c32 100755 --- a/processing/pre/geom_clean.py +++ b/processing/pre/geom_clean.py @@ -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 ---------------------------------------------------------------------------------