storing phase part of material.config per section in chained list

This commit is contained in:
Martin Diehl 2018-06-01 10:14:46 +02:00
parent 8867322713
commit 052a0af2ac
1 changed files with 6 additions and 0 deletions

View File

@ -7,6 +7,7 @@
!! 'phase', 'texture', and 'microstucture' !! 'phase', 'texture', and 'microstucture'
!-------------------------------------------------------------------------------------------------- !--------------------------------------------------------------------------------------------------
module material module material
use chained_list
use prec, only: & use prec, only: &
pReal, & pReal, &
pInt, & pInt, &
@ -304,6 +305,8 @@ module material
vacancyConcRate, & !< vacancy conc change field vacancyConcRate, & !< vacancy conc change field
hydrogenConcRate !< hydrogen conc change field hydrogenConcRate !< hydrogen conc change field
type(tPartitionedStringList), public,protected, allocatable, dimension(:) :: phaseConfig
public :: & public :: &
material_init, & material_init, &
ELASTICITY_hooke_ID ,& ELASTICITY_hooke_ID ,&
@ -933,6 +936,8 @@ subroutine material_parsePhase(fileUnit,myPart)
allocate(phase_Noutput(Nsections), source=0_pInt) allocate(phase_Noutput(Nsections), source=0_pInt)
allocate(phase_localPlasticity(Nsections), source=.false.) allocate(phase_localPlasticity(Nsections), source=.false.)
allocate(phaseConfig(Nsections))
phase_Noutput = IO_countTagInPart(fileUnit,myPart,'(output)',Nsections) phase_Noutput = IO_countTagInPart(fileUnit,myPart,'(output)',Nsections)
phase_Nsources = IO_countTagInPart(fileUnit,myPart,'(source)',Nsections) phase_Nsources = IO_countTagInPart(fileUnit,myPart,'(source)',Nsections)
phase_Nkinematics = IO_countTagInPart(fileUnit,myPart,'(kinematics)',Nsections) phase_Nkinematics = IO_countTagInPart(fileUnit,myPart,'(kinematics)',Nsections)
@ -970,6 +975,7 @@ subroutine material_parsePhase(fileUnit,myPart)
if (section > 0_pInt) then if (section > 0_pInt) then
chunkPos = IO_stringPos(line) chunkPos = IO_stringPos(line)
tag = IO_lc(IO_stringValue(line,chunkPos,1_pInt)) ! extract key tag = IO_lc(IO_stringValue(line,chunkPos,1_pInt)) ! extract key
call phaseConfig(section)%add(trim(line),chunkPos)
select case(tag) select case(tag)
case ('elasticity') case ('elasticity')
select case (IO_lc(IO_stringValue(line,chunkPos,2_pInt))) select case (IO_lc(IO_stringValue(line,chunkPos,2_pInt)))