source_from_SS_src_ports_self_mesh2D Subroutine

public subroutine source_from_SS_src_ports_self_mesh2D(me, dt)

Arguments

Type IntentOptional Attributes Name
type(mesh2D_t), intent(inout) :: me
real(kind=dp), intent(in) :: dt

Called by

proc~~source_from_ss_src_ports_self_mesh2d~~CalledByGraph proc~source_from_ss_src_ports_self_mesh2d source_from_SS_src_ports_self_mesh2D proc~main_loop main_loop proc~main_loop->proc~source_from_ss_src_ports_self_mesh2d program~reims_p reims_p program~reims_p->proc~main_loop

Source Code

subroutine source_from_SS_src_ports_self_mesh2D(me,dt)
  type(mesh2D_t), intent(inout) :: me
  real(dp), intent(in) :: dt

  real(dp) :: VarcentS,DerVarcentS,dt_Vi
  integer :: ii,idx_prev,nb_e,elem

  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)

        dt_Vi=dt/me%M2D_Prop%elem(elem)%surface
        VarcentS=1.0_dp/(me%M2D_Prop%thermS(idx_prev+nb_e)%p%rhoS*me%M2D_Prop%thermS(idx_prev+nb_e)%p%cpS)
        DerVarcentS=-me%M2D_Prop%thermS(idx_prev+nb_e)%p%dcpSdT/&
                    (me%M2D_Prop%thermS(idx_prev+nb_e)%p%rhoS*me%M2D_Prop%thermS(idx_prev+nb_e)%p%cpS*&
                    me%M2D_Prop%thermS(idx_prev+nb_e)%p%cpS)

        me%big%bmx(elem)=me%big%bmx(elem)+dt_Vi*DerVarcentS*me%M2D_Prop%thermS(idx_prev+nb_e)%p%Flx+ &
                         dt_Vi*VarcentS*me%M2D_Prop%thermS(idx_prev+nb_e)%p%derFlx_derCon

        me%big%bvx(elem)=me%big%bvx(elem)-dt_Vi*VarcentS*me%M2D_Prop%thermS(idx_prev+nb_e)%p%Flx
      enddo
      idx_prev=idx_prev+me%label%MC_Arr(ii)%NbElem
    enddo
  endif

end subroutine source_from_SS_src_ports_self_mesh2D