%File: ~/OOP/domain/pattern/UniformExcitation.tex
%What: "@(#) UniformExcitation.tex, revA"

NEEDS FINISHING. \\

\noindent {\bf Files}   \\
\indent \#include $<\tilde{ }$/domain/pattern/UniformExcitation.h$>$  \\

\noindent {\bf Class Declaration}  \\
\indent class UniformExcitation: public EarthquakeLoad  \\

\noindent {\bf Class Hierarchy} \\
\indent TaggedObject \\
\indent MovableObject \\
\indent\indent DomainComponent \\
\indent\indent\indent LoadPattern \\
\indent\indent\indent\indent EarthquakePattern \\
\indent\indent\indent\indent {\bf UniformExcitation} \\

\noindent {\bf Description} \\ 
\indent A UniformExcitation is an object which adds the loads imposed
by a single ground excitation to the model. For a UniformExcitation
this means that the {\em R} matrix at each node will have $1$ column
and all entries but those corresponding to the degree of freedom
direction will be set to $0$, the value for the degree of freedom
direction will be set to $1$.\\

\noindent {\bf Class Interface} \\
\indent // Constructor \\ 
\indent {\em UniformExcitation(GroundMotion \&theMotion, int dof, int tag);}\\ \\
\indent // Destructor \\ 
\indent {\em $\tilde{ }$UniformExcitation();}\\  \\
\indent // Public Methods \\ 
\indent {\em void applyLoad(double time);} \\ 
\indent {\em void Print(OPS_Stream \&s, int flag);}\\
\indent {\em int sendSelf(int commitTag, Channel \&theChannel);}\\
\indent {\em int recvSelf(int commitTag, Channel \&theChannel, 
FEM\_ObjectBroker \&theBroker);}\\

\noindent {\bf Constructor} \\ 
\indent {\em UniformExcitation(GroundMotion \&theMotion, int dof, int tag);}\\ \\
The integers {\em LOAD\_TAG\_UniformExcitation} and {\em classTag} are
passed to the Load classes constructor. \\

\noindent {\bf Destructor} \\
\indent {\em virtual~ $\tilde{}$UniformExcitation();}\\ 
Does nothing. \\

\indent {\em void applyLoad(double time);} \\ 
Checks to see if the number of nodes in the domain has changed, if
there has been a change it invokes {\em setNumColR(1)} and then 
{\em setR(theDof, 0, 1.0)} on each Node. It then invokes the base classes {\em
applyLoad()} method. THIS SHOULD BE CHANGED TO USE LATEST domainChanged().\\

\indent {\em void Print(OPS_Stream \&s, int flag);}\\
Does nothing. NEEDS WORK. \\

\indent {\em int sendSelf(int commitTag, Channel \&theChannel);}\\
Does nothing. NEEDS WORK. \\

\indent {\em int recvSelf(int commitTag, Channel \&theChannel, 
FEM\_ObjectBroker \&theBroker);}\\
Does nothing. NEEDS WORK. 

