Octopus
nl_operator_oct_m Module Reference

This module defines non-local operators. More...

Detailed Description

This module defines non-local operators.

Data Types

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

Functions/Subroutines

subroutine, public nl_operator_global_init (namespace)
 initialize global settings for non-local operators More...
 
subroutine, public nl_operator_global_end ()
 
subroutine, public nl_operator_init (op, label)
 initialize an instance of a non-local operator by setting the label More...
 
subroutine, public nl_operator_copy (opo, opi)
 
subroutine, public nl_operator_build (space, mesh, op, np, const_w, regenerate)
 
subroutine, public nl_operator_output_weights (this)
 
subroutine, public nl_operator_end (op)
 
integer pure function, public nl_operator_get_index (op, is, ip)
 
subroutine, public nl_operator_allocate_gpu_buffers (op)
 
subroutine, public nl_operator_update_gpu_buffers (op)
 
integer pure function, public nl_operator_np_zero_bc (op)
 
logical pure function, public nl_operator_compact_boundaries ()
 
subroutine, public dnl_operator_operate_batch (op, fi, fo, ghost_update, profile, points, factor, async)
 
subroutine, public dnl_operator_operate (op, fi, fo, ghost_update, profile, points)
 
subroutine, public dnl_operator_operate_diag (op, fo)
 
subroutine, public znl_operator_operate_batch (op, fi, fo, ghost_update, profile, points, factor, async)
 
subroutine, public znl_operator_operate (op, fi, fo, ghost_update, profile, points)
 
subroutine, public znl_operator_operate_diag (op, fo)
 

Variables

integer, parameter op_fortran = 0
 
integer, parameter op_vec = 1
 
integer, parameter op_min = OP_FORTRAN
 
integer, parameter op_max = OP_VEC
 
integer, parameter op_invmap = 1
 
integer, parameter op_map = 2
 
integer, parameter op_nomap = 3
 
integer, parameter, public op_all = 3
 
integer, parameter, public op_inner = 1
 
integer, parameter, public op_outer = 2
 
logical compact_boundaries
 
integer dfunction_global = -1
 
integer zfunction_global = -1
 
integer function_opencl
 

Function/Subroutine Documentation

◆ nl_operator_global_init()

subroutine, public nl_operator_oct_m::nl_operator_global_init ( type(namespace_t), intent(in)  namespace)

initialize global settings for non-local operators

Definition at line 253 of file nl_operator.F90.

◆ nl_operator_global_end()

subroutine, public nl_operator_oct_m::nl_operator_global_end

Definition at line 337 of file nl_operator.F90.

◆ nl_operator_init()

subroutine, public nl_operator_oct_m::nl_operator_init ( type(nl_operator_t), intent(inout)  op,
character(len=*), intent(in)  label 
)

initialize an instance of a non-local operator by setting the label

Definition at line 347 of file nl_operator.F90.

◆ nl_operator_copy()

subroutine, public nl_operator_oct_m::nl_operator_copy ( type(nl_operator_t), intent(inout)  opo,
type(nl_operator_t), intent(in), target  opi 
)

Definition at line 360 of file nl_operator.F90.

◆ nl_operator_build()

subroutine, public nl_operator_oct_m::nl_operator_build ( class(space_t), intent(in)  space,
type(mesh_t), intent(in), target  mesh,
type(nl_operator_t), intent(inout)  op,
integer, intent(in)  np,
logical, intent(in), optional  const_w,
logical, intent(in), optional  regenerate 
)
Parameters
[in]npNumber of (local) points.
[in]const_ware the weights constant (independent of the point)

Definition at line 415 of file nl_operator.F90.

◆ nl_operator_output_weights()

subroutine, public nl_operator_oct_m::nl_operator_output_weights ( type(nl_operator_t), intent(inout)  this)

Definition at line 705 of file nl_operator.F90.

◆ nl_operator_end()

subroutine, public nl_operator_oct_m::nl_operator_end ( type(nl_operator_t), intent(inout)  op)

Definition at line 736 of file nl_operator.F90.

◆ nl_operator_get_index()

integer pure function, public nl_operator_oct_m::nl_operator_get_index ( type(nl_operator_t), intent(in)  op,
integer, intent(in)  is,
integer, intent(in)  ip 
)

Definition at line 789 of file nl_operator.F90.

◆ nl_operator_allocate_gpu_buffers()

subroutine, public nl_operator_oct_m::nl_operator_allocate_gpu_buffers ( type(nl_operator_t), intent(inout)  op)

Definition at line 799 of file nl_operator.F90.

◆ nl_operator_update_gpu_buffers()

subroutine, public nl_operator_oct_m::nl_operator_update_gpu_buffers ( type(nl_operator_t), intent(inout)  op)

Definition at line 816 of file nl_operator.F90.

◆ nl_operator_np_zero_bc()

integer pure function, public nl_operator_oct_m::nl_operator_np_zero_bc ( type(nl_operator_t), intent(in)  op)

