Parallel Algebra is used to parallelize any type of vectors and matrices.
◆ IndexLayout
Allows communication between distributed vectors and matrices. Note that indices are stored in an std::vector in the moment. This allows fast iteration and memory allocation, if dynamic interfaces are required this may however be slower than a std::list container.
◆ ParallelStorageType
Parallel Storage type The storage type of a vector is used in parallel applications. We assume that the dofs are distributed to the processes in the way that each dof is master on exactly one process and can be a slave (i.e. a local copy) on several other processes. Given the real values of the dofs the different storage type are defined as follows:
- PST_UNDEFINED: no information given
- PST_CONSISTENT: The real value is saved in the master and every slave
- PST_ADDITIVE: The sum over the values in the master and all slaves gives the exact value
- PST_UNIQUE: Same as PST_ADDITIV, but value is zero in all slaves (i.e. master has exact value)
Note, that a Vector can have more than one type. E.g. every unique Vector is additive. Moreover, the Vector being zero everywhere is consistent, additive and unique at the same time. Therefore, the information is given bitwise.
To check, whether a Vector v is in a type one may ask: – v.has_storage_type(PST_CONSISTENT), etc. To change into another type – v.change_storage_type(PST_ADDITIVE)
Enumerator |
---|
PST_UNDEFINED | |
PST_CONSISTENT | |
PST_ADDITIVE | |
PST_UNIQUE | |