The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
Loading...
Searching...
No Matches
Public Member Functions | Public Attributes | List of all members
oft_vector Type Referenceabstract

Detailed Description

Abstract vector class.

Basic class for OFT vectors

Inheritance diagram for oft_vector:
Inheritance graph
[legend]

Public Member Functions

procedure(vec_add), deferred add (self, gamma, alpha, a, beta, b)
 Add vectors.
 
procedure delete (self)
 Delete vector.
 
generic dot (self, a)
 Dot product with a second vector.
 
generic dot (self, a)
 Dot product with a second vector.
 
procedure(vec_dot_cvec), deferred dot_complex (self, a)
 
procedure(vec_dot_vec), deferred dot_real (self, a)
 
procedure(vec_get_local), deferred get_local (self, array, iblock)
 Get local portion of vector.
 
procedure(vec_get_slice), deferred get_slice (self, array, iblock)
 Get locally-owned portion of vector.
 
generic mdot (self, a, n)
 Dot product with a set of vectors.
 
generic mdot (self, a, n)
 Dot product with a set of vectors.
 
procedure(vec_mdot_cvec), deferred mdot_complex (self, a, n)
 
procedure(vec_mdot_vec), deferred mdot_real (self, a, n)
 
procedure(vec_mult), deferred mult (self, a, div_flag)
 Multiply vectors element by element.
 
generic new (self, new)
 Create a new vector as a bare copy.
 
generic new (self, new)
 Create a new vector as a bare copy.
 
procedure(vec_new_cvec), deferred new_complex (self, new)
 
procedure(vec_new_vec), deferred new_real (self, new)
 
procedure(vec_norm), deferred norm (self, itype)
 Norm of vector.
 
procedure(vec_restore_local), deferred restore_local (self, array, iblock, add, wait)
 Restore local portion of vector.
 
procedure(vec_restore_slice), deferred restore_slice (self, array, iblock, wait)
 Restore locally-owned portion of vector.
 
procedure(vec_scale), deferred scale (self, alpha)
 Scale vector by a scalar.
 
procedure(vec_set), deferred set (self, alpha, iblock, random)
 Set all elements to a scalar.
 
procedure(vec_stitch), deferred stitch (self, up_method)
 Perform global sitching.
 
procedure(vec_sum), deferred sum (self)
 Sum reduction over vector.
 

Public Attributes

type(oft_map), dimension(:), pointer map => NULL()
 Block mapping.
 