Definition at line 832 of file nl_operator.F90.

◆ nl_operator_compact_boundaries()

logical pure function, public nl_operator_oct_m::nl_operator_compact_boundaries

Definition at line 847 of file nl_operator.F90.

◆ dnl_operator_operate_batch()

subroutine, public nl_operator_oct_m::dnl_operator_operate_batch ( type(nl_operator_t), intent(in), target  op,
type(batch_t), intent(inout), target  fi,
type(batch_t), intent(inout)  fo,
logical, intent(in), optional  ghost_update,
logical, intent(in), optional  profile,
integer, intent(in), optional  points,
real(real64), intent(in), optional  factor,
logical, intent(in), optional  async 
)
Parameters
[in,out]fothis should be target, but old ifort 9.1 segfaults with it

Definition at line 922 of file nl_operator.F90.

◆ dnl_operator_operate()

subroutine, public nl_operator_oct_m::dnl_operator_operate ( type(nl_operator_t), intent(in)  op,
real(real64), dimension(:), intent(inout), contiguous  fi,
real(real64), dimension(:), intent(out), target, contiguous  fo,
logical, intent(in), optional  ghost_update,
logical, intent(in), optional  profile,
integer, intent(in), optional  points 
)
Parameters
[in,out]fifi(opnp_part)

Definition at line 1373 of file nl_operator.F90.

◆ dnl_operator_operate_diag()

subroutine, public nl_operator_oct_m::dnl_operator_operate_diag ( type(nl_operator_t), intent(in)  op,
real(real64), dimension(:), intent(out)  fo 
)

Definition at line 1398 of file nl_operator.F90.

◆ znl_operator_operate_batch()

subroutine, public nl_operator_oct_m::znl_operator_operate_batch ( type(nl_operator_t), intent(in), target  op,
type(batch_t), intent(inout), target  fi,
type(batch_t), intent(inout)  fo,
logical, intent(in), optional  ghost_update,
logical, intent(in), optional  profile,
integer, intent(in), optional  points,
real(real64), intent(in), optional  factor,
logical, intent(in), optional  async 
)
Parameters
[in,out]fothis should be target, but old ifort 9.1 segfaults with it

Definition at line 1490 of file nl_operator.F90.

◆ znl_operator_operate()

subroutine, public nl_operator_oct_m::znl_operator_operate ( type(nl_operator_t), intent(in)  op,
complex(real64), dimension(:), intent(inout), contiguous  fi,
complex(real64), dimension(:), intent(out), target, contiguous  fo,
logical, intent(in), optional  ghost_update,
logical, intent(in), optional  profile,
integer, intent(in), optional  points 
)
Parameters
[in,out]fifi(opnp_part)

Definition at line 1941 of file nl_operator.F90.

◆ znl_operator_operate_diag()

subroutine, public nl_operator_oct_m::znl_operator_operate_diag ( type(nl_operator_t), intent(in)  op,
complex(real64), dimension(:), intent(out)  fo 
)

Definition at line 1966 of file nl_operator.F90.

Variable Documentation

◆ op_fortran

integer, parameter nl_operator_oct_m::op_fortran = 0
private

Definition at line 222 of file nl_operator.F90.

◆ op_vec

integer, parameter nl_operator_oct_m::op_vec = 1
private

Definition at line 222 of file nl_operator.F90.

◆ op_min

integer, parameter nl_operator_oct_m::op_min = OP_FORTRAN
private

Definition at line 222 of file nl_operator.F90.

◆ op_max

integer, parameter nl_operator_oct_m::op_max = OP_VEC
private

Definition at line 222 of file nl_operator.F90.

◆ op_invmap

integer, parameter nl_operator_oct_m::op_invmap = 1
private

Definition at line 228 of file nl_operator.F90.

◆ op_map

integer, parameter nl_operator_oct_m::op_map = 2
private

Definition at line 228 of file nl_operator.F90.

◆ op_nomap

integer, parameter nl_operator_oct_m::op_nomap = 3
private

Definition at line 228 of file nl_operator.F90.

◆ op_all

integer, parameter, public nl_operator_oct_m::op_all = 3

Definition at line 233 of file nl_operator.F90.

◆ op_inner

integer, parameter, public nl_operator_oct_m::op_inner = 1

Definition at line 233 of file nl_operator.F90.

◆ op_outer

integer, parameter, public nl_operator_oct_m::op_outer = 2

Definition at line 233 of file nl_operator.F90.

◆ compact_boundaries

logical nl_operator_oct_m::compact_boundaries
private

Definition at line 235 of file nl_operator.F90.

◆ dfunction_global

integer nl_operator_oct_m::dfunction_global = -1
private

Definition at line 244 of file nl_operator.F90.

◆ zfunction_global

integer nl_operator_oct_m::zfunction_global = -1
private

Definition at line 245 of file nl_operator.F90.

◆ function_opencl

integer nl_operator_oct_m::function_opencl
private

Definition at line 246 of file nl_operator.F90.