Octopus
batch_ops_oct_m Module Reference

This module implements common operations on batches of mesh functions. More...

Detailed Description

This module implements common operations on batches of mesh functions.

Data Types

interface  batch_add_with_map
 
interface  batch_axpy
 batchified version of the BLAS axpy routine: \( y = a*x + y \) More...
 
interface  batch_copy_with_map
 
interface  batch_get_points
 
interface  batch_get_state
 
interface  batch_mul
 
interface  batch_scal
 scale a batch by a constant or vector \( y = a*x \) More...
 
interface  batch_set_points
 
interface  batch_set_state
 There are several ways how to call batch_set_state and batch_get_state: More...
 
interface  batch_xpay
 batchified version of \( y = x + a*y \) More...
 

Functions/Subroutines

subroutine, public batch_set_zero (this, np, async)
 fill all mesh functions of the batch with zero More...
 
subroutine batch_get_points_accel (this, sp, ep, psi, ldpsi1, ldpsi2)
 GPU version of batch_get_points. More...
 
subroutine batch_set_points_accel (this, sp, ep, psi, ldpsi1, ldpsi2)
 GPU version of batch_set_points. More...
 
integer pure function, public batch_points_block_size ()
 determine the device block size More...
 
subroutine batch_add_with_map_cpu (np, map, xx, yy, zz)
 
subroutine batch_add_with_map_accel (np, map, xx, yy, zz)
 
subroutine batch_copy_with_map_cpu (np, map, xx, yy)
 
subroutine batch_copy_with_map_accel (np, map, xx, yy)
 
subroutine, public batch_split_complex (np, xx, yy, zz)
 extract the real and imaginary parts of a complex batch More...
 
subroutine dbatch_axpy_const (np, aa, xx, yy)
 This routine applies a 'pair-wise' axpy operation to all functions of the batches xx and yy, where the same constant aa is used for all functions. More...
 
subroutine dbatch_axpy_vec (np, aa, xx, yy, a_start, a_full)
 This routine applies an 'pair-wise' axpy operation to all functions of the batches xx and yy, where the constant aa(ist) is used for the mesh functions in the batch. More...
 
subroutine, public dbatch_axpy_function (np, aa, xx, psi, nst)
 This routine performs a set of axpy operations for each function x of a batch (xx), and accumulate the result to y (psi in this case), a single function. More...
 
subroutine, public dbatch_ax_function_py (np, aa, psi, yy)
 This routine performs a set of axpy operations adding the same function psi to all functions of a batch (yy),. More...
 
subroutine dbatch_scal_const (np, aa, xx)
 scale all functions in a batch by constant aa More...
 
subroutine dbatch_scal_vec (np, aa, xx, a_start, a_full)
 scale all functions in a batch by state dependent constant More...
 
subroutine dbatch_xpay_vec (np, xx, aa, yy, a_start, a_full)
 calculate yy(ist,:) = xx(ist,:) + aa(ist)*yy(ist,:) for a batch More...
 
subroutine dbatch_xpay_const (np, xx, aa, yy)
 calculate yy(ist) = xx(ist) + aa*yy(ist) for a batch More...
 
subroutine dbatch_set_state1 (this, ist, np, psi)
 Write a single state with np points into a batch at position ist. More...
 
subroutine dbatch_set_state2 (this, index, np, psi)
 Write a single state with np points into a batch at position defined by index. More...
 
subroutine dbatch_set_state3 (this, ii, np, psi)
 Write a set of state with np points into a batch. More...
 
subroutine dbatch_get_state1 (this, ist, np, psi)
 Write a get of state with np points from a batch. More...
 
subroutine dbatch_get_state2 (this, index, np, psi)
 
subroutine dbatch_get_state3 (this, ii, np, psi)
 
subroutine dbatch_get_points (this, sp, ep, psi)
 copy a set of points into a mesh function More...
 
subroutine dbatch_set_points (this, sp, ep, psi)
 copy a set of points into a mesh function More...
 
