xc
Public Member Functions | List of all members
XC::FileDatastore Class Reference

used in the program to store/restore the geometry and state information in the domain at particular instances. More...

#include <FileDatastore.h>

Inheritance diagram for XC::FileDatastore:
Inheritance graph
[legend]
Collaboration diagram for XC::FileDatastore:
Collaboration graph
[legend]

Public Member Functions

 FileDatastore (const std::string &dataBase, Preprocessor &preprocessor, FEM_ObjectBroker &theBroker)
 Constructor. More...
 
 ~FileDatastore (void)
 Destructor. More...
 
std::string getTypeId (void) const
 
int sendMsg (int dbTag, int commitTag, const Message &, ChannelAddress *theAddress=0)
 Prints an error message and returns \(-1\) as not yet implemented.
 
int recvMsg (int dbTag, int commitTag, Message &, ChannelAddress *theAddress=0)
 Prints an error message and returns \(-1\) as not yet implemented.
 
int sendMatrix (int dbTag, int commitTag, const Matrix &, ChannelAddress *theAddress=nullptr)
 Send (write) the matrix. More...
 
int recvMatrix (int dbTag, int commitTag, Matrix &, ChannelAddress *theAddress=nullptr)
 Receive (read) the matrix. More...
 
int sendVector (int dbTag, int commitTag, const Vector &, ChannelAddress *theAddress=nullptr)
 Send (write) the vector. More...
 
int recvVector (int dbTag, int commitTag, Vector &, ChannelAddress *theAddress=nullptr)
 Receive (read) the vector. More...
 
int sendID (int dbTag, int commitTag, const ID &, ChannelAddress *theAddress=nullptr)
 Send (write) the ID. More...
 
int recvID (int dbTag, int commitTag, ID &, ChannelAddress *theAddress=nullptr)
 Receive (read) the ID. More...
 
int createTable (const std::string &tableName, const std::vector< std::string > &columns)
 
int insertData (const std::string &tableName, const std::vector< std::string > &columns, int commitTag, const Vector &)
 
int getData (const std::string &tableName, const std::vector< std::string > &columns, int commitTag, Vector &)
 
int commitState (int commitTag)
 Stores the current state on the database. More...
 
- Public Member Functions inherited from XC::FE_Datastore
 FE_Datastore (const std::string &, Preprocessor &, FEM_ObjectBroker &theBroker)
 Constructor. More...
 
std::string addToProgram (void)
 Return \(nullptr\).
 
int setUpConnection (void)
 
int setNextAddress (const ChannelAddress &otherChannelAddress)
 Return \(0\).
 
ChannelAddressgetLastSendersAddress (void)
 Return \(nullptr\).
 
int sendObj (int commitTag, MovableObject &theObject, ChannelAddress *theAddress=0)
 Call {sendSelf(commitTag, *this, theBroker)} on theObject and return the result. More...
 
int recvObj (int commitTag, MovableObject &theObject, FEM_ObjectBroker &theBroker, ChannelAddress *theAddress=0)
 Call {recvSelf(commitTag, *this, theBroker)} on theObject and return the result. More...
 
int getDbTag (void) const
 To return a unique integer identifier at each call. More...
 
virtual const std::string & getName (void) const
 Returns the name passed as argument to the constructor.
 
virtual bool isDatastore (void) const
 Return true (this channel type IS a Datastore).
 
virtual int restoreState (int commitTag)
 Invoked to restore the state of the domain from a database. More...
 
bool isSaved (int commitTag) const
 Returns true if the state identified by commitTag was previously saved on the database. More...
 
virtual int save (const int &commitTag)
 
virtual int restore (const int &commitTag)
 
- Public Member Functions inherited from XC::Channel
 Channel (CommandEntity *owr=nullptr)
 Constructor.
 
bool checkDbTag (const int &dbTag)
 Check if a dbTag is already used.
 
const IDgetUsedTags (void) const
 Return the list of dbTags already used.
 
void clearDbTags (void)
 Reset used database tags set.
 
