2014-06-25 04:29:16 +05:30
|
|
|
!--------------------------------------------------------------------------------------------------
|
2015-05-28 22:32:23 +05:30
|
|
|
!> @author Pratheek Shanthraj, Max-Planck-Institut für Eisenforschung GmbH
|
|
|
|
!> @brief material subroutine for isothermal temperature field
|
2014-06-25 04:29:16 +05:30
|
|
|
!--------------------------------------------------------------------------------------------------
|
2014-09-26 21:37:26 +05:30
|
|
|
module thermal_isothermal
|
2014-06-25 04:29:16 +05:30
|
|
|
|
|
|
|
implicit none
|
|
|
|
private
|
2015-05-28 22:32:23 +05:30
|
|
|
|
2014-06-25 04:29:16 +05:30
|
|
|
public :: &
|
2014-09-26 21:37:26 +05:30
|
|
|
thermal_isothermal_init
|
2014-06-25 04:29:16 +05:30
|
|
|
|
|
|
|
contains
|
|
|
|
|
|
|
|
!--------------------------------------------------------------------------------------------------
|
2015-05-28 22:32:23 +05:30
|
|
|
!> @brief allocates all neccessary fields, reads information from material configuration file
|
2014-06-25 04:29:16 +05:30
|
|
|
!--------------------------------------------------------------------------------------------------
|
2015-07-24 20:23:50 +05:30
|
|
|
subroutine thermal_isothermal_init()
|
2015-05-28 22:32:23 +05:30
|
|
|
use prec, only: &
|
2019-03-10 15:32:32 +05:30
|
|
|
pReal
|
2018-12-31 02:24:50 +05:30
|
|
|
use config, only: &
|
|
|
|
material_Nhomogenization
|
2015-05-28 22:32:23 +05:30
|
|
|
use material
|
|
|
|
|
2014-06-25 04:29:16 +05:30
|
|
|
implicit none
|
2019-03-10 15:32:32 +05:30
|
|
|
integer :: &
|
2015-05-28 22:32:23 +05:30
|
|
|
homog, &
|
2018-12-31 02:24:50 +05:30
|
|
|
NofMyHomog
|
2014-09-22 23:45:19 +05:30
|
|
|
|
2016-10-26 02:24:32 +05:30
|
|
|
write(6,'(/,a)') ' <<<+- thermal_'//THERMAL_isothermal_label//' init -+>>>'
|
2014-09-03 22:42:06 +05:30
|
|
|
|
2019-03-10 15:32:32 +05:30
|
|
|
initializeInstances: do homog = 1, material_Nhomogenization
|
2014-07-02 17:57:39 +05:30
|
|
|
|
2018-12-31 02:24:50 +05:30
|
|
|
if (thermal_type(homog) /= THERMAL_isothermal_ID) cycle
|
2019-03-10 15:32:32 +05:30
|
|
|
NofMyHomog = count(material_homogenizationAt == homog)
|
|
|
|
thermalState(homog)%sizeState = 0
|
|
|
|
thermalState(homog)%sizePostResults = 0
|
|
|
|
allocate(thermalState(homog)%state0 (0,NofMyHomog), source=0.0_pReal)
|
|
|
|
allocate(thermalState(homog)%subState0(0,NofMyHomog), source=0.0_pReal)
|
|
|
|
allocate(thermalState(homog)%state (0,NofMyHomog), source=0.0_pReal)
|
2015-05-28 22:32:23 +05:30
|
|
|
|
2018-12-31 02:24:50 +05:30
|
|
|
deallocate(temperature (homog)%p)
|
|
|
|
allocate (temperature (homog)%p(1), source=thermal_initialT(homog))
|
|
|
|
deallocate(temperatureRate(homog)%p)
|
|
|
|
allocate (temperatureRate(homog)%p(1), source=0.0_pReal)
|
2015-05-28 22:32:23 +05:30
|
|
|
|
2014-06-25 04:29:16 +05:30
|
|
|
enddo initializeInstances
|
2015-05-28 22:32:23 +05:30
|
|
|
|
2014-06-25 04:29:16 +05:30
|
|
|
|
2014-09-26 21:37:26 +05:30
|
|
|
end subroutine thermal_isothermal_init
|
2014-06-25 04:29:16 +05:30
|
|
|
|
2014-09-26 21:37:26 +05:30
|
|
|
end module thermal_isothermal
|