subroutine dbatch_mul (np, ff, xx, yy)
 multiply all functions in a batch pointwise by a given mesh function ff More...
 
subroutine dbatch_add_with_map (np, map, xx, yy, zz)
 
subroutine dbatch_copy_with_map (np, map, xx, yy)
 
subroutine zbatch_axpy_const (np, aa, xx, yy)
 This routine applies a 'pair-wise' axpy operation to all functions of the batches xx and yy, where the same constant aa is used for all functions. More...
 
subroutine zbatch_axpy_vec (np, aa, xx, yy, a_start, a_full)
 This routine applies an 'pair-wise' axpy operation to all functions of the batches xx and yy, where the constant aa(ist) is used for the mesh functions in the batch. More...
 
subroutine, public zbatch_axpy_function (np, aa, xx, psi, nst)
 This routine performs a set of axpy operations for each function x of a batch (xx), and accumulate the result to y (psi in this case), a single function. More...
 
subroutine, public zbatch_ax_function_py (np, aa, psi, yy)
 This routine performs a set of axpy operations adding the same function psi to all functions of a batch (yy),. More...
 
subroutine zbatch_scal_const (np, aa, xx)
 scale all functions in a batch by constant aa More...
 
subroutine zbatch_scal_vec (np, aa, xx, a_start, a_full)
 scale all functions in a batch by state dependent constant More...
 
subroutine zbatch_xpay_vec (np, xx, aa, yy, a_start, a_full)
 calculate yy(ist,:) = xx(ist,:) + aa(ist)*yy(ist,:) for a batch More...
 
subroutine zbatch_xpay_const (np, xx, aa, yy)
 calculate yy(ist) = xx(ist) + aa*yy(ist) for a batch More...
 
subroutine zbatch_set_state1 (this, ist, np, psi)
 Write a single state with np points into a batch at position ist. More...
 
subroutine zbatch_set_state2 (this, index, np, psi)
 Write a single state with np points into a batch at position defined by index. More...
 
subroutine zbatch_set_state3 (this, ii, np, psi)
 Write a set of state with np points into a batch. More...
 
subroutine zbatch_get_state1 (this, ist, np, psi)
 Write a get of state with np points from a batch. More...
 
subroutine zbatch_get_state2 (this, index, np, psi)
 
subroutine zbatch_get_state3 (this, ii, np, psi)
 
subroutine zbatch_get_points (this, sp, ep, psi)
 copy a set of points into a mesh function More...
 
subroutine zbatch_set_points (this, sp, ep, psi)
 copy a set of points into a mesh function More...
 
subroutine zbatch_mul (np, ff, xx, yy)
 multiply all functions in a batch pointwise by a given mesh function ff More...
 
subroutine zbatch_add_with_map (np, map, xx, yy, zz)
 
subroutine zbatch_copy_with_map (np, map, xx, yy)
 

Function/Subroutine Documentation

◆ batch_set_zero()

subroutine, public batch_ops_oct_m::batch_set_zero ( class(batch_t), intent(inout)  this,
integer, intent(in), optional  np,
logical, intent(in), optional  async 
)

fill all mesh functions of the batch with zero

Parameters
[in]npnumber of mesh points to consider. By deafult, all points are set to zero, meaning that np = np_part. This allows to set the batch to zero only for points up to np

Definition at line 239 of file batch_ops.F90.

◆ batch_get_points_accel()

subroutine batch_ops_oct_m::batch_get_points_accel ( class(batch_t), intent(in)  this,
integer, intent(in)  sp,
integer, intent(in)  ep,
type(accel_mem_t), intent(inout)  psi,
integer, intent(in)  ldpsi1,
integer, intent(in)  ldpsi2 
)
private

GPU version of batch_get_points.

Parameters
[in]thisthe batch
[in]spstarting point
[in]epend point
[in,out]psidevice buffer for mesh function
[in]ldpsi1number of states: stnst
[in]ldpsi2states dimensions: ddim

