OOF2: The Manual


PropertyOutputInit — Initialize Property Outputs

C++ Synopsis

#include "SRC/engine/IO/propertyoutput.h"

class PropertyOutputInit {
  virtual OutputVal* operator()(const PropertyOutput* po,
                                const FEMesh* mesh,
                                const Element* element,
                                const MasterCoord& coordconst = 0;


class ScalarPropertyOutputInit: , public PropertyOutputInit {

class ThreeVectorPropertyOutputInit: , public PropertyOutputInit {

class SymmMatrix3PropertyOutputInit: , public PropertyOutputInit {


Source Files

  • SRC/engine/IO/propertyoutput.C: C++ source code
  • SRC/engine/IO/propertyoutput.h: C++ header file
  • SRC/engine/IO/propertyoutput.swg: SWIG source code


The subclasses of PropertyOutputInit are used to initialize the computation of Property Outputs. PropertyOutputInit objects are passed to the PropertyOutputRegistration constructor when a Property Output is defined. The classes listed above are used automatically when the PropertyOutputRegistration doesn't explicitly specify an initializer — they all initialize the data to zero. Non-trivial initialization can be obtained by creating further subclasses and overriding operator(). See SRC/engine/cstrain.C for an example.

PropertyOutputInit classes should be written in C++, and their constructors should be swigged.

The arguments to operator() are:

const PropertyOutput *po

A PropertyOutput object describing the output that's being computed. It should be used just like it's used in Property::output().

const FEMesh *mesh

The FEMesh on which the data is to be computed.

const Element *element

The Element containing the point at which the data is to be computed.

const MasterCoord &pos

The point at which the data is to be computed, given in the Element's master space coordinates.

operator() must return a pointer to a new OutputVal object of the appropriate type. The pointer will be deallocated elsewhere.