%File: ~/OOP/system_of_eqn/linearSOE/ProfileSPD/ProfileSPDLinSolver.tex
%What: "@(#) ProfileSPDLinSolver.tex, revA"

\noindent {\bf ProfileSPDLinSolver} \\

\noindent {\bf Files}   \\
\indent \#include $<\tilde{ }$ProfileSPDLinSolver.h$>$  \\

\noindent {\bf Class Decleration}  \\
\indent class ProfileSPDLinSolver: public LinearSOESolver  \\

\noindent {\bf Class Hierarchy} \\
\indent  Solver \\
\indent\indent LinearSOESolver \\
\indent\indent\indent {\bf ProfileSPDLinSolver} \\

\noindent {\bf Description}  \\
\indent ProfileSPDLinSolver is an abstract class.  The ProfileSPDLinSolver
class provides access for each subclass to the ProfileSPDLinSOE object
through the pointer {\em theSOE}, which is a protected pointer. \\

\noindent {\bf Interface}  \\
\indent\indent // Constructor \\
\indent\indent {\em ProfileSPDLinSolver(int classTag);}  \\ \\
\indent\indent // Destructor \\
\indent\indent {\em virtual~ $\tilde{}$ProfileSPDLinSolver();}\\  \\
\indent\indent // Public Methods \\
\indent\indent {\em virtual int setLinearSOE(ProfileSPDLinSOE \&theSOE);} \\

\noindent {\bf Constructor}  \\
\indent {\em ProfileSPDLinSolver(int classTag);}  \\
The integer {\em classTag} is passed to the LinearSOESolver classes
constructor. \\ 

\noindent {\bf Destructor} \\
\indent {\em virtual~ $\tilde{}$ProfileSPDLinSolver();}\\ 
Does nothing, provided so the subclasses destructor will be called. \\

\noindent {\bf Public Methods }  \\
\indent {\em virtual int setLinearSOE(ProfileSPDLinSOE \&theSOE);} \\
The method sets up the link between the ProfileSPDLinSOE object and the
ProfileSPDLinSolver, that it is sets the pointer the subclasses use.  \\