integrated subroutine for regridding into mesh.f90 and made it available for python
This commit is contained in:
parent
d638c563af
commit
f20cecd421
|
@ -60,8 +60,8 @@ subroutine DAMASK_interface_init(loadcaseParameterIn,geometryParameterIn)
|
||||||
character(len=1024), intent(in) :: geometryParameterIn
|
character(len=1024), intent(in) :: geometryParameterIn
|
||||||
integer, dimension(8) :: dateAndTime ! type default integer
|
integer, dimension(8) :: dateAndTime ! type default integer
|
||||||
|
|
||||||
geometryParameter = loadcaseParameterIn
|
geometryParameter = geometryParameterIn
|
||||||
loadcaseParameter = geometryParameterIn
|
loadcaseParameter = loadcaseParameterIn
|
||||||
|
|
||||||
call date_and_time(values = dateAndTime)
|
call date_and_time(values = dateAndTime)
|
||||||
|
|
||||||
|
|
|
@ -14,11 +14,8 @@
|
||||||
python module core ! in
|
python module core ! in
|
||||||
interface ! in :core
|
interface ! in :core
|
||||||
|
|
||||||
module damask_interface ! in :damask_interface:DAMASK_python_interface.f90
|
|
||||||
|
|
||||||
function getSolverWorkingDirectoryName()
|
module damask_interface ! in :damask_interface:DAMASK_python_interface.f90
|
||||||
character(len=1024) :: getSolverWorkingDirectoryName()
|
|
||||||
end function getSolverWorkingDirectoryName
|
|
||||||
|
|
||||||
subroutine damask_interface_init(loadcaseParameterIn,geometryParameterIn) ! in :damask_interface:DAMASK_python_interface.f90
|
subroutine damask_interface_init(loadcaseParameterIn,geometryParameterIn) ! in :damask_interface:DAMASK_python_interface.f90
|
||||||
character(len=1024), intent(in) :: loadcaseParameterIn
|
character(len=1024), intent(in) :: loadcaseParameterIn
|
||||||
|
@ -27,6 +24,7 @@ python module core ! in
|
||||||
|
|
||||||
end module damask_interface
|
end module damask_interface
|
||||||
|
|
||||||
|
|
||||||
module math ! in :math:math.f90
|
module math ! in :math:math.f90
|
||||||
|
|
||||||
subroutine volume_compare(res,geomdim,defgrad,nodes,volume_mismatch) ! in :math:math.f90
|
subroutine volume_compare(res,geomdim,defgrad,nodes,volume_mismatch) ! in :math:math.f90
|
||||||
|
@ -174,6 +172,19 @@ python module core ! in
|
||||||
integer, dimension(res_new[0]*res_new[1]*res_new[2]), intent(out),depend(res_new[0],res_new[1],res_new[2]) :: result_indices
|
integer, dimension(res_new[0]*res_new[1]*res_new[2]), intent(out),depend(res_new[0],res_new[1],res_new[2]) :: result_indices
|
||||||
end subroutine math_nearestNeighborSearch
|
end subroutine math_nearestNeighborSearch
|
||||||
end module math
|
end module math
|
||||||
|
|
||||||
|
|
||||||
|
module mesh ! in :mesh:mesh.f90
|
||||||
|
|
||||||
|
subroutine mesh_regrid(res,resNew) ! in :mesh:mesh.f90
|
||||||
|
integer, dimension(3), intent(in) :: res
|
||||||
|
integer, dimension(3), intent(in,out) :: resNew
|
||||||
|
real*8, dimension(res[0],res[1],res[2],3,3), depend(res[0],res[1],res[2]) :: F
|
||||||
|
|
||||||
|
end subroutine mesh_regrid
|
||||||
|
|
||||||
|
end module mesh
|
||||||
|
|
||||||
end interface
|
end interface
|
||||||
end python module core
|
end python module core
|
||||||
|
|
||||||
|
|
|
@ -260,7 +260,8 @@
|
||||||
mesh_FEasCP, &
|
mesh_FEasCP, &
|
||||||
mesh_build_subNodeCoords, &
|
mesh_build_subNodeCoords, &
|
||||||
mesh_build_ipVolumes, &
|
mesh_build_ipVolumes, &
|
||||||
mesh_build_ipCoordinates
|
mesh_build_ipCoordinates, &
|
||||||
|
mesh_regrid
|
||||||
private :: FE_mapElemtype, &
|
private :: FE_mapElemtype, &
|
||||||
mesh_faceMatch, &
|
mesh_faceMatch, &
|
||||||
mesh_build_FEdata, &
|
mesh_build_FEdata, &
|
||||||
|
@ -3627,4 +3628,29 @@ deallocate(mesh_HomogMicro)
|
||||||
|
|
||||||
end subroutine mesh_tell_statistics
|
end subroutine mesh_tell_statistics
|
||||||
|
|
||||||
|
subroutine mesh_regrid(res,resNew) !use new_res=0.0 for automatic determination of new grid
|
||||||
|
use prec, only pInt, pReal
|
||||||
|
use DAMASK_interface, only : getSolverJobName
|
||||||
|
use IO, only : IO_read_jobBinaryFile
|
||||||
|
|
||||||
|
integer(pInt), dimension(3), intent(in) :: res
|
||||||
|
integer(pInt), dimension(3), intent(inout) :: resNew
|
||||||
|
real(pReal), dimension(res(1),res(2),res(3),3,3) :: F
|
||||||
|
|
||||||
|
real(pReal), dimension(:,:,:,:,:), allocatable :: crystallite_F0, &
|
||||||
|
CPFEM_dcsdE, &
|
||||||
|
crystallite_Fp0, &
|
||||||
|
crystallite_Lp0
|
||||||
|
real(pReal), dimension (:,:,:,:,:,:,:), allocatable :: crystallite_dPdF0
|
||||||
|
real(pReal), dimension (:,:,:,:), allocatable :: crystallite_Tstar0_v, &
|
||||||
|
convergedStateConst
|
||||||
|
integer(pInt), dimension (:,:), allocatable :: convergedSizeConst
|
||||||
|
|
||||||
|
call IO_read_jobBinaryFile(777,'convergedSpectralDefgrad',trim(getSolverJobName()),size(F))
|
||||||
|
read (777,rec=1) F
|
||||||
|
close (777)
|
||||||
|
|
||||||
|
end subroutine mesh_regrid
|
||||||
|
|
||||||
|
|
||||||
end module mesh
|
end module mesh
|
||||||
|
|
|
@ -139,6 +139,8 @@ execute = { \
|
||||||
' %s'%(os.path.join(codeDir,'numerics.f90'))+\
|
' %s'%(os.path.join(codeDir,'numerics.f90'))+\
|
||||||
' %s'%(os.path.join(codeDir,'debug.f90'))+\
|
' %s'%(os.path.join(codeDir,'debug.f90'))+\
|
||||||
' %s'%(os.path.join(codeDir,'math.f90'))+\
|
' %s'%(os.path.join(codeDir,'math.f90'))+\
|
||||||
|
' %s'%(os.path.join(codeDir,'FEsolving.f90'))+\
|
||||||
|
' %s'%(os.path.join(codeDir,'mesh.f90'))+\
|
||||||
' %s'%(os.path.join(codeDir,'DAMASK_quit.f90'))+\
|
' %s'%(os.path.join(codeDir,'DAMASK_quit.f90'))+\
|
||||||
' -L%s/lib -lfftw3'%(damaskEnv.pathInfo['fftw'])+\
|
' -L%s/lib -lfftw3'%(damaskEnv.pathInfo['fftw'])+\
|
||||||
' %s'%lib_lapack,
|
' %s'%lib_lapack,
|
||||||
|
|
Loading…
Reference in New Issue