Definition at line 315 of file batch_ops.F90.

◆ batch_set_points_accel()

subroutine batch_ops_oct_m::batch_set_points_accel ( class(batch_t), intent(inout)  this,
integer, intent(in)  sp,
integer, intent(in)  ep,
type(accel_mem_t), intent(in)  psi,
integer, intent(in)  ldpsi1,
integer, intent(in)  ldpsi2 
)
private

GPU version of batch_set_points.

Parameters
[in,out]thisthe batch
[in]spstarting point
[in]epend point
[in]psidevice buffer of mesh function
[in]ldpsi1number of states: stnst
[in]ldpsi2state dimensions ddim

Definition at line 382 of file batch_ops.F90.

◆ batch_points_block_size()

integer pure function, public batch_ops_oct_m::batch_points_block_size

determine the device block size

Currently, this is just set to a constant.

Definition at line 451 of file batch_ops.F90.

◆ batch_add_with_map_cpu()

subroutine batch_ops_oct_m::batch_add_with_map_cpu ( integer, intent(in)  np,
integer, dimension(:), intent(in)  map,
class(batch_t), intent(in)  xx,
class(batch_t), intent(in)  yy,
class(batch_t), intent(inout)  zz 
)
private

Definition at line 458 of file batch_ops.F90.

◆ batch_add_with_map_accel()

subroutine batch_ops_oct_m::batch_add_with_map_accel ( integer, intent(in)  np,
class(accel_mem_t), intent(in)  map,
class(batch_t), intent(in)  xx,
class(batch_t), intent(in)  yy,
class(batch_t), intent(inout)  zz 
)
private

Definition at line 486 of file batch_ops.F90.

◆ batch_copy_with_map_cpu()

subroutine batch_ops_oct_m::batch_copy_with_map_cpu ( integer, intent(in)  np,
integer, dimension(:), intent(in)  map,
class(batch_t), intent(in)  xx,
class(batch_t), intent(inout)  yy 
)
private

Definition at line 520 of file batch_ops.F90.

◆ batch_copy_with_map_accel()

subroutine batch_ops_oct_m::batch_copy_with_map_accel ( integer, intent(in)  np,
class(accel_mem_t), intent(in)  map,
class(batch_t), intent(in)  xx,
class(batch_t), intent(inout)  yy 
)
private

Definition at line 547 of file batch_ops.F90.

◆ batch_split_complex()

subroutine, public batch_ops_oct_m::batch_split_complex ( integer, intent(in)  np,
class(batch_t), intent(in)  xx,
class(batch_t), intent(inout)  yy,
class(batch_t), intent(inout)  zz 
)

extract the real and imaginary parts of a complex batch

Note
all batches must be of the same status.
Parameters
[in]npnumber of mesh points to consider
[in]xxoriginal batch (must be of type TYPE_CMPLX)
[in,out]yybatch containing real part of xx (must be of type TYPE_FLOAT)
[in,out]zzbatch containing imaginary part of xx (must be of type TYPE_FLOAT)

Definition at line 585 of file batch_ops.F90.

◆ dbatch_axpy_const()

subroutine batch_ops_oct_m::dbatch_axpy_const ( integer, intent(in)  np,
real(real64), intent(in)  aa,
class(batch_t), intent(in)  xx,
class(batch_t), intent(inout)  yy 
)
private

This routine applies a 'pair-wise' axpy operation to all functions of the batches xx and yy, where the same constant aa is used for all functions.

Parameters
[in]npnumber of points
[in,out]yyyy(:,:) = aa*xx(:,:) + yy(:,:)

Definition at line 690 of file batch_ops.F90.

◆ dbatch_axpy_vec()

subroutine batch_ops_oct_m::dbatch_axpy_vec ( integer, intent(in)  np,
real(real64), dimension(:), intent(in)  aa,
class(batch_t), intent(in)  xx,
class(batch_t), intent(inout)  yy,
integer, intent(in), optional  a_start,
logical, intent(in), optional  a_full 
)
private

