class Pulo::Pipeline

Attributes

cost[R]
flow[R]
flow_velocity[R]
friction_gradient[R]
friction_head[R]
hydraulic_power[R]
inlet_pressure[R]
inside_cylinder[R]
length[R]
mass[R]
outlet_pressure[R]
outside_cylinder[R]
pipe_type[R]
static_head[R]
total_head[R]
wall_area[R]
wall_density[R]
wall_thickness[R]
wall_volume[R]

Public Class Methods

new(args) click to toggle source
# File lib/pulo/machine/hydraulics/pipe.rb, line 36
def initialize(args)

  @pipe_type_ref=args[:pipe]
  @pipe_type=PipeTypes.new().pipe_types[@pipe_type_ref]

  @length=args[:length]
  @cost=@length*@pipe_type[:unit_cost]/@pipe_type[:unit_length]
  @inside_cylinder=Cylinder.new(diameter: @pipe_type[:id], length: @length)
  @outside_cylinder=Cylinder.new(diameter: @pipe_type[:od], length: @length)
  @wall_thickness=@outside_cylinder.radius-@inside_cylinder.radius
  @wall_area=@outside_cylinder.area-@inside_cylinder.area
  @wall_volume=@outside_cylinder.volume-@inside_cylinder.volume
  @mass=@wall_volume*@pipe_type[:density]

  args[:static_head] ? @static_head=args[:static_head] : @static_head=Length.meters(0)
  args[:inlet_pressure] ? @inlet_pressure=args[:inlet_pressure] : @inlet_pressure=Pressure.pascals(0)
  args[:outlet_pressure] ? @outlet_pressure=args[:outlet_pressure] : @outlet_pressure=Pressure.pascals(0)
  @pressure_head=(@outlet_pressure-@inlet_pressure)/(Water.standard_density*Acceleration.standard_gravity)
end

Public Instance Methods

flow=(val) click to toggle source
# File lib/pulo/machine/hydraulics/pipe.rb, line 56
def flow=(val)
  @flow=val
  @flow_velocity=@flow/inside_cylinder.area
  head_for_flow()
  @hydraulic_power=((@flow*Water.standard_density)*Acceleration.standard_gravity)*@total_head
end
head_for_flow() click to toggle source
# File lib/pulo/machine/hydraulics/pipe.rb, line 63
def head_for_flow()
  k=(@pipe_type[:Chw]**1.85)*@inside_cylinder.face.diameter.meters.value**4.87
  @friction_gradient=Dimensionless.n(10.67*@flow.cubic_meter_per_second.value**1.85/k)
  @friction_head=@length * @friction_gradient
  @total_head=@friction_head+@static_head+@pressure_head
end