LoadPath

#include <analysis/integrator/LoadPath.h>

LoadPath is a subclass of StaticIntegrator, it is used to when performing a static analysis on the FE_Model using a user specified load path. The load path is specified in a Vector, path, to the objects constructor and at each step in the analysis:

\[ \lambda_n^{(i)} - \lambda_{n-1} = \texttt{path}[n] - \texttt{path}[n-1] \]

Knowing \(\lambda_n^{(i)} = path(n)\) prior to each iteration, the \(N+1\) unknowns in equation staticFormTaylor, is reduced to \(N\) unknowns and results in the following equation:

\[\boldsymbol{r}(\boldsymbol{u}_{n}) = \lambda_n^{(i)} \boldsymbol{p}_f - \boldsymbol{p}_{\sigma}\left(\boldsymbol{u}_{n}^{(i)} \right) - \boldsymbol{K}_n^{(i)} (\boldsymbol{u}_{n} - \boldsymbol{u}_{n}^{(i)}) \label{staticFormLoadPath}\]

Methods

A vector object path is created which is a copy of loadPath and an index into this vector is set to \(0\).

The integer INTEGRATOR_TAGS_LoadPath (defined in <classTags.h>) is passed to the StaticIntegrator classes constructor. No vector object is created. Provided for the FEM_ObjectBroker to create a blank object, recvSelf() should be invoked on this object.


Invokes the destructor on the vector path.


The object obtains the current value of \(\lambda\) from the path vector using the current index. The index is then incremented by \(1\). If the index is greater than the size of path, \(\lambda\) is set to \(0\) and an error message is printed. 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 &$\Delta U$);

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 Print(OPS_Stream &s, int flag = 0);

The object sends to \(s\) its type, the current value of \(\lambda\).