##
Dense Vector Data Structure

The vdata`psb_T_vect_type` data structure encapsulates the dense vectors in a way similar to sparse matrices, i.e. including a base type vbasedata`psb_T_base_vect_type`. The user will not, in general, access the vector components directly, but rather via the routines of sec. 6. Among other simple things, we define here an extraction method that can be used to get a full copy of the part of the vector stored on the local process.

The type declaration is shown in figure 5 where `T` is a placeholder for the data type and precision variants

I
  Integer;
S
  Single precision real;
D
  Double precision real;
C
  Single precision complex;
Z
  Double precision complex.

The actual data is contained in the polymorphic component `v%v`; the separation between the application and the actual data is essential for cases where it is necessary to link to data storage made available elsewhere outside the direct control of the compiler/application, e.g. data stored in a graphics accelerator's private memory.

Figure 5: The PSBLAS defined data type that contains a dense vector.

      type psb_T_base_vect_type
        TYPE(KIND_), allocatable :: v(:)
      end type psb_T_base_vect_type

      type psb_T_vect_type
        class(psb_T_base_vect_type), allocatable :: v
      end type  psb_T_vect_type

Subsections

- Vector Methods
- get_nrows -- Get number of rows in a dense vector
- sizeof -- Get memory occupation in bytes of a dense vector
- set -- Set contents of the vector
- get_vect -- Get a copy of the vector contents
- clone -- Clone current object