OOF2: The Manual
Name
TwoVectorField —
A two dimensional vector-valued Field object
Synopses
Only functions relevant to people writing OOF2 extensions
are listed here. Base class functions are described in the
Field
and CompoundField documentation.
C++ Synopsis
#include "engine/field.h"class TwoVectorField: , public CompoundField {TwoVectorHelper operator()(const FuncNode* node) const;TwoVectorHelper operator()(const FuncNode& node) const;TwoVectorHelper operator()(const ElementFuncNodeIterator& node) const;
}
Python Synopsis
from oof2.SWIG.engine.field import TwoVectorFieldclass TwoVectorField(CompoundField):def __init__(self, name)
Description
TwoVectorField is a Field whose value
is a two dimensional (in-plane) vector at every point in a
Mesh. TwoVectorFields should always
be constructed in Python (see Section 8.1). The constructor has a
single argument, which is the name of the Field.
When a TwoVectorField is constructed,
its out-of-plane
part will be constructed automatically. The
out-of-plane part of a 2-vector field is a 3-vector: the
three dimensional gradient of its z
component. The name of the out-of-plane part is constructed
by appending _z to the name of the
in-plane part.
Constructing a TwoVectorField and
passing it to problem.advertise()
makes it available for future use. It does
not automatically define or
activate
the Field.
It is not necessary to keep an explicit reference to a newly
constructed TwoVectorField. All
Fields are automatically stored in the list-like object
oof2.SWIG.engine.field.allFields.
Methods
Methods defined in the base classes are not mentioned here.
TwoVectorHelper operator()(...)
TwoVectorHelper operator()(const FuncNode* node) const; TwoVectorHelper operator()(const FuncNode& node) const; TwoVectorHelper operator()(const ElementFuncNodeIterator& node) const;
These functions are provided as a convenient way of getting
and setting the value of a
TwoVectorField on a Node. (Setting any
Field value manually is not
recommended -- let the OOF2 field initialization and
solving routines do it for you.) The
TwoVectorHelper class translates
Field values into Coord
values, and is meant to be completely transparent to the
programmer. It can be used like this:
Field *field = ... Coord x = (*field)(mesh, node); // extract Field value Coord y(1.23, 4.56); (*field)(mesh, node) = y; // set Field value



