Class: RunEnergyPlusMeasures

Inherits:
OpenStudio::Workflow::Job show all
Includes:
OpenStudio::Workflow::Util::Measure, OpenStudio::Workflow::Util::Model
Defined in:
lib/openstudio/workflow/jobs/run_ep_measures.rb

Overview

This class runs all EnergyPlus measures defined in the OSW

Instance Method Summary collapse

Methods included from OpenStudio::Workflow::Util::Model

#load_idf, #load_osm, #save_idf, #save_osm, #translate_to_energyplus

Methods included from OpenStudio::Workflow::Util::Measure

#add_result_measure_info, #apply_arguments, #apply_arguments_2, #apply_measure, #apply_measures, #validate_measures

Constructor Details

#initialize(input_adapter, output_adapter, registry, options = {}) ⇒ RunEnergyPlusMeasures

Returns a new instance of RunEnergyPlusMeasures.



26
27
28
# File 'lib/openstudio/workflow/jobs/run_ep_measures.rb', line 26

def initialize(input_adapter, output_adapter, registry, options = {})
  super
end

Instance Method Details

#performObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
# File 'lib/openstudio/workflow/jobs/run_ep_measures.rb', line 30

def perform
  @logger.debug "Calling #{__method__} in the #{self.class} class"
  
  # halted workflow is handled in apply_measures

  # Ensure output_attributes is initialized in the registry
  @registry.register(:output_attributes) { {} } unless @registry[:output_attributes]

  # Apply the EnergyPlus measures
  @options[:output_adapter] = @output_adapter
  @logger.info 'Beginning to execute EnergyPlus measures.'
  apply_measures('EnergyPlusMeasure'.to_MeasureType, @registry, @options)
  @logger.info('Finished applying EnergyPlus measures.')

  # Send the measure output attributes to the output adapter
  @logger.debug 'Communicating measure output attributes to the output adapter'
  @output_adapter.communicate_measure_attributes @registry[:output_attributes]

  # Save both the OSM and IDF if the :debug option is true
  return nil unless @options[:debug]
  @registry[:time_logger].start('Saving IDF') if @registry[:time_logger]
  idf_name = save_idf(@registry[:model_idf], @registry[:root_dir])
  @registry[:time_logger].stop('Saving IDF') if @registry[:time_logger]
  @logger.debug "Saved IDF as #{idf_name}"

  nil
end