integer(i4n = -1
 Local size of vector.
 
integer(i4nblocks = 1
 Number of blocks.
 
integer(i8ng = -1
 Gobal size of vector.
 
integer(i4nslice = -1
 Number of locally-owned values.
 
type(oft_seam), pointer stitch_info => NULL()
 Seam information.
 

Member Function/Subroutine Documentation

◆ add()

procedure(vec_add), deferred add ( class(oft_vector), intent(inout)  self,
real(r8), intent(in)  gamma,
real(r8), intent(in)  alpha,
class(oft_vector), intent(inout), target  a,
real(r8), intent(in), optional  beta,
class(oft_vector), intent(inout), optional, target  b 
)
pure virtual

Add vectors.

Parameters
[in,out]selfVector object
[in]gammaScale of source vector
[in]alphaScale of first vector
[in,out]aFirst vector to add
[in]betaScale of second vector (optional)
[in,out]bSecond vector to add (optional)

◆ delete()

procedure delete ( class(oft_vector), intent(inout)  self)

Delete vector.

Note
This subroutine is a dummy routine used to specify the interface of the member function and catch errors in uninitialized vectors

◆ dot() [1/2]

generic dot ( class(oft_vector), intent(inout)  self,
class(oft_cvector), intent(inout), target  a 
)

Dot product with a second vector.

Parameters
[in,out]selfVector object
[in,out]aSecond vector for dot product
Returns
dot(self,a)

◆ dot() [2/2]

generic dot ( class(oft_vector), intent(inout)  self,
class(oft_vector), intent(inout), target  a 
)

Dot product with a second vector.

Parameters
[in,out]selfVector object
[in,out]aSecond vector for dot product
Returns
dot(self,a)

◆ dot_complex()

procedure(vec_dot_cvec), deferred dot_complex ( class(oft_vector), intent(inout)  self,
class(oft_cvector), intent(inout), target  a 
)
pure virtual
Parameters
[in,out]selfVector object
[in,out]aSecond vector for dot product
Returns
dot(self,a)

◆ dot_real()

procedure(vec_dot_vec), deferred dot_real ( class(oft_vector), intent(inout)  self,
class(oft_vector), intent(inout), target  a 
)
pure virtual
Parameters
[in,out]selfVector object
[in,out]aSecond vector for dot product
Returns
dot(self,a)

◆ get_local()

procedure(vec_get_local), deferred get_local ( class(oft_vector), intent(inout)  self,
real(r8), dimension(:), intent(inout), pointer  array,
integer(i4), intent(in), optional  iblock 
)
pure virtual

Get local portion of vector.

Parameters
[in,out]selfVector object
[in,out]arrayLocal values
[in]iblockSub-block to retrieve

◆ get_slice()

procedure(vec_get_slice), deferred get_slice ( class(oft_vector), intent(inout)  self,
real(r8), dimension(:), intent(inout), pointer  array,
integer(i4), intent(in), optional  iblock 
)
pure virtual

Get locally-owned portion of vector.

Parameters
[in,out]selfVector object
[in,out]arraySlice values
[in]iblockSub-block to retrieve

◆ mdot() [1/2]

generic mdot ( class(oft_vector), intent(inout)  self,
type(oft_cvector_ptr), dimension(n), intent(inout)  a,
integer(i4), intent(in)  n 
)

Dot product with a set of vectors.

Parameters
[in,out]selfVector object
[in,out]aArray of vectors for dot product [n]
[in]nLength of vector array
Returns
\( \sum_i self_i a(j)_i \)

◆ mdot() [2/2]

generic mdot ( class(oft_vector), intent(inout)  self,
type(oft_vector_ptr), dimension(n), intent(inout)  a,
integer(i4), intent(in)  n 
)

Dot product with a set of vectors.

Parameters
[in,out]selfVector object
[in,out]aArray of vectors for dot product [n]
[in]nLength of vector array
Returns
\( \sum_i self_i a(j)_i \)

◆ mdot_complex()

procedure(vec_mdot_cvec), deferred mdot_complex ( class(oft_vector), intent(inout)  self,
type(oft_cvector_ptr), dimension(n), intent(inout)  a,
integer(i4), intent(in)  n 
)
pure virtual
Parameters
[in,out]selfVector object
[in,out]aArray of vectors for dot product [n]
[in]nLength of vector array
Returns
\( \sum_i self_i a(j)_i \)

◆ mdot_real()

procedure(vec_mdot_vec), deferred mdot_real ( class(oft_vector), intent(inout)  self,
type(oft_vector_ptr), dimension(n), intent(inout)  a,
integer(i4), intent(in)  n 
)
pure virtual
Parameters
[in,out]selfVector object
[in,out]aArray of vectors for dot product [n]
[in]nLength of vector array
Returns
\( \sum_i self_i a(j)_i \)

◆ mult()

procedure(vec_mult), deferred mult ( class(oft_vector), intent(inout)  self,
class(oft_vector), intent(inout), target  a,
logical, intent(in), optional  div_flag 
)
pure virtual

Multiply vectors element by element.

Parameters
[in,out]selfVector object
[in,out]avector for multiplication
[in]div_flagDivide instead of multiply?

◆ new() [1/2]

generic new ( class(oft_vector), intent(in)  self,
class(oft_cvector), intent(out), pointer  new 
)

Create a new vector as a bare copy.

Parameters
[in]selfVector object
[out]newNew vector

◆ new() [2/2]

generic new ( class(oft_vector), intent(in)  self,
class(oft_vector), intent(out), pointer  new 
)

Create a new vector as a bare copy.

Parameters
[in]selfVector object
[out]newNew vector

◆ new_complex()

procedure(vec_new_cvec), deferred new_complex ( class(oft_vector), intent(in)  self,
class(oft_cvector), intent(out), pointer  new 
)
pure virtual
Parameters
[in]selfVector object
[out]newNew vector

◆ new_real()

procedure(vec_new_vec), deferred new_real ( class(oft_vector), intent(in)  self,
class(oft_vector), intent(out), pointer  new 
)
pure virtual
Parameters
[in]selfVector object
[out]newNew vector

◆ norm()

procedure(vec_norm), deferred norm ( class(oft_vector), intent(inout)  self,
integer(i4), intent(in)  itype 
)
pure virtual

Norm of vector.

Parameters
[in,out]selfVector object
[in]itypeType of norm (1-> 1-norm, 2-> 2-norm, 3-> Inf-norm)
Returns
Specified norm of vector

◆ restore_local()

procedure(vec_restore_local), deferred restore_local ( class(oft_vector), intent(inout)  self,
real(r8), dimension(:), intent(in)  array,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  add,
logical, intent(in), optional  wait 
)
pure virtual

Restore local portion of vector.

Parameters
[in,out]selfVector object
[in]arrayLocal values
[in]iblockSub-block to restore
[in]addAdd values instead of replace
[in]waitWait to perform global sync

◆ restore_slice()

procedure(vec_restore_slice), deferred restore_slice ( class(oft_vector), intent(inout)  self,
real(r8), dimension(:), intent(in)  array,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  wait 
)
pure virtual

Restore locally-owned portion of vector.

Parameters
[in,out]selfVector object
[in]arraySlice values
[in]iblockSub-block to restore
[in]waitWait to perform global sync?

◆ scale()

procedure(vec_scale), deferred scale ( class(oft_vector), intent(inout)  self,
real(r8), intent(in)  alpha 
)
pure virtual

Scale vector by a scalar.

Parameters
[in,out]selfVector object
[in]alphaScale factor

◆ set()

procedure(vec_set), deferred set ( class(oft_vector), intent(inout)  self,
real(r8), intent(in)  alpha,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  random 
)
pure virtual

Set all elements to a scalar.

Parameters
[in,out]selfVector object
[in]alphaUpdated vector value
[in]iblockVector sub-block to act on
[in]randomSet to random number, if true alpha is ignored (optional)

◆ stitch()

procedure(vec_stitch), deferred stitch ( class(oft_vector), intent(inout)  self,
integer(i4), intent(in)  up_method 
)
pure virtual

Perform global sitching.

Parameters
[in,out]selfVector object
[in]up_methodType of stitching to perform

◆ sum()

procedure(vec_sum), deferred sum ( class(oft_vector), intent(inout)  self)
pure virtual

Sum reduction over vector.

Parameters
[in,out]selfVector object
Returns
Sum of vector elements

Member Data Documentation

◆ map

type(oft_map), dimension(:), pointer map => NULL()

Block mapping.

◆ n

integer(i4) n = -1

Local size of vector.

◆ nblocks

integer(i4) nblocks = 1

Number of blocks.

◆ ng

integer(i8) ng = -1

Gobal size of vector.

◆ nslice

integer(i4) nslice = -1

Number of locally-owned values.

◆ stitch_info

type(oft_seam), pointer stitch_info => NULL()

Seam information.


The documentation for this type was generated from the following file: