| Type | Intent | Optional | Attributes | Name | ||
|---|---|---|---|---|---|---|
| type(mesh2D_t), | intent(inout) | :: | me |
subroutine mesh2Ds_SS_src_port_comm(me) type(mesh2D_t), intent(inout) :: me integer :: ii,nb_e,idx_prev,elem, i real(dp) :: cp, ro, dcpdT, lambdS, DerlambdS if(me%M2D_Prop%Nb_labelMC>0) then idx_prev=0 do ii=1,me%M2D_Prop%Nb_labelMC do nb_e=1,me%label%MC_Arr(ii)%NbElem elem=me%label%MC_Arr(ii)%array(nb_e) me%M2D_Prop%thermS(idx_prev+nb_e)%p%TempS=me%StVar%temp(elem) do i = 1, size(me%label%regionArr) if(trim(me%M2D_Prop%elem(elem)%PhysE)==trim(me%label%regionArr(i)%id)) then cp=me%label%regionArr(i)%mat%heat_capacity(me%StVar%temp(elem)) dcpdT=me%label%regionArr(i)%mat%heat_capacity_der(me%StVar%temp(elem)) ro=me%label%regionArr(i)%mat%density lambdS = me%label%regionArr(i)%mat%thermal_conductivity(me%StVar%temp(elem)) DerlambdS = me%label%regionArr(i)%mat%thermal_conductivity_der(me%StVar%temp(elem)) exit endif enddo me%M2D_Prop%thermS(idx_prev+nb_e)%p%cpS = cp me%M2D_Prop%thermS(idx_prev+nb_e)%p%dcpSdT = dcpdT me%M2D_Prop%thermS(idx_prev+nb_e)%p%lambdS = lambdS me%M2D_Prop%thermS(idx_prev+nb_e)%p%DerlambdS = DerlambdS me%M2D_Prop%thermS(idx_prev+nb_e)%p%rhoS = ro me%M2D_Prop%thermS(idx_prev+nb_e)%p%Dist4Grad = me%M2D_Prop%elem(elem)%Delta(3) ! 3 forced here because 2 direct neighbors expected per 2D cell - Check is done during preprocessing me%M2D_Prop%thermS(idx_prev+nb_e)%p%LengthCont = me%M2D_Prop%elem(elem)%face(3) ! 3 forced here because 2 direct neighbors expected per 2D cell - Check is done during preprocessing me%M2D_Prop%thermS(idx_prev+nb_e)%p%SurfS = me%M2D_Prop%elem(elem)%surface enddo idx_prev=idx_prev+me%label%MC_Arr(ii)%NbElem enddo endif end subroutine mesh2Ds_SS_src_port_comm