Writing history output data

History output is output defined for a single point or for values calculated for a portion of the model as a whole, such as energy. Depending on the type of output expected, the historyRegions repository contains data from one of the following:

  • a node

  • an element, or a location in an element

  • a region

Note: History data from an analysis cannot contain multiple points.

The output from all history requests that relate to a specified point is collected in one HistoryRegion object. You use the HistoryPoint constructor to create the point. For example,


  odb_HistoryPoint hPoint1(instanceA.elements(0));
 

For a full description of the HistoryPoint command, see HistoryPoint(...).

You then use the HistoryRegion constructor to create a HistoryRegion object:


  odb_HistoryRegion& hr1 = step1.HistoryRegion("ElHist",
                              "output at element", hPoint1);
 

For a full description of the HistoryRegion command, see HistoryRegion(...).

You use the HistoryOutput constructor to add variables to the HistoryRegion object.


  odb_HistoryOutput& ho1 = hr1.HistoryOutput("S11",
				        "one component");
 

Each HistoryOutput object contains a sequence of (frameValue, value) sequences. The HistoryOutput object has a method (addData) for adding data. Each data item is a sequence of (frameValue, value). In a time domain analysis (domain=TIME) the sequence is (stepTime, value). In a frequency domain analysis (domain=FREQUENCY) the sequence is (frequency, value). In a modal domain analysis (domain=MODAL) the sequence is (mode, value).

You add the data values as time and data tuples. The number of data items must correspond to the number of time items. For example,


  ho1.addData(0.001, 0.1);
  
  // or using two sequences

  odb_SequenceFloat timeData;
  odb_SequenceFloat values;
  timeData.append(0.001);
  values.append(0.1);
  ho1.addData(timeData, values);
  
  // or using a sequence of sequences
  odb_SequenceSequenceFloat s11;
  odb_SequenceFloat value1;
  value1.append(0.001);
  value1.append(0.1);
  s11.append(value1);
  ho1.addData(s11);