OOF2: The Manual
Name
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& coord) const = 0;
}
class ScalarPropertyOutputInit: , public PropertyOutputInit {
}
class ThreeVectorPropertyOutputInit: , public PropertyOutputInit {
}
class SymmMatrix3PropertyOutputInit: , public PropertyOutputInit {
}
Description
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 inProperty::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.