This routine applies an 'pair-wise' axpy operation to all functions of the batches xx and yy, where the constant aa(ist) is used for the mesh functions in the batch.

Parameters
[in]npnumber of points
[in]aaarray of multipliers
[in,out]yyy(ist,:) = aa(ist) * x(ist,:) + y(ist,:)
[in]a_startfirst state to operate on (default = 1)
[in]a_fullIs aa of size st:nst?

By default, aa is expected to be of size stnst, i.e., an array of the size of all states. The correct states will be picked from the indices stored in each batch. This is used, for example, for computing residuals given the eigenvalues. For a_full=.false., aa is expected to be of size yynst_linear, i.e. it has the size of the batch only.

Definition at line 779 of file batch_ops.F90.

◆ dbatch_axpy_function()

subroutine, public batch_ops_oct_m::dbatch_axpy_function ( integer, intent(in)  np,
real(real64), dimension(:), intent(in)  aa,
class(batch_t), intent(in)  xx,
real(real64), dimension(:,:), intent(inout), contiguous  psi,
integer, intent(in), optional  nst 
)

This routine performs a set of axpy operations for each function x of a batch (xx), and accumulate the result to y (psi in this case), a single function.

Parameters
[in]npnumber of points
[in]xxinput batch
[in,out]psiresult: \( psi = \sum_{ist=1}^{nst} aa(ist) * xx(ist) \)
[in]aaarray of multipliers
[in]nstoptional upper bound of sum

Definition at line 930 of file batch_ops.F90.

◆ dbatch_ax_function_py()

subroutine, public batch_ops_oct_m::dbatch_ax_function_py ( integer, intent(in)  np,
real(real64), dimension(:), intent(in)  aa,
real(real64), dimension(:,:), intent(in), contiguous  psi,
class(batch_t), intent(inout)  yy 
)

This routine performs a set of axpy operations adding the same function psi to all functions of a batch (yy),.

Parameters
[in]npnumber of points
[in]aaarray of multipliers
[in]psimesh functions psi
[in,out]yyresulting batch yy(ist) = yy(ist) + aa(ist) * psi

Definition at line 1035 of file batch_ops.F90.

◆ dbatch_scal_const()

subroutine batch_ops_oct_m::dbatch_scal_const ( integer, intent(in)  np,
real(real64), intent(in)  aa,
class(batch_t), intent(inout)  xx 
)
private

scale all functions in a batch by constant aa

Parameters
[in]npnumber of points
[in,out]xxxx(ist) = xx(ist) * aa

Definition at line 1118 of file batch_ops.F90.

◆ dbatch_scal_vec()

subroutine batch_ops_oct_m::dbatch_scal_vec ( integer, intent(in)  np,
real(real64), dimension(:), intent(in)  aa,
class(batch_t), intent(inout)  xx,
integer, intent(in), optional  a_start,
logical, intent(in), optional  a_full 
)
private

scale all functions in a batch by state dependent constant

Parameters
[in]npnumber of points
[in,out]xxxx(ist) = xx(ist) * aa(ist)

Definition at line 1154 of file batch_ops.F90.

◆ dbatch_xpay_vec()

subroutine batch_ops_oct_m::dbatch_xpay_vec ( integer, intent(in)  np,
class(batch_t), intent(in)  xx,
real(real64), dimension(:), intent(in)  aa,
class(batch_t), intent(inout)  yy,
integer, intent(in), optional  a_start,
logical, intent(in), optional  a_full 
)
private

calculate yy(ist,:) = xx(ist,:) + aa(ist)*yy(ist,:) for a batch

Parameters
[in]npnumber of points
[in]aaarray of constants aa(ist)
[in,out]yyyy(ist,:) = xx(ist,:) + aa(ist)*yy(ist,:)

Definition at line 1290 of file batch_ops.F90.

◆ dbatch_xpay_const()

