simplified logic to reflect what we are doing

This commit is contained in:
Martin Diehl 2022-02-23 05:42:44 +01:00
parent 94c6542122
commit 339d081dd5
1 changed files with 18 additions and 27 deletions

View File

@ -23,10 +23,6 @@ module homogenization
enum, bind(c); enumerator :: &
THERMAL_ISOTHERMAL_ID, &
THERMAL_CONDUCTION_ID, &
DAMAGE_NONE_ID, &
DAMAGE_NONLOCAL_ID, &
HOMOGENIZATION_UNDEFINED_ID, &
HOMOGENIZATION_NONE_ID, &
HOMOGENIZATION_ISOSTRAIN_ID, &
@ -37,10 +33,9 @@ module homogenization
homogState, &
damageState_h
integer(kind(THERMAL_isothermal_ID)), dimension(:), allocatable :: &
thermal_type !< thermal transport model
integer(kind(DAMAGE_none_ID)), dimension(:), allocatable :: &
damage_type !< nonlocal damage model
logical, allocatable, dimension(:) :: &
thermal_active, &
damage_active
logical, public :: &
terminallyIll = .false. !< at least one material point is terminally ill
@ -182,9 +177,7 @@ module homogenization
homogenization_forward, &
homogenization_results, &
homogenization_restartRead, &
homogenization_restartWrite, &
THERMAL_CONDUCTION_ID, &
DAMAGE_NONLOCAL_ID
homogenization_restartWrite
contains
@ -351,19 +344,17 @@ subroutine homogenization_results
call mechanical_results(group_base,ho)
select case(damage_type(ho))
case(DAMAGE_NONLOCAL_ID)
if (damage_active(ho)) then
group = trim(group_base)//'/damage'
call results_closeGroup(results_addGroup(group))
call damage_results(ho,group)
end select
end if
select case(thermal_type(ho))
case(THERMAL_CONDUCTION_ID)
if (thermal_active(ho)) then
group = trim(group_base)//'/thermal'
call results_closeGroup(results_addGroup(group))
call thermal_results(ho,group)
end select
end if
enddo
@ -457,8 +448,8 @@ subroutine parseHomogenization
material_homogenization => config_material%get('homogenization')
allocate(thermal_type(size(material_name_homogenization)),source=THERMAL_isothermal_ID)
allocate(damage_type (size(material_name_homogenization)),source=DAMAGE_none_ID)
allocate(thermal_active(size(material_name_homogenization)),source=.false.)
allocate(damage_active(size(material_name_homogenization)),source=.false.)
do h=1, size(material_name_homogenization)
homog => material_homogenization%get(h)
@ -467,7 +458,7 @@ subroutine parseHomogenization
homogThermal => homog%get('thermal')
select case (homogThermal%get_asString('type'))
case('pass','isotemperature')
thermal_type(h) = THERMAL_conduction_ID
thermal_active(h) = .true.
case default
call IO_error(500,ext_msg=homogThermal%get_asString('type'))
end select
@ -477,7 +468,7 @@ subroutine parseHomogenization
homogDamage => homog%get('damage')
select case (homogDamage%get_asString('type'))
case('pass')
damage_type(h) = DAMAGE_nonlocal_ID
damage_active(h) = .true.
case default
call IO_error(500,ext_msg=homogDamage%get_asString('type'))
end select