From 0720da29fb25acd771dd22c216fb5623b7319223 Mon Sep 17 00:00:00 2001 From: Martin Diehl Date: Thu, 6 Jun 2019 21:14:37 +0200 Subject: [PATCH] mesh_element is deprecated --- src/damage_nonlocal.f90 | 4 +- src/homogenization.f90 | 46 +++++++++---------- src/thermal_adiabatic.f90 | 9 ++-- src/thermal_conduction.f90 | 93 ++++++++------------------------------ 4 files changed, 47 insertions(+), 105 deletions(-) diff --git a/src/damage_nonlocal.f90 b/src/damage_nonlocal.f90 index 8e61b619b..86345b729 100644 --- a/src/damage_nonlocal.f90 +++ b/src/damage_nonlocal.f90 @@ -217,12 +217,12 @@ real(pReal) function damage_nonlocal_getMobility(ip,el) damage_nonlocal_getMobility = 0.0_pReal - do ipc = 1, homogenization_Ngrains(mesh_element(3,el)) + do ipc = 1, homogenization_Ngrains(material_homogenizationAt(el)) damage_nonlocal_getMobility = damage_nonlocal_getMobility + lattice_DamageMobility(material_phase(ipc,ip,el)) enddo damage_nonlocal_getMobility = damage_nonlocal_getMobility/& - real(homogenization_Ngrains(mesh_element(3,el)),pReal) + real(homogenization_Ngrains(material_homogenizationAt(el)),pReal) end function damage_nonlocal_getMobility diff --git a/src/homogenization.f90 b/src/homogenization.f90 index 9287cc4bf..9cfbb804e 100644 --- a/src/homogenization.f90 +++ b/src/homogenization.f90 @@ -322,7 +322,7 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt) !-------------------------------------------------------------------------------------------------- ! initialize restoration points of ... do e = FEsolving_execElem(1),FEsolving_execElem(2) - myNgrains = homogenization_Ngrains(mesh_element(3,e)) + myNgrains = homogenization_Ngrains(material_homogenizationAt(e)) do i = FEsolving_execIP(1,e),FEsolving_execIP(2,e); do g = 1,myNgrains @@ -370,7 +370,7 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt) !$OMP PARALLEL DO PRIVATE(myNgrains) elementLooping1: do e = FEsolving_execElem(1),FEsolving_execElem(2) - myNgrains = homogenization_Ngrains(mesh_element(3,e)) + myNgrains = homogenization_Ngrains(material_homogenizationAt(e)) IpLooping1: do i = FEsolving_execIP(1,e),FEsolving_execIP(2,e) converged: if (materialpoint_converged(i,e)) then @@ -521,7 +521,7 @@ subroutine materialpoint_stressAndItsTangent(updateJaco,dt) ! results in crystallite_partionedF !$OMP PARALLEL DO PRIVATE(myNgrains) elementLooping2: do e = FEsolving_execElem(1),FEsolving_execElem(2) - myNgrains = homogenization_Ngrains(mesh_element(3,e)) + myNgrains = homogenization_Ngrains(material_homogenizationAt(e)) IpLooping2: do i = FEsolving_execIP(1,e),FEsolving_execIP(2,e) if ( materialpoint_requested(i,e) .and. & ! process requested but... .not. materialpoint_doneAndHappy(1,i,e)) then ! ...not yet done material points @@ -600,7 +600,7 @@ subroutine materialpoint_postResults !$OMP PARALLEL DO PRIVATE(myNgrains,myCrystallite,thePos,theSize) elementLooping: do e = FEsolving_execElem(1),FEsolving_execElem(2) - myNgrains = homogenization_Ngrains(mesh_element(3,e)) + myNgrains = homogenization_Ngrains(material_homogenizationAt(e)) myCrystallite = microstructure_crystallite(mesh_element(4,e)) IpLooping: do i = FEsolving_execIP(1,e),FEsolving_execIP(2,e) thePos = 0 @@ -642,19 +642,19 @@ subroutine partitionDeformation(ip,el) ip, & !< integration point el !< element number - chosenHomogenization: select case(homogenization_type(mesh_element(3,el))) + chosenHomogenization: select case(homogenization_type(material_homogenizationAt(el))) case (HOMOGENIZATION_NONE_ID) chosenHomogenization crystallite_partionedF(1:3,1:3,1,ip,el) = materialpoint_subF(1:3,1:3,ip,el) case (HOMOGENIZATION_ISOSTRAIN_ID) chosenHomogenization call mech_isostrain_partitionDeformation(& - crystallite_partionedF(1:3,1:3,1:homogenization_Ngrains(mesh_element(3,el)),ip,el), & + crystallite_partionedF(1:3,1:3,1:homogenization_Ngrains(material_homogenizationAt(el)),ip,el), & materialpoint_subF(1:3,1:3,ip,el)) case (HOMOGENIZATION_RGC_ID) chosenHomogenization call mech_RGC_partitionDeformation(& - crystallite_partionedF(1:3,1:3,1:homogenization_Ngrains(mesh_element(3,el)),ip,el), & + crystallite_partionedF(1:3,1:3,1:homogenization_Ngrains(material_homogenizationAt(el)),ip,el), & materialpoint_subF(1:3,1:3,ip,el),& ip, & el) @@ -675,21 +675,21 @@ function updateState(ip,el) logical, dimension(2) :: updateState updateState = .true. - chosenHomogenization: select case(homogenization_type(mesh_element(3,el))) + chosenHomogenization: select case(homogenization_type(material_homogenizationAt(el))) case (HOMOGENIZATION_RGC_ID) chosenHomogenization updateState = & updateState .and. & - mech_RGC_updateState(crystallite_P(1:3,1:3,1:homogenization_Ngrains(mesh_element(3,el)),ip,el), & - crystallite_partionedF(1:3,1:3,1:homogenization_Ngrains(mesh_element(3,el)),ip,el), & - crystallite_partionedF0(1:3,1:3,1:homogenization_Ngrains(mesh_element(3,el)),ip,el),& + mech_RGC_updateState(crystallite_P(1:3,1:3,1:homogenization_Ngrains(material_homogenizationAt(el)),ip,el), & + crystallite_partionedF(1:3,1:3,1:homogenization_Ngrains(material_homogenizationAt(el)),ip,el), & + crystallite_partionedF0(1:3,1:3,1:homogenization_Ngrains(material_homogenizationAt(el)),ip,el),& materialpoint_subF(1:3,1:3,ip,el),& materialpoint_subdt(ip,el), & - crystallite_dPdF(1:3,1:3,1:3,1:3,1:homogenization_Ngrains(mesh_element(3,el)),ip,el), & + crystallite_dPdF(1:3,1:3,1:3,1:3,1:homogenization_Ngrains(material_homogenizationAt(el)),ip,el), & ip, & el) end select chosenHomogenization - chosenThermal: select case (thermal_type(mesh_element(3,el))) + chosenThermal: select case (thermal_type(material_homogenizationAt(el))) case (THERMAL_adiabatic_ID) chosenThermal updateState = & updateState .and. & @@ -698,7 +698,7 @@ function updateState(ip,el) el) end select chosenThermal - chosenDamage: select case (damage_type(mesh_element(3,el))) + chosenDamage: select case (damage_type(material_homogenizationAt(el))) case (DAMAGE_local_ID) chosenDamage updateState = & updateState .and. & @@ -719,7 +719,7 @@ subroutine averageStressAndItsTangent(ip,el) ip, & !< integration point el !< element number - chosenHomogenization: select case(homogenization_type(mesh_element(3,el))) + chosenHomogenization: select case(homogenization_type(material_homogenizationAt(el))) case (HOMOGENIZATION_NONE_ID) chosenHomogenization materialpoint_P(1:3,1:3,ip,el) = crystallite_P(1:3,1:3,1,ip,el) materialpoint_dPdF(1:3,1:3,1:3,1:3,ip,el) = crystallite_dPdF(1:3,1:3,1:3,1:3,1,ip,el) @@ -728,17 +728,17 @@ subroutine averageStressAndItsTangent(ip,el) call mech_isostrain_averageStressAndItsTangent(& materialpoint_P(1:3,1:3,ip,el), & materialpoint_dPdF(1:3,1:3,1:3,1:3,ip,el),& - crystallite_P(1:3,1:3,1:homogenization_Ngrains(mesh_element(3,el)),ip,el), & - crystallite_dPdF(1:3,1:3,1:3,1:3,1:homogenization_Ngrains(mesh_element(3,el)),ip,el), & - homogenization_typeInstance(mesh_element(3,el))) + crystallite_P(1:3,1:3,1:homogenization_Ngrains(material_homogenizationAt(el)),ip,el), & + crystallite_dPdF(1:3,1:3,1:3,1:3,1:homogenization_Ngrains(material_homogenizationAt(el)),ip,el), & + homogenization_typeInstance(material_homogenizationAt(el))) case (HOMOGENIZATION_RGC_ID) chosenHomogenization call mech_RGC_averageStressAndItsTangent(& materialpoint_P(1:3,1:3,ip,el), & materialpoint_dPdF(1:3,1:3,1:3,1:3,ip,el),& - crystallite_P(1:3,1:3,1:homogenization_Ngrains(mesh_element(3,el)),ip,el), & - crystallite_dPdF(1:3,1:3,1:3,1:3,1:homogenization_Ngrains(mesh_element(3,el)),ip,el), & - homogenization_typeInstance(mesh_element(3,el))) + crystallite_P(1:3,1:3,1:homogenization_Ngrains(material_homogenizationAt(el)),ip,el), & + crystallite_dPdF(1:3,1:3,1:3,1:3,1:homogenization_Ngrains(material_homogenizationAt(el)),ip,el), & + homogenization_typeInstance(material_homogenizationAt(el))) end select chosenHomogenization end subroutine averageStressAndItsTangent @@ -765,7 +765,7 @@ function postResults(ip,el) postResults = 0.0_pReal startPos = 1 endPos = thermalState(material_homogenizationAt(el))%sizePostResults - chosenThermal: select case (thermal_type(mesh_element(3,el))) + chosenThermal: select case (thermal_type(material_homogenizationAt(el))) case (THERMAL_adiabatic_ID) chosenThermal homog = material_homogenizationAt(el) @@ -780,7 +780,7 @@ function postResults(ip,el) startPos = endPos + 1 endPos = endPos + damageState(material_homogenizationAt(el))%sizePostResults - chosenDamage: select case (damage_type(mesh_element(3,el))) + chosenDamage: select case (damage_type(material_homogenizationAt(el))) case (DAMAGE_local_ID) chosenDamage postResults(startPos:endPos) = damage_local_postResults(ip, el) diff --git a/src/thermal_adiabatic.f90 b/src/thermal_adiabatic.f90 index 3c9fd0c6e..526c98904 100644 --- a/src/thermal_adiabatic.f90 +++ b/src/thermal_adiabatic.f90 @@ -11,7 +11,6 @@ module thermal_adiabatic use source_thermal_externalheat use crystallite use lattice - use mesh implicit none private @@ -214,13 +213,13 @@ function thermal_adiabatic_getSpecificHeat(ip,el) thermal_adiabatic_getSpecificHeat = 0.0_pReal - do grain = 1, homogenization_Ngrains(mesh_element(3,el)) + do grain = 1, homogenization_Ngrains(material_homogenizationAt(el)) thermal_adiabatic_getSpecificHeat = thermal_adiabatic_getSpecificHeat + & lattice_specificHeat(material_phase(grain,ip,el)) enddo thermal_adiabatic_getSpecificHeat = & - thermal_adiabatic_getSpecificHeat/real(homogenization_Ngrains(mesh_element(3,el)),pReal) + thermal_adiabatic_getSpecificHeat/real(homogenization_Ngrains(material_homogenizationAt(el)),pReal) end function thermal_adiabatic_getSpecificHeat @@ -241,13 +240,13 @@ function thermal_adiabatic_getMassDensity(ip,el) thermal_adiabatic_getMassDensity = 0.0_pReal - do grain = 1, homogenization_Ngrains(mesh_element(3,el)) + do grain = 1, homogenization_Ngrains(material_homogenizationAt(el)) thermal_adiabatic_getMassDensity = thermal_adiabatic_getMassDensity + & lattice_massDensity(material_phase(grain,ip,el)) enddo thermal_adiabatic_getMassDensity = & - thermal_adiabatic_getMassDensity/real(homogenization_Ngrains(mesh_element(3,el)),pReal) + thermal_adiabatic_getMassDensity/real(homogenization_Ngrains(material_homogenizationAt(el)),pReal) end function thermal_adiabatic_getMassDensity diff --git a/src/thermal_conduction.f90 b/src/thermal_conduction.f90 index 292d8a3f6..a31961dc7 100644 --- a/src/thermal_conduction.f90 +++ b/src/thermal_conduction.f90 @@ -3,8 +3,13 @@ !> @brief material subroutine for temperature evolution from heat conduction !-------------------------------------------------------------------------------------------------- module thermal_conduction - use prec, only: & - pReal + use prec + use material + use config + use lattice + use crystallite + use source_thermal_dissipation + use source_thermal_externalheat implicit none private @@ -42,22 +47,8 @@ contains !> @details reads in material parameters, allocates arrays, and does sanity checks !-------------------------------------------------------------------------------------------------- subroutine thermal_conduction_init - use material, only: & - thermal_type, & - thermal_typeInstance, & - homogenization_Noutput, & - THERMAL_conduction_label, & - THERMAL_conduction_ID, & - material_homogenizationAt, & - mappingHomogenization, & - thermalState, & - thermalMapping, & - thermal_initialT, & - temperature, & - temperatureRate - use config, only: & - config_homogenization - + + integer :: maxNinstance,section,instance,i integer :: sizeState integer :: NofMyHomog @@ -115,24 +106,6 @@ end subroutine thermal_conduction_init !> @brief returns heat generation rate !-------------------------------------------------------------------------------------------------- subroutine thermal_conduction_getSourceAndItsTangent(Tdot, dTdot_dT, T, ip, el) - use material, only: & - material_homogenizationAt, & - homogenization_Ngrains, & - mappingHomogenization, & - phaseAt, & - phasememberAt, & - thermal_typeInstance, & - phase_Nsources, & - phase_source, & - SOURCE_thermal_dissipation_ID, & - SOURCE_thermal_externalheat_ID - use source_thermal_dissipation, only: & - source_thermal_dissipation_getRateAndItsTangent - use source_thermal_externalheat, only: & - source_thermal_externalheat_getRateAndItsTangent - use crystallite, only: & - crystallite_S, & - crystallite_Lp integer, intent(in) :: & ip, & !< integration point number @@ -193,16 +166,7 @@ end subroutine thermal_conduction_getSourceAndItsTangent !> @brief returns homogenized thermal conductivity in reference configuration !-------------------------------------------------------------------------------------------------- function thermal_conduction_getConductivity33(ip,el) - use lattice, only: & - lattice_thermalConductivity33 - use material, only: & - homogenization_Ngrains, & - material_phase - use mesh, only: & - mesh_element - use crystallite, only: & - crystallite_push33ToRef - + integer, intent(in) :: & ip, & !< integration point number el !< element number @@ -213,13 +177,13 @@ function thermal_conduction_getConductivity33(ip,el) thermal_conduction_getConductivity33 = 0.0_pReal - do grain = 1, homogenization_Ngrains(mesh_element(3,el)) + do grain = 1, homogenization_Ngrains(material_homogenizationAt(el)) thermal_conduction_getConductivity33 = thermal_conduction_getConductivity33 + & crystallite_push33ToRef(grain,ip,el,lattice_thermalConductivity33(:,:,material_phase(grain,ip,el))) enddo thermal_conduction_getConductivity33 = & - thermal_conduction_getConductivity33/real(homogenization_Ngrains(mesh_element(3,el)),pReal) + thermal_conduction_getConductivity33/real(homogenization_Ngrains(material_homogenizationAt(el)),pReal) end function thermal_conduction_getConductivity33 @@ -228,14 +192,7 @@ end function thermal_conduction_getConductivity33 !> @brief returns homogenized specific heat capacity !-------------------------------------------------------------------------------------------------- function thermal_conduction_getSpecificHeat(ip,el) - use lattice, only: & - lattice_specificHeat - use material, only: & - homogenization_Ngrains, & - material_phase - use mesh, only: & - mesh_element - + integer, intent(in) :: & ip, & !< integration point number el !< element number @@ -247,13 +204,13 @@ function thermal_conduction_getSpecificHeat(ip,el) thermal_conduction_getSpecificHeat = 0.0_pReal - do grain = 1, homogenization_Ngrains(mesh_element(3,el)) + do grain = 1, homogenization_Ngrains(material_homogenizationAt(el)) thermal_conduction_getSpecificHeat = thermal_conduction_getSpecificHeat + & lattice_specificHeat(material_phase(grain,ip,el)) enddo thermal_conduction_getSpecificHeat = & - thermal_conduction_getSpecificHeat/real(homogenization_Ngrains(mesh_element(3,el)),pReal) + thermal_conduction_getSpecificHeat/real(homogenization_Ngrains(material_homogenizationAt(el)),pReal) end function thermal_conduction_getSpecificHeat @@ -261,14 +218,7 @@ end function thermal_conduction_getSpecificHeat !> @brief returns homogenized mass density !-------------------------------------------------------------------------------------------------- function thermal_conduction_getMassDensity(ip,el) - use lattice, only: & - lattice_massDensity - use material, only: & - homogenization_Ngrains, & - material_phase - use mesh, only: & - mesh_element - + integer, intent(in) :: & ip, & !< integration point number el !< element number @@ -280,13 +230,13 @@ function thermal_conduction_getMassDensity(ip,el) thermal_conduction_getMassDensity = 0.0_pReal - do grain = 1, homogenization_Ngrains(mesh_element(3,el)) + do grain = 1, homogenization_Ngrains(material_homogenizationAt(el)) thermal_conduction_getMassDensity = thermal_conduction_getMassDensity & + lattice_massDensity(material_phase(grain,ip,el)) enddo thermal_conduction_getMassDensity = & - thermal_conduction_getMassDensity/real(homogenization_Ngrains(mesh_element(3,el)),pReal) + thermal_conduction_getMassDensity/real(homogenization_Ngrains(material_homogenizationAt(el)),pReal) end function thermal_conduction_getMassDensity @@ -295,11 +245,6 @@ end function thermal_conduction_getMassDensity !> @brief updates thermal state with solution from heat conduction PDE !-------------------------------------------------------------------------------------------------- subroutine thermal_conduction_putTemperatureAndItsRate(T,Tdot,ip,el) - use material, only: & - material_homogenizationAt, & - temperature, & - temperatureRate, & - thermalMapping integer, intent(in) :: & ip, & !< integration point number @@ -323,8 +268,6 @@ end subroutine thermal_conduction_putTemperatureAndItsRate !> @brief return array of thermal results !-------------------------------------------------------------------------------------------------- function thermal_conduction_postResults(homog,instance,of) result(postResults) - use material, only: & - temperature integer, intent(in) :: & homog, &