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 241 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 317 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 384 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 453 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 460 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 488 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 522 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 549 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 587 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 692 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 781 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 932 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 1037 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 1120 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 1156 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 1292 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 1431 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 1463 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 1572 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 1590 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 1610 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 1722 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 1739 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 1759 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 1834 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 1916 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 2025 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 2067 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 2107 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 2229 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 2318 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 2452 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 2557 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 2640 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 2676 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 2795 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 2917 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 2949 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 3045 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 3063 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 3083 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 3210 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 3227 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 3247 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 3332 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 3404 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 3469 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 3511 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 3551 of file batch_ops.F90.