xc
|
Specifies a tolerance for the product of unbalanced load vector and 0.5 times the displacement increment vector (energy increment) to be used as convergence criterion on each iteration. More...
#include <CTestEnergyIncr.h>
Public Member Functions | |
CTestEnergyIncr (CommandEntity *owr=nullptr) | |
Default constructor. More... | |
CTestEnergyIncr (CommandEntity *owr, double tol, int maxNumIter, int printFlag, int normType=2) | |
Constructor. More... | |
ConvergenceTest * | getCopy (void) const |
Virtual constructor. | |
virtual std::string | getStatusMsg (const int &flag=1) const |
Returns a message showing the values of the principal parameters. | |
int | test (void) |
Comprueba si se ha producido la convergencia. More... | |
Public Member Functions inherited from XC::ConvergenceTestTol | |
ConvergenceTestTol (CommandEntity *owr, int classTag) | |
Constructor. More... | |
ConvergenceTestTol (CommandEntity *owr, int classTag, double tol, int maxNumIter, int printFlag, int normType, int sz_norms=1) | |
Constructor. More... | |
void | setTolerance (double newTol) |
Sets the tolerance used in test() to be newTol . | |
double | getTolerance (void) const |
Gets the tolerance used in test(). | |
int | sendSelf (Communicator &) |
Send the object. More... | |
int | recvSelf (const Communicator &) |
Receive the object. More... | |
std::string | getRatioMessage (const std::string &) const |
Display current ratio and tolerance. | |
std::string | getDispIncrMessage (void) const |
Display current displacement increment and tolerance. | |
std::string | getUnbalanceMessage (void) const |
Display current unbalance and tolerance. | |
std::string | getEnergyProductMessage (void) const |
Display current energy product and tolerance. | |
Public Member Functions inherited from XC::ConvergenceTest | |
ConvergenceTest (CommandEntity *owr, int classTag) | |
Default constructor. More... | |
ConvergenceTest (CommandEntity *owr, int clasTag, int maxIter, int prtFlg, int normType, int sz_norms=1) | |
Constructor. More... | |
virtual ConvergenceTest * | getCopy (int iterations) const |
Virtual constructor. | |
virtual int | start (void) |
This is invoked at the start of each iteration. More... | |
int | getMaxNumIter (void) const |
void | setMaxNumIter (const int &) |
int | getCurrentIter (void) const |
Return the current iteration number. | |
void | setCurrentIter (const int &) |
Set the current iteration number. | |
int | getPrintFlag (void) const |
void | setPrintFlag (const int &) |
int | getNormType (void) const |
void | setNormType (const int &) |
virtual int | getNumTests (void) const |
virtual int | getMaxNumTests (void) const |
virtual double | getRatioNumToMax (void) const |
virtual const Vector & | getNorms (void) const |
std::string | getTestIterationMessage (void) const |
Returns a string with the name of the class and the iteration number. | |
std::string | getFailedToConvergeMessage (void) const |
Returns a string with the proper failed to converge message. | |
std::string | getDeltaXRMessage (void) const |
Returns a string with the values of x and b vectors. | |
std::string | getDeltaXRNormsMessage (void) const |
Returns a string with the values of x and b vector norms. | |
Public Member Functions inherited from XC::MovableObject | |
MovableObject (int classTag, int dbTag) | |
Constructor. More... | |
MovableObject (int classTag) | |
Constructor. More... | |
MovableObject (const MovableObject &) | |
Copy constructor. Doesn't copy the dbTag. | |
MovableObject & | operator= (const MovableObject &) |
Assignment operator. Doesn't copy the dbTag. | |
int | getClassTag (void) const |
Return the class identifier. | |
int | getDbTag (void) const |
Return the object identifier in the database. | |
int | getDbTag (Communicator &) |
Return the object identifier in the database. | |
void | setDbTag (int dbTag) |
Sets the object identifier in the database. | |
void | setDbTag (Communicator &) |
Sets the object identifier in the database if not already set. More... | |
virtual int | setParameter (const std::vector< std::string > &argv, Parameter ¶m) |
Sets the value param to the parameter argv . | |
virtual int | updateParameter (int parameterID, Information &info) |
Updates the parameter identified by parameterID with info . | |
virtual int | activateParameter (int parameterID) |
Activates the parameter identified by parameterID . | |
virtual int | setVariable (const std::string &variable, Information &) |
Set the value of the variable idenfified by var . | |
virtual int | getVariable (const std::string &variable, Information &) |
Return the value of the variable idenfified by var . | |
Public Member Functions inherited from XC::DistributedBase | |
DistributedBase (void) | |
Constructor. | |
virtual | ~DistributedBase (void) |
Destructor. | |
virtual DbTagData & | getDbTagData (void) const |
Returns a vector to store class dbTags. | |
const int & | getDbTagDataPos (const int &i) const |
Returns the data at the i-th position. | |
void | setDbTagDataPos (const int &i, const int &v) |
Sets the data at the i-th position. | |
void | inicComm (const int &dataSize) const |
Initializes communication. | |
Public Member Functions inherited from CommandEntity | |
CommandEntity (CommandEntity *owr=nullptr) | |
Default constructor. | |
CommandEntity * | Owner (void) |
Return a pointer to the object owner. | |
const CommandEntity * | Owner (void) const |
Return un puntero al objeto propietario de ESTE. | |
const StandardOutputWrapper & | getStandardOutputWrapper (void) const |
Return the regular output stream wrapper. | |
StandardOutputWrapper & | getStandardOutputWrapper (void) |
Return the regular output stream wrapper. | |
const std::string & | getLogFileName (void) const |
Returns log file name. | |
void | setLogFileName (const std::string &) |
Sets log file name. | |
const std::string & | getErrFileName (void) const |
Returns err file name. | |
void | setErrFileName (const std::string &) |
Sets error file name. | |
const std::string & | getOutputFileName (void) const |
Returns regular output file name. | |
void | setOutputFileName (const std::string &) |
Sets regular output file name. | |
boost::python::object | evalPy (boost::python::object dict, const std::string &) |
Return the Python object that results from evaluating the argument. | |
boost::python::object | execPy (boost::python::object dict, const std::string &) |
Return the Python objects that results from executing the code in the string argument. | |
boost::python::object | execFilePy (boost::python::object dict, const std::string &) |
Return the Python object that results from executing the code in the file. | |
Public Member Functions inherited from EntityWithProperties | |
EntityWithProperties (EntityWithProperties *owr=nullptr) | |
Default constructor. | |
virtual bool | operator== (const EntityWithProperties &) const |
Comparison operator. | |
void | clearPyProps (void) |
Clear python properties map. | |
bool | hasPyProp (const std::string &) |
Returns true if property exists. | |
boost::python::object | getPyProp (const std::string &str) |
Return the Python object with the name being passed as parameter. | |
void | setPyProp (std::string str, boost::python::object val) |
Sets/appends a value tho the Python object's dictionary. | |
void | copyPropsFrom (const EntityWithProperties &) |
Copy the properties from the argument. | |
boost::python::list | getPropNames (void) const |
Return the names of the object properties weightings. | |
const PythonDict & | getPropertiesDict (void) const |
Return a std::map container with the properties of the object. | |
boost::python::dict | getPyDict (void) const |
Return a Python dictionary containing the object members values. | |
void | setPyDict (const boost::python::dict &) |
Set the values of the object members from a Python dictionary. | |
Public Member Functions inherited from EntityWithOwner | |
EntityWithOwner (EntityWithOwner *owr=nullptr) | |
Default constructor. | |
EntityWithOwner (const EntityWithOwner &) | |
Copy constructor. | |
EntityWithOwner & | operator= (const EntityWithOwner &) |
Assignment operator. | |
virtual bool | operator== (const EntityWithOwner &) const |
Comparison operator. | |
virtual | ~EntityWithOwner (void) |
Virtual destructor. | |
virtual std::string | getClassName (void) const |
Returns demangled class name. | |
void | set_owner (EntityWithOwner *owr) |
Assigns the owner of the object. | |
EntityWithOwner * | Owner (void) |
const EntityWithOwner * | Owner (void) const |
Additional Inherited Members | |
Public Types inherited from EntityWithProperties | |
typedef std::map< std::string, boost::python::object > | PythonDict |
Static Public Member Functions inherited from CommandEntity | |
static void | resetStandardOutput (void) |
Reset the standard output streams to its defaults buffers. | |
Static Public Member Functions inherited from EntityWithOwner | |
static int | getVerbosityLevel (void) |
Get the value of the verbosity level. | |
static void | setVerbosityLevel (const int &) |
Set the value of the verbosity level. | |
Protected Member Functions inherited from XC::ConvergenceTestTol | |
int | sendData (Communicator &) |
Send object members through the communicator argument. | |
int | recvData (const Communicator &) |
Receives object members through the communicator argument. | |
Protected Member Functions inherited from XC::ConvergenceTest | |
bool | hasLinearSOE (void) const |
Returns true ifpuede acceder al system of equations. | |
LinearSOE * | getLinearSOEPtr (void) |
Returns a pointer to the system of equations. | |
const LinearSOE * | getLinearSOEPtr (void) const |
Returns a const pointer to the system of equations. | |
const Vector & | getX (void) const |
Returns the vector of unknowns. | |
double | getNormX (void) const |
Return the norma del vector of unknowns. | |
const Vector & | getB (void) const |
Return the vector at the right hand side of the equation. | |
double | getNormB (void) const |
Return the norm of the vector at the right hand side of the equation. More... | |
double | getEnergyProduct (void) const |
Returns the the energy increment, which is 0.5 times the absolute value of the product of the rhs and the solution vector of the LinearSOE: |0.5*(x ^ b)|. More... | |
int | sendData (Communicator &) |
Send object members through the communicator argument. | |
int | recvData (const Communicator &) |
Receives object members through the communicator argument. | |
Protected Member Functions inherited from CommandEntity | |
template<class T > | |
void | string_to (T &, const std::string &) const |
Static Protected Member Functions inherited from CommandEntity | |
static CommandEntity * | entcmd_cast (boost::any &data) |
Protected Attributes inherited from XC::ConvergenceTestTol | |
double | tol |
the tol on the energy used to test for convergence | |
Protected Attributes inherited from XC::ConvergenceTest | |
int | currentIter |
number of times test() has been invokes since last start() | |
int | maxNumIter |
max number of iterations | |
int | printFlag |
a flag indicating if to print on test | |
int | nType |
type of norm to use (1-norm, 2-norm, p-norm, max-norm) | |
Vector | norms |
vector to hold the norms | |
double | lastRatio |
Last calculated ratio (if any). | |
double | calculatedNormX |
Last calculated |x|. | |
double | calculatedNormB |
Last calculated |b|. | |
double | calculatedEnergyProduct |
Last calculated |0.5*(x ^ b)|. | |
Static Protected Attributes inherited from EntityWithOwner | |
static int | verbosity = 1 |
Object that owns THIS ONE. More... | |
Specifies a tolerance for the product of unbalanced load vector and 0.5 times the displacement increment vector (energy increment) to be used as convergence criterion on each iteration.
This command is used to construct a convergence test which uses the dot product of the solution vector and norm of the right hand side of the matrix equation to determine if convergence has been reached. The physical meaning of this quantity depends on the integrator and constraint handler chosen. Usually, though not always, it is equal to the energy unbalance in the system.
A CTestEnergyIncr object is an object which can be used in an algorithmic class to test if convergence has been achieved. The CTestEnergyIncr class tests using the energy increment, 0.5 times the absolute value of the dot product of the LinearSOE objects solution and rhs Vectors, and a user specified tolerance value. NOTES:
XC::CTestEnergyIncr::CTestEnergyIncr | ( | CommandEntity * | owr = nullptr | ) |
Default constructor.
owr | object that owns this one. |
XC::CTestEnergyIncr::CTestEnergyIncr | ( | CommandEntity * | owr, |
double | theTol, | ||
int | maxIter, | ||
int | printFlag, | ||
int | normType = 2 |
||
) |
Constructor.
owr | object that owns this one. |
theTol | tolerance used int test(). |
maxIter | max number of iterations to be performed. |
printFlag | what, if anything, is printed on each test.
|
normType | type of norm to use (1-norm, 2-norm, p-norm, max-norm). |
|
virtual |
Comprueba si se ha producido la convergencia.
Returns {currentNumIter} if 0.5 times the absolute value of the dot product of the LinearSOE objects X and B Vectors is less than the tolerance {tol}. If no LinearSOE has been set \(-2\) is returned. If the {currentNumIter} \(>=\) maxNumIter
an error message is printed and \(-2\) is returned. If none of these conditions is met, the {currentnumIter} is incremented and \(-1\) is returned. If the print flag is \(0\) nothing is printed to opserr during the method, if \(1\) the current iteration and norm are printed to std::cerr, and if \(2\) the norm and number of iterations to convergence are printed to std::cerr.
Implements XC::ConvergenceTest.