Merge remote-tracking branch 'origin/Marc-use-statev-2' into development
This commit is contained in:
commit
3352a5a199
2
PRIVATE
2
PRIVATE
|
@ -1 +1 @@
|
||||||
Subproject commit a13f94880aeae06c14bde50c15f00d7f076d23ad
|
Subproject commit 1b82ac39703fdea70962aea47a0381d50bd1d44e
|
Binary file not shown.
|
@ -130,7 +130,7 @@ def geometry():
|
||||||
|
|
||||||
|
|
||||||
#-------------------------------------------------------------------------------------------------
|
#-------------------------------------------------------------------------------------------------
|
||||||
def initial_conditions(homogenization,microstructures):
|
def initial_conditions(microstructures):
|
||||||
elements = []
|
elements = []
|
||||||
element = 0
|
element = 0
|
||||||
for id in microstructures:
|
for id in microstructures:
|
||||||
|
@ -148,13 +148,6 @@ def initial_conditions(homogenization,microstructures):
|
||||||
"*icond_dof_value var 300",
|
"*icond_dof_value var 300",
|
||||||
"*add_icond_elements",
|
"*add_icond_elements",
|
||||||
"all_existing",
|
"all_existing",
|
||||||
"*new_icond",
|
|
||||||
"*icond_name _homogenization",
|
|
||||||
"*icond_type state_variable",
|
|
||||||
"*icond_param_value state_var_id 2",
|
|
||||||
"*icond_dof_value var %i"%homogenization,
|
|
||||||
"*add_icond_elements",
|
|
||||||
"all_existing",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
for grain,elementList in enumerate(elements):
|
for grain,elementList in enumerate(elements):
|
||||||
|
@ -162,7 +155,7 @@ def initial_conditions(homogenization,microstructures):
|
||||||
"*new_icond",
|
"*new_icond",
|
||||||
"*icond_name microstructure_%i"%(grain+1),
|
"*icond_name microstructure_%i"%(grain+1),
|
||||||
"*icond_type state_variable",
|
"*icond_type state_variable",
|
||||||
"*icond_param_value state_var_id 3",
|
"*icond_param_value state_var_id 2",
|
||||||
"*icond_dof_value var %i"%(grain+1),
|
"*icond_dof_value var %i"%(grain+1),
|
||||||
"*add_icond_elements",
|
"*add_icond_elements",
|
||||||
elementList,
|
elementList,
|
||||||
|
@ -211,7 +204,7 @@ for name in filenames:
|
||||||
mesh(geom.grid,geom.size),
|
mesh(geom.grid,geom.size),
|
||||||
material(),
|
material(),
|
||||||
geometry(),
|
geometry(),
|
||||||
initial_conditions(geom.homogenization,microstructure),
|
initial_conditions(microstructure),
|
||||||
'*identify_sets',
|
'*identify_sets',
|
||||||
'*show_model',
|
'*show_model',
|
||||||
'*redraw',
|
'*redraw',
|
||||||
|
|
24
src/IO.f90
24
src/IO.f90
|
@ -484,8 +484,6 @@ subroutine IO_error(error_ID,el,ip,g,instance,ext_msg)
|
||||||
msg = 'too many systems requested'
|
msg = 'too many systems requested'
|
||||||
case (146)
|
case (146)
|
||||||
msg = 'number of values does not match'
|
msg = 'number of values does not match'
|
||||||
case (147)
|
|
||||||
msg = 'not supported anymore'
|
|
||||||
case (148)
|
case (148)
|
||||||
msg = 'Nconstituents mismatch between homogenization and microstructure'
|
msg = 'Nconstituents mismatch between homogenization and microstructure'
|
||||||
|
|
||||||
|
@ -497,22 +495,10 @@ subroutine IO_error(error_ID,el,ip,g,instance,ext_msg)
|
||||||
msg = 'microstructure has no constituents'
|
msg = 'microstructure has no constituents'
|
||||||
case (153)
|
case (153)
|
||||||
msg = 'sum of phase fractions differs from 1'
|
msg = 'sum of phase fractions differs from 1'
|
||||||
case (154)
|
|
||||||
msg = 'homogenization index out of bounds'
|
|
||||||
case (155)
|
case (155)
|
||||||
msg = 'microstructure index out of bounds'
|
msg = 'microstructure index out of bounds'
|
||||||
case (157)
|
|
||||||
msg = 'invalid texture transformation specified'
|
|
||||||
case (160)
|
|
||||||
msg = 'no entries in config part'
|
|
||||||
case (161)
|
|
||||||
msg = 'config part found twice'
|
|
||||||
case (165)
|
|
||||||
msg = 'homogenization configuration'
|
|
||||||
case (170)
|
|
||||||
msg = 'no homogenization specified via State Variable 2'
|
|
||||||
case (180)
|
case (180)
|
||||||
msg = 'no microstructure specified via State Variable 3'
|
msg = 'missing/invalid microstructure definition via State Variable 2'
|
||||||
case (190)
|
case (190)
|
||||||
msg = 'unknown element type:'
|
msg = 'unknown element type:'
|
||||||
case (191)
|
case (191)
|
||||||
|
@ -525,8 +511,6 @@ subroutine IO_error(error_ID,el,ip,g,instance,ext_msg)
|
||||||
case (201)
|
case (201)
|
||||||
msg = 'unknown plasticity specified:'
|
msg = 'unknown plasticity specified:'
|
||||||
|
|
||||||
case (210)
|
|
||||||
msg = 'unknown material parameter:'
|
|
||||||
case (211)
|
case (211)
|
||||||
msg = 'material parameter out of bounds:'
|
msg = 'material parameter out of bounds:'
|
||||||
case (212)
|
case (212)
|
||||||
|
@ -534,8 +518,6 @@ subroutine IO_error(error_ID,el,ip,g,instance,ext_msg)
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! numerics error messages
|
! numerics error messages
|
||||||
case (300)
|
|
||||||
msg = 'unknown numerics parameter:'
|
|
||||||
case (301)
|
case (301)
|
||||||
msg = 'numerics parameter out of bounds:'
|
msg = 'numerics parameter out of bounds:'
|
||||||
|
|
||||||
|
@ -555,10 +537,6 @@ subroutine IO_error(error_ID,el,ip,g,instance,ext_msg)
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! user errors
|
! user errors
|
||||||
case (600)
|
|
||||||
msg = 'Ping-Pong not possible when using non-DAMASK elements'
|
|
||||||
case (601)
|
|
||||||
msg = 'Ping-Pong needed when using non-local plasticity'
|
|
||||||
case (602)
|
case (602)
|
||||||
msg = 'invalid selection for debug'
|
msg = 'invalid selection for debug'
|
||||||
|
|
||||||
|
|
|
@ -706,7 +706,7 @@ subroutine inputRead_microstructure(microstructureAt,&
|
||||||
k = merge(2,1,initialcondTableStyle == 2)
|
k = merge(2,1,initialcondTableStyle == 2)
|
||||||
chunkPos = IO_stringPos(fileContent(l+k))
|
chunkPos = IO_stringPos(fileContent(l+k))
|
||||||
sv = IO_IntValue(fileContent(l+k),chunkPos,1) ! figure state variable index
|
sv = IO_IntValue(fileContent(l+k),chunkPos,1) ! figure state variable index
|
||||||
if( (sv == 2) .or. (sv == 3) ) then ! only state vars 2 and 3 of interest
|
if( (sv == 2)) then ! state var 2 is used to identify material from material.yaml
|
||||||
m = 1
|
m = 1
|
||||||
chunkPos = IO_stringPos(fileContent(l+k+m))
|
chunkPos = IO_stringPos(fileContent(l+k+m))
|
||||||
do while (scan(IO_stringValue(fileContent(l+k+m),chunkPos,1),'+-',back=.true.)>1) ! is noEfloat value?
|
do while (scan(IO_stringValue(fileContent(l+k+m),chunkPos,1),'+-',back=.true.)>1) ! is noEfloat value?
|
||||||
|
@ -715,7 +715,7 @@ subroutine inputRead_microstructure(microstructureAt,&
|
||||||
contInts = continuousIntValues(fileContent(l+k+m+1:),nElem,nameElemSet,mapElemSet,size(nameElemSet)) ! get affected elements
|
contInts = continuousIntValues(fileContent(l+k+m+1:),nElem,nameElemSet,mapElemSet,size(nameElemSet)) ! get affected elements
|
||||||
do i = 1,contInts(1)
|
do i = 1,contInts(1)
|
||||||
e = mesh_FEM2DAMASK_elem(contInts(1+i))
|
e = mesh_FEM2DAMASK_elem(contInts(1+i))
|
||||||
if (sv == 3) microstructureAt(e) = myVal
|
microstructureAt(e) = myVal
|
||||||
enddo
|
enddo
|
||||||
if (initialcondTableStyle == 0) m = m + 1
|
if (initialcondTableStyle == 0) m = m + 1
|
||||||
enddo
|
enddo
|
||||||
|
@ -723,6 +723,8 @@ subroutine inputRead_microstructure(microstructureAt,&
|
||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
|
if(any(microstructureAt < 1)) call IO_error(190)
|
||||||
|
|
||||||
end subroutine inputRead_microstructure
|
end subroutine inputRead_microstructure
|
||||||
|
|
||||||
|
|
||||||
|
@ -1061,7 +1063,7 @@ function IPneighborhood(elem,connectivity)
|
||||||
integer, dimension(size(connectivity,1)) :: myConnectivity
|
integer, dimension(size(connectivity,1)) :: myConnectivity
|
||||||
integer, dimension(size(elem%cellFace,1)) :: face_unordered
|
integer, dimension(size(elem%cellFace,1)) :: face_unordered
|
||||||
integer :: e,i,f,n,c,s
|
integer :: e,i,f,n,c,s
|
||||||
|
|
||||||
c = 0
|
c = 0
|
||||||
do e = 1, size(connectivity,3)
|
do e = 1, size(connectivity,3)
|
||||||
do i = 1, size(connectivity,2)
|
do i = 1, size(connectivity,2)
|
||||||
|
@ -1078,9 +1080,9 @@ function IPneighborhood(elem,connectivity)
|
||||||
enddo; enddo
|
enddo; enddo
|
||||||
|
|
||||||
!--------------------------------------------------------------------------------------------------
|
!--------------------------------------------------------------------------------------------------
|
||||||
! sort face definitions
|
! sort face definitions
|
||||||
call math_sort(face,sortDim=1)
|
call math_sort(face,sortDim=1)
|
||||||
do c=2, size(face,1)-4
|
do c=2, size(face,1)-4
|
||||||
s = 1
|
s = 1
|
||||||
e = 1
|
e = 1
|
||||||
do while (e < size(face,2))
|
do while (e < size(face,2))
|
||||||
|
@ -1091,8 +1093,8 @@ function IPneighborhood(elem,connectivity)
|
||||||
endif
|
endif
|
||||||
enddo
|
enddo
|
||||||
enddo
|
enddo
|
||||||
|
|
||||||
IPneighborhood = 0
|
IPneighborhood = 0
|
||||||
do c=1, size(face,2) - 1
|
do c=1, size(face,2) - 1
|
||||||
if(all(face(:n-1,c) == face(:n-1,c+1))) then
|
if(all(face(:n-1,c) == face(:n-1,c+1))) then
|
||||||
IPneighborhood(:,face(n+2,c+1),face(n+1,c+1),face(n+0,c+1)) = face(n:n+3,c+0)
|
IPneighborhood(:,face(n+2,c+1),face(n+1,c+1),face(n+0,c+1)) = face(n:n+3,c+0)
|
||||||
|
|
Loading…
Reference in New Issue