| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(solid_t), | intent(inout) | :: | me | |||
| type(simulation_t), | intent(in) | :: | sim |
subroutine source_term_definition_solid(me,sim) type(solid_t), intent(inout) :: me type(simulation_t), intent(in) :: sim integer :: i real(dp) :: cp, dcpdT, ro_M, Spoint, DerSpoint if(sim%explicit) then me%big%bmS=1.0_dp; me%big%bvS=0.0_dp endif do i=1,me%MC_Prop%NbCells cp = me%mat%heat_capacity(me%StVar%MCtemp(i)) dcpdT = me%mat%heat_capacity_der(me%StVar%MCtemp(i)) ro_M = me%mat%density Spoint = me%Q_ext(i) / (me%MC_Prop%volLoc(i)/me%MC_Prop%dxLoc(i) * ro_M * cp) DerSpoint = -me%Q_ext(i) * dcpdT / (me%MC_Prop%volLoc(i)/me%MC_Prop%dxLoc(i) * ro_M * cp**2) me%big%bmS(i) = me%big%bmS(i) - sim%dt * DerSpoint me%big%bvS(i) = me%big%bvS(i) + sim%dt * Spoint if(me%MC_Prop%FSlink(i)) then ! Communication to FS port associated to solid node i me%MC_Prop%thermP(me%MC_Prop%idxFSlk(i))%p%TempS=me%StVar%MCtemp(i) me%MC_Prop%thermP(me%MC_Prop%idxFSlk(i))%p%lambdS=me%mat%thermal_conductivity(me%StVar%MCtemp(i)) me%MC_Prop%thermP(me%MC_Prop%idxFSlk(i))%p%DerlambdS=me%mat%thermal_conductivity_der(me%StVar%MCtemp(i)) me%MC_Prop%thermP(me%MC_Prop%idxFSlk(i))%p%cpS=me%mat%heat_capacity(me%StVar%MCtemp(i)) me%MC_Prop%thermP(me%MC_Prop%idxFSlk(i))%p%dcpSdT=me%mat%heat_capacity_der(me%StVar%MCtemp(i)) endif if(me%MC_Prop%SSsrcLink) then ! Communication to SS_src port associated to solid node i me%MC_Prop%thermS(i)%p%TempS=me%StVar%MCtemp(i) me%MC_Prop%thermS(i)%p%lambdS=me%mat%thermal_conductivity(me%StVar%MCtemp(i)) me%MC_Prop%thermS(i)%p%DerlambdS=me%mat%thermal_conductivity_der(me%StVar%MCtemp(i)) me%MC_Prop%thermS(i)%p%cpS=me%mat%heat_capacity(me%StVar%MCtemp(i)) me%MC_Prop%thermS(i)%p%dcpSdT=me%mat%heat_capacity_der(me%StVar%MCtemp(i)) endif enddo end subroutine source_term_definition_solid