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

Detailed Description

Native vector class.

Used for implementing global vector operations in OFT

Inheritance diagram for oft_native_vector:
Inheritance graph
[legend]

Public Member Functions

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

Public Attributes

real(r8), dimension(:), pointer, contiguous local_tmp => NULL()
 
type(oft_map), dimension(:), pointer map => NULL()
 Block mapping.
 
integer(i4n = -1
 Local size of field.
 
integer(i4nblocks = 1
 Number of blocks.
 
integer(i8ng = -1
 Gobal size of field.
 
integer(i4nslice = -1
 Local size of field.
 
type(oft_seam), pointer stitch_info => NULL()
 Seam information.
 
real(r8), dimension(:), pointer, contiguous v => NULL()
 Vector values.
 

Member Function/Subroutine Documentation

◆ add() [1/2]

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 virtualinherited

Add fields.

◆ add() [2/2]

procedure add ( class(oft_native_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 
)

Add vectors.

self = \( \gamma \) self + \( \alpha \) a + \( \beta \) b

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

◆ delete() [1/2]

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

Delete field.

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

◆ delete() [2/2]

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

Delete vector.

◆ dot() [1/2]

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

Dot product with a second field.

◆ dot() [2/2]

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

Dot product with a second field.

◆ dot_complex() [1/2]

procedure(vec_dot_cvec), deferred dot_complex ( class(oft_vector), intent(inout)  self,
class(oft_cvector), intent(inout), target  a 
)
pure virtualinherited

◆ dot_complex() [2/2]

procedure dot_complex ( class(oft_native_vector), intent(inout)  self,
class(oft_cvector), intent(inout), target  a 
)

Dot product with a second vector.

Parameters
[in]aSecond vector for dot product
Returns
\( \sum_i self_i a_i \)

◆ dot_real() [1/2]

procedure(vec_dot_vec), deferred dot_real ( class(oft_vector), intent(inout)  self,
class(oft_vector), intent(inout), target  a 
)
pure virtualinherited

◆ dot_real() [2/2]

procedure dot_real ( class(oft_native_vector), intent(inout)  self,
class(oft_vector), intent(inout), target  a 
)

Dot product with a second vector.

Parameters
[in]aSecond vector for dot product
Returns
\( \sum_i self_i a_i \)

◆ get_local() [1/2]

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 virtualinherited

Get local portion of field.

◆ get_local() [2/2]

procedure get_local ( class(oft_native_vector), intent(inout)  self,
real(r8), dimension(:), intent(inout), pointer  array,
integer(i4), intent(in), optional  iblock 
)

Get local portion of field.

Parameters
[in]alphaUpdated field value
Note
This subroutine is a dummy routine used to specify the interface of the member function and catch errors in uninitialized fields.

◆ get_slice() [1/2]

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 virtualinherited

Get owned portion of field.

◆ get_slice() [2/2]

procedure get_slice ( class(oft_native_vector), intent(inout)  self,
real(r8), dimension(:), intent(inout), pointer  array,
integer(i4), intent(in), optional  iblock 
)

Get owned portion of field.

Parameters
[in]alphaUpdated field value
Note
This subroutine is a dummy routine used to specify the interface of the member function and catch errors in uninitialized fields.

◆ mdot() [1/2]

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

Dot product with a set of fields.

◆ mdot() [2/2]

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

Dot product with a set of fields.

◆ mdot_complex() [1/2]

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 virtualinherited

◆ mdot_complex() [2/2]

procedure mdot_complex ( class(oft_native_vector), intent(inout)  self,
type(oft_cvector_ptr), dimension(n), intent(inout)  a,
integer(i4), intent(in)  n 
)

Dot product with an arrays of vectors.

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

◆ mdot_real() [1/2]

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 virtualinherited

◆ mdot_real() [2/2]

procedure mdot_real ( class(oft_native_vector), intent(inout)  self,
type(oft_vector_ptr), dimension(n), intent(inout)  a,
integer(i4), intent(in)  n 
)

Dot product with an arrays of vectors.

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

◆ mult() [1/2]

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 virtualinherited

Multiply fields element by element.

◆ mult() [2/2]

procedure mult ( class(oft_native_vector), intent(inout)  self,
class(oft_vector), intent(inout), target  a,
logical, intent(in), optional  div_flag 
)

Multiply fields element by element.

\( self_i = self_i * a_i \)

Parameters
[in]aFirst field to add

◆ new() [1/2]

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

Create a new field as a bare copy.

◆ new() [2/2]

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

Create a new field as a bare copy.

◆ new_complex() [1/2]

procedure(vec_new_cvec), deferred new_complex ( class(oft_vector), intent(in)  self,
class(oft_cvector), intent(out), pointer  new 
)
pure virtualinherited

◆ new_complex() [2/2]

procedure new_complex ( class(oft_native_vector), intent(in)  self,
class(oft_cvector), intent(out), pointer  new 
)

Create a new vector as a bare copy.

Creates a new vector of the same size and with the same gobal mapping. The new vector is also initialized to 0.

Parameters
[out]newNew vector

◆ new_real() [1/2]

procedure(vec_new_vec), deferred new_real ( class(oft_vector), intent(in)  self,
class(oft_vector), intent(out), pointer  new 
)
pure virtualinherited

◆ new_real() [2/2]

procedure new_real ( class(oft_native_vector), intent(in)  self,
class(oft_vector), intent(out), pointer  new 
)

Create a new vector as a bare copy.

Creates a new vector of the same size and with the same gobal mapping. The new vector is also initialized to 0.

Parameters
[out]newNew vector

◆ norm() [1/2]

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

Norm of field.

◆ norm() [2/2]

procedure norm ( class(oft_native_vector), intent(inout)  self,
integer(i4), intent(in)  itype 
)

Norm of field.

Parameters
[in]itypeType of norm (1-> 1-norm, 2-> 2-norm, 3-> Inf-norm)
Returns
norm(self)

◆ restore_local() [1/2]

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 virtualinherited

Restore local portion of field.

◆ restore_local() [2/2]

procedure restore_local ( class(oft_native_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 
)

Restore local portion of field.

Parameters
[in]alphaUpdated field value
Note
This subroutine is a dummy routine used to specify the interface of the member function and catch errors in uninitialized fields.

◆ restore_slice() [1/2]

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 virtualinherited

Restore owned portion of field.

◆ restore_slice() [2/2]

procedure restore_slice ( class(oft_native_vector), intent(inout)  self,
real(r8), dimension(:), intent(in)  array,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  wait 
)

Restore owned portion of field.

Parameters
[in]alphaUpdated field value
Note
This subroutine is a dummy routine used to specify the interface of the member function and catch errors in uninitialized fields.

◆ scale() [1/2]

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

Scale field by a scalar.

◆ scale() [2/2]

procedure scale ( class(oft_native_vector), intent(inout)  self,
real(r8), intent(in)  alpha 
)

Scale vector by a scalar.

self = \( \alpha \) self

Parameters
[in]alphaFactor to scale field

◆ set() [1/2]

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 virtualinherited

Set all elements to a scalar.

◆ set() [2/2]

procedure set ( class(oft_native_vector), intent(inout)  self,
real(r8), intent(in)  alpha,
integer(i4), intent(in), optional  iblock,
logical, intent(in), optional  random 
)

Set all elements to a scalar.

Parameters
[in]alphaUpdated vector value
[in]randomSet to random number, if true alpha is ignored (optional)

◆ stitch() [1/2]

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

Perform global sitching.

◆ stitch() [2/2]

procedure stitch ( class(oft_native_vector), intent(inout)  self,
integer(i4), intent(in)  up_method 
)

Perform global stitching.

Parameters
[in]up_methodType of stitching to perform

◆ sum() [1/2]

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

Sum reduction over field.

◆ sum() [2/2]

procedure sum ( class(oft_native_vector), intent(inout)  self)

Sum reduction over vector.

Returns
\( \sum_i self_i \)

Member Data Documentation

◆ local_tmp

real(r8), dimension(:), pointer, contiguous local_tmp => NULL()

◆ map

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

Block mapping.

◆ n

integer(i4) n = -1
inherited

Local size of field.

◆ nblocks

integer(i4) nblocks = 1
inherited

Number of blocks.

◆ ng

integer(i8) ng = -1
inherited

Gobal size of field.

◆ nslice

integer(i4) nslice = -1
inherited

Local size of field.

◆ stitch_info

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

Seam information.

◆ v

real(r8), dimension(:), pointer, contiguous v => NULL()

Vector values.


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