subroutine batch_ops_oct_m::dbatch_xpay_const ( integer, intent(in)  np,
class(batch_t), intent(in)  xx,
real(real64), intent(in)  aa,
class(batch_t), intent(inout)  yy 
)
private

calculate yy(ist) = xx(ist) + aa*yy(ist) for a batch

Parameters
[in]npnumber of points
[in,out]yyyy(ist) = xx(ist) + a*yy(ist)

Definition at line 1429 of file batch_ops.F90.

◆ dbatch_set_state1()

subroutine batch_ops_oct_m::dbatch_set_state1 ( class(batch_t), intent(inout)  this,
integer, intent(in)  ist,
integer, intent(in)  np,
real(real64), dimension(:), intent(in), contiguous  psi 
)
private

Write a single state with np points into a batch at position ist.

Parameters
[in,out]thisbatch to write the state to
[in]istposition where to write
[in]npnumber of points
[in]psithe state to write

Definition at line 1461 of file batch_ops.F90.

◆ dbatch_set_state2()

subroutine batch_ops_oct_m::dbatch_set_state2 ( class(batch_t), intent(inout)  this,
integer, dimension(:), intent(in)  index,
integer, intent(in)  np,
real(real64), dimension(:), intent(in), contiguous  psi 
)
private

Write a single state with np points into a batch at position defined by index.

Parameters
[in,out]thisbatch to write the state into
[in]indexhow to access the state. For further information see batch_ops_oct_m::batch_set_state
[in]npnumber of points
[in]psistate to write to the batch

Definition at line 1570 of file batch_ops.F90.

◆ dbatch_set_state3()

subroutine batch_ops_oct_m::dbatch_set_state3 ( class(batch_t), intent(inout)  this,
integer, intent(in)  ii,
integer, intent(in)  np,
real(real64), dimension(:, :), intent(in), contiguous  psi 
)
private

Write a set of state with np points into a batch.

Parameters
[in,out]thisbatch to write the states into
[in]iipotision
[in]npnumber of points
[in]psistates to write

Definition at line 1588 of file batch_ops.F90.

◆ dbatch_get_state1()

subroutine batch_ops_oct_m::dbatch_get_state1 ( class(batch_t), intent(in)  this,
integer, intent(in)  ist,
integer, intent(in)  np,
real(real64), dimension(:), intent(out), contiguous  psi 
)
private

Write a get of state with np points from a batch.

Definition at line 1608 of file batch_ops.F90.

◆ dbatch_get_state2()

subroutine batch_ops_oct_m::dbatch_get_state2 ( class(batch_t), intent(in)  this,
integer, dimension(:), intent(in)  index,
integer, intent(in)  np,
real(real64), dimension(:), intent(out), contiguous  psi 
)
private

Definition at line 1720 of file batch_ops.F90.

◆ dbatch_get_state3()

subroutine batch_ops_oct_m::dbatch_get_state3 ( class(batch_t), intent(in)  this,
integer, intent(in)  ii,
integer, intent(in)  np,
real(real64), dimension(:, :), intent(out), contiguous  psi 
)
private

Definition at line 1737 of file batch_ops.F90.

◆ dbatch_get_points()

subroutine batch_ops_oct_m::dbatch_get_points ( class(batch_t), intent(in)  this,
integer, intent(in)  sp,
integer, intent(in)  ep,
real(real64), dimension(:, :, sp:), intent(inout), contiguous  psi 
)
private

copy a set of points into a mesh function

Parameters
[in]thisthe batch to get points from
[in]spstarting point
[in]epend point
[in,out]psimesh function into which to write the points; dimensions (1:nst, 1:dim, sp:ep)

Definition at line 1757 of file batch_ops.F90.

◆ dbatch_set_points()

subroutine batch_ops_oct_m::dbatch_set_points ( class(batch_t), intent(inout)  this,
integer, intent(in)  sp,
integer, intent(in)  ep,
real(real64), dimension(:, :, sp:), intent(in), contiguous  psi 
)
private

