trying new structure for all constitutive modules
This commit is contained in:
parent
b5a10f2386
commit
bc1d73c03b
|
@ -26,6 +26,17 @@
|
|||
#endif
|
||||
#include "material.f90"
|
||||
#include "lattice.f90"
|
||||
#include "constitutive.f90"
|
||||
#include "constitutive_plastic.f90"
|
||||
#include "constitutive_damage.f90"
|
||||
#include "constitutive_thermal.f90"
|
||||
#include "constitutive_plastic_none.f90"
|
||||
#include "constitutive_plastic_isotropic.f90"
|
||||
#include "constitutive_plastic_phenopowerlaw.f90"
|
||||
#include "constitutive_plastic_kinehardening.f90"
|
||||
#include "constitutive_plastic_dislotwin.f90"
|
||||
#include "constitutive_plastic_disloUCLA.f90"
|
||||
#include "constitutive_plastic_nonlocal.f90"
|
||||
#include "source_thermal_dissipation.f90"
|
||||
#include "source_thermal_externalheat.f90"
|
||||
#include "source_damage_isoBrittle.f90"
|
||||
|
@ -35,14 +46,6 @@
|
|||
#include "kinematics_cleavage_opening.f90"
|
||||
#include "kinematics_slipplane_opening.f90"
|
||||
#include "kinematics_thermal_expansion.f90"
|
||||
#include "constitutive.f90"
|
||||
#include "constitutive_plastic_none.f90"
|
||||
#include "constitutive_plastic_isotropic.f90"
|
||||
#include "constitutive_plastic_phenopowerlaw.f90"
|
||||
#include "constitutive_plastic_kinehardening.f90"
|
||||
#include "constitutive_plastic_dislotwin.f90"
|
||||
#include "constitutive_plastic_disloUCLA.f90"
|
||||
#include "constitutive_plastic_nonlocal.f90"
|
||||
#include "crystallite.f90"
|
||||
#include "thermal_isothermal.f90"
|
||||
#include "thermal_adiabatic.f90"
|
||||
|
|
|
@ -35,13 +35,16 @@ module constitutive
|
|||
module subroutine thermal_init
|
||||
end subroutine thermal_init
|
||||
|
||||
! module pure function kinematics_thermal_expansion_initialStrain(homog,phase,offset)
|
||||
!
|
||||
! integer, intent(in) :: &
|
||||
! phase, &
|
||||
! homog, &
|
||||
! offset
|
||||
! end function kinematics_thermal_expansion_initialStrain
|
||||
pure module function kinematics_thermal_expansion_initialStrain(homog,phase,offset) result(initialStrain)
|
||||
|
||||
integer, intent(in) :: &
|
||||
phase, &
|
||||
homog, &
|
||||
offset
|
||||
real(pReal), dimension(3,3) :: &
|
||||
initialStrain
|
||||
|
||||
end function kinematics_thermal_expansion_initialStrain
|
||||
|
||||
module function plastic_dislotwin_homogenizedC(ipc,ip,el) result(homogenizedC)
|
||||
real(pReal), dimension(6,6) :: &
|
||||
|
@ -591,7 +594,7 @@ pure function constitutive_initialFi(ipc, ip, el)
|
|||
homog = material_homogenizationAt(el)
|
||||
offset = thermalMapping(homog)%p(ip,el)
|
||||
constitutive_initialFi = &
|
||||
constitutive_initialFi !+ kinematics_thermal_expansion_initialStrain(homog,phase,offset)
|
||||
constitutive_initialFi + kinematics_thermal_expansion_initialStrain(homog,phase,offset)
|
||||
end select kinematicsType
|
||||
enddo KinematicsLoop
|
||||
|
||||
|
|
|
@ -66,24 +66,24 @@ end subroutine kinematics_thermal_expansion_init
|
|||
!--------------------------------------------------------------------------------------------------
|
||||
!> @brief report initial thermal strain based on current temperature deviation from reference
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
!pure module function kinematics_thermal_expansion_initialStrain(homog,phase,offset)
|
||||
!
|
||||
! integer, intent(in) :: &
|
||||
! phase, &
|
||||
! homog, &
|
||||
! offset
|
||||
!
|
||||
! real(pReal), dimension(3,3) :: &
|
||||
! kinematics_thermal_expansion_initialStrain !< initial thermal strain (should be small strain, though)
|
||||
!
|
||||
! associate(prm => param(kinematics_thermal_expansion_instance(phase)))
|
||||
! kinematics_thermal_expansion_initialStrain = &
|
||||
! (temperature(homog)%p(offset) - prm%T_ref)**1 / 1. * prm%expansion(1:3,1:3,1) + & ! constant coefficient
|
||||
! (temperature(homog)%p(offset) - prm%T_ref)**2 / 2. * prm%expansion(1:3,1:3,2) + & ! linear coefficient
|
||||
! (temperature(homog)%p(offset) - prm%T_ref)**3 / 3. * prm%expansion(1:3,1:3,3) ! quadratic coefficient
|
||||
! end associate
|
||||
!
|
||||
!end function kinematics_thermal_expansion_initialStrain
|
||||
pure module function kinematics_thermal_expansion_initialStrain(homog,phase,offset) result(initialStrain)
|
||||
|
||||
integer, intent(in) :: &
|
||||
phase, &
|
||||
homog, &
|
||||
offset
|
||||
|
||||
real(pReal), dimension(3,3) :: &
|
||||
initialStrain !< initial thermal strain (should be small strain, though)
|
||||
|
||||
associate(prm => param(kinematics_thermal_expansion_instance(phase)))
|
||||
initialStrain = &
|
||||
(temperature(homog)%p(offset) - prm%T_ref)**1 / 1. * prm%expansion(1:3,1:3,1) + & ! constant coefficient
|
||||
(temperature(homog)%p(offset) - prm%T_ref)**2 / 2. * prm%expansion(1:3,1:3,2) + & ! linear coefficient
|
||||
(temperature(homog)%p(offset) - prm%T_ref)**3 / 3. * prm%expansion(1:3,1:3,3) ! quadratic coefficient
|
||||
end associate
|
||||
|
||||
end function kinematics_thermal_expansion_initialStrain
|
||||
|
||||
|
||||
!--------------------------------------------------------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue