![]()  | 
  
    Octopus
    
   | 
 
This module defines non-local operators. More...
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_adjoint (op, opt, mesh, self_adjoint) | 
| opt has to be initialised and built.  More... | |
| 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 | 
| 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 255 of file nl_operator.F90.
| subroutine, public nl_operator_oct_m::nl_operator_global_end | 
Definition at line 339 of file nl_operator.F90.
| 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 349 of file nl_operator.F90.
| 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 362 of file nl_operator.F90.
| 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 | ||
| ) | 
| [in] | np | Number of (local) points. | 
| [in] | const_w | are the weights constant (independent of the point) | 
Definition at line 418 of file nl_operator.F90.
| subroutine, public nl_operator_oct_m::nl_operator_output_weights | ( | type(nl_operator_t), intent(inout) | this | ) | 
Definition at line 712 of file nl_operator.F90.
| subroutine, public nl_operator_oct_m::nl_operator_adjoint | ( | type(nl_operator_t), intent(in), target | op, | 
| type(nl_operator_t), intent(out), target | opt, | ||
| type(mesh_t), intent(in), target | mesh, | ||
| logical, intent(in) | self_adjoint | ||
| ) | 
opt has to be initialised and built.
| [in] | self_adjoint | if .true., make the operator self-adjoint, else skew-self-adjoint | 
Definition at line 748 of file nl_operator.F90.
| subroutine, public nl_operator_oct_m::nl_operator_end | ( | type(nl_operator_t), intent(inout) | op | ) | 
Definition at line 832 of file nl_operator.F90.
| 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 886 of file nl_operator.F90.
| subroutine, public nl_operator_oct_m::nl_operator_allocate_gpu_buffers | ( | type(nl_operator_t), intent(inout) | op | ) | 
Definition at line 896 of file nl_operator.F90.
| subroutine, public nl_operator_oct_m::nl_operator_update_gpu_buffers | ( | type(nl_operator_t), intent(inout) | op | ) | 
Definition at line 913 of file nl_operator.F90.
| integer pure function, public nl_operator_oct_m::nl_operator_np_zero_bc | ( | type(nl_operator_t), intent(in) | op | ) | 
Definition at line 929 of file nl_operator.F90.
| logical pure function, public nl_operator_oct_m::nl_operator_compact_boundaries | 
Definition at line 944 of file nl_operator.F90.
| 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 | ||
| ) | 
| [in,out] | fo | this should be target, but old ifort 9.1 segfaults with it | 
Definition at line 1019 of file nl_operator.F90.
| 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 | ||
| ) | 
| [in,out] | fi | fi(opnp_part) | 
Definition at line 1470 of file nl_operator.F90.
| 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 1495 of file nl_operator.F90.
| 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 | ||
| ) | 
| [in,out] | fo | this should be target, but old ifort 9.1 segfaults with it | 
Definition at line 1587 of file nl_operator.F90.
| 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 | ||
| ) | 
| [in,out] | fi | fi(opnp_part) | 
Definition at line 2038 of file nl_operator.F90.
| 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 2063 of file nl_operator.F90.
      
  | 
  private | 
Definition at line 224 of file nl_operator.F90.
      
  | 
  private | 
Definition at line 224 of file nl_operator.F90.
      
  | 
  private | 
Definition at line 224 of file nl_operator.F90.
      
  | 
  private | 
Definition at line 224 of file nl_operator.F90.
      
  | 
  private | 
Definition at line 230 of file nl_operator.F90.
      
  | 
  private | 
Definition at line 230 of file nl_operator.F90.
      
  | 
  private | 
Definition at line 230 of file nl_operator.F90.
| integer, parameter, public nl_operator_oct_m::op_all = 3 | 
Definition at line 235 of file nl_operator.F90.
| integer, parameter, public nl_operator_oct_m::op_inner = 1 | 
Definition at line 235 of file nl_operator.F90.
| integer, parameter, public nl_operator_oct_m::op_outer = 2 | 
Definition at line 235 of file nl_operator.F90.
      
  | 
  private | 
Definition at line 237 of file nl_operator.F90.
      
  | 
  private | 
Definition at line 246 of file nl_operator.F90.
      
  | 
  private | 
Definition at line 247 of file nl_operator.F90.
      
  | 
  private | 
Definition at line 248 of file nl_operator.F90.