copy a set of points into a mesh function

Parameters
[in,out]thisthe batch to write points into
[in]spstarting point
[in]epend point
[in]psimesh function into which to write the points; dimensions (1:nst, 1:dim, sp:ep)

Definition at line 1832 of file batch_ops.F90.

◆ dbatch_mul()

subroutine batch_ops_oct_m::dbatch_mul ( integer, intent(in)  np,
real(real64), dimension(:), intent(in)  ff,
class(batch_t), intent(in)  xx,
class(batch_t), intent(inout)  yy 
)
private

multiply all functions in a batch pointwise by a given mesh function ff

Parameters
[in]npnumber of points
[in]ffmesh function
[in]xxinput batch
[in,out]yyoutput batch

Definition at line 1914 of file batch_ops.F90.

◆ dbatch_add_with_map()

subroutine batch_ops_oct_m::dbatch_add_with_map ( integer, intent(in)  np,
integer, dimension(:), intent(in)  map,
class(batch_t), intent(in)  xx,
class(batch_t), intent(in)  yy,
class(batch_t), intent(inout)  zz 
)
private

Definition at line 2023 of file batch_ops.F90.

◆ dbatch_copy_with_map()

subroutine batch_ops_oct_m::dbatch_copy_with_map ( integer, intent(in)  np,
integer, dimension(:), intent(in)  map,
class(batch_t), intent(in)  xx,
class(batch_t), intent(inout)  yy 
)
private

Definition at line 2065 of file batch_ops.F90.

◆ zbatch_axpy_const()

subroutine batch_ops_oct_m::zbatch_axpy_const ( integer, intent(in)  np,
complex(real64), intent(in)  aa,
class(batch_t), intent(in)  xx,
class(batch_t), intent(inout)  yy 
)
private

This routine applies a 'pair-wise' axpy operation to all functions of the batches xx and yy, where the same constant aa is used for all functions.

Parameters
[in]npnumber of points
[in,out]yyyy(:,:) = aa*xx(:,:) + yy(:,:)

Definition at line 2184 of file batch_ops.F90.

◆ zbatch_axpy_vec()

subroutine batch_ops_oct_m::zbatch_axpy_vec ( integer, intent(in)  np,
complex(real64), dimension(:), intent(in)  aa,
class(batch_t), intent(in)  xx,
class(batch_t), intent(inout)  yy,
integer, intent(in), optional  a_start,
logical, intent(in), optional  a_full 
)
private

This routine applies an 'pair-wise' axpy operation to all functions of the batches xx and yy, where the constant aa(ist) is used for the mesh functions in the batch.

Parameters
[in]npnumber of points
[in]aaarray of multipliers
[in,out]yyy(ist,:) = aa(ist) * x(ist,:) + y(ist,:)
[in]a_startfirst state to operate on (default = 1)
[in]a_fullIs aa of size st:nst?

By default, aa is expected to be of size stnst, i.e., an array of the size of all states. The correct states will be picked from the indices stored in each batch. This is used, for example, for computing residuals given the eigenvalues. For a_full=.false., aa is expected to be of size yynst_linear, i.e. it has the size of the batch only.

Definition at line 2273 of file batch_ops.F90.

◆ zbatch_axpy_function()

subroutine, public batch_ops_oct_m::zbatch_axpy_function ( integer, intent(in)  np,
complex(real64), dimension(:), intent(in)  aa,
class(batch_t), intent(in)  xx,
complex(real64), dimension(:,:), intent(inout), contiguous  psi,
integer, intent(in), optional  nst 
)

This routine performs a set of axpy operations for each function x of a batch (xx), and accumulate the result to y (psi in this case), a single function.

Parameters
[in]npnumber of points
[in]xxinput batch
[in,out]psiresult: \( psi = \sum_{ist=1}^{nst} aa(ist) * xx(ist) \)
[in]aaarray of multipliers
[in]nstoptional upper bound of sum

