OOF2: The Manual
Name
Equation — Base class for Equations
Synopses
(Only those methods useful when extending OOF2 are listed here.)
C++ Synopsis
#include "engine/equation.h"class Equation {const std::string& name() const;int dim() const;int ndof() const;IteratorP iterator() const;bool is_active(const FEMesh* mesh) const;
}
Description
Equation is the abstract base class for
all Equation objects. Like Fields and
Fluxes,
Equation instances are global objects
— there is one instance of each particular
Equation that is shared among all
meshes. For example, there is only one
Force_Balance
Equation, although many different
meshes may be solving it.
Creating an Equation object does
not mean that it will be solved on a
mesh. Equations are only solved if they have been explicitly
activated
and their Fluxes
depend upon active Fields on
the mesh. Whether or not a Flux
depends on a Field is a
function of the meshes material Properties.
The entire API for Equations is defined
in the base class. The derived classes redefine base class
methods but do not add any new ones of their own, except for
their constructors.
Most OOF2 extensions will probably never need to use an
Equation object explicitly, aside from
possibly creating a new Equation or
checking to see if an Equation is active.
Methods
const std::string& name() const
name returns the name assigned to
the Equation when it was created.
See Section 8.1.
int dim() const, int ndof() const
dim and
ndof are equivalent. They return
the number of components of in the
Equation. For example, the heat
equation has one component, while the in-plane force balance
equation has two.
IteratorP iterator() const
iterator returns an IteratorP
object which can be used to loop over the components of the
Equation.
bool is_active(const FEMesh *mesh) const
is_active indicates whether or not
the Equation is being
solved on the given FEMesh.



