simplified constitutive_init call
This commit is contained in:
parent
b4092966fe
commit
5c1889e6cd
|
@ -68,27 +68,27 @@ subroutine constitutive_init()
|
|||
case (constitutive_phenomenological_label)
|
||||
allocate(constitutive_state_old(g,i,e)%p(constitutive_phenomenological_sizeState(myInstance)))
|
||||
allocate(constitutive_state_new(g,i,e)%p(constitutive_phenomenological_sizeState(myInstance)))
|
||||
constitutive_state_new(g,i,e)%p = constitutive_phenomenological_stateInit(g,i,e)
|
||||
constitutive_state_old(g,i,e)%p = constitutive_phenomenological_stateInit(g,i,e)
|
||||
constitutive_sizeDotState(g,i,e) = constitutive_phenomenological_sizeDotState(myInstance)
|
||||
constitutive_sizeState(g,i,e) = constitutive_phenomenological_sizeState(myInstance)
|
||||
constitutive_sizePostResults(g,i,e) = constitutive_phenomenological_sizePostResults(myInstance)
|
||||
constitutive_state_new(g,i,e)%p = constitutive_phenomenological_stateInit(myInstance)
|
||||
constitutive_state_old(g,i,e)%p = constitutive_phenomenological_stateInit(myInstance)
|
||||
constitutive_sizeDotState(g,i,e) = constitutive_phenomenological_sizeDotState(myInstance)
|
||||
constitutive_sizeState(g,i,e) = constitutive_phenomenological_sizeState(myInstance)
|
||||
constitutive_sizePostResults(g,i,e) = constitutive_phenomenological_sizePostResults(myInstance)
|
||||
case (constitutive_j2_label)
|
||||
allocate(constitutive_state_old(g,i,e)%p(constitutive_j2_sizeState(myInstance)))
|
||||
allocate(constitutive_state_new(g,i,e)%p(constitutive_j2_sizeState(myInstance)))
|
||||
constitutive_state_new(g,i,e)%p = constitutive_j2_stateInit(g,i,e)
|
||||
constitutive_state_old(g,i,e)%p = constitutive_j2_stateInit(g,i,e)
|
||||
constitutive_sizeDotState(g,i,e) = constitutive_j2_sizeDotState(myInstance)
|
||||
constitutive_sizeState(g,i,e) = constitutive_j2_sizeState(myInstance)
|
||||
constitutive_sizePostResults(g,i,e) = constitutive_j2_sizePostResults(myInstance)
|
||||
constitutive_state_new(g,i,e)%p = constitutive_j2_stateInit(myInstance)
|
||||
constitutive_state_old(g,i,e)%p = constitutive_j2_stateInit(myInstance)
|
||||
constitutive_sizeDotState(g,i,e) = constitutive_j2_sizeDotState(myInstance)
|
||||
constitutive_sizeState(g,i,e) = constitutive_j2_sizeState(myInstance)
|
||||
constitutive_sizePostResults(g,i,e) = constitutive_j2_sizePostResults(myInstance)
|
||||
case (constitutive_dislobased_label)
|
||||
allocate(constitutive_state_old(g,i,e)%p(constitutive_dislobased_sizeState(myInstance)))
|
||||
allocate(constitutive_state_new(g,i,e)%p(constitutive_dislobased_sizeState(myInstance)))
|
||||
constitutive_state_new(g,i,e)%p = constitutive_dislobased_stateInit(g,i,e)
|
||||
constitutive_state_old(g,i,e)%p = constitutive_dislobased_stateInit(g,i,e)
|
||||
constitutive_sizeDotState(g,i,e) = constitutive_dislobased_sizeDotState(myInstance)
|
||||
constitutive_sizeState(g,i,e) = constitutive_dislobased_sizeState(myInstance)
|
||||
constitutive_sizePostResults(g,i,e) = constitutive_dislobased_sizePostResults(myInstance)
|
||||
constitutive_state_new(g,i,e)%p = constitutive_dislobased_stateInit(myInstance)
|
||||
constitutive_state_old(g,i,e)%p = constitutive_dislobased_stateInit(myInstance)
|
||||
constitutive_sizeDotState(g,i,e) = constitutive_dislobased_sizeDotState(myInstance)
|
||||
constitutive_sizeState(g,i,e) = constitutive_dislobased_sizeState(myInstance)
|
||||
constitutive_sizePostResults(g,i,e) = constitutive_dislobased_sizePostResults(myInstance)
|
||||
case default
|
||||
call IO_error(200,material_phase(g,i,e)) ! unknown constitution
|
||||
end select
|
||||
|
|
|
@ -309,22 +309,18 @@ subroutine constitutive_dislobased_init(file)
|
|||
end subroutine
|
||||
|
||||
|
||||
function constitutive_dislobased_stateInit(ipc,ip,el)
|
||||
function constitutive_dislobased_stateInit(myInstance)
|
||||
!*********************************************************************
|
||||
!* initial microstructural state *
|
||||
!*********************************************************************
|
||||
use prec, only: pReal,pInt
|
||||
use material, only: material_phase, phase_constitutionInstance
|
||||
implicit none
|
||||
|
||||
!* Definition of variables
|
||||
integer(pInt), intent(in) :: ipc,ip,el
|
||||
integer(pInt) matID
|
||||
real(pReal), dimension(constitutive_dislobased_Nslip(phase_constitutionInstance(material_phase(ipc,ip,el)))) :: &
|
||||
constitutive_dislobased_stateInit
|
||||
integer(pInt), intent(in) :: myInstance
|
||||
real(pReal), dimension(constitutive_dislobased_Nslip(myInstance)) :: constitutive_dislobased_stateInit
|
||||
|
||||
matID = phase_constitutionInstance(material_phase(ipc,ip,el))
|
||||
constitutive_dislobased_stateInit = constitutive_dislobased_rho0(matID)
|
||||
constitutive_dislobased_stateInit = constitutive_dislobased_rho0(myInstance)
|
||||
|
||||
return
|
||||
end function
|
||||
|
|
|
@ -80,7 +80,7 @@ subroutine constitutive_j2_init(file)
|
|||
allocate(constitutive_j2_sizeState(maxNinstance)) ; constitutive_j2_sizeState = 0_pInt
|
||||
allocate(constitutive_j2_sizePostResults(maxNinstance)); constitutive_j2_sizePostResults = 0_pInt
|
||||
allocate(constitutive_j2_output(maxval(phase_Noutput), &
|
||||
maxNinstance)) ; constitutive_j2_output = ''
|
||||
maxNinstance)) ; constitutive_j2_output = ''
|
||||
allocate(constitutive_j2_C11(maxNinstance)) ; constitutive_j2_C11 = 0.0_pReal
|
||||
allocate(constitutive_j2_C12(maxNinstance)) ; constitutive_j2_C12 = 0.0_pReal
|
||||
allocate(constitutive_j2_Cslip_66(6,6,maxNinstance)) ; constitutive_j2_Cslip_66 = 0.0_pReal
|
||||
|
@ -109,7 +109,7 @@ subroutine constitutive_j2_init(file)
|
|||
output = 0 ! reset output counter
|
||||
endif
|
||||
if (section > 0 .and. phase_constitution(section) == constitutive_j2_label) then ! one of my sections
|
||||
i = phase_constitutionInstance(section) ! which instance of my constitution is present phase
|
||||
i = phase_constitutionInstance(section) ! which instance of my constitution is present phase
|
||||
positions = IO_stringPos(line,maxNchunks)
|
||||
tag = IO_lc(IO_stringValue(line,positions,1)) ! extract key
|
||||
select case(tag)
|
||||
|
@ -179,22 +179,18 @@ subroutine constitutive_j2_init(file)
|
|||
end subroutine
|
||||
|
||||
|
||||
function constitutive_j2_stateInit(ipc,ip,el)
|
||||
function constitutive_j2_stateInit(myInstance)
|
||||
!*********************************************************************
|
||||
!* initial microstructural state *
|
||||
!*********************************************************************
|
||||
use prec, only: pReal,pInt
|
||||
use material, only: material_phase, phase_constitutionInstance
|
||||
implicit none
|
||||
|
||||
!* Definition of variables
|
||||
integer(pInt), intent(in) :: ipc,ip,el
|
||||
integer(pInt) matID
|
||||
real(pReal), dimension(1) :: &
|
||||
constitutive_j2_stateInit
|
||||
integer(pInt), intent(in) :: myInstance
|
||||
real(pReal), dimension(1) :: constitutive_j2_stateInit
|
||||
|
||||
matID = phase_constitutionInstance(material_phase(ipc,ip,el))
|
||||
constitutive_j2_stateInit = constitutive_j2_s0(matID)
|
||||
constitutive_j2_stateInit = constitutive_j2_s0(myInstance)
|
||||
|
||||
return
|
||||
end function
|
||||
|
|
|
@ -37,10 +37,12 @@ MODULE constitutive_phenomenological
|
|||
integer(pInt), dimension(:), allocatable :: constitutive_phenomenological_sizeDotState, &
|
||||
constitutive_phenomenological_sizeState, &
|
||||
constitutive_phenomenological_sizePostResults
|
||||
character(len=64), dimension(:,:), allocatable :: constitutive_phenomenological_output
|
||||
character(len=64), dimension(:,:), allocatable :: constitutive_phenomenological_output
|
||||
|
||||
character(len=32), dimension(:), allocatable :: constitutive_phenomenological_structureName
|
||||
integer(pInt), dimension(:), allocatable :: constitutive_phenomenological_structure
|
||||
integer(pInt), dimension(:), allocatable :: constitutive_phenomenological_Nslip
|
||||
integer(pInt), dimension(:), allocatable :: constitutive_phenomenological_Nslip
|
||||
|
||||
real(pReal), dimension(:), allocatable :: constitutive_phenomenological_CoverA
|
||||
real(pReal), dimension(:), allocatable :: constitutive_phenomenological_C11
|
||||
real(pReal), dimension(:), allocatable :: constitutive_phenomenological_C12
|
||||
|
@ -79,7 +81,8 @@ subroutine constitutive_phenomenological_init(file)
|
|||
use prec, only: pInt, pReal
|
||||
use math, only: math_Mandel3333to66, math_Voigt66to3333
|
||||
use IO
|
||||
use material
|
||||
use material
|
||||
|
||||
use lattice, only: lattice_initializeStructure
|
||||
integer(pInt), intent(in) :: file
|
||||
integer(pInt), parameter :: maxNchunks = 7
|
||||
|
@ -95,10 +98,12 @@ subroutine constitutive_phenomenological_init(file)
|
|||
allocate(constitutive_phenomenological_sizeState(maxNinstance)) ; constitutive_phenomenological_sizeState = 0_pInt
|
||||
allocate(constitutive_phenomenological_sizePostResults(maxNinstance)); constitutive_phenomenological_sizePostResults = 0_pInt
|
||||
allocate(constitutive_phenomenological_output(maxval(phase_Noutput), &
|
||||
maxNinstance)) ; constitutive_phenomenological_output = ''
|
||||
maxNinstance)) ; constitutive_phenomenological_output = ''
|
||||
|
||||
allocate(constitutive_phenomenological_structureName(maxNinstance)) ; constitutive_phenomenological_structureName = ''
|
||||
allocate(constitutive_phenomenological_structure(maxNinstance)) ; constitutive_phenomenological_structure = 0_pInt
|
||||
allocate(constitutive_phenomenological_Nslip(maxNinstance)) ; constitutive_phenomenological_Nslip = 0_pInt
|
||||
allocate(constitutive_phenomenological_Nslip(maxNinstance)) ; constitutive_phenomenological_Nslip = 0_pInt
|
||||
|
||||
allocate(constitutive_phenomenological_CoverA(maxNinstance)) ; constitutive_phenomenological_CoverA = 0.0_pReal
|
||||
allocate(constitutive_phenomenological_C11(maxNinstance)) ; constitutive_phenomenological_C11 = 0.0_pReal
|
||||
allocate(constitutive_phenomenological_C12(maxNinstance)) ; constitutive_phenomenological_C12 = 0.0_pReal
|
||||
|
@ -138,11 +143,14 @@ subroutine constitutive_phenomenological_init(file)
|
|||
case ('(output)')
|
||||
output = output + 1
|
||||
constitutive_phenomenological_output(output,i) = IO_lc(IO_stringValue(line,positions,2))
|
||||
case ('lattice_structure')
|
||||
case ('lattice_structure')
|
||||
|
||||
constitutive_phenomenological_structureName(i) = IO_lc(IO_stringValue(line,positions,2))
|
||||
case ('nslip')
|
||||
constitutive_phenomenological_Nslip(i) = IO_intValue(line,positions,2)
|
||||
case ('covera_ratio')
|
||||
constitutive_phenomenological_Nslip(i) = IO_intValue(line,positions,2)
|
||||
|
||||
case ('covera_ratio')
|
||||
|
||||
constitutive_phenomenological_CoverA(i) = IO_floatValue(line,positions,2)
|
||||
case ('c11')
|
||||
constitutive_phenomenological_C11(i) = IO_floatValue(line,positions,2)
|
||||
|
@ -172,8 +180,10 @@ subroutine constitutive_phenomenological_init(file)
|
|||
endif
|
||||
enddo
|
||||
|
||||
100 do i = 1,maxNinstance
|
||||
constitutive_phenomenological_structure(i) = lattice_initializeStructure(constitutive_phenomenological_structureName(i), &
|
||||
100 do i = 1,maxNinstance
|
||||
|
||||
constitutive_phenomenological_structure(i) = lattice_initializeStructure(constitutive_phenomenological_structureName(i), &
|
||||
|
||||
constitutive_phenomenological_CoverA(i)) ! sanity checks
|
||||
if (constitutive_phenomenological_structure(i) < 1 .or. &
|
||||
constitutive_phenomenological_structure(i) > 3) call IO_error(201)
|
||||
|
@ -242,22 +252,18 @@ subroutine constitutive_phenomenological_init(file)
|
|||
end subroutine
|
||||
|
||||
|
||||
function constitutive_phenomenological_stateInit(ipc,ip,el)
|
||||
function constitutive_phenomenological_stateInit(myInstance)
|
||||
!*********************************************************************
|
||||
!* initial microstructural state *
|
||||
!*********************************************************************
|
||||
use prec, only: pReal,pInt
|
||||
use material, only: material_phase, phase_constitutionInstance
|
||||
implicit none
|
||||
|
||||
!* Definition of variables
|
||||
integer(pInt), intent(in) :: ipc,ip,el
|
||||
integer(pInt) matID
|
||||
real(pReal), dimension(constitutive_phenomenological_Nslip(phase_constitutionInstance(material_phase(ipc,ip,el)))) :: &
|
||||
constitutive_phenomenological_stateInit
|
||||
integer(pInt), intent(in) :: myInstance
|
||||
real(pReal), dimension(constitutive_phenomenological_Nslip(myInstance)) :: constitutive_phenomenological_stateInit
|
||||
|
||||
matID = phase_constitutionInstance(material_phase(ipc,ip,el))
|
||||
constitutive_phenomenological_stateInit = constitutive_phenomenological_s0_slip(matID)
|
||||
constitutive_phenomenological_stateInit = constitutive_phenomenological_s0_slip(myInstance)
|
||||
|
||||
return
|
||||
end function
|
||||
|
|
Loading…
Reference in New Issue