Definition at line 2407 of file batch_ops.F90.

◆ zbatch_ax_function_py()

subroutine, public batch_ops_oct_m::zbatch_ax_function_py ( integer, intent(in)  np,
complex(real64), dimension(:), intent(in)  aa,
complex(real64), dimension(:,:), intent(in), contiguous  psi,
class(batch_t), intent(inout)  yy 
)

This routine performs a set of axpy operations adding the same function psi to all functions of a batch (yy),.

Parameters
[in]npnumber of points
[in]aaarray of multipliers
[in]psimesh functions psi
[in,out]yyresulting batch yy(ist) = yy(ist) + aa(ist) * psi

Definition at line 2512 of file batch_ops.F90.

◆ zbatch_scal_const()

subroutine batch_ops_oct_m::zbatch_scal_const ( integer, intent(in)  np,
complex(real64), intent(in)  aa,
class(batch_t), intent(inout)  xx 
)
private

scale all functions in a batch by constant aa

Parameters
[in]npnumber of points
[in,out]xxxx(ist) = xx(ist) * aa

Definition at line 2595 of file batch_ops.F90.

◆ zbatch_scal_vec()

subroutine batch_ops_oct_m::zbatch_scal_vec ( integer, intent(in)  np,
complex(real64), dimension(:), intent(in)  aa,
class(batch_t), intent(inout)  xx,
integer, intent(in), optional  a_start,
logical, intent(in), optional  a_full 
)
private

scale all functions in a batch by state dependent constant

Parameters
[in]npnumber of points
[in,out]xxxx(ist) = xx(ist) * aa(ist)

Definition at line 2631 of file batch_ops.F90.

◆ zbatch_xpay_vec()

subroutine batch_ops_oct_m::zbatch_xpay_vec ( integer, intent(in)  np,
class(batch_t), intent(in)  xx,
complex(real64), dimension(:), intent(in)  aa,
class(batch_t), intent(inout)  yy,
integer, intent(in), optional  a_start,
logical, intent(in), optional  a_full 
)
private

calculate yy(ist,:) = xx(ist,:) + aa(ist)*yy(ist,:) for a batch

Parameters
[in]npnumber of points
[in]aaarray of constants aa(ist)
[in,out]yyyy(ist,:) = xx(ist,:) + aa(ist)*yy(ist,:)

Definition at line 2750 of file batch_ops.F90.

◆ zbatch_xpay_const()

subroutine batch_ops_oct_m::zbatch_xpay_const ( integer, intent(in)  np,
class(batch_t), intent(in)  xx,
complex(real64), intent(in)  aa,
class(batch_t), intent(inout)  yy 
)
private

calculate yy(ist) = xx(ist) + aa*yy(ist) for a batch

Parameters
[in]npnumber of points
[in,out]yyyy(ist) = xx(ist) + a*yy(ist)

Definition at line 2872 of file batch_ops.F90.

◆ zbatch_set_state1()

subroutine batch_ops_oct_m::zbatch_set_state1 ( class(batch_t), intent(inout)  this,
integer, intent(in)  ist,
integer, intent(in)  np,
complex(real64), dimension(:), intent(in), contiguous  psi 
)
private

Write a single state with np points into a batch at position ist.

Parameters
[in,out]thisbatch to write the state to
[in]istposition where to write
[in]npnumber of points
[in]psithe state to write

Definition at line 2904 of file batch_ops.F90.

◆ zbatch_set_state2()

subroutine batch_ops_oct_m::zbatch_set_state2 ( class(batch_t), intent(inout)  this,
integer, dimension(:), intent(in)  index,
integer, intent(in)  np,
complex(real64), dimension(:), intent(in), contiguous  psi 
)
private

Write a single state with np points into a batch at position defined by index.

Parameters
[in,out]thisbatch to write the state into
[in]indexhow to access the state. For further information see batch_ops_oct_m::batch_set_state
[in]npnumber of points
[in]psistate to write to the batch

Definition at line 3000 of file batch_ops.F90.

