S_heat_flux_internal_calculation Subroutine

public subroutine S_heat_flux_internal_calculation(me, i)

Arguments

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

Calls

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

Called by

proc~~s_heat_flux_internal_calculation~2~~CalledByGraph proc~s_heat_flux_internal_calculation~2 S_heat_flux_internal_calculation proc~heat_diffusion_strand heat_diffusion_strand proc~heat_diffusion_strand->proc~s_heat_flux_internal_calculation~2 proc~main_loop main_loop proc~main_loop->proc~heat_diffusion_strand program~reims_p reims_p program~reims_p->proc~main_loop

Source Code

subroutine S_heat_flux_internal_calculation(me,i)
     
    type(strand_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%SCtemp(i)
    S_TempR=me%StVar%SCtemp(i+1)

    lambdSL=0.0_dp
    DerlambdSLdTL=0.0_dp
    lambdSR=0.0_dp
    DerlambdSRdTR=0.0_dp

    lambdSL=lambdSL+me%ct(STAB)%area*me%mat_stab%thermal_conductivity(S_TempL,me%scen%Bfield(i))
    lambdSL=lambdSL+me%ct(SUPC)%area*me%mat_supc%thermal_conductivity(S_TempL)
    
    DerlambdSLdTL=DerlambdSLdTL+me%ct(STAB)%area*me%mat_stab%thermal_conductivity_der(S_TempL,me%scen%Bfield(i))
    DerlambdSLdTL=DerlambdSLdTL+me%ct(SUPC)%area*me%mat_supc%thermal_conductivity_der(S_TempL)

    lambdSR=lambdSR+me%ct(STAB)%area*me%mat_stab%thermal_conductivity(S_TempR,me%scen%Bfield(i+1))
    lambdSR=lambdSR+me%ct(SUPC)%area*me%mat_supc%thermal_conductivity(S_TempR)
    
    DerlambdSRdTR=DerlambdSRdTR+me%ct(STAB)%area*me%mat_stab%thermal_conductivity_der(S_TempR,me%scen%Bfield(i+1))
    DerlambdSRdTR=DerlambdSRdTR+me%ct(SUPC)%area*me%mat_supc%thermal_conductivity_der(S_TempR)

    lambdSL=lambdSL/sum(me%ct(:)%area)
    DerlambdSLdTL=DerlambdSLdTL/sum(me%ct(:)%area)
    lambdSR=lambdSR/sum(me%ct(:)%area)
    DerlambdSRdTR=DerlambdSRdTR/sum(me%ct(:)%area)

    dxL=me%SC_Prop%dxLoc(i)
    dxR=me%SC_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%wire(i)=-2.0_dp*lambdSL*(Tint-S_TempL)/dxL
    me%flxS%wire_DerdTL(i)=-(2.0_dp/dxL)*(DerlambdSLdTL*(Tint-S_TempL)+lambdSL*(DerTintL-1.0_dp))
    me%flxS%wire_DerdTR(i)=-(2.0_dp/dxL)*lambdSL*DerTintR

end subroutine S_heat_flux_internal_calculation