imposed_mass_flow_rate Function

public function imposed_mass_flow_rate(me, dPres, mdot0, dp0)

Arguments

Type IntentOptional Attributes Name
type(circulator_t), intent(inout) :: me
real(kind=dp), intent(in) :: dPres
real(kind=dp), intent(in) :: mdot0
real(kind=dp), intent(in), optional :: dp0

Return Value real(kind=dp)


Called by

proc~~imposed_mass_flow_rate~~CalledByGraph proc~imposed_mass_flow_rate imposed_mass_flow_rate proc~circulator_resolution_from_and_to_ports circulator_resolution_from_and_to_ports proc~circulator_resolution_from_and_to_ports->proc~imposed_mass_flow_rate proc~main_loop main_loop proc~main_loop->proc~circulator_resolution_from_and_to_ports program~reims_p reims_p program~reims_p->proc~main_loop

Source Code

function imposed_mass_flow_rate(me,dPres,mdot0,dp0)
    type(circulator_t), intent(inout) :: me
    real(dp), intent(in) :: dPres,mdot0
    real(dp), intent(in), optional :: dp0
    real(dp) :: imposed_mass_flow_rate,eps
    
    if(me%SubType=="pump") then
        imposed_mass_flow_rate=mdot0
    else if(me%SubType=="compressor") then
        eps=1.0e-3_dp  
        if(dPres<=0.0_dp) then
            imposed_mass_flow_rate=mdot0
        else if(dPres>=dp0) then
            imposed_mass_flow_rate=eps*mdot0 !0.0_dp
        else
            imposed_mass_flow_rate=mdot0*(1.0_dp-(dPres/dp0)**2)
        endif
    endif
end function imposed_mass_flow_rate