The Open FUSION Toolkit 1.0.0-8905cc5
Modeling tools for plasma and fusion research and engineering
|
Native vector class.
Used for implementing global vector operations in OFT
Public Member Functions | |
procedure(vec_add), deferred | add (self, gamma, alpha, a, beta, b) |
Add vectors. | |
procedure | add (self, gamma, alpha, a, beta, b) |
Add vectors. | |
procedure | delete (self) |
Delete vector. | |
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 | dot_complex (self, a) |
Dot product with a complex vector. | |
procedure(vec_dot_vec), deferred | dot_real (self, a) |
procedure | dot_real (self, a) |
Dot product with a vector. | |
procedure(vec_get_local), deferred | get_local (self, array, iblock) |
Get local portion of vector. | |
procedure | get_local (self, array, iblock) |
Get local portion of field. | |
procedure(vec_get_slice), deferred | get_slice (self, array, iblock) |
Get locally-owned portion of vector. | |
procedure | get_slice (self, array, iblock) |
Get owned portion of field. | |
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 | mdot_complex (self, a, n) |
Dot product with an array of complex vectors. | |
procedure(vec_mdot_vec), deferred | mdot_real (self, a, n) |
procedure | mdot_real (self, a, n) |
Dot product with an array of vectors. | |
procedure(vec_mult), deferred | mult (self, a, div_flag) |
Multiply vectors element by element. | |
procedure | mult (self, a, div_flag) |
Multiply fields 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 | new_complex (self, new) |
Create a new complex vector as a bare copy of self | |
procedure(vec_new_vec), deferred | new_real (self, new) |
procedure | new_real (self, new) |
Create a new vector as a bare copy of self | |
procedure(vec_norm), deferred | norm (self, itype) |
Norm of vector. | |
procedure | norm (self, itype) |
Norm of field. | |
procedure(vec_restore_local), deferred | restore_local (self, array, iblock, add, wait) |
Restore local portion of vector. | |
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 locally-owned portion of vector. | |
procedure | restore_slice (self, array, iblock, wait) |
Restore owned portion of field. | |
procedure(vec_scale), deferred | scale (self, alpha) |
Scale vector 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 vector. | |
procedure | sum (self) |
Sum reduction over vector. | |
Public Attributes | |
real(r8), dimension(:), pointer, contiguous | local_tmp => NULL() |
Local value cache. | |
type(oft_map), dimension(:), pointer | map => NULL() |
Block mapping. | |
integer(i4) | n = -1 |
Local size of vector. | |
integer(i4) | nblocks = 1 |
Number of blocks. | |
integer(i8) | ng = -1 |
Gobal size of vector. | |
integer(i4) | nslice = -1 |
Number of locally-owned values. | |
type(oft_seam), pointer | stitch_info => NULL() |
Seam information. | |
real(r8), dimension(:), pointer, contiguous | v => NULL() |
Vector values. | |
|
pure virtualinherited |
Add vectors.
[in,out] | self | Vector object |
[in] | gamma | Scale of source vector |
[in] | alpha | Scale of first vector |
[in,out] | a | First vector to add |
[in] | beta | Scale of second vector (optional) |
[in,out] | b | Second vector to add (optional) |
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
[in,out] | self | Vector object |
[in] | gamma | Scale of source vector |
[in] | alpha | Scale of first vector |
[in,out] | a | First vector to add |
[in] | beta | Scale of second vector (optional) |
[in,out] | b | Second vector to add (optional) |
|
inherited |
Delete vector.
procedure delete | ( | class(oft_native_vector), intent(inout) | self | ) |
Delete vector.
[in,out] | self | Vector object |
|
inherited |
Dot product with a second vector.
[in,out] | self | Vector object |
[in,out] | a | Second vector for dot product |
|
inherited |
Dot product with a second vector.
[in,out] | self | Vector object |
[in,out] | a | Second vector for dot product |
|
pure virtualinherited |
[in,out] | self | Vector object |
[in,out] | a | Second vector for dot product |
procedure dot_complex | ( | class(oft_native_vector), intent(inout) | self, |
class(oft_cvector), intent(inout), target | a | ||
) |
Dot product with a complex vector.
[in,out] | self | Vector object |
[in,out] | a | Second vector for dot product |
|
pure virtualinherited |
[in,out] | self | Vector object |
[in,out] | a | Second vector for dot product |
procedure dot_real | ( | class(oft_native_vector), intent(inout) | self, |
class(oft_vector), intent(inout), target | a | ||
) |
Dot product with a vector.
[in,out] | self | Vector object |
[in,out] | a | Second vector for dot product |
|
pure virtualinherited |
Get local portion of vector.
[in,out] | self | Vector object |
[in,out] | array | Local values |
[in] | iblock | Sub-block to retrieve |
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.
[in,out] | self | Vector object |
[in,out] | array | Local values |
[in] | iblock | Sub-block to retrieve |
|
pure virtualinherited |
Get locally-owned portion of vector.
[in,out] | self | Vector object |
[in,out] | array | Slice values |
[in] | iblock | Sub-block to retrieve |
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.
[in,out] | self | Vector object |
[in,out] | array | Slice values |
[in] | iblock | Sub-block to retrieve |
|
inherited |
Dot product with a set of vectors.
[in,out] | self | Vector object |
[in,out] | a | Array of vectors for dot product [n] |
[in] | n | Length of vector array |
|
inherited |
Dot product with a set of vectors.
[in,out] | self | Vector object |
[in,out] | a | Array of vectors for dot product [n] |
[in] | n | Length of vector array |
|
pure virtualinherited |
[in,out] | self | Vector object |
[in,out] | a | Array of vectors for dot product [n] |
[in] | n | Length of vector array |
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 array of complex vectors.
[in,out] | self | Vector object |
[in,out] | a | Array of vectors for dot product [n] |
[in] | n | Length of vector array |
|
pure virtualinherited |
[in,out] | self | Vector object |
[in,out] | a | Array of vectors for dot product [n] |
[in] | n | Length of vector array |
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 array of vectors.
[in,out] | self | Vector object |
[in,out] | a | Array of vectors for dot product [n] |
[in] | n | Length of vector array |
|
pure virtualinherited |
Multiply vectors element by element.
[in,out] | self | Vector object |
[in,out] | a | vector for multiplication |
[in] | div_flag | Divide instead of multiply? |
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 \)
[in,out] | self | Vector object |
[in,out] | a | vector for multiplication |
[in] | div_flag | Divide instead of multiply? |
|
inherited |
Create a new vector as a bare copy.
[in] | self | Vector object |
[out] | new | New vector |
|
inherited |
Create a new vector as a bare copy.
[in] | self | Vector object |
[out] | new | New vector |
|
pure virtualinherited |
[in] | self | Vector object |
[out] | new | New vector |
procedure new_complex | ( | class(oft_native_vector), intent(in) | self, |
class(oft_cvector), intent(out), pointer | new | ||
) |
Create a new complex vector as a bare copy of self
[in] | self | Vector object |
[out] | new | New vector |
|
pure virtualinherited |
[in] | self | Vector object |
[out] | new | New vector |
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 of self
[in] | self | Vector object |
[out] | new | New vector |
|
pure virtualinherited |
Norm of vector.
[in,out] | self | Vector object |
[in] | itype | Type of norm (1-> 1-norm, 2-> 2-norm, 3-> Inf-norm) |
procedure norm | ( | class(oft_native_vector), intent(inout) | self, |
integer(i4), intent(in) | itype | ||
) |
Norm of field.
[in,out] | self | Vector object |
[in] | itype | Type of norm (1-> 1-norm, 2-> 2-norm, 3-> Inf-norm) |
|
pure virtualinherited |
Restore local portion of vector.
[in,out] | self | Vector object |
[in] | array | Local values |
[in] | iblock | Sub-block to restore |
[in] | add | Add values instead of replace |
[in] | wait | Wait to perform global sync |
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.
[in,out] | self | Vector object |
[in] | array | Local values |
[in] | iblock | Sub-block to restore |
[in] | add | Add values instead of replace |
[in] | wait | Wait to perform global sync |
|
pure virtualinherited |
Restore locally-owned portion of vector.
[in,out] | self | Vector object |
[in] | array | Slice values |
[in] | iblock | Sub-block to restore |
[in] | wait | Wait to perform global sync? |
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.
[in,out] | self | Vector object |
[in] | array | Slice values |
[in] | iblock | Sub-block to restore |
[in] | wait | Wait to perform global sync? |
|
pure virtualinherited |
Scale vector by a scalar.
[in,out] | self | Vector object |
[in] | alpha | Scale factor |
procedure scale | ( | class(oft_native_vector), intent(inout) | self, |
real(r8), intent(in) | alpha | ||
) |
Scale vector by a scalar.
[in,out] | self | Vector object |
[in] | alpha | Scale factor |
|
pure virtualinherited |
Set all elements to a scalar.
[in,out] | self | Vector object |
[in] | alpha | Updated vector value |
[in] | iblock | Vector sub-block to act on |
[in] | random | Set to random number, if true alpha is ignored (optional) |
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.
[in,out] | self | Vector object |
[in] | alpha | Updated vector value |
[in] | iblock | Vector sub-block to act on |
[in] | random | Set to random number, if true alpha is ignored (optional) |
|
pure virtualinherited |
Perform global sitching.
[in,out] | self | Vector object |
[in] | up_method | Type of stitching to perform |
procedure stitch | ( | class(oft_native_vector), intent(inout) | self, |
integer(i4), intent(in) | up_method | ||
) |
Perform global stitching.
[in,out] | self | Vector object |
[in] | up_method | Type of stitching to perform |
|
pure virtualinherited |
Sum reduction over vector.
[in,out] | self | Vector object |
procedure sum | ( | class(oft_native_vector), intent(inout) | self | ) |
Sum reduction over vector.
[in,out] | self | Vector object |
real(r8), dimension(:), pointer, contiguous local_tmp => NULL() |
Local value cache.
|
inherited |
Block mapping.
|
inherited |
Local size of vector.
|
inherited |
Number of blocks.
|
inherited |
Gobal size of vector.
|
inherited |
Number of locally-owned values.
|
inherited |
Seam information.
real(r8), dimension(:), pointer, contiguous v => NULL() |
Vector values.