PCL Reference Manual > Results Postprocessing Functions > Results Data Registers
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX''">XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX''">   
Results Data Registers
The following sections describe functions used to retrieve and manipulate results data and to provide other utility operations. These functions are used in the implementation of the operations accessed through the form provided when “Results” is selected from the switch bar.
These functions are implemented around the concept of a register. A register can be thought of as an “object”, called a “DataRegister” in the diagram below, that is a collection of data that is identified by an integer. It is used to access results data and the methods used to obtain and manipulate that data. Registers are characterized by the type of data that they contain and how that data is associated with a finite element model entity. Registers support an association that defines the location on a finite element model entity to which the data is applied. This location association can be of the following types: nodal, element nodal, element centroidal, and element distributed. The data types that can be placed in a register are scalars, vectors, or tensors. These data types may represent either real or complex results data. The methods used to obtain and manipulate the data in a register are stored in the database and persist from session to session. The actual register data is extracted and manipulated on request by the functions that make use of registers.
Four families of functions, described in the Data Register Definition Functions, the Data Register Query Functions, the Data Register Operator Functions, and the Results Display Manager sections of this chapter, create, make use of, display the contents of, or manipulate the contents of registers. The functions described by the “Data Register Definition Functions” section are used to specify where results data is to be obtained, how results data is to be manipulated, how registers may be combined, and define any location associations that finite element model entities have with results data. The functions described in the “Data Register Query Functions” section are used to obtain information about the contents of registers. The functions described by the “Data Register Operator Functions” section are used to manipulate the contents of registers. The functions described by the “Results Display Manager” section are used to display results data.
The functions that make use of registers are organized around an internal architecture that is comprised of a procedural interface, a database layer for maintaining the register method attributes, and the register data. The register definitions are maintained in an “object” called the “DrDataDescriptor”. This “DrDataDescriptor” “object” is also stored in the database, allowing this data structure to persist from session to session. The finite element model data of the registers is maintained in an “object” called “DrDataObjects”. The following diagram depicts the architecture underlying the data register functions.
The register functions will generally operate in the following fashion: A call, or a series of calls to the functions used to define registers will be generated by events in the user interface. The register definitions will be stored in the database and in a corresponding register. The “DrDataDescriptor” “object” that contains the definition of the register will be constructed. After the registers are created, calls made to the results display manager functions will display a plot of results data, generate data for an XY plot, or output tabular results. The display manager will determine the finite element model entity domain for the display request and query the specified register for data. If the register does not already hold data for the required domain, it will be generated and held in the “DrDataObject” “object”. As the entities in the display domain are traversed, the “DrDataObject” “object” will provide data as needed for each entity. If at a later time it is determined that the data is no longer needed, the “DrDataObject” “object” will be removed.