◆ zbatch_set_state3()

subroutine batch_ops_oct_m::zbatch_set_state3 ( class(batch_t), intent(inout)  this,
integer, intent(in)  ii,
integer, intent(in)  np,
complex(real64), dimension(:, :), intent(in), contiguous  psi 
)
private

Write a set of state with np points into a batch.

Parameters
[in,out]thisbatch to write the states into
[in]iipotision
[in]npnumber of points
[in]psistates to write

Definition at line 3018 of file batch_ops.F90.

◆ zbatch_get_state1()

subroutine batch_ops_oct_m::zbatch_get_state1 ( class(batch_t), intent(in)  this,
integer, intent(in)  ist,
integer, intent(in)  np,
complex(real64), dimension(:), intent(out), contiguous  psi 
)
private

Write a get of state with np points from a batch.

Definition at line 3038 of file batch_ops.F90.

◆ zbatch_get_state2()

subroutine batch_ops_oct_m::zbatch_get_state2 ( class(batch_t), intent(in)  this,
integer, dimension(:), intent(in)  index,
integer, intent(in)  np,
complex(real64), dimension(:), intent(out), contiguous  psi 
)
private

Definition at line 3165 of file batch_ops.F90.

◆ zbatch_get_state3()

subroutine batch_ops_oct_m::zbatch_get_state3 ( class(batch_t), intent(in)  this,
integer, intent(in)  ii,
integer, intent(in)  np,
complex(real64), dimension(:, :), intent(out), contiguous  psi 
)
private

Definition at line 3182 of file batch_ops.F90.

◆ zbatch_get_points()

subroutine batch_ops_oct_m::zbatch_get_points ( class(batch_t), intent(in)  this,
integer, intent(in)  sp,
integer, intent(in)  ep,
complex(real64), dimension(:, :, sp:), intent(inout), contiguous  psi 
)
private

copy a set of points into a mesh function

Parameters
[in]thisthe batch to get points from
[in]spstarting point
[in]epend point
[in,out]psimesh function into which to write the points; dimensions (1:nst, 1:dim, sp:ep)

Definition at line 3202 of file batch_ops.F90.

◆ zbatch_set_points()

subroutine batch_ops_oct_m::zbatch_set_points ( class(batch_t), intent(inout)  this,
integer, intent(in)  sp,
integer, intent(in)  ep,
complex(real64), dimension(:, :, sp:), intent(in), contiguous  psi 
)
private

copy a set of points into a mesh function

Parameters
[in,out]thisthe batch to write points into
[in]spstarting point
[in]epend point
[in]psimesh function into which to write the points; dimensions (1:nst, 1:dim, sp:ep)

Definition at line 3287 of file batch_ops.F90.

◆ zbatch_mul()

subroutine batch_ops_oct_m::zbatch_mul ( integer, intent(in)  np,
complex(real64), dimension(:), intent(in)  ff,
class(batch_t), intent(in)  xx,
class(batch_t), intent(inout)  yy 
)
private

multiply all functions in a batch pointwise by a given mesh function ff

Parameters
[in]npnumber of points
[in]ffmesh function
[in]xxinput batch
[in,out]yyoutput batch

Definition at line 3359 of file batch_ops.F90.

◆ zbatch_add_with_map()

subroutine batch_ops_oct_m::zbatch_add_with_map ( integer, intent(in)  np,
integer, dimension(:), intent(in)  map,
class(batch_t), intent(in)  xx,
class(batch_t), intent(in)  yy,
class(batch_t), intent(inout)  zz 
)
private

Definition at line 3424 of file batch_ops.F90.

◆ zbatch_copy_with_map()

subroutine batch_ops_oct_m::zbatch_copy_with_map ( integer, intent(in)  np,
integer, dimension(:), intent(in)  map,
class(batch_t), intent(in)  xx,
class(batch_t), intent(inout)  yy 
)
private

Definition at line 3466 of file batch_ops.F90.