def add_external_input_coupling(child, input_port = nil, child_port = nil)
      child = fetch_child(child) unless child.is_a?(Model)

      if !input_port.nil? && !child_port.nil?
        input_port = find_or_create_input_port_if_necessary(input_port)
        child_port = child.find_or_create_input_port_if_necessary(child_port)

        _input_couplings[input_port] << child_port
      end
    end
def add_external_input_coupling(child, input_port = nil, child_port = nil)
      child = fetch_child(child) unless child.is_a?(Model)

      if !input_port.nil? && !child_port.nil?
        input_port = find_or_create_input_port_if_necessary(input_port)
        child_port = child.find_or_create_input_port_if_necessary(child_port)

        _input_couplings[input_port] << child_port
      end
    end
TODO Add #detach_input and #detach_output when defined in Quartz
 @deprecated Use {#attach_input} or {#attach} instead.
 Adds an external input coupling (EIC) to self. Establish a relation between
 a self input {Port} and an input {Port} of one of self's children.

 If the ports aren't provided, they will be automatically generated.

 @param child [Model, String, Symbol] the child or its name
 @param input_port [Port, String, Symbol] specify the self input port or
   its name to connect to the child_port.
 @param child_port [Port, String, Symbol] specify the child's input port
   or its name.