S_heat_flux_internal_calculation Subroutine

public subroutine S_heat_flux_internal_calculation(me, i)

Arguments

Type IntentOptional Attributes Name
type(solid_t), intent(inout) :: me
integer, intent(in) :: i

Calls

proc~~s_heat_flux_internal_calculation~~CallsGraph proc~s_heat_flux_internal_calculation S_heat_flux_internal_calculation proc~material_thermal_conductivity material_t%material_thermal_conductivity proc~s_heat_flux_internal_calculation->proc~material_thermal_conductivity proc~material_thermal_conductivity_der material_t%material_thermal_conductivity_der proc~s_heat_flux_internal_calculation->proc~material_thermal_conductivity_der

Called by

proc~~s_heat_flux_internal_calculation~~CalledByGraph proc~s_heat_flux_internal_calculation S_heat_flux_internal_calculation proc~heat_diffusion_solid heat_diffusion_solid proc~heat_diffusion_solid->proc~s_heat_flux_internal_calculation proc~main_loop main_loop proc~main_loop->proc~heat_diffusion_solid program~reims_p reims_p program~reims_p->proc~main_loop

Source Code

subroutine S_heat_flux_internal_calculation(me,i)
     
    type(solid_t), intent(inout) :: me
    integer, intent(in) :: i

    real(dp) :: S_TempL,S_TempR,lambdSL,lambdSR,DerlambdSLdTL,DerlambdSRdTR
    real(dp) :: dxL,dxR,Tint,DerTintL,DerTintR,num,den
    integer :: ii

    S_TempL=me%StVar%MCtemp(i)
    S_TempR=me%StVar%MCtemp(i+1)

    lambdSL=me%mat%thermal_conductivity(S_TempL)
    DerlambdSLdTL=me%mat%thermal_conductivity_der(S_TempL)
    lambdSR=me%mat%thermal_conductivity(S_TempR)
    DerlambdSRdTR=me%mat%thermal_conductivity_der(S_TempR)  

    dxL=me%MC_Prop%dxLoc(i)
    dxR=me%MC_Prop%dxLoc(i+1)
    Tint=(lambdSL*dxR*S_TempL+lambdSR*dxL*S_TempR)/(lambdSL*dxR+lambdSR*dxL)
    num=lambdSL*dxR*S_TempL+lambdSR*dxL*S_TempR
    den=lambdSL*dxR+lambdSR*dxL
    DerTintL=dxR*((DerlambdSLdTL*S_TempL+lambdSL)*den-num*DerlambdSLdTL)/(den**2)
    DerTintR=dxL*((DerlambdSRdTR*S_TempR+lambdSR)*den-num*DerlambdSRdTR)/(den**2)

    me%flxS%sd(i)=-2.0_dp*lambdSL*(Tint-S_TempL)/dxL
    me%flxS%sd_DerdTL(i)=-(2.0_dp/dxL)*(DerlambdSLdTL*(Tint-S_TempL)+lambdSL*(DerTintL-1.0_dp))
    me%flxS%sd_DerdTR(i)=-(2.0_dp/dxL)*lambdSL*DerTintR

end subroutine S_heat_flux_internal_calculation