Octopus
nl_operator.F90 File Reference

Go to the source code of this file.

Modules

module  nl_operator_oct_m
 This module defines non-local operators.
 

Data Types

type  nl_operator_oct_m::nl_operator_index_t
 index type for non-local operators More...
 
type  nl_operator_oct_m::nl_operator_t
 data type for non local operators More...
 
interface  nl_operator_oct_m::op_is_available
 

Functions/Subroutines

subroutine, public nl_operator_oct_m::nl_operator_global_init (namespace)
 initialize global settings for non-local operators More...
 
subroutine, public nl_operator_oct_m::nl_operator_global_end ()
 
subroutine, public nl_operator_oct_m::nl_operator_init (op, label, symm)
 initialize an instance of a non-local operator by setting the label More...
 
subroutine, public nl_operator_oct_m::nl_operator_copy (opo, opi)
 
subroutine, public nl_operator_oct_m::nl_operator_build (space, mesh, op, np, const_w, regenerate)
 Creates the nonlocal operators for the stencils used for finite differences. More...
 
subroutine, public nl_operator_oct_m::nl_operator_output_weights (this)
 
subroutine, public nl_operator_oct_m::nl_operator_end (op)
 
subroutine nl_operator_oct_m::nl_operator_clear_gpu_buffers (op)
 
integer pure function, public nl_operator_oct_m::nl_operator_get_index (op, is, ip)
 
subroutine, public nl_operator_oct_m::nl_operator_allocate_gpu_buffers (op)
 
subroutine, public nl_operator_oct_m::nl_operator_update_gpu_buffers (op)
 
integer pure function, public nl_operator_oct_m::nl_operator_np_zero_bc (op)
 
subroutine, public nl_operator_oct_m::nl_operator_remove_zero_weight_points (op, space, mesh)
 Removes the zero-weight points for constant weight stencils. More...
 
subroutine nl_operator_oct_m::group_by_pairs_sym (size, ldf, offsets, wre, ri, nri, npairs, wpair, pair_pos, pair_neg, wcenter)
 Take a list of weights and offsets and build pairs of symmetric points with common weights. More...
 
subroutine nl_operator_oct_m::group_by_pairs_antisym (size, ldf, offsets, wre, ri, nri, npairs, wpair, pair_pos, pair_neg)
 Take a list of weights and offsets and build pairs of symmetric points with common weights. More...
 
subroutine, public nl_operator_oct_m::nl_operator_build_symmetric_weights (op, max_size)
 Builds (or rebuild) the necessary arrays for symmetric and antisymmetric stencils. More...
 
subroutine nl_operator_oct_m::reallocate_array (ri, stencil_size, nri, old_size, new_size)
 Reallocate an ri array. More...
 
subroutine, public nl_operator_oct_m::dnl_operator_operate_batch (op, fi, fo, ghost_update, profile, points, factor, async)
 
subroutine select_op ()
 
subroutine operate_const_weights ()
 
subroutine operate_const_weights_antisymmetric ()
 
subroutine operate_const_weights_symmetric ()
 
subroutine operate_non_const_weights ()
 
subroutine operate_accel ()
 
subroutine, public nl_operator_oct_m::dnl_operator_operate (op, fi, fo, ghost_update, profile, points)
 
subroutine, public nl_operator_oct_m::dnl_operator_operate_diag (op, fo)
 
subroutine, public nl_operator_oct_m::znl_operator_operate_batch (op, fi, fo, ghost_update, profile, points, factor, async)
 
subroutine, public nl_operator_oct_m::znl_operator_operate (op, fi, fo, ghost_update, profile, points)
 
subroutine, public nl_operator_oct_m::znl_operator_operate_diag (op, fo)
 

Variables

integer, parameter, public nl_operator_oct_m::op_general = 1
 
integer, parameter, public nl_operator_oct_m::op_symmetric = 2
 
integer, parameter, public nl_operator_oct_m::op_antisymmetric = 3
 
integer, parameter nl_operator_oct_m::op_fortran = 0
 
integer, parameter nl_operator_oct_m::op_vec = 1
 
integer, parameter nl_operator_oct_m::op_min = OP_FORTRAN
 
integer, parameter nl_operator_oct_m::op_max = OP_VEC
 
integer, parameter nl_operator_oct_m::op_invmap = 1
 
integer, parameter nl_operator_oct_m::op_map = 2
 
integer, parameter nl_operator_oct_m::op_nomap = 3
 
integer, parameter, public nl_operator_oct_m::op_all = 3
 
integer, parameter, public nl_operator_oct_m::op_inner = 1
 
integer, parameter, public nl_operator_oct_m::op_outer = 2
 
integer nl_operator_oct_m::dfunction_global = -1
 
integer nl_operator_oct_m::zfunction_global = -1
 
integer nl_operator_oct_m::function_accel
 
logical nl_operator_oct_m::use_symmetries = .false.
 

Function/Subroutine Documentation

◆ select_op()

subroutine select_op
private

Definition at line 1375 of file nl_operator.F90.

◆ operate_const_weights()

subroutine operate_const_weights
private

Definition at line 1433 of file nl_operator.F90.

◆ operate_const_weights_antisymmetric()

subroutine operate_const_weights_antisymmetric
private

Definition at line 1476 of file nl_operator.F90.

◆ operate_const_weights_symmetric()

subroutine operate_const_weights_symmetric
private

Definition at line 1527 of file nl_operator.F90.

◆ operate_non_const_weights()

subroutine operate_non_const_weights
private

Definition at line 1580 of file nl_operator.F90.

◆ operate_accel()

subroutine operate_accel
private

Definition at line 1627 of file nl_operator.F90.