class LoadControl : public StaticIntegrator


Inheritance:


Public Methods

LoadControl(double deltaLambda, int numIncr, double minLambda, double maxlambda)
~LoadControl()
int newStep(void)
int update(const Vector &deltaU)
int setDeltaLambda(double newDeltaLambda)
int sendSelf(int commitTag, Channel &theChannel)
int recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker)
void Print(ostream &s, int flag =0)

Inherited from StaticIntegrator:

Public Methods

virtual int formEleTangent(FE_Element *theEle)
virtual int formEleResidual(FE_Element *theEle)
virtual int formNodTangent(DOF_Group *theDof)
virtual int formNodUnbalance(DOF_Group *theDof)

Inherited from IncrementalIntegrator:

Public Methods

virtual void setLinks(AnalysisModel &theModel, LinearSOE &theSOE)
virtual int formTangent(void)
virtual int formUnbalance(void)
virtual int commit(void)
virtual int getLastResponse(Vector &result, const ID &id)

Protected Methods

LinearSOE* getLinearSOEPtr(void) const
AnalysisModel* getAnalysisModelPtr(void) const
virtual int formNodalUnbalance(void)
virtual int formElementResidual(void)

Documentation

LoadControl is a subclass of StaticIntegrator, it is used to when performing a static analysis on the FE_Model using the load control method. In the load control method, the following constraint equation is added to equation~\ref{staticFormTaylor} of the StaticIntegrator class:



where \delta \lambda_n depends on \delta \lambda_{n-1}, the load increment at the previous time step, J_{n-1}, the number of iterations required to achieve convergence in the previos load step, and Jd, the desired number of iteraions. \delta \lambda_n is bounded by \delta \lambda_{min} and \delta \lambda_{max}.

LoadControl(double deltaLambda, int numIncr, double minLambda, double maxlambda)

~LoadControl()

Does nothing

int newStep(void)

The object obtains the current value of \lambda from the AnalysisModel object. It increments this by \delta \lambda_n .



It will then invoke applyLoadDomain(0.0, \lambda) on the AnalysisModel object. Returns 0 if successful. A warning message is printed and a -1 is returned if no AnalysisModel is associated with the object.

int update(const Vector &deltaU)

Invoked this causes the object to first increment the DOF_Group displacements with \Delta U, by invoking incrDisp(\Delta U) on the AnalysisModel, and then to update the domain, by invoking updateDomain() on the AnalysisModel. Returns 0 if successful, a warning message and a -1 is returned if no AnalysisModel is associated with the object.

int setDeltaLambda(double newDeltaLambda)

Sets the value of the load increment in newStep() to be \delta \lambda. Returns 0.

int sendSelf(int commitTag, Channel &theChannel)

Places in a vector if size 5 the value of \delta \lambda_{n-1}, Jd, J_{n-1}, \delta \lambda_{min} and \delta \lambda_{max}) and then sends the Vector. Returns 0 if successful, a warning message is printed and a -1 is returned if theChannel fails to send the Vector.

int recvSelf(int commitTag, Channel &theChannel, FEM_ObjectBroker &theBroker)

Receives in a Vector of size 5 the data that was sent in sendSelf(). Returns 0 if successful, a warning message is printed, \delta \lambda is set to 0, and a -1 is returned if theChannel fails to receive the Vector.

void Print(ostream &s, int flag =0)

The object sends to s its type, the current value of \lambda, and \delta \lambda


This class has no child classes.

alphabetic index Contents

this page has been generated automatically by a slightly modified version of doc++ for OpenSees

Copyright Contact Us