int getTag (void) const
 Return the object tag.
 
template<class inputIterator >
int sendObjs (int commitTag, const inputIterator &first, const inputIterator &last, ChannelAddress *theAddress=nullptr)
 Send the objects on interval [first,last).
 
template<class inputIterator >
int recvObjs (int commitTag, const inputIterator &first, const inputIterator &last, FEM_ObjectBroker &, ChannelAddress *theAddress=nullptr)
 Receive an object sequence.
 
- Public Member Functions inherited from CommandEntity
 CommandEntity (CommandEntity *owr=nullptr)
 Default constructor.
 
CommandEntityOwner (void)
 Return a pointer to the object owner.
 
const CommandEntityOwner (void) const
 Return un puntero al objeto propietario de ESTE.
 
const StandardOutputWrappergetStandardOutputWrapper (void) const
 Return the regular output stream wrapper.
 
StandardOutputWrappergetStandardOutputWrapper (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.
 
EntityWithOwneroperator= (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.
 
EntityWithOwnerOwner (void)
 
const EntityWithOwnerOwner (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::FE_Datastore
FEM_ObjectBrokergetObjectBroker (void)
 Returns a pointer to theBroker object passed in the constructor.
 
const PreprocessorgetPreprocessor (void) const
 Returns a pointer to the object preprocessor.
 
PreprocessorgetPreprocessor (void)
 Returns a pointer to the object preprocessor.
 
- Protected Member Functions inherited from XC::Channel
int sendMovable (int commitTag, MovableObject &)
 Send theObject.
 
int receiveMovable (int commitTag, MovableObject &, FEM_ObjectBroker &)
 Receive theObject.
 
- 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 CommandEntityentcmd_cast (boost::any &data)
 
- Protected Attributes inherited from XC::FE_Datastore
int lastDbTag
 
- Static Protected Attributes inherited from EntityWithOwner
static int verbosity = 1
 Object that owns THIS ONE. More...
 

Detailed Description

used in the program to store/restore the geometry and state information in the domain at particular instances.

This information is stored in binary form in files. An FileDatastore object is used in the program to store/restore the geometry and state information in the domain at particular instances. This information is stored in binary form in files. As no standard format is used for the storage of integers and double values, files used to store the data on one type of machine, may not be read by a FileDatastore object on another type of machine where the storage of integers and doubles is different.

For each of the base relations, i.e. Domain, Nodes, Elements, SFreedom_Constraints, MFreedom_Constraints, NodalLoads and ElementalLoads, a separate file is used to store the information. Files are also used for each size of ID, Vector and Matrix stored. At present, Messages are not stored, only ID and Vector objects of size \(<= 200\) can be stored, the max \(noRows * noCols\) of Matrices that can be stored is \(<= 2000\), and only a single relation is created for Matrices which have similar sizes but differing dimensions. The data is stored in the files following the schema outlined previously.

Constructor & Destructor Documentation

◆ FileDatastore()

XC::FileDatastore::FileDatastore ( const std::string &  dataBaseName,
Preprocessor preprocessor,
FEM_ObjectBroker theObjBroker 
)

Constructor.

Opens the files for the domain and base component relations, files have names {name.relation}, and stores the end of file locations. Creates three arrays of file pointers for the ID, Vector and Matrix files and then zeros these arrays. If the files could not be opened, or there is not enough memory for the arrays an error message is printed and the program is terminated.

◆ ~FileDatastore()

XC::FileDatastore::~FileDatastore ( void  )

Destructor.

Each file that is opened is closed and the arrays of file pointers obtained from the heap in the constructor are returned to the heap.

Member Function Documentation

◆ commitState()

int XC::FileDatastore::commitState ( int  commitTag)
virtual

Stores the current state on the database.

Invoked to store the current state of the domain in the database. The integer commitTag is used to identify the state for subsequent calls to restore the information from the database. To return \(0\) if successful, a negative number if not.

The object loops over all the components of the Domain object invoking {sendSelf(commitTag, this)} on each of these objects. Returns \(0\) if successful, a negative number if not. For each domain component that could not send itself a warning message is printed.

Reimplemented from XC::FE_Datastore.

◆ recvID()

int XC::FileDatastore::recvID ( int  dBTag,
int  commitTag,
ID theID,
ChannelAddress theAddress = nullptr 
)
virtual

Receive (read) the ID.

If a file for IDs of this size has not yet been created, an error message is printed and \(-1\) is returned. A sequential search is made in the file to see if information is already stored for a ID with this dbTag and commitTag. If no information is stored a \(-1\) is returned. If information is stored, the information is retrieved and the data in the ID is set. Returns \(0\) if successful.

Implements XC::Channel.

◆ recvMatrix()

int XC::FileDatastore::recvMatrix ( int  dBTag,
int  commitTag,
Matrix theMatrix,
ChannelAddress theAddress = nullptr 
)
virtual

Receive (read) the matrix.

First determines the size of the matrix, \(noRows * noCols\). If a files for matrices of this size has not yet been created, an error message is printed and \(-1\) is returned. A sequential search is made in the file to see if information is already stored for a Matrix with this dbTag and commitTag. If no information is stored a \(-1\) is returned. If information is stored, the information is retrieved and the data in the Matrix is set. returns \(0\) if successful.

Implements XC::Channel.

◆ recvVector()

int XC::FileDatastore::recvVector ( int  dBTag,
int  commitTag,
Vector theVector,
ChannelAddress theAddress = nullptr 
)
virtual

Receive (read) the vector.

If a file for Vectors of this size has not yet been created, an error message is printed and \(-1\) is returned. A sequential search is made in the file to see if information is already stored for a Vector with this dbTag and commitTag. If no information is stored a \(-1\) is returned. If information is stored, the information is retrieved and the data in the Vector is set. Returns \(0\) if successful.

Implements XC::Channel.

◆ sendID()

int XC::FileDatastore::sendID ( int  dBTag,
int  commitTag,
const ID theID,
ChannelAddress theAddress = nullptr 
)
virtual

Send (write) the ID.

//! If a file for IDs of this size has not yet been created, one is created now and the cell in the array of file pointers is set. If file can not be created a warning message is printed and program is terminated. A sequential search is made in the file to see if information is already stored for a ID with this dbTag and commitTag. The data is then written at this location, or eof if no location was found. The end of file location for IDss of this size is updated. If successful \(0\) is returned. A warning message and a negative number is returned if the operation fails: \(-1\) if ID size is too large.

Implements XC::Channel.

◆ sendMatrix()

int XC::FileDatastore::sendMatrix ( int  dBTag,
int  commitTag,
const Matrix theMatrix,
ChannelAddress theAddress = nullptr 
)
virtual

Send (write) the matrix.

First determines the size of the matrix, \(noRows * noCols\). If a files for matrices of this size has not yet been created, one is created now and the cell in the array of file pointers is set. If file can not be created a warning message is printed and program is terminated. A sequential search is made in the file to see if information is already stored for a Matrix with this dbTag and commitTag. The data is then written at this location, or eof if no location was found. The end of file location for Matrices of this size is updated. If successful \(0\) is returned. A warning message and a negative number is returned if the operation fails: \(-1\) if Matrix size is too large.

Implements XC::Channel.

◆ sendVector()

int XC::FileDatastore::sendVector ( int  dBTag,
int  commitTag,
const Vector theVector,
ChannelAddress theAddress = nullptr 
)
virtual

Send (write) the vector.

If a file for Vectors of this size has not yet been created, one is created now and the cell in the array of file pointers is set. If file can not be created a warning message is printed and program is terminated. A sequential search is made in the file to see if information is already stored for a Vector with this dbTag and commitTag. The data is then written at this location, or eof if no location was found. The end of file location for Vectors of this size is updated. If successful \(0\) is returned. A warning message and a negative number is returned if the operation fails: \(-1\) if Vector size is too large.

Implements XC::Channel.


The documentation for this class was generated from the following files: