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, public dbatch_copy_with_map_to_array (np, map, xx, array)
 Transfer a batch from the mesh to an array on the submesh (defined by a map) More...
 
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)
 
subroutine, public zbatch_copy_with_map_to_array (np, map, xx, array)
 Transfer a batch from the mesh to an array on the submesh (defined by a map) More...
 

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 243 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 319 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 386 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 455 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 462 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 490 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 524 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 551 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 589 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 694 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 783 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 934 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 1039 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 1122 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 1158 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 1294 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 1433 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 1465 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 1574 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 1592 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 1612 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 1724 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 1741 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 1761 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 1841 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 1927 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 2036 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 2078 of file batch_ops.F90.

◆ dbatch_copy_with_map_to_array()

subroutine, public batch_ops_oct_m::dbatch_copy_with_map_to_array ( integer, intent(in)  np,
integer, dimension(:), intent(in)  map,
class(batch_t), intent(in)  xx,
real(real64), dimension(:,:), intent(inout)  array 
)

Transfer a batch from the mesh to an array on the submesh (defined by a map)

Parameters
[in,out]array(psibnst_linear, submeshnp)

Definition at line 2118 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 2240 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 2329 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 2463 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 2568 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 2651 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 2687 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 2806 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 2928 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 2960 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 3056 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 3074 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 3094 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 3221 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 3238 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 3258 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 3350 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 3425 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 3490 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 3532 of file batch_ops.F90.

◆ zbatch_copy_with_map_to_array()

subroutine, public batch_ops_oct_m::zbatch_copy_with_map_to_array ( integer, intent(in)  np,
integer, dimension(:), intent(in)  map,
class(batch_t), intent(in)  xx,
complex(real64), dimension(:,:), intent(inout)  array 
)

Transfer a batch from the mesh to an array on the submesh (defined by a map)

Parameters
[in,out]array(psibnst_linear, submeshnp)

Definition at line 3572 of file